| | |
| | | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | | } |