|
|
@@ -252,6 +252,227 @@ public class SynchronizationServiceImpl implements SynchronizationService {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 同步锅炉检验任务数据
|
|
|
+ *
|
|
|
+ * @param updateDate 更新时间,只同步此时间之后的数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void checkTaskBoiler(String updateDate) {
|
|
|
+ log.info("同步锅炉检验任务定时任务执行中...");
|
|
|
+
|
|
|
+ Map<String, Object> form = new HashMap<>();
|
|
|
+ form.put("pageNum", 0);
|
|
|
+ form.put("pageSize", DEFAULT_PAGE_SIZE);
|
|
|
+ if (updateDate != null) {
|
|
|
+ form.put("UPDATEDATE_gt", updateDate);
|
|
|
+ }
|
|
|
+ // 添加锅炉类型过滤条件
|
|
|
+ form.put("CHECK_TASK_TYPE", "锅炉");
|
|
|
+
|
|
|
+ String checkTaskData = getRequest("chcektask", form);
|
|
|
+ ResponseDto checkTaskResponseDto = JSONObject.parseObject(checkTaskData, ResponseDto.class);
|
|
|
+ log.info("同步数据中台返回锅炉检验任务数据:{}", checkTaskResponseDto);
|
|
|
+
|
|
|
+ if (checkTaskResponseDto.getTotal() > 0 && !checkTaskResponseDto.getData().isEmpty()) {
|
|
|
+ List<CheckTaskDto> list = checkTaskResponseDto.getData().stream()
|
|
|
+ .map(data -> ((JSONObject) data).toJavaObject(CheckTaskDto.class))
|
|
|
+ .toList();
|
|
|
+
|
|
|
+ log.info("同步锅炉检验任务数据共{}条", list.size());
|
|
|
+
|
|
|
+ // 这里可以根据业务需求进行处理,例如:
|
|
|
+ // 1. 保存到本地数据库
|
|
|
+ // 2. 更新相关状态
|
|
|
+ // 3. 触发后续业务流程
|
|
|
+
|
|
|
+ for (CheckTaskDto checkTaskDto : list) {
|
|
|
+ try {
|
|
|
+ // 处理单个检验任务
|
|
|
+ processCheckTask(checkTaskDto, "BOILER");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理锅炉检验任务失败,任务号:{}", checkTaskDto.getTaskNo(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步管道检验任务数据
|
|
|
+ *
|
|
|
+ * @param updateDate 更新时间,只同步此时间之后的数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void checkTaskPipe(String updateDate) {
|
|
|
+ log.info("同步管道检验任务定时任务执行中...");
|
|
|
+
|
|
|
+ Map<String, Object> form = new HashMap<>();
|
|
|
+ form.put("pageNum", 0);
|
|
|
+ form.put("pageSize", DEFAULT_PAGE_SIZE);
|
|
|
+ if (updateDate != null) {
|
|
|
+ form.put("UPDATEDATE_gt", updateDate);
|
|
|
+ }
|
|
|
+ // 添加管道类型过滤条件
|
|
|
+ form.put("CHECK_TASK_TYPE", "管道");
|
|
|
+
|
|
|
+ String checkTaskData = getRequest("chcektask", form);
|
|
|
+ ResponseDto checkTaskResponseDto = JSONObject.parseObject(checkTaskData, ResponseDto.class);
|
|
|
+ log.info("同步数据中台返回管道检验任务数据:{}", checkTaskResponseDto);
|
|
|
+
|
|
|
+ if (checkTaskResponseDto.getTotal() > 0 && !checkTaskResponseDto.getData().isEmpty()) {
|
|
|
+ List<CheckTaskDto> list = checkTaskResponseDto.getData().stream()
|
|
|
+ .map(data -> ((JSONObject) data).toJavaObject(CheckTaskDto.class))
|
|
|
+ .toList();
|
|
|
+
|
|
|
+ log.info("同步管道检验任务数据共{}条", list.size());
|
|
|
+
|
|
|
+ // 这里可以根据业务需求进行处理,例如:
|
|
|
+ // 1. 保存到本地数据库
|
|
|
+ // 2. 更新相关状态
|
|
|
+ // 3. 触发后续业务流程
|
|
|
+
|
|
|
+ for (CheckTaskDto checkTaskDto : list) {
|
|
|
+ try {
|
|
|
+ // 处理单个检验任务
|
|
|
+ processCheckTask(checkTaskDto, "PIPE");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理管道检验任务失败,任务号:{}", checkTaskDto.getTaskNo(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理单个检验任务
|
|
|
+ *
|
|
|
+ * @param checkTaskDto 检验任务DTO
|
|
|
+ * @param taskType 任务类型(BOILER/PIPE)
|
|
|
+ */
|
|
|
+ private void processCheckTask(CheckTaskDto checkTaskDto, String taskType) {
|
|
|
+ log.info("处理{}检验任务,任务号:{}", taskType, checkTaskDto.getTaskNo());
|
|
|
+
|
|
|
+ // 这里可以实现具体的业务逻辑,例如:
|
|
|
+ // 1. 根据任务号查询本地是否存在该任务
|
|
|
+ // 2. 如果存在则更新,不存在则新增
|
|
|
+ // 3. 关联相关的设备信息
|
|
|
+ // 4. 更新单位信息等
|
|
|
+
|
|
|
+ // 示例:记录日志
|
|
|
+ log.info("检验任务详情 - 任务号:{}, 单位:{}, 联系人:{}, 检验日期:{}",
|
|
|
+ checkTaskDto.getTaskNo(),
|
|
|
+ checkTaskDto.getUnitName(),
|
|
|
+ checkTaskDto.getLinkMan(),
|
|
|
+ checkTaskDto.getCheckDate());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步锅炉任务设备数据
|
|
|
+ *
|
|
|
+ * @param updateDate 更新时间,只同步此时间之后的数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void taskEquipmentBoiler(String updateDate) {
|
|
|
+ log.info("同步锅炉任务设备定时任务执行中...");
|
|
|
+
|
|
|
+ Map<String, Object> form = new HashMap<>();
|
|
|
+ form.put("pageNum", 0);
|
|
|
+ form.put("pageSize", DEFAULT_PAGE_SIZE);
|
|
|
+ if (updateDate != null) {
|
|
|
+ form.put("UPDATEDATE_gt", updateDate);
|
|
|
+ }
|
|
|
+ // 添加设备类型过滤条件 - 锅炉
|
|
|
+ form.put("EQUIPMENT_TYPE", "锅炉");
|
|
|
+
|
|
|
+ String taskEquipmentData = getRequest("task_equipment", form);
|
|
|
+ ResponseDto taskEquipmentResponseDto = JSONObject.parseObject(taskEquipmentData, ResponseDto.class);
|
|
|
+ log.info("同步数据中台返回锅炉任务设备数据:{}", taskEquipmentResponseDto);
|
|
|
+
|
|
|
+ if (taskEquipmentResponseDto.getTotal() > 0 && !taskEquipmentResponseDto.getData().isEmpty()) {
|
|
|
+ List<TaskEquipmentDto> list = taskEquipmentResponseDto.getData().stream()
|
|
|
+ .map(data -> ((JSONObject) data).toJavaObject(TaskEquipmentDto.class))
|
|
|
+ .toList();
|
|
|
+
|
|
|
+ log.info("同步锅炉任务设备数据共{}条", list.size());
|
|
|
+
|
|
|
+ for (TaskEquipmentDto taskEquipmentDto : list) {
|
|
|
+ try {
|
|
|
+ // 处理单个任务设备
|
|
|
+ processTaskEquipment(taskEquipmentDto, "BOILER");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理锅炉任务设备失败,任务号:{},设备注册号:{}",
|
|
|
+ taskEquipmentDto.getTaskNo(), taskEquipmentDto.getRegisterNo(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同步管道任务设备数据
|
|
|
+ *
|
|
|
+ * @param updateDate 更新时间,只同步此时间之后的数据
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void taskEquipmentPipe(String updateDate) {
|
|
|
+ log.info("同步管道任务设备定时任务执行中...");
|
|
|
+
|
|
|
+ Map<String, Object> form = new HashMap<>();
|
|
|
+ form.put("pageNum", 0);
|
|
|
+ form.put("pageSize", DEFAULT_PAGE_SIZE);
|
|
|
+ if (updateDate != null) {
|
|
|
+ form.put("UPDATEDATE_gt", updateDate);
|
|
|
+ }
|
|
|
+ // 添加设备类型过滤条件 - 管道
|
|
|
+ form.put("EQUIPMENT_TYPE", "管道");
|
|
|
+
|
|
|
+ String taskEquipmentData = getRequest("task_equipment", form);
|
|
|
+ ResponseDto taskEquipmentResponseDto = JSONObject.parseObject(taskEquipmentData, ResponseDto.class);
|
|
|
+ log.info("同步数据中台返回管道任务设备数据:{}", taskEquipmentResponseDto);
|
|
|
+
|
|
|
+ if (taskEquipmentResponseDto.getTotal() > 0 && !taskEquipmentResponseDto.getData().isEmpty()) {
|
|
|
+ List<TaskEquipmentDto> list = taskEquipmentResponseDto.getData().stream()
|
|
|
+ .map(data -> ((JSONObject) data).toJavaObject(TaskEquipmentDto.class))
|
|
|
+ .toList();
|
|
|
+
|
|
|
+ log.info("同步管道任务设备数据共{}条", list.size());
|
|
|
+
|
|
|
+ for (TaskEquipmentDto taskEquipmentDto : list) {
|
|
|
+ try {
|
|
|
+ // 处理单个任务设备
|
|
|
+ processTaskEquipment(taskEquipmentDto, "PIPE");
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("处理管道任务设备失败,任务号:{},设备注册号:{}",
|
|
|
+ taskEquipmentDto.getTaskNo(), taskEquipmentDto.getRegisterNo(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理单个任务设备
|
|
|
+ *
|
|
|
+ * @param taskEquipmentDto 任务设备DTO
|
|
|
+ * @param equipmentType 设备类型(BOILER/PIPE)
|
|
|
+ */
|
|
|
+ private void processTaskEquipment(TaskEquipmentDto taskEquipmentDto, String equipmentType) {
|
|
|
+ log.info("处理{}任务设备,任务号:{},设备注册号:{}",
|
|
|
+ equipmentType, taskEquipmentDto.getTaskNo(), taskEquipmentDto.getRegisterNo());
|
|
|
+
|
|
|
+ // 这里可以实现具体的业务逻辑,例如:
|
|
|
+ // 1. 根据任务号和设备注册号查询本地是否存在该任务设备
|
|
|
+ // 2. 如果存在则更新,不存在则新增
|
|
|
+ // 3. 关联相关的检验任务信息
|
|
|
+ // 4. 更新费用信息、检验项目等
|
|
|
+
|
|
|
+ // 示例:记录日志
|
|
|
+ log.info("任务设备详情 - 任务号:{}, 设备注册号:{}, 主检员:{}, 法定费用:{}, 服务费用:{}, 检验项目:{}",
|
|
|
+ taskEquipmentDto.getTaskNo(),
|
|
|
+ taskEquipmentDto.getRegisterNo(),
|
|
|
+ taskEquipmentDto.getMasterChecker(),
|
|
|
+ taskEquipmentDto.getLegalTotalFee(),
|
|
|
+ taskEquipmentDto.getServiceTotalFee(),
|
|
|
+ taskEquipmentDto.getCheckItem());
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 发起get请求到数据中台
|