skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgProjectInfoDO.java
@@ -180,4 +180,12 @@ @TableField(exist = false) private BigDecimal ProjectProgressNum; @TableField(exist = false) private String cityNm; //市 @TableField(exist = false) private String countyNm; //县 @TableField(exist = false) private String townNm; //乡 @TableField(exist = false) private String engScal; //工程规模 } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxRoleMapper.xml
@@ -19,7 +19,7 @@ </select> <select id="getSgGxRoles" resultType="java.lang.String"> select role_id from YWXT.SG_GX_CONFIG where gx_device_type = #{gxDeviceType} and gx_step_id = #{gxStepId} select role_id from YWXT.SG_GX_CONFIG where gx_device_type = #{gxDeviceType} and gx_step_id = #{gxStepId} order by sg_order asc </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -3,13 +3,29 @@ <mapper namespace="cn.gistack.sm.sg.mapper.SgProjectInfoMapper"> <select id="queryPageList" resultType="cn.gistack.sm.sg.DO.SgProjectInfoDO"> select * from YWXT.SG_PROJECT_INFO info where 1=1 SELECT info.*, dria."city_nm", dria."county_nm", dria."town_nm", dria."eng_scal" FROM YWXT.SG_PROJECT_INFO info LEFT JOIN SJZT_DW."dim_res_info_a" dria ON dria."res_cd" = info.sk_id WHERE 1 =1 <if test="dto.projectName != null and dto.projectName != ''"> and info.project_name like concat( concat ('%',#{dto.projectName}),'%') </if> <if test="dto.skName != null and dto.skName != ''"> and info.sk_name like concat(concat('%',#{dto.skName}),'%') </if> <if test="dto.projectIds != null and dto.projectIds.size > 0"> and info.id in <foreach collection="dto.projectIds" item="id" separator="," open="(" close=")"> #{id} </foreach> </if> </select> <select id="queryStepByProject" resultType="cn.gistack.sm.sg.VO.SgProjectInfoVO"> SELECT skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -12,6 +12,7 @@ import cn.gistack.sm.sg.service.SgGxStepService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.log.exception.ServiceException; import org.springframework.beans.factory.annotation.Autowired; @@ -101,6 +102,10 @@ @Transactional public void delete(Long id) { SgGxDO byId = this.getById(id); List<SgGxStepDO> list = new LambdaQueryChainWrapper<>(sgGxStepMapper).eq(SgGxStepDO::getGxInfoId, id).list(); if (CollectionUtils.isNotEmpty(list)){ throw new ServiceException("此工序存在工序步骤,不允许删除"); } this.delete(id); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
@@ -2,10 +2,12 @@ import cn.gistack.sm.sg.DO.SgGxRoleDO; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.DO.SgProgressReportDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxRoleVO; import cn.gistack.sm.sg.mapper.SgGxRoleMapper; import cn.gistack.sm.sg.mapper.SgGxStepMapper; import cn.gistack.sm.sg.mapper.SgProgressReportMapper; import cn.gistack.sm.sg.service.SgGxStepService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -18,6 +20,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -33,6 +36,10 @@ private SgGxStepMapper sgGxStepMapper; @Autowired private SgGxRoleMapper sgGxRoleMapper; @Autowired private SgProgressReportMapper sgProgressReportMapper; @Override public void add(SgGxStepDO sgGxStepDO) { List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId()); @@ -112,9 +119,17 @@ @Override @Transactional public void updateSgGxRole(SgGxRoleVO sgGxRoleVO){ if (sgGxRoleVO.getGxStepId()==null){ String gxStepId = sgGxRoleVO.getGxStepId(); List<SgProgressReportDO> reportDOS = new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(s -> s.getGxStepId(), gxStepId).list(); List<SgGxRoleDO> list = new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId, gxStepId).orderByAsc(SgGxRoleDO::getSgOrder).list(); List<String> roles = list.stream().map(SgGxRoleDO::getRoleId).map(Object::toString).collect(Collectors.toList()); List<Integer> orders = list.stream().map(SgGxRoleDO::getSgOrder).collect(Collectors.toList()); if (!reportDOS.isEmpty()){ if (! roles.equals(sgGxRoleVO.getRoleIds()) || ! orders.equals(sgGxRoleVO.getOrders())) { throw new ServiceException("此配置已有上报记录,不允许修改"); } } if (sgGxRoleVO.getGxStepId()==null){ throw new ServiceException("工序步骤参数错误"); } if (sgGxRoleVO.getGxDeviceType()==null){ skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -43,6 +43,11 @@ @Override public IPage<SgProjectInfoDO> queryPageList(IPage<SgProjectInfoDO> page, ProjectSearchDTO searchDTO) { List<SgProjectInfoDO> sgProjectInfoDOS = baseMapper.queryPageList(page,searchDTO); List<SgProjectInfoDO> projectProgress = getProjectProgress(sgProjectInfoMapper.queryStepByProject(searchDTO)); Map<Long, String> progressMap = projectProgress.stream().collect(Collectors.toMap(SgProjectInfoDO::getId, SgProjectInfoDO::getProjectProgress)); sgProjectInfoDOS.forEach(s->{ s.setProjectProgress(progressMap.get(s.getId())); }); return page.setRecords(sgProjectInfoDOS); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java
@@ -1,12 +1,17 @@ package cn.gistack.sm.sg.service.impl; import cn.gistack.sm.sg.DO.SgProgressReportDO; import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO; import cn.gistack.sm.sg.DO.SgProjectRolePersonV0; import cn.gistack.sm.sg.DTO.AddSgProjectPersonConfigDTO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.mapper.SgProgressReportMapper; import cn.gistack.sm.sg.mapper.SgProjectPersonConfigMapper; import cn.gistack.sm.sg.service.SgProjectPersonConfigService; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.log.exception.ServiceException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,6 +31,8 @@ public class SgProjectPersonConfigServiceImpl extends ServiceImpl<SgProjectPersonConfigMapper, SgProjectPersonConfigDO> implements SgProjectPersonConfigService { @Autowired private SgProjectPersonConfigMapper projectPersonConfigMapper; @Autowired private SgProgressReportMapper sgProgressReportMapper; @Override public List<String> getRoleList(ProjectSearchDTO searchDTO) { List<String> list = projectPersonConfigMapper.getRoleList(searchDTO); @@ -35,9 +42,16 @@ @Override public void add(AddSgProjectPersonConfigDTO dto) { for (SgProjectPersonConfigDO sgProjectPersonConfigDO : dto.getData()) { if (Objects.isNull(sgProjectPersonConfigDO.getId())||sgProjectPersonConfigDO.getId()==-1){ Long id = sgProjectPersonConfigDO.getId(); if (Objects.isNull(id)){ projectPersonConfigMapper.insert(sgProjectPersonConfigDO); }else { SgProjectPersonConfigDO old = projectPersonConfigMapper.selectById(id); if (old.getUserId()!=sgProjectPersonConfigDO.getUserId()){ if (!new LambdaQueryChainWrapper<>(sgProgressReportMapper).eq(SgProgressReportDO::getProframId,old.getProgramId()).list().isEmpty()){ throw new ServiceException("此项目配置存在审批,不允许修改"); } } projectPersonConfigMapper.updateById(sgProjectPersonConfigDO); } }