shenyijian
2024-06-24 0559e5106c01471bcae3e1c54d337096ef4daad9
湖北水库:施工:添加上报校验、审批详情排序
2 files modified
24 ■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.xml 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java 22 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="cn.gistack.sm.sg.mapper.SgGxStepMapper">
    <select id="selectByGxInfoId" resultType="cn.gistack.sm.sg.DO.SgGxStepDO">
        select * from YWXT.SG_GX_STEP step where step.GX_INFO_ID = #{gxInfoId} order by step.GX_STEP_NUM desc
        select * from YWXT.SG_GX_STEP step where step.GX_INFO_ID = #{gxInfoId} order by step.GX_STEP_NUM ASC
    </select>
    <select id="queryPageList" resultType="cn.gistack.sm.sg.DO.SgGxStepDO">
        select step.*,GX.GX_TYPE  from YWXT.SG_GX_STEP step left join YWXT.SG_GX GX ON step.GX_INFO_ID = GX.ID where 1=1
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;