yxm
2024-07-15 96d0fd6fb8e4dfb9763158b4ac89924b27a8db5c
项目进度上报逻辑优化及工序配置v0.7
3 files modified
1 files added
70 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/PreAcceVO.java 24 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectPersonConfigMapper.xml 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java 39 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
@@ -1,5 +1,6 @@
package cn.gistack.sm.sg.DO;
import cn.gistack.sm.sg.VO.PreAcceVO;
import cn.gistack.sm.sg.VO.SgTypeVO;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -173,6 +174,10 @@
    @TableField(exist = false)
    private List<SgTypeVO> sgGxDOS;
    private List<PreAcceVO> preAcce;
    private Integer status;
    @TableField(exist = false)
skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/PreAcceVO.java
New file
@@ -0,0 +1,24 @@
package cn.gistack.sm.sg.VO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PreAcceVO {
    //记录id
    private String id;
    //工序名称
    private String name;
    //工序状态
    private Long status;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectPersonConfigMapper.xml
@@ -36,7 +36,7 @@
        FROM
            ywxt.sg_project_info pro
                inner JOIN ywxt.sg_device d ON pro.id = d.program_id
                Left JOIN ywxt.sg_gx_config sgc ON d.device_type = sgc.gx_device_type
                Left JOIN ywxt.sg_gx_config sgc ON d.device_type = sgc.gx_device_type or sgc.gx_device_type in ('sgzb','sgys')
                left join ywxt.blade_role ro on    ro.id = sgc.role_id
                left join ywxt.sg_project_person_config sppc  on sgc.role_id = sppc.rold_id and sppc.program_id = pro.id
                left join ywxt.blade_user bu on sppc.user_id = bu.id
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -1,17 +1,17 @@
package cn.gistack.sm.sg.service.impl;
import cn.gistack.sm.sg.DO.SgDeviceDO;
import cn.gistack.sm.sg.DO.SgGxDO;
import cn.gistack.sm.sg.DO.SgGxStepDO;
import cn.gistack.sm.sg.DO.SgProjectInfoDO;
import cn.gistack.sm.sg.DO.*;
import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
import cn.gistack.sm.sg.VO.*;
import cn.gistack.sm.sg.excel.ProjectExcel;
import cn.gistack.sm.sg.mapper.SgGxStepMapper;
import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
import cn.gistack.sm.sg.mapper.SgProjectInfoMapper;
import cn.gistack.sm.sg.service.SgProjectInfoService;
import cn.gistack.sm.sjztmd.entity.AttAdBase;
import cn.gistack.sm.sjztmd.service.IAttAdBaseService;
import cn.hutool.core.lang.copier.Copier;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -44,6 +44,13 @@
    private SgProjectInfoMapper sgProjectInfoMapper;
    @Autowired
    private IAttAdBaseService iAttAdBaseService;
    @Autowired
    private SgProgressReportMapper sgProgressReportMapper;
    @Autowired
    private SgGxStepMapper sgGxStepMapper;
    @Override
    public IPage<SgProjectInfoDO> queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) {
        List<SgProjectInfoDO> sgProjectInfoDOS = baseMapper.queryPageList(page,searchDTO);
@@ -129,6 +136,11 @@
                typeVO.setTypeProgress(getBigDecimalPercent(divideDevice));
                sgGxDOS.add(typeVO);
            }
                List<PreAcceVO>  palist = new ArrayList<>();
            palist.add(handleQuery(12, 25, list.get(0).getId()));
            palist.add(handleQuery(13, 26,list.get(0).getId()));
            sgProjectInfoDO.setPreAcce(palist);
            BigDecimal allDeviceSize = BigDecimal.valueOf(allDevice.size());
            if (!allDeviceSize.equals(BigDecimal.ZERO)){
                double sum = allDevice.stream().mapToDouble(s -> Double.parseDouble(s.getProgress())).sum();
@@ -344,4 +356,23 @@
    }
    // 处理查询和添加到列表的方法
    private  PreAcceVO handleQuery(int gxStepId, int stepIdForNull, Long programId) {
        QueryWrapper<SgProgressReportDO> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("gx_step_id", gxStepId)
            .eq("profram_id", programId);
        SgProgressReportDO sgProgressReportDO = sgProgressReportMapper.selectOne(queryWrapper);
        PreAcceVO preAcceVO = new PreAcceVO();
        if (sgProgressReportDO!= null) {
            preAcceVO.setId(sgProgressReportDO.getId().toString());
            preAcceVO.setName(sgProgressReportDO.getGxStepName());
            preAcceVO.setStatus((long) sgProgressReportDO.getStatus());
        } else {
            preAcceVO.setName(sgGxStepMapper.selectById(stepIdForNull).getGxStepName());
        }
        return  preAcceVO;
    }
}