| | |
| | | */ |
| | | @Override |
| | | public int syncLegacyTransferOrders(int daysAgo) { |
| | | log.info("开始同步{}天前的旧系统转运单数据", daysAgo); |
| | | // log.info("开始同步{}天前的旧系统转运单数据", daysAgo); |
| | | |
| | | try { |
| | | // 参数验证 |
| | |
| | | // 计算日期范围 |
| | | Date startDate = DateUtils.addDays(new Date(), -daysAgo); |
| | | String startDateStr = DateUtils.parseDateToStr("yyyy-MM-dd", startDate); |
| | | String endDateStr = DateUtils.parseDateToStr("yyyy-MM-dd", new Date()); |
| | | |
| | | // 从SQL Server查询转运单数据 |
| | | List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrders(startDateStr); |
| | | List<Map<String, Object>> transferOrders = legacyTransferSyncMapper.selectTransferOrders(startDateStr, endDateStr); |
| | | |
| | | if (transferOrders == null || transferOrders.isEmpty()) { |
| | | log.info("未查询到{}天前的转运单数据", daysAgo); |
| | | return 0; |
| | | } |
| | | |
| | | log.info("查询到{}条转运单数据,开始同步...", transferOrders.size()); |
| | | // log.info("查询到{}条转运单数据,开始同步...", transferOrders.size()); |
| | | |
| | | int successCount = 0; |
| | | int totalCount = transferOrders.size(); |
| | |
| | | continue; |
| | | } |
| | | |
| | | log.debug("正在处理第{}/{}条转运单: ServiceOrdID={}, DispatchOrdID={}", |
| | | processedCount, totalCount, serviceOrdID, dispatchOrdID); |
| | | // log.debug("正在处理第{}/{}条转运单: ServiceOrdID={}, DispatchOrdID={}", |
| | | // processedCount, totalCount, serviceOrdID, dispatchOrdID); |
| | | |
| | | // 检查是否已同步 |
| | | if (isTransferOrderSynced(serviceOrdID, dispatchOrdID)) { |
| | | log.debug("转运单已同步,跳过: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID); |
| | | // log.debug("转运单已同步,跳过: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID); |
| | | //进行更新操作 |
| | | updateTransferOrder(serviceOrdID, dispatchOrdID, order); |
| | | continue; |
| | |
| | | } |
| | | } |
| | | |
| | | log.info("同步完成,共处理{}条转运单,成功同步{}条转运单数据", totalCount, successCount); |
| | | // log.info("同步完成,共处理{}条转运单,成功同步{}条转运单数据", totalCount, successCount); |
| | | return successCount; |
| | | |
| | | } catch (Exception e) { |
| | |
| | | createTaskVo.setDeptId(deptId); |
| | | |
| | | |
| | | int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time); |
| | | Long taskId = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time); |
| | | |
| | | if (result > 0) { |
| | | // log.info("转运单同步成功: ServiceOrdID={}, DispatchOrdID={}, 创建的任务ID={}", serviceOrdID, dispatchOrdID, result); |
| | | if (taskId != null && taskId > 0) { |
| | | // log.info("转运单同步成功: ServiceOrdID={}, DispatchOrdID={}, 创建的任务ID={}", serviceOrdID, dispatchOrdID, taskId); |
| | | |
| | | try { |
| | | notifyTransferOrderByWechat((long) result, serviceOrdID, dispatchOrdID, serviceOrdNo, ServiceOrd_CC_Time, dept, order); |
| | | notifyTransferOrderByWechat(taskId, serviceOrdID, dispatchOrdID, serviceOrdNo, ServiceOrd_CC_Time, dept, order); |
| | | } catch (Exception e) { |
| | | log.error("转运单同步成功后发送微信通知失败: ServiceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID, e); |
| | | } |
| | |
| | | createTaskVo.setServiceOrdVIP("0"); |
| | | } |
| | | |
| | | Integer FromHQ2_is = MapValueUtils.getIntegerValue(order, "FromHQ2_is"); |
| | | if(IntegerUtil.isNotEmpty(FromHQ2_is)){ |
| | | Integer FromHQ_is = MapValueUtils.getIntegerValue(order, "FromHQ_is"); |
| | | if(IntegerUtil.isNotEmpty(FromHQ_is)){ |
| | | createTaskVo.setFromHQ2_is("1"); |
| | | }else{ |
| | | createTaskVo.setFromHQ2_is("0"); |
| | |
| | | } |
| | | } |
| | | createTaskVo.setPatient(patientInfo); |
| | | //1000公里,提取数字 |
| | | //1000公里,提取数字(支持小数) |
| | | String ServiceOrdTraDistance=MapValueUtils.getStringValue(order, "ServiceOrdTraDistance"); |
| | | if(ServiceOrdTraDistance!=null){ |
| | | ServiceOrdTraDistance=ServiceOrdTraDistance.replaceAll("[^0-9]", ""); |
| | | createTaskVo.setDistance(new BigDecimal(ServiceOrdTraDistance)); |
| | | // 保留数字和小数点,移除其他字符 |
| | | ServiceOrdTraDistance=ServiceOrdTraDistance.replaceAll("[^0-9.]", ""); |
| | | // 处理多个小数点的情况,只保留第一个 |
| | | int firstDotIndex = ServiceOrdTraDistance.indexOf('.'); |
| | | if (firstDotIndex != -1) { |
| | | ServiceOrdTraDistance = ServiceOrdTraDistance.substring(0, firstDotIndex + 1) |
| | | + ServiceOrdTraDistance.substring(firstDotIndex + 1).replace(".", ""); |
| | | } |
| | | if (!ServiceOrdTraDistance.isEmpty() && !ServiceOrdTraDistance.equals(".")) { |
| | | createTaskVo.setTransferDistance(new BigDecimal(ServiceOrdTraDistance)); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | String carLicense = legacyTransferSyncMapper.selectCarLicenseByCarID(carID); |
| | | if (StringUtils.isNotEmpty(carLicense)) { |
| | | // 根据车牌号查询新系统中的车辆ID |
| | | log.info("转运任务,ServiceOrdID:{},车辆车牌:{}",serviceOrdID,carLicense); |
| | | // log.info("转运任务,ServiceOrdID:{},车辆车牌:{}",serviceOrdID,carLicense); |
| | | // log.debug("车辆车牌号: {}", carLicense); |
| | | |
| | | // 首先尝试通过VehicleInfoMapper查询车辆信息 |
| | |
| | | List<Long> vehicleIds = new ArrayList<>(); |
| | | vehicleIds.add(vehicleInfo.getVehicleId()); |
| | | createTaskVo.setVehicleIds(vehicleIds); |
| | | log.debug("转运任务,ServiceOrdID:{} 通过车牌号找到车辆信息: vehicle_id={}, vehicle_no={}",serviceOrdID, vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo()); |
| | | // log.debug("转运任务,ServiceOrdID:{} 通过车牌号找到车辆信息: vehicle_id={}, vehicle_no={}",serviceOrdID, vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo()); |
| | | } else { |
| | | log.warn("转运任务,ServiceOrdID:{} 未找到对应的车辆信息: car_id={}, vehicle_no={}",serviceOrdID, carID, carLicense); |
| | | } |
| | |
| | | List<Long> vehicleIds = new ArrayList<>(); |
| | | vehicleIds.add(vehicleInfo.getVehicleId()); |
| | | createTaskVo.setVehicleIds(vehicleIds); |
| | | log.debug("通过车牌号找到车辆信息: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo()); |
| | | // log.debug("通过车牌号找到车辆信息: vehicle_id={}, vehicle_no={}", vehicleInfo.getVehicleId(), vehicleInfo.getVehicleNo()); |
| | | } else { |
| | | log.warn("未找到对应的车辆信息: vehicle_no={}", carLicense); |
| | | } |
| | |
| | | return String.join(",", diseaseIds); |
| | | } |
| | | |
| | | log.info("查询到病情信息,服务单ID: {}, 病情数量: {}", serviceOrdID, diseaseIds != null ? diseaseIds.size() : 0); |
| | | // log.info("查询到病情信息,服务单ID: {}, 病情数量: {}", serviceOrdID, diseaseIds != null ? diseaseIds.size() : 0); |
| | | return null; |
| | | } catch (Exception e) { |
| | | log.error("查询病情信息异常,服务单ID: {}", serviceOrdID, e); |