| | |
| | | |
| | | // 如果已经同步过,不再重复同步 |
| | | if (emergency.getLegacyServiceOrdId() != null && emergency.getLegacyServiceOrdId() > 0) { |
| | | log.info("任务已同步过,任务ID: {}, ServiceOrdID: {}", taskId, emergency.getLegacyServiceOrdId()); |
| | | // log.info("任务已同步过,任务ID: {}, ServiceOrdID: {}", taskId, emergency.getLegacyServiceOrdId()); |
| | | return emergency.getLegacyServiceOrdId(); |
| | | } |
| | | |
| | |
| | | sysTaskMapper.updateSysTask(task); |
| | | |
| | | eventPublisher.publishEvent(new TaskServiceOrderSyncEvent(this, taskId, task.getTaskCode(), serviceOrdId)); |
| | | log.info("任务同步成功,任务ID: {}, ServiceOrdID: {}", taskId, serviceOrdId); |
| | | // log.info("任务同步成功,任务ID: {}, ServiceOrdID: {}", taskId, serviceOrdId); |
| | | return serviceOrdId; |
| | | } else { |
| | | // 同步失败 |
| | |
| | | //在这里监听派发的事件 |
| | | @EventListener |
| | | public void handleTaskServiceOrderSyncEvent(TaskServiceOrderSyncEvent event) { |
| | | log.info("收到任务服务单同步事件,任务ID:{},任务编号:{},服务单ID:{}", event.getTaskId(), event.getTaskCode(), event.getServiceOrderId()); |
| | | // log.info("收到任务服务单同步事件,任务ID:{},任务编号:{},服务单ID:{}", event.getTaskId(), event.getTaskCode(), event.getServiceOrderId()); |
| | | syncDispatchOrderToLegacy(event.getTaskId()); |
| | | } |
| | | /** |
| | |
| | | break; // 没有更多数据,退出循环 |
| | | } |
| | | |
| | | log.info("开始同步第 {} 页,任务数量: {}", (offset / pageSize) + 1, pendingTasks.size()); |
| | | // log.info("开始同步第 {} 页,任务数量: {}", (offset / pageSize) + 1, pendingTasks.size()); |
| | | |
| | | int pageSuccessCount = 0; |
| | | for (SysTaskEmergency emergency : pendingTasks) { |
| | |
| | | } |
| | | |
| | | totalSuccessCount += pageSuccessCount; |
| | | log.info("第 {} 页同步完成,总数: {}, 成功: {}", |
| | | (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount); |
| | | // log.info("第 {} 页同步完成,总数: {}, 成功: {}", |
| | | // (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount); |
| | | |
| | | // 如果本页数据少于每页大小,说明已经是最后一页 |
| | | if (pendingTasks.size() < pageSize) { |
| | | log.info("已到达最后一页,同步结束"); |
| | | // log.info("已到达最后一页,同步结束"); |
| | | break; |
| | | } |
| | | |
| | | offset += pageSize; // 下一页 |
| | | } |
| | | |
| | | log.info("批量同步完成,总成功数: {}", totalSuccessCount); |
| | | // log.info("批量同步完成,总成功数: {}", totalSuccessCount); |
| | | return totalSuccessCount; |
| | | |
| | | } catch (Exception e) { |
| | |
| | | |
| | | // 如果已经同步过,不再重复同步 |
| | | if (emergency.getLegacyDispatchOrdId() != null && emergency.getLegacyDispatchOrdId() > 0) { |
| | | log.info("调度单已同步过,任务ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId()); |
| | | // log.info("调度单已同步过,任务ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId()); |
| | | return emergency.getLegacyDispatchOrdId(); |
| | | } |
| | | |
| | |
| | | |
| | | eventPublisher.publishEvent(new TaskDispatchSyncEvent(this, taskId, task.getTaskCode(),serviceOrdId, dispatchOrdId, oaUserID)); |
| | | |
| | | log.info("调度单同步成功,任务ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId); |
| | | // log.info("调度单同步成功,任务ID: {}, DispatchOrdID: {}", taskId, dispatchOrdId); |
| | | return dispatchOrdId; |
| | | } else { |
| | | // 同步失败 |
| | |
| | | } |
| | | |
| | | totalSuccessCount += pageSuccessCount; |
| | | log.info("调度单第 {} 页同步完成,总数: {}, 成功: {}", |
| | | (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount); |
| | | // log.info("调度单第 {} 页同步完成,总数: {}, 成功: {}", |
| | | // (offset / pageSize) + 1, pendingTasks.size(), pageSuccessCount); |
| | | |
| | | // 如果本页数据少于每页大小,说明已经是最后一页 |
| | | if (pendingTasks.size() < pageSize) { |
| | | log.info("已到达最后一页,调度单同步结束"); |
| | | // log.info("已到达最后一页,调度单同步结束"); |
| | | break; |
| | | } |
| | | |
| | | offset += pageSize; // 下一页 |
| | | } |
| | | |
| | | log.info("批量同步调度单完成,总成功数: {}", totalSuccessCount); |
| | | // log.info("批量同步调度单完成,总成功数: {}", totalSuccessCount); |
| | | return totalSuccessCount; |
| | | |
| | | } catch (Exception e) { |
| | |
| | | SysDept dept = sysDeptMapper.selectDeptById(task.getDeptId()); |
| | | if (dept != null && StringUtils.isNotEmpty(dept.getDispatchOrderClass())) { |
| | | dispatchOrdClass = dept.getDispatchOrderClass(); |
| | | log.info("获取任务所属部门的调度单编码成功,部门ID: {}, 调度单编码: {}", task.getDeptId(), dispatchOrdClass); |
| | | // log.info("获取任务所属部门的调度单编码成功,部门ID: {}, 调度单编码: {}", task.getDeptId(), dispatchOrdClass); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("查询任务所属部门信息异常,部门ID: {}", task.getDeptId(), e); |
| | |
| | | // params.put("Entourage_3", doctorOaId); // 医生 |
| | | // params.put("Entourage_4", nurseOaId); // 护士 |
| | | |
| | | log.info("任务执行人员同步成功,任务ID: {}, 领队ID: {}, 司机: {}, 医生: {}, 护士: {}", |
| | | task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId); |
| | | // log.info("任务执行人员同步成功,任务ID: {}, 领队ID: {}, 司机: {}, 医生: {}, 护士: {}", |
| | | // task.getTaskId(), leadEntourageId, driverOaId, doctorOaId, nurseOaId); |
| | | |
| | | } catch (Exception e) { |
| | | log.error("同步任务执行人员异常,任务ID: {}", task.getTaskId(), e); |
| | |
| | | } |
| | | |
| | | // 如果数据库中没有执行人员信息,尝试从任务的主要执行人获取 |
| | | log.warn("数据库中未找到执行人员信息,尝试从任务主要执行人获取,任务ID: {}", taskId); |
| | | // log.warn("数据库中未找到执行人员信息,尝试从任务主要执行人获取,任务ID: {}", taskId); |
| | | SysTask task = sysTaskMapper.selectSysTaskByTaskId(taskId); |
| | | if (task != null && task.getAssigneeId() != null) { |
| | | SysUser user = sysUserMapper.selectUserById(task.getAssigneeId()); |
| | |
| | | if (dept != null && StringUtils.isNotEmpty(dept.getServiceOrderClass())) { |
| | | // 使用部门的服务单编码作为ServiceOrdClass |
| | | serviceOrdClass = dept.getServiceOrderClass(); |
| | | log.info("获取任务所属部门的服务单编码成功,部门ID: {}, 部门名称: {}, 服务单编码: {}", |
| | | task.getDeptId(), dept.getDeptName(), serviceOrdClass); |
| | | // log.info("获取任务所属部门的服务单编码成功,部门ID: {}, 部门名称: {}, 服务单编码: {}", |
| | | // task.getDeptId(), dept.getDeptName(), serviceOrdClass); |
| | | } else { |
| | | log.warn("任务所属部门未配置服务单编码,部门ID: {}、部门名称: {},使用默认值", |
| | | task.getDeptId(), dept != null ? dept.getDeptName() : "null"); |
| | |
| | | String serviceOrdAreaType = "1"; // 默认值 |
| | | if (StringUtils.isNotEmpty(emergency.getDocumentTypeId())) { |
| | | serviceOrdAreaType = emergency.getDocumentTypeId(); |
| | | log.info("获取单据类型ID成功,任务ID: {}, 单据类型ID: {}", task.getTaskId(), serviceOrdAreaType); |
| | | // log.info("获取单据类型ID成功,任务ID: {}, 单据类型ID: {}", task.getTaskId(), serviceOrdAreaType); |
| | | } else { |
| | | log.warn("任务未配置单据类型ID,任务ID: {},使用默认值", task.getTaskId()); |
| | | } |
| | |
| | | String serviceOrdType = "1"; // 默认值 |
| | | if (StringUtils.isNotEmpty(emergency.getTaskTypeId())) { |
| | | serviceOrdType = emergency.getTaskTypeId(); |
| | | log.info("获取任务类型ID成功,任务ID: {}, 任务类型ID: {}", taskId, serviceOrdType); |
| | | // log.info("获取任务类型ID成功,任务ID: {}, 任务类型ID: {}", taskId, serviceOrdType); |
| | | } else { |
| | | log.warn("任务未配置任务类型ID,任务ID: {},使用默认值", taskId); |
| | | } |
| | |
| | | HttpsURLConnection httpsConn = (HttpsURLConnection) conn; |
| | | httpsConn.setSSLSocketFactory(createTrustAllSSLContext().getSocketFactory()); |
| | | httpsConn.setHostnameVerifier((hostname, session) -> true); // 信任所有主机名 |
| | | log.debug("配置HTTPS连接,信任所有SSL证书,URL: {}", urlString); |
| | | // log.debug("配置HTTPS连接,信任所有SSL证书,URL: {}", urlString); |
| | | } |
| | | |
| | | try { |
| | |
| | | log.info("重新同步调度单到旧系统请求参数: {}", params); |
| | | // 发送HTTP请求到旧系统(使用admin_save_25.asp接口) |
| | | String response = sendHttpPost(legacyConfig.getDispatchUpdateUrl(), params); |
| | | log.info("重新同步调度单到旧系统响应: ServiceOrdID:{},DispatchOrdId:{},Result: {}",emergency.getLegacyServiceOrdId(),emergency.getLegacyDispatchOrdId(), response); |
| | | // log.info("重新同步调度单到旧系统响应: ServiceOrdID:{},DispatchOrdId:{},Result: {}",emergency.getLegacyServiceOrdId(),emergency.getLegacyDispatchOrdId(), response); |
| | | // 解析响应 |
| | | // Long dispatchOrdId = parseResponse(response); |
| | | |
| | |
| | | emergency.setDispatchSyncErrorMsg(null); |
| | | sysTaskEmergencyService.updateSysTaskEmergency(emergency); |
| | | |
| | | log.info("调度单重新同步成功,任务ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId()); |
| | | // log.info("调度单重新同步成功,任务ID: {}, DispatchOrdID: {}", taskId, emergency.getLegacyDispatchOrdId()); |
| | | return true; |
| | | } else { |
| | | // 重新同步失败 |
| | |
| | | // 分页查询需要重新同步的任务 |
| | | List<SysTaskEmergency> needResyncTasks = sysTaskEmergencyMapper.selectNeedResyncTasks(offset, pageSize); |
| | | |
| | | log.info("查询到需要重新同步的任务数量: {}", needResyncTasks.size()); |
| | | // log.info("查询到需要重新同步的任务数量: {}", needResyncTasks.size()); |
| | | if (needResyncTasks == null || needResyncTasks.isEmpty()) { |
| | | log.info("没有更多需要重新同步的任务,offset: {}", offset); |
| | | break; // 没有更多数据,退出循环 |
| | | } |
| | | |
| | | log.info("开始重新同步调度单第 {} 页,任务数量: {}", (offset / pageSize) + 1, needResyncTasks.size()); |
| | | // log.info("开始重新同步调度单第 {} 页,任务数量: {}", (offset / pageSize) + 1, needResyncTasks.size()); |
| | | |
| | | int pageSuccessCount = 0; |
| | | for (SysTaskEmergency emergency : needResyncTasks) { |
| | | log.info("开始重新同步调度单,任务ID: {}", emergency.getTaskId()); |
| | | // log.info("开始重新同步调度单,任务ID: {}", emergency.getTaskId()); |
| | | boolean success = resyncDispatchOrderToLegacy(emergency.getTaskId()); |
| | | |
| | | if (success) { |
| | |
| | | } |
| | | |
| | | totalSuccessCount += pageSuccessCount; |
| | | log.info("调度单重新同步第 {} 页完成,总数: {}, 成功: {}", |
| | | (offset / pageSize) + 1, needResyncTasks.size(), pageSuccessCount); |
| | | // log.info("调度单重新同步第 {} 页完成,总数: {}, 成功: {}", |
| | | // (offset / pageSize) + 1, needResyncTasks.size(), pageSuccessCount); |
| | | |
| | | // 如果本页数据少于每页大小,说明已经是最后一页 |
| | | if (needResyncTasks.size() < pageSize) { |
| | | log.info("已到达最后一页,调度单重新同步结束"); |
| | | // log.info("已到达最后一页,调度单重新同步结束"); |
| | | break; |
| | | } |
| | | |
| | | offset += pageSize; // 下一页 |
| | | } |
| | | |
| | | log.info("批量重新同步调度单完成,总成功数: {}", totalSuccessCount); |
| | | // log.info("批量重新同步调度单完成,总成功数: {}", totalSuccessCount); |
| | | return totalSuccessCount; |
| | | |
| | | } catch (Exception e) { |