yxm
2024-07-13 350c8c98dd6c435df0f8bb46c513e6e3422a58d4
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);
@@ -430,41 +443,46 @@
      if (CollectionUtils.isNotEmpty(sgProgressReportDOS)) {
         sgProgressReportDOS.sort((u1, u2) -> u2.getCreateTime().compareTo(u1.getCreateTime()));
         SgProgressReportDO firstReport = sgProgressReportDOS.get(0);
         if (firstReport.getReportUser().equals(AuthUtil.getUserId()) && firstReport.getStatus().equals(3)) {
            sgReportVO.setGxDeviceId(deviceId);
            sgReportVO.setGxStepId(stepId);
            sgReportVO.setGxStepId(firstReport.getGxStepId());
            sgReportVO.setId(firstReport.getId());
            sgReportVO.setProframId(firstReport.getProframId());
            return sgReportVO;
         } else {
            sgReportVO.setId(firstReport.getId());
            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);
         QueryWrapper<SgGxStepDO> wrapperss = new QueryWrapper<>();
         if (CollectionUtils.isNotEmpty(sgProgressReportDOS)) {
            sgProgressReportDOS.sort((u1, u2) -> u2.getCreateTime().compareTo(u1.getCreateTime()));
            SgProgressReportDO firstReport = sgProgressReportDOS.get(0);
            if (firstReport.getReportUser().equals(AuthUtil.getUserId()) && firstReport.getStatus().equals(2)) {
            if (firstReport.getStatus().equals(2)) {
               sgReportVO.setGxDeviceId(deviceId);
               sgReportVO.setGxStepId(stepId);
               sgReportVO.setGxStepId(sgGxStepMapper.selectOne(wrapperss.eq("id", stepId)).getId());
               sgReportVO.setProframId(firstReport.getProframId());
               return sgReportVO;
            } else {
               throw new ServiceException("上一工序未审批完,当前不能上报");
            }
         } else {
            throw new ServiceException("未找到相关审批资料");
            else {
               throw new ServiceException("请完成上一步工序!");
            }
         }else {
            if (stepId!=null) {
               SgGxStepDO sg = sgGxStepMapper.selectOne(wrapperss.eq("id", stepId));
               if (sg.getGxStepNum().equals("01")) {
                  sgReportVO.setGxDeviceId(deviceId);
                  sgReportVO.setGxStepId(sg.getId());
                  sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId));
               }
               throw new ServiceException("第一工序未进行审批!");
            }
            sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId));
            sgReportVO.setGxStepId(sgGxStepMapper.queryStepList(deviceId.toString()).get(0).getId());
            sgReportVO.setGxDeviceId(deviceId);
         }
      }
      return sgReportVO;
   }
}