shenyijian
2024-08-09 8cb672af822d4a0ff4373d6ebaaf2657ed0e6b44
湖北水库:新增项目、项目进度排序
7 files modified
98 ■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProgressReportDO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java 37 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java 6 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProgressReportDO.java
@@ -118,4 +118,9 @@
     */
    @TableField(exist = false)
    private List<SgGxDO> sgGxDOS;
    /**
     *是否重新提交 0是 ,1否
     */
    private Integer resubmit;
}
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
@@ -81,12 +81,12 @@
    private String expTime;
    /**
     * 总承包
     * 省厅建办
     */
    private String generalContract;
    /**
     * 总承包责任人
     * 省厅建办责任人
     */
    private String generalPerson;
@@ -111,32 +111,32 @@
    private String controlPerson;
    /**
     * 施工单位
     * 土建施工单位
     */
    private String constructionUnit;
    /**
     * 施工单位责任人
     * 土建施工单位责任人
     */
    private String constructionPerson;
    /**
     * 施工自检单位
     * 设备施工单位
     */
    private String selfUnit;
    /**
     * 施工自检单位责任人
     * 设备施工单位责任人
     */
    private String selfPerson;
    /**
     * 竣工验收检测单位
     * 检测单位
     */
    private String acceptanceUnit;
    /**
     * 竣工验收检测单位责任人
     * 检测单位责任人
     */
    private String acceptancePerson;
@@ -195,4 +195,10 @@
    private String engScal; //工程规模
    @TableField(exist = false)
    private String basGuid; //片区
    /**
     * 标段
     */
    private String lot;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectInfoController.java
@@ -131,4 +131,22 @@
        List<SgStatistccVO> sgStatisProVOS  =    sgProjectInfoService.getsgStatisticscc(code);
        return R.data(sgStatisProVOS);
    }
    /**
     * 新增项目
     */
    @PostMapping("add")
    public R add(@RequestBody SgProjectInfoDO sgProjectInfoDO) {
        sgProjectInfoService.save(sgProjectInfoDO);
        return R.success("新增成功");
    }
    /**
     * 新增项目
     */
    @PostMapping("update")
    public R update(@RequestBody SgProjectInfoDO sgProjectInfoDO) {
        sgProjectInfoService.updateById(sgProjectInfoDO);
        return R.success("修改成功");
    }
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.java
@@ -49,5 +49,7 @@
    List<SgProjectInfoVO> queryStepByProject1(@Param("dto") ProjectSearchDTO searchDTO);
    SgProjectInfoVO selectVOById(@Param("proframId") Long proframId);
    //List<String> getProjectIds(String code,@Param("grad") String grad );
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -43,7 +43,10 @@
         </foreach>
        </if>
        <if test="dto.projectSort == null or dto.projectSort ==0">
            ORDER BY info.status desc
            ORDER BY info.status desc ,info.project_progress desc
        </if>
        <if test="dto.projectSort ==1">
            ORDER BY info.project_progress desc
        </if>
        <if test="dto.projectSort != null and dto.projectSort ==2">
            ORDER BY info.sk_id asc
@@ -360,6 +363,9 @@
            </foreach>
        </if>
    </select>
    <select id="selectVOById" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO">
        select * from  ywxt.sg_project_info pro where pro.id = #{proframId}
    </select>
    <!--    <select id="getProjectIds" resultType="java.lang.String">-->
<!--    </select>-->
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -9,6 +9,7 @@
import cn.gistack.sm.sg.VO.SgStepReportVO;
import cn.gistack.sm.sg.mapper.*;
import cn.gistack.sm.sg.service.SgProgressReportService;
import cn.gistack.sm.sg.service.SgProjectInfoService;
import cn.hutool.http.useragent.UserAgentUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -61,6 +62,9 @@
    @Autowired
    private SgProjectInfoMapper sgProjectInfoMapper;
    @Autowired
    private SgProjectInfoServiceImpl sgProjectInfoService;
    ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
    @Override
@@ -262,22 +266,32 @@
            updateChainWrapper.set(SgProgressReportDO::getStatus,1).set(SgProgressReportDO::getAuditPerson,nextUser.getUserId()).update();
        }else {
            updateChainWrapper.set(SgProgressReportDO::getStatus,2).set(SgProgressReportDO::getAuditPerson,null).update();
            Long proframId = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId();
            //工序审核完成后 进行项目和设备状态的判断
            cachedThreadPool.execute(new Runnable(){
                @Override
                public  void  run(){
                    setProgramAndDeviceStatus(sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId());
                    setProgramAndDeviceStatus(proframId);
                }
            });
            cachedThreadPool.execute(new Runnable(){
                @Override
                public  void  run(){
                    Long proframId = sgProgressReportMapper.selectById(approvalDTO.getId()).getProframId();
                    setProgramProgress(proframId);
                }
            });
        }
        }else {
            updateChainWrapper.set(SgProgressReportDO::getStatus,3);
            updateChainWrapper.set(SgProgressReportDO::getResubmit,0);
            userUpdate.set(SgReportUserDO::getApprovalStatus,2);
            if (isReject==1){
            /*if (isReject==1){
                userUpdate.set(SgReportUserDO::getUserId,userId);
            }
            }*/
            userUpdate.update();
            for (SgReportUserDO reportUserDO : sgReportUserDOS) {
            /*for (SgReportUserDO reportUserDO : sgReportUserDOS) {
                if (reportUserDO.getApprovalOrder()<=sgReportUserDO.getApprovalOrder()&&reportUserDO.getApprovalOrder()!=0){
                    //更新为历史数据
                    new LambdaUpdateChainWrapper<>(sgReportUserMapper).eq(SgReportUserDO::getId,reportUserDO.getId()).set(SgReportUserDO::getIsHis,1).update();
@@ -301,13 +315,26 @@
                if (reportUserDO.getApprovalOrder()==1){
                    updateChainWrapper.set(SgProgressReportDO::getAuditPerson,reportUserDO.getUserId());
                }
            }
            }*/
            updateChainWrapper.update();
        }
    }
    /**
     * 审批通过更新项目进度
     * @param proframId
     */
    public void setProgramProgress(Long proframId) {
        SgProjectInfoVO sgProjectInfoVO = sgProjectInfoMapper.selectVOById(proframId);
        List<SgProjectInfoDO> progress = sgProjectInfoService.getProjectProgress(Collections.singletonList(sgProjectInfoVO));
        String projectProgress = progress.get(0).getProjectProgress();
        if (StringUtils.isNotBlank(projectProgress)){
            String s = projectProgress.substring(0, projectProgress.length() - 1);
            new LambdaUpdateChainWrapper<>(sgProjectInfoMapper).set(SgProjectInfoDO::getProjectProgress,s).update() ;
        }
    }
    private  void setReportUser(Date date, SgReportUserDO reportUserDO) {
        reportUserDO.setId(null);
        reportUserDO.setApprovalStatus(0);
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -54,13 +54,13 @@
    @Override
    public IPage<SgProjectInfoDO> queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) {
        List<SgProjectInfoDO> sgProjectInfoDOS = baseMapper.queryPageList(page,searchDTO);
        List<SgProjectInfoDO> projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
        /*List<SgProjectInfoDO> projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO));
        if (CollectionUtils.isNotEmpty(projectProgress)){
            Map<Long, String> progressMap = projectProgress.stream().filter(s->s.getProjectProgress()!=null).collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress));
            sgProjectInfoDOS.forEach(s->{
                s.setProjectProgress(progressMap.get(s.getId()));
            });
        }
        }*/
        return page.setRecords(sgProjectInfoDOS);
    }
@@ -90,7 +90,7 @@
     * @return
     */
    @NotNull
    private List<SgProjectInfoDO> getProjectProgress(List<SgProjectInfoVO> list) {
    public List<SgProjectInfoDO> getProjectProgress(List<SgProjectInfoVO> list) {
        //项目分组
        Map<Long, List<SgProjectInfoVO>> projectMap = list.stream().collect(Collectors.groupingBy(SgProjectInfoVO::getId));
        List<SgProjectInfoDO> result = new ArrayList<>();