shenyijian
2024-06-24 0559e5106c01471bcae3e1c54d337096ef4daad9
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -73,8 +73,8 @@
      sgProgressReportDO.setCreateTime(now);
      Long gxDeviceId = sgProgressReportDO.getGxDeviceId();
      Long gxStepId = sgProgressReportDO.getGxStepId();
      List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(gxDeviceId);
      SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId);
      List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
      QueryWrapper<SgProgressReportDO> wrapper = new QueryWrapper<>();
      wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId);
      List<SgProgressReportDO> sgProgressReportDOS = sgProgressReportMapper.selectList(wrapper);
@@ -82,9 +82,10 @@
         throw new ServiceException("此工序已存在审批!");
      }
      for (SgGxStepDO gxStepDO : list) {
         if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(gxStepDO.getGxStepNum()) == 1) {
         if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(gxStepDO.getGxStepNum()) >= 1) {
            QueryWrapper<SgProgressReportDO> wrapper1 = new QueryWrapper<>();
            wrapper1.eq("gx_step_id", gxStepDO.getId());
            wrapper1.eq("gx_device_id",gxDeviceId);
            SgProgressReportDO one = sgProgressReportMapper.selectOne(wrapper1);
            if (one == null || one.getStatus() != 2) {
               throw new ServiceException("请先完成" + gxStepDO.getGxStepName() + "的审批!");
@@ -135,7 +136,15 @@
      SgProgressReportVO sgProgressReportVO = sgProgressReportMapper.queryById(id);
      SgDeviceDO sgDeviceDO = sgDeviceMapper.selectById(sgProgressReportVO.getGxDeviceId());
      sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName());
      List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).orderByAsc(SgReportUserDO::getApprovalTime).list();
      List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).list();
      List<SgReportUserDO> reportUserDOS = new ArrayList<>();
      Map<Integer, List<SgReportUserDO>> map = list.stream().collect(Collectors.groupingBy(SgReportUserDO::getIsHis));
      List<SgReportUserDO> sgReportUserDOS = map.get(1);
      if (CollectionUtils.isNotEmpty(sgReportUserDOS)){
         List<SgReportUserDO> sortList = sgReportUserDOS.stream().sorted(Comparator.comparing(SgReportUserDO::getApprovalTime)).collect(Collectors.toList());
         reportUserDOS.addAll(sortList);
      }
      reportUserDOS.addAll(map.get(0).stream().sorted(Comparator.comparingInt(SgReportUserDO::getApprovalOrder)).collect(Collectors.toList()));
      List<Long> ids = list.stream().map(s -> s.getUserId()).collect(Collectors.toList());
      List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(ids);
      for (Map<String, Object> user : users) {
@@ -145,7 +154,7 @@
            }
         }
      }
      sgProgressReportVO.setSgReportUserDOS(list);
      sgProgressReportVO.setSgReportUserDOS(reportUserDOS);
      List<SgStepReportVO> sgStepReportVOS = sgProgressReportMapper.selectByDeviceId(sgProgressReportVO.getGxDeviceId());
      sgProgressReportVO.setSgStepReportVOS(sgStepReportVOS);
      return sgProgressReportVO;
@@ -310,8 +319,8 @@
   @Override
   public boolean checkStep(Long gxDeviceId, Long gxStepId) {
      List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(gxDeviceId);
      SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId);
      List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
      QueryWrapper<SgProgressReportDO> wrapper = new QueryWrapper<>();
      wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId);
      List<SgProgressReportDO> sgProgressReportDOS = sgProgressReportMapper.selectList(wrapper);
@@ -319,9 +328,10 @@
         return false;
      }
      for (SgGxStepDO gxStepDO : list) {
         if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(gxStepDO.getGxStepNum()) == 1) {
         if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(gxStepDO.getGxStepNum()) >= 1) {
            QueryWrapper<SgProgressReportDO> wrapper1 = new QueryWrapper<>();
            wrapper1.eq("gx_step_id", gxStepDO.getId());
            wrapper1.eq("gx_device_id", gxDeviceId);
            SgProgressReportDO one = sgProgressReportMapper.selectOne(wrapper1);
            if (one == null || one.getStatus() != 2) {
               return false;