| | |
| | | import cn.gistack.sm.sg.DTO.ApprovalDTO; |
| | | import cn.gistack.sm.sg.DTO.ProjectSearchDTO; |
| | | import cn.gistack.sm.sg.VO.SgProgressReportVO; |
| | | import cn.gistack.sm.sg.VO.SgProjectInfoVO; |
| | | import cn.gistack.sm.sg.VO.SgReportVO; |
| | | import cn.gistack.sm.sg.VO.SgStepReportVO; |
| | | import cn.gistack.sm.sg.mapper.*; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.lang.Long; |
| | | import java.util.*; |
| | | import java.util.concurrent.ExecutorService; |
| | | import java.util.concurrent.Executors; |
| | |
| | | sgProgressReportDO.setCreateTime(now); |
| | | //如果为草稿状态,单纯插入 |
| | | if(sgProgressReportDO.getStatus()==4){ |
| | | sgProgressReportMapper.insert(sgProgressReportDO); |
| | | return; |
| | | QueryWrapper<SgProgressReportDO> wrappers = new QueryWrapper<>(); |
| | | wrappers.eq("profram_id", sgProgressReportDO.getProframId()).eq("status", 4).eq("gx_step_id", sgProgressReportDO.getGxStepId()) |
| | | .eq("gx_device_id",sgProgressReportDO.getGxDeviceId()); |
| | | if(sgProgressReportMapper.selectOne(wrappers) == null){ |
| | | sgProgressReportMapper.insert(sgProgressReportDO); |
| | | return; |
| | | }else { |
| | | throw new ServiceException("已有草稿数据,无法保存"); |
| | | } |
| | | |
| | | } |
| | | 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(sgProgressReportDO.getGxDeviceId()==998){ |
| | | ProjectSearchDTO search = new ProjectSearchDTO(); |
| | | search.setProjectId(sgProgressReportDO.getProframId().toString()); |
| | | List<SgProjectInfoVO> sgProjectInfoVOS = sgProjectInfoMapper.queryStepByProject(search); |
| | | if(sgProjectInfoVOS != null){ |
| | | sgProjectInfoVOS.forEach(s ->{ |
| | | if(!s.getProjectStatus().equals(2)){ |
| | | throw new ServiceException("请完成所有设备工序审批!"); |
| | | } |
| | | }); |
| | | }else{ |
| | | throw new ServiceException("无设备审批数据!"); |
| | | } |
| | | |
| | | } |
| | | |
| | | if (sgProgressReportDOS1!= null && sgProgressReportDOS1.size() > 0) { |
| | | for (SgProgressReportDO sgProgressReportDO1 : sgProgressReportDOS1) { |
| | |
| | | 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).ne("status",4); |
| | | if(sgProgressReportDO.getGxDeviceId()==998 || sgProgressReportDO.getGxDeviceId()==999){ |
| | | wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId).ne("status",4).eq("profram_id",sgProgressReportDO.getProframId()); |
| | | }else { |
| | | wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId).ne("status",4); |
| | | } |
| | | List<SgProgressReportDO> sgProgressReportDOS = sgProgressReportMapper.selectList(wrapper); |
| | | if ( sgProgressReportDOS!=null && sgProgressReportDOS.size()>0){ |
| | | throw new ServiceException("此工序已存在审批!"); |
| | |
| | | } |
| | | sgProgressReportDO.setStatus(0); |
| | | sgProgressReportMapper.insert(sgProgressReportDO); |
| | | SgDeviceDO sgDeviceDO = sgDeviceMapper.selectById(gxDeviceId); |
| | | String deviceType = sgDeviceDO.getDeviceType(); |
| | | String deviceType =""; |
| | | SgDeviceDO sgDeviceDO = new SgDeviceDO(); |
| | | if (gxDeviceId == 999){ |
| | | deviceType = "sgzb"; |
| | | }else if(gxDeviceId == 998){ |
| | | deviceType = "sgys"; |
| | | }else { |
| | | sgDeviceDO = sgDeviceMapper.selectById(gxDeviceId); |
| | | deviceType = sgDeviceDO.getDeviceType(); |
| | | } |
| | | List<SgGxConfigDO> sgGxConfigDOS = new LambdaQueryChainWrapper<>(sgGxConfigMapper) |
| | | .eq(SgGxConfigDO::getGxDeviceType, deviceType).eq(SgGxConfigDO::getGxStepId, gxStepId).orderByAsc(SgGxConfigDO::getSgOrder).list(); |
| | | List<String> roIds = sgGxConfigDOS.stream().map(SgGxConfigDO::getRoleId).collect(Collectors.toList()); |
| | |
| | | } |
| | | |
| | | //加个项目及设备的状态判断 方便统计计算 |
| | | if (sgDeviceDO != null && sgDeviceDO.getStatus() == 0) { |
| | | sgDeviceDO.setStatus(1); |
| | | sgDeviceMapper.updateById(sgDeviceDO); |
| | | if(gxStepId != 25 && gxStepId != 26 ) { |
| | | if (sgDeviceDO != null && sgDeviceDO.getStatus() == 0) { |
| | | sgDeviceDO.setStatus(1); |
| | | sgDeviceMapper.updateById(sgDeviceDO); |
| | | } |
| | | } |
| | | SgProjectInfoDO sgProjectInfoDO = sgProjectInfoMapper.selectById(sgProgressReportDO.getProframId()); |
| | | if (sgProjectInfoDO != null && sgProjectInfoDO.getStatus() == 0) { |
| | |
| | | SgDeviceDO sgDeviceDO = sgDeviceMapper.selectById(sgProgressReportVO.getGxDeviceId()); |
| | | SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(sgProgressReportVO.getGxStepId()); |
| | | sgProgressReportVO.setStepRemark(sgGxStepDO.getRemark()); |
| | | sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName()); |
| | | List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId, id).orderByAsc(SgReportUserDO::getId).list(); |
| | | if(sgProgressReportVO.getGxDeviceId() !=999 && sgProgressReportVO.getGxDeviceId() !=998){ |
| | | sgProgressReportVO.setDeviceName(sgDeviceDO.getDeviceName()); |
| | | }else { |
| | | sgProgressReportVO.setDeviceName("");} |
| | | List<SgReportUserDO> list = new LambdaQueryChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getReportId,id).orderByAsc(SgReportUserDO::getId).list(); |
| | | 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) { |
| | |
| | | sgReportVO.setGxDeviceId(deviceId); |
| | | sgReportVO.setGxStepId(sg.getId()); |
| | | sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId)); |
| | | }else { |
| | | throw new ServiceException("第一工序未进行审批!"); |
| | | } |
| | | throw new ServiceException("第一工序未进行审批!"); |
| | | |
| | | } |
| | | sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId)); |
| | | sgReportVO.setGxStepId(sgGxStepMapper.queryStepList(deviceId.toString()).get(0).getId()); |