| | |
| | | |
| | | 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.SgProgressReportMapper; |
| | | import cn.gistack.sm.sg.service.SgGxService; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | 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; |
| | | |
| | |
| | | public class SgGxServiceImpl extends ServiceImpl<SgGxMapper, SgGxDO> implements SgGxService { |
| | | @Autowired |
| | | private SgGxMapper sgGxMapper; |
| | | |
| | | @Autowired |
| | | private SgProgressReportMapper sgProgressReportMapper; |
| | | @Override |
| | | public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) { |
| | | List<SgGxVO> list = sgGxMapper.queryPageList(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) { |
| | | sgGxDO.setStepDOList(map.get(sgGxDO.getId())); |
| | | 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); |
| | | sgGxDO.setGxStepCount(sgGxStepDOS.size()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | @Override |
| | | public void add(SgGxDO sgGxDO) { |
| | | sgGxDO.setCreateUpdateTime(); |
| | | if (sgGxMapper.selectByGxType(sgGxDO.getGxType())!= null){ |
| | | throw new RuntimeException("工序类型已存在"); |
| | | throw new ServiceException("工序类型已存在"); |
| | | } |
| | | this.save(sgGxDO); |
| | | } |
| | | |
| | | @Override |
| | | public void update(SgGxDO sgGxDO) { |
| | | if (sgGxMapper.selectByGxType(sgGxDO.getGxType())!= null){ |
| | | throw new RuntimeException("工序类型已存在"); |
| | | sgGxDO.setCreateUpdateTime(); |
| | | SgGxDO one = sgGxMapper.selectByGxType(sgGxDO.getGxType()); |
| | | if (one != null && one.getId()!= sgGxDO.getId() ){ |
| | | throw new ServiceException("工序类型已存在"); |
| | | } |
| | | this.updateById(sgGxDO); |
| | | } |
| | | |
| | | @Override |
| | | public SgGxVO detail(Long id) { |
| | | SgGxVO byId = (SgGxVO) this.getById(id); |
| | | byId.setStepDOList(sgGxMapper.queryStepByIds(List.of(id))); |
| | | SgGxVO byId = sgGxMapper.getById(id); |
| | | List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(List.of(id)); |
| | | byId.setStepDOList(stepDOS); |
| | | return byId; |
| | | } |
| | | } |