shenyijian
2024-06-26 1b8c74f3dc3ac98c08ffa157e40c0bd5a9aeb799
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java
@@ -1,15 +1,23 @@
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;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
 * <p>
@@ -23,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);
@@ -30,9 +40,20 @@
   }
   @Override
   public void add(List<SgProjectPersonConfigDO> list) {
      for (SgProjectPersonConfigDO sgProjectPersonConfigDO : list) {
         projectPersonConfigMapper.insert(sgProjectPersonConfigDO);
   public void add(AddSgProjectPersonConfigDTO dto) {
      for (SgProjectPersonConfigDO sgProjectPersonConfigDO : dto.getData()) {
         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);
         }
      }
   }
@@ -41,4 +62,9 @@
      List<SgProjectRolePersonV0> list =   projectPersonConfigMapper.getList(searchDTO);
      return list;
   }
   @Override
   public List<Map<String, Object>> getUserByRole(String roleId) {
      return projectPersonConfigMapper.getUserByRole(roleId);
   }
}