shenyijian
2024-08-30 44d30cbd79df473dbdf6d28decde2bbc931c0821
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -2,16 +2,22 @@
import cn.gistack.sm.sg.DO.SgGxDO;
import cn.gistack.sm.sg.DO.SgGxStepDO;
import cn.gistack.sm.sg.DO.SgReportUserDO;
import cn.gistack.sm.sg.DTO.ProjectSearchDTO;
import cn.gistack.sm.sg.VO.SgGxVO;
import cn.gistack.sm.sg.mapper.SgGxMapper;
import cn.gistack.sm.sg.mapper.SgGxStepMapper;
import cn.gistack.sm.sg.mapper.SgProgressReportMapper;
import cn.gistack.sm.sg.service.SgGxService;
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;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@@ -29,15 +35,31 @@
public class SgGxServiceImpl extends ServiceImpl<SgGxMapper, SgGxDO> implements SgGxService {
   @Autowired
   private SgGxMapper sgGxMapper;
   @Autowired
   private SgGxStepMapper sgGxStepMapper;
   @Autowired
   private SgGxStepService sgGxStepService;
   @Autowired
   private SgProgressReportMapper sgProgressReportMapper;
   @Override
   public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) {
      List<SgGxVO> list = sgGxMapper.queryPageList(page,searchDTO);
      if (CollectionUtils.isNotEmpty(list)){
         List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList());
         List<Long> userIds = list.stream().map(SgGxDO::getCreateUser).collect(Collectors.toList());
         List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(userIds);
         List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(ids);
         if (CollectionUtils.isNotEmpty(stepDOS)){
            Map<Long, List<SgGxStepDO>> map = stepDOS.stream().collect(Collectors.groupingBy(SgGxStepDO::getGxInfoId));
            for (SgGxVO sgGxDO : list) {
               for (Map<String, Object> user : users) {
                  if (user.get("ID").equals(sgGxDO.getCreateUser())){
                     sgGxDO.setCreateUserName(user.get("REAL_NAME").toString());
                  }
               }
               List<SgGxStepDO> sgGxStepDOS = map.get(sgGxDO.getId());
               if (CollectionUtils.isNotEmpty(sgGxStepDOS)){
                  sgGxDO.setStepDOList(sgGxStepDOS);
@@ -75,4 +97,15 @@
      byId.setStepDOList(stepDOS);
      return byId;
   }
   @Override
   @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("此工序存在工序步骤,不允许删除");
      }
      sgGxMapper.deleteById(id);
   }
}