gong
2024-06-18 af317b0050bb4eba28741326220129d49a9822f1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -196,44 +196,46 @@
   public void  setProgramAndDeviceStatus(){
      //查询所有的项目
      List<SgProjectInfoDO> sgProjectInfoDOS = sgProjectInfoMapper.selectList(null);
      if(sgProjectInfoDOS!=null&& !sgProjectInfoDOS.isEmpty()) {
         for (SgProjectInfoDO project : sgProjectInfoDOS) {
            QueryWrapper<SgDeviceDO> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("program_id", project.getId());
            //所有设备
            List<SgDeviceDO> sgDeviceDOS = sgDeviceMapper.selectList(queryWrapper);
            //项目下完成的设备数
            int deviceFinishCount = 0;
            if(!sgProjectInfoDOS.isEmpty()) {
               for (SgDeviceDO sgDeviceDO : sgDeviceDOS) {
      for (SgProjectInfoDO project: sgProjectInfoDOS){
         QueryWrapper<SgDeviceDO> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("program_id",project.getId());
         //所有设备
         List<SgDeviceDO> sgDeviceDOS = sgDeviceMapper.selectList(queryWrapper);
         //项目下完成的设备数
         int deviceFinishCount=0;
         for (SgDeviceDO sgDeviceDO: sgDeviceDOS){
                  //设备的工序
                  List<SgDeviceGxStepDO> sgDeviceGxStepDOs = sgGxStepMapper.getDeviceGXList(sgDeviceDO.getId());
            //设备的工序
            List<SgDeviceGxStepDO> sgDeviceGxStepDOs = sgGxStepMapper.getDeviceGXList(sgDeviceDO.getId());
                  if (sgDeviceGxStepDOs != null) {
                     int countStatus = 0;
                     for (SgDeviceGxStepDO sgDeviceGxStepDO : sgDeviceGxStepDOs) {
                        countStatus = +sgDeviceGxStepDO.getStatus();
            if(sgDeviceGxStepDOs!=null){
               int countStatus=0;
               for (SgDeviceGxStepDO sgDeviceGxStepDO: sgDeviceGxStepDOs){
                  countStatus=+sgDeviceGxStepDO.getStatus();
                     }
                     int size = sgDeviceGxStepDOs.size();
                     if (countStatus != 0 && (size * 2) / countStatus == 1) {
                        //如果设备下全部工序审核完成
                        sgDeviceDO.setStatus(2);
                        sgDeviceMapper.updateById(sgDeviceDO);
                        deviceFinishCount++;
                     }
                  }
               }
               int size = sgDeviceGxStepDOs.size();
               if(countStatus!=0&&(size*2)/countStatus==1){
                  //如果设备下全部工序审核完成
                  sgDeviceDO.setStatus(2);
                  sgDeviceMapper.updateById(sgDeviceDO);
                  deviceFinishCount++;
               if (deviceFinishCount == sgDeviceDOS.size()) {
                  //如果项目下的设备下全部完成
                  project.setStatus(2);
                  sgProjectInfoMapper.updateById(project);
               }
            }
         }
         if(deviceFinishCount==sgDeviceDOS.size()){
            //如果项目下的设备下全部完成
            project.setStatus(2);
            sgProjectInfoMapper.updateById(project);
         }
      }
   }