yxm
2024-07-13 c0384b1730dcea830e387ea251d78f3512769e80
项目进度上报点击图标上报逻辑优化v0.2
1 files modified
31 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java 31 ●●●● patch | view | raw | blame | history
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);
@@ -438,16 +451,20 @@
                sgReportVO.setProframId(firstReport.getProframId());
                return sgReportVO;
            } else {
                sgReportVO.setGxDeviceId(deviceId);
                sgReportVO.setGxStepId(stepId);
                sgReportVO.setId(firstReport.getId());
                sgReportVO.setProframId(firstReport.getProframId());
                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);
            if (CollectionUtils.isNotEmpty(sgProgressReportDOS)) {
                sgProgressReportDOS.sort((u1, u2) -> u2.getCreateTime().compareTo(u1.getCreateTime()));
@@ -457,14 +474,16 @@
                    sgReportVO.setGxDeviceId(deviceId);
                    sgReportVO.setGxStepId(stepId);
                    sgReportVO.setProframId(firstReport.getProframId());
                    return sgReportVO;
                } else {
                    throw new ServiceException("上一工序未审批完,当前不能上报");
                    throw new ServiceException("请完成上一步工序!");
                }
            } else {
                throw new ServiceException("未找到相关审批资料");
            }
        }
        sgReportVO.setGxDeviceId(deviceId);
        sgReportVO.setGxStepId(stepId);
        sgReportVO.setProframId(sgProgressReportMapper.selectProframId(deviceId));
        return sgReportVO;
    }
}