shenyijian
2024-11-05 1fc1290227e5f96b606540fb6df9af31348516c0
湖北水库:草稿提交添加校验
1 files modified
47 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java 47 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -522,6 +522,53 @@
    @Override
    public void updateReport(SgProgressReportDO sgProgressReportDO) {
        Long gxDeviceId = sgProgressReportDO.getGxDeviceId();
        Long gxStepId = sgProgressReportDO.getGxStepId();
        SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId);
        List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
        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) {
                if (sgProgressReportDO1.getStatus()!= 2 && sgProgressReportDO1.getStatus()!= 3)  {
                    throw new ServiceException("请先完成测量定位的审批!");
                }
            }
        } else if (sgProgressReportDOS1 == null || (!sgProgressReportDO.getGxStepName().equals("测量定位"))) {
            throw new ServiceException("请先发起测量定位的审批!");
        }
        for (SgGxStepDO gxStepDO : list) {
            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);
                wrapper1.ne("status",4);
                wrapper1.ne("status",3);
                SgProgressReportDO one = sgProgressReportMapper.selectOne(wrapper1);
                if (one == null || one.getStatus() != 2) {
                    throw new ServiceException("请先完成" + gxStepDO.getGxStepName() + "的审批!");
                }
            }
        }
        sgProgressReportMapper.updateById(sgProgressReportDO);
    }