| | |
| | | import com.ruoyi.common.core.domain.entity.SysDept; |
| | | import com.ruoyi.common.core.domain.entity.SysUser; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.LongUtil; |
| | | import com.ruoyi.common.utils.MapValueUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.domain.SysTaskEmergency; |
| | |
| | | } |
| | | SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass); |
| | | Long deptId=dept==null?null:dept.getDeptId(); |
| | | if(deptId==null){ |
| | | log.error("创建任务时,获取部门信息失败,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID); |
| | | return false; |
| | | } |
| | | createTaskVo.setDeptId(deptId); |
| | | TaskUpdateVO updateTaskVo = new TaskUpdateVO(); |
| | | BeanUtils.copyProperties(createTaskVo, updateTaskVo); |
| | | |
| | | // log.info("开始保存转运任务,serviceOrdID={}, DispatchOrdID={}", serviceOrdID, dispatchOrdID); |
| | | |
| | | int result = sysTaskService.updateTask(updateTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time); |
| | |
| | | String createUserName= sysUser.getUserName(); |
| | | SysDept dept=sysDeptService.selectDeptByServiceClass(serviceOrdClass); |
| | | Long deptId=dept==null?null:dept.getDeptId(); |
| | | if(deptId==null){ |
| | | log.error("创建任务时,获取部门信息失败,serviceOrdID={}, DispatchOrdID={} ServiceOrdClass:{}", serviceOrdID, dispatchOrdID, serviceOrdClass); |
| | | return false; |
| | | } |
| | | createTaskVo.setDeptId(deptId); |
| | | |
| | | |
| | | int result = sysTaskService.insertTask(createTaskVo,serviceOrdID,dispatchOrdID, serviceOrdNo, taskCreatorId,createUserName, deptId, ServiceOrd_CC_Time, ServiceOrd_CC_Time); |
| | |
| | | public boolean isTransferOrderSynced(Long serviceOrdID, Long dispatchOrdID) { |
| | | try { |
| | | // 检查参数有效性 |
| | | if (serviceOrdID == null || serviceOrdID<=0) { |
| | | if (LongUtil.isEmpty(serviceOrdID)) { |
| | | log.warn("服务单ID不能为空"); |
| | | return false; |
| | | } |
| | |
| | | log.warn("服务单ID不是有效数字: {}", serviceOrdID); |
| | | } |
| | | |
| | | if (dispatchOrdID>0) { |
| | | if (LongUtil.isNotEmpty(dispatchOrdID)) { |
| | | try { |
| | | SysTaskEmergency emergency = sysTaskEmergencyMapper.selectByLegacyDispatchOrdId(dispatchOrdID); |
| | | if (emergency != null) { |
| | |
| | | return null; |
| | | } |
| | | |
| | | if (serviceOrdID==null || serviceOrdID<=0) { |
| | | if (LongUtil.isEmpty(serviceOrdID)) { |
| | | log.error("服务单ID不能为空"); |
| | | return null; |
| | | } |
| | |
| | | createTaskVo.setPrice(MapValueUtils.getBigDecimalValue(order, "ServiceOrdTraTxnPrice")); |
| | | // 距离信息需要从其他字段计算或获取 |
| | | |
| | | if(dispatchOrdID!=null) { |
| | | if(LongUtil.isNotEmpty(dispatchOrdID)) { |
| | | // 设置执行人信息 |
| | | List<TaskCreateVO.AssigneeInfo> assignees = queryAssignees(dispatchOrdID); |
| | | createTaskVo.setAssignees(assignees); |
| | |
| | | long startTime = System.currentTimeMillis(); |
| | | try { |
| | | // 检查参数有效性 |
| | | if (dispatchOrdID==null || dispatchOrdID <= 0) { |
| | | if (LongUtil.isEmpty(dispatchOrdID)) { |
| | | log.warn("调度单ID不能为空"); |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | // 将String转换为Long,避免数据库类型不匹配导致的性能问题 |
| | | Long dispatchOrdIdLong; |
| | | try { |
| | | dispatchOrdIdLong = Long.valueOf(dispatchOrdID); |
| | | } catch (NumberFormatException e) { |
| | | log.error("调度单ID格式不正确: {}", dispatchOrdID, e); |
| | | return new ArrayList<>(); |
| | | } |
| | | |
| | | |
| | | // 从SQL Server查询执行人信息(使用Long类型,匹配BIGINT字段) |
| | | List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdIdLong); |
| | | List<Map<String, Object>> assigneeList = legacyTransferSyncMapper.selectAssigneesByDispatchOrdID(dispatchOrdID); |
| | | long queryTime = System.currentTimeMillis() - startTime; |
| | | |
| | | // 记录慢查询(超过500ms) |
| | |
| | | } |
| | | } |
| | | |
| | | log.debug("查询到{}个执行人,调度单ID: {}, 耗时: {}ms", assignees.size(), dispatchOrdID, System.currentTimeMillis() - startTime); |
| | | // log.debug("查询到{}个执行人,调度单ID: {}, 耗时: {}ms", assignees.size(), dispatchOrdID, System.currentTimeMillis() - startTime); |
| | | return assignees; |
| | | } catch (Exception e) { |
| | | long totalTime = System.currentTimeMillis() - startTime; |
| | |
| | | private String queryDiseaseIds(Long serviceOrdID) { |
| | | try { |
| | | // 检查参数有效性 |
| | | if (serviceOrdID==null || serviceOrdID <= 0) { |
| | | if (LongUtil.isEmpty(serviceOrdID) ) { |
| | | log.warn("服务单ID不能为空"); |
| | | return null; |
| | | } |