yxm
2024-07-13 c0384b1730dcea830e387ea251d78f3512769e80
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -85,6 +85,19 @@
         sgProgressReportMapper.insert(sgProgressReportDO);
         return;
      }
      QueryWrapper<SgProgressReportDO> wrappers = new QueryWrapper<>();
      wrappers.eq("profram_id", sgProgressReportDO.getProframId()).ne("status", 4).eq("gx_step_name", "施工准备");
      List<SgProgressReportDO> sgProgressReportDOS1 = sgProgressReportMapper.selectList(wrappers);
      if (sgProgressReportDOS1!= null && sgProgressReportDOS1.size() > 0) {
         for (SgProgressReportDO sgProgressReportDO1 : sgProgressReportDOS1) {
            if (sgProgressReportDO1.getStatus()!= 2) {
               throw new ServiceException("请先完成施工准备的审批!");
            }
         }
      } else if (sgProgressReportDOS1 == null || (!sgProgressReportDO.getGxStepName().equals("施工准备"))) {
         throw new ServiceException("请先发起施工准备的审批!");
      }
      Long gxDeviceId = sgProgressReportDO.getGxDeviceId();
      Long gxStepId = sgProgressReportDO.getGxStepId();
      SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId);
@@ -438,16 +451,20 @@
            sgReportVO.setProframId(firstReport.getProframId());
            return sgReportVO;
         } else {
            sgReportVO.setGxDeviceId(deviceId);
            sgReportVO.setGxStepId(stepId);
            sgReportVO.setId(firstReport.getId());
            sgReportVO.setProframId(firstReport.getProframId());
            return sgReportVO;
         }
      } else {
         Long prevStepId = stepId - 1;
         QueryWrapper<SgProgressReportDO> wrappers = new QueryWrapper<>();
         wrappers.eq("gx_device_id", deviceId).ne("status", 4).eq("gx_step_id", prevStepId);
         wrappers.eq("gx_device_id", deviceId).ne("status", 4).orderByDesc("create_time");
         sgProgressReportDOS = sgProgressReportMapper.selectList(wrappers);
         if (CollectionUtils.isNotEmpty(sgProgressReportDOS)) {
            sgProgressReportDOS.sort((u1, u2) -> u2.getCreateTime().compareTo(u1.getCreateTime()));
@@ -457,14 +474,16 @@
               sgReportVO.setGxDeviceId(deviceId);
               sgReportVO.setGxStepId(stepId);
               sgReportVO.setProframId(firstReport.getProframId());
               return sgReportVO;
            } else {
               throw new ServiceException("上一工序未审批完,当前不能上报");
               throw new ServiceException("请完成上一步工序!");
            }
         } else {
            throw new ServiceException("未找到相关审批资料");
         }
      }
      sgReportVO.setGxDeviceId(deviceId);
      sgReportVO.setGxStepId(stepId);
      sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId));
      return sgReportVO;
   }
}