| ¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.technology.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | import com.ruoyi.technology.bean.dto.TechnologyOperationDto; |
| | | import com.ruoyi.technology.bean.vo.TechnologyOperationVo; |
| | | import com.ruoyi.technology.mapper.TechnologyBomStructureMapper; |
| | | import com.ruoyi.technology.mapper.TechnologyOperationMapper; |
| | | import com.ruoyi.technology.mapper.TechnologyOperationParamMapper; |
| | | import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper; |
| | | import com.ruoyi.technology.pojo.TechnologyBomStructure; |
| | | import com.ruoyi.technology.pojo.TechnologyOperation; |
| | | import com.ruoyi.technology.pojo.TechnologyOperationParam; |
| | | import com.ruoyi.technology.pojo.TechnologyRoutingOperation; |
| | | import com.ruoyi.technology.service.TechnologyOperationService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class TechnologyOperationServiceImpl extends ServiceImpl<TechnologyOperationMapper, TechnologyOperation> implements TechnologyOperationService { |
| | | |
| | | private final TechnologyOperationMapper technologyOperationMapper; |
| | | private final TechnologyRoutingOperationMapper technologyRoutingOperationMapper; |
| | | private final TechnologyBomStructureMapper technologyBomStructureMapper; |
| | | private final TechnologyOperationParamMapper technologyOperationParamMapper; |
| | | |
| | | /** |
| | | * å页æ¥è¯¢å·¥åºå表ã |
| | | */ |
| | | @Override |
| | | public IPage<TechnologyOperationVo> listPage(Page<TechnologyOperationDto> page, TechnologyOperationDto technologyOperationDto) { |
| | | return technologyOperationMapper.listPage(page, technologyOperationDto); |
| | | } |
| | | |
| | | /** |
| | | * æ°å¢å·¥åºå¹¶è¡¥é½å·¥åºç¼ç ã |
| | | */ |
| | | @Override |
| | | public R add(TechnologyOperationDto technologyOperationDto) { |
| | | TechnologyOperation technologyOperation = new TechnologyOperation(); |
| | | BeanUtils.copyProperties(technologyOperationDto, technologyOperation); |
| | | boolean saved = technologyOperationMapper.insert(technologyOperation) > 0; |
| | | if (saved && ObjectUtils.isNull(technologyOperationDto.getNo())) { |
| | | technologyOperation.setNo("GX" + String.format("%08d", technologyOperation.getId())); |
| | | technologyOperationMapper.updateById(technologyOperation); |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | /** |
| | | * å é¤å·¥åºåæ ¡éªæ¯å¦å·²è¢«BOMç»ææå·¥èºè·¯çº¿å¼ç¨ã |
| | | */ |
| | | @Override |
| | | public String batchDelete(List<Long> ids) { |
| | | List<TechnologyRoutingOperation> routingOperations = technologyRoutingOperationMapper.selectList( |
| | | Wrappers.<TechnologyRoutingOperation>lambdaQuery().in(TechnologyRoutingOperation::getTechnologyOperationId, ids)); |
| | | List<TechnologyBomStructure> bomStructures = technologyBomStructureMapper.selectList( |
| | | Wrappers.<TechnologyBomStructure>lambdaQuery().in(TechnologyBomStructure::getOperationId, ids)); |
| | | if (!CollectionUtils.isEmpty(routingOperations) || !CollectionUtils.isEmpty(bomStructures)) { |
| | | throw new RuntimeException("Operation is referenced and cannot be deleted"); |
| | | } |
| | | technologyOperationParamMapper.delete(Wrappers.<TechnologyOperationParam>lambdaQuery() |
| | | .in(TechnologyOperationParam::getTechnologyOperationId, ids)); |
| | | technologyOperationMapper.deleteBatchIds(ids); |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢å
¨é¨å·¥åºå¹¶è½¬æ¢ä¸ºè¿å对象ã |
| | | */ |
| | | @Override |
| | | public List<TechnologyOperationVo> listVo() { |
| | | return this.list().stream().map(item -> { |
| | | TechnologyOperationVo vo = new TechnologyOperationVo(); |
| | | BeanUtils.copyProperties(item, vo); |
| | | return vo; |
| | | }).collect(Collectors.toList()); |
| | | } |
| | | } |