diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java index bafac7a6..01a127db 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/entity/InspectionStepInfo.java @@ -37,6 +37,7 @@ public class InspectionStepInfo extends Model { //创建人id private Integer creator; //更新时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date updateTime; //更新人id private Integer updater; diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java index fef39ebb..8fd50073 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/AppInspectionPartnerServiceImpl.java @@ -1458,6 +1458,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl() + .eq(DlInspectionProject::getId, workNode.getProjectId())); + if (ObjectUtil.isNotNull(project)) { + inspectionStepInfo.setTitle(project.getProjectName()); + } else { + inspectionStepInfo.setTitle("检测项目"); + } + inspectionStepInfo.setCreateTime(DateUtil.date()); + inspectionStepInfo.setCreator(Integer.parseInt(SecurityFrameworkUtils.getLoginUserId() + "")); + inspectionStepInfo.setWorkNodeId(workNodeId); + inspectionStepService.save(inspectionStepInfo); + //查询用户 信息 //修改工单表中当前施工人 // inspectionInfo.setWorkId(workerUser.getId()); @@ -143,6 +159,16 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl() + .eq(DlInspectionProject::getId, workNode.getProjectId())); + inspectionStepService.remove(new LambdaQueryWrapper() + .and(i -> + i.eq(InspectionStepInfo::getInspectionInfoId, inspectionId) + .eq(InspectionStepInfo::getWorkNodeId, workNodeId) + .eq(InspectionStepInfo::getTitle, project.getProjectName()) + )); } /** @@ -179,40 +205,46 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(InspectionWorkNode::getInspectionInfoId, workNode.getInspectionInfoId()); //是否还有进行中或者待开始的状态 - queryWrapper.in(InspectionWorkNode::getStatus, "0","1"); + queryWrapper.in(InspectionWorkNode::getStatus, "0", "1"); List inspectionWorkNodes = this.list(queryWrapper); boolean flag = true; //判断是否是最后一个流程 - if (inspectionWorkNodes.size() == 1 && inspectionWorkNodes.get(0).getId().equals(workNode.getId())){ + if (inspectionWorkNodes.size() == 1 && inspectionWorkNodes.get(0).getId().equals(workNode.getId())) { flag = false; } - - // 插入步骤信息 - InspectionStepInfo inspectionStepInfo = new InspectionStepInfo(); - inspectionStepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId()))); - - //根据projectId查询项目名称 + // 更新或插入步骤信息 DlInspectionProject project = inspectionProjectService.getOne(new LambdaQueryWrapper() .eq(DlInspectionProject::getId, workNode.getProjectId())); - String stepTitle = ""; - if (ObjectUtil.isNotNull(project)) { - inspectionStepInfo.setTitle(project.getProjectName()); + InspectionStepInfo stepInfo = inspectionStepService.getOne(new LambdaQueryWrapper() + .and(i -> i.eq(InspectionStepInfo::getInspectionInfoId, workNode.getInspectionInfoId()) + .eq(InspectionStepInfo::getWorkNodeId, workNode.getId()) + .eq(InspectionStepInfo::getTitle, ObjectUtil.isNotEmpty(project) ? project.getProjectName() : workNode.getProjectName()) + )); + if (ObjectUtil.isNotEmpty(stepInfo)) { + stepInfo.setUpdateTime(DateUtil.date()); + stepInfo.setUpdater(Integer.parseInt(SecurityFrameworkUtils.getLoginUserId() + "")); } else { - inspectionStepInfo.setTitle("项目检测完成"); + stepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId()))); + if (ObjectUtil.isNotNull(project)) { + stepInfo.setTitle(project.getProjectName()); + } else { + stepInfo.setTitle("项目检测完成"); + } + stepInfo.setWorkNodeId(workNode.getId()); + stepInfo.setCreateTime(DateUtil.date()); + stepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId()))); + stepInfo.setUpdater(Integer.parseInt(String.valueOf(loginUser.getId()))); + stepInfo.setUpdateTime(DateUtil.date()); } if (ObjectUtil.isNotEmpty(inspectionWorkNode.getRemark())) { - inspectionStepInfo.setContent(inspectionWorkNode.getRemark()); + stepInfo.setContent(inspectionWorkNode.getRemark()); } if (ObjectUtil.isNotEmpty(inspectionWorkNode.getDealImages())) { - inspectionStepInfo.setImages(inspectionWorkNode.getDealImages()); + stepInfo.setImages(inspectionWorkNode.getDealImages()); } - inspectionStepInfo.setWorkNodeId(workNode.getId()); - inspectionStepInfo.setCreateTime(DateUtil.date()); - inspectionStepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId()))); - inspectionStepService.save(inspectionStepInfo); + inspectionStepService.saveOrUpdate(stepInfo); if (!flag) { - stepTitle = "检测结束"; //设置工单状态为已完成 inspectionInfo.setStatus("1"); //设置工单通过 @@ -223,12 +255,12 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl roleIds = new ArrayList<>(); /*获取所有的角色id*/ - if(CollUtil.isNotEmpty(workNodes.getWorkNodes())){ + if (CollUtil.isNotEmpty(workNodes.getWorkNodes())) { roleIds = workNodes.getWorkNodes().stream().map(inspectionWorkNode -> inspectionWorkNode.getRoleId()).collect(Collectors.toList()); } //根据角色id获取所有用户 @@ -431,7 +463,7 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl listByUserId = roleService.getListByUserId(roleId); List ids = listByUserId.stream().map(UserDTO::getId).collect(Collectors.toList()); - if (ObjectUtil.isNotNull(info.getLeadManId())){ + if (ObjectUtil.isNotNull(info.getLeadManId())) { ids.add(info.getLeadManId()); } sendSocketMessage(ids); diff --git a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml index 40d93c5f..40357fca 100644 --- a/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml +++ b/dl-module-inspection/src/main/resources/mapper/inspection/InspectionInfoMapper.xml @@ -269,56 +269,112 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by ins.start_time desc + + + AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%') + + + + AND + (ii.lead_man_id = #{inspectionInfo.leadManId} + OR iwn.role_id IN + + #{roleId} + ) + AND ii.status = '0' + AND iwn.status = '0' + -- AND ii.now_order_num = iwn.order_num + ORDER BY ii.create_time DESC + + + + AND ii.status = '0' + AND iwn.status = '1' + AND iwn.deal_user_id = #{inspectionInfo.dealUserId} + ORDER BY iwn.update_time DESC + + + + AND iwn.status = '2' + AND iwn.deal_user_id = #{inspectionInfo.dealUserId} + ORDER BY iwn.update_time DESC + + + ) AS subquery + WHERE rn = 1; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +