| ÎļþÃû´Ó src/main/java/com/ruoyi/appendix/service/impl/AppendixServiceImpl.java ÐÞ¸Ä |
| | |
| | | package com.ruoyi.appendix.service.impl; |
| | | package com.ruoyi.production.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ruoyi.appendix.pojo.ProcessRouteItemInstance; |
| | | import com.ruoyi.appendix.pojo.ProcessRouteItemParamInstance; |
| | | import com.ruoyi.appendix.pojo.ProductStructureInstance; |
| | | import com.ruoyi.appendix.service.*; |
| | | import com.ruoyi.basic.service.BaseParamService; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | |
| | | |
| | | /** |
| | | * <br> |
| | | * BOM-å·¥èºè·¯çº¿é表Serviceæ¥å£å®ç°ç±» |
| | | * |
| | | * </br> |
| | | * |
| | | * @author deslrey |
| | | * @version 1.0 |
| | | * @since 2026/03/18 14:45 |
| | | * @since 2026/03/20 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class AppendixServiceImpl implements AppendixService { |
| | | public class ProductionOrderAppendixServiceImpl implements IProductionOrderAppendixService { |
| | | |
| | | @Resource |
| | | private ProcessRouteItemInstanceService processRouteItemInstanceService; |
| | | private IProductionOrderRouteItemService productionOrderRouteItemService; |
| | | |
| | | @Resource |
| | | private ProcessRouteItemParamInstanceService processRouteItemParamInstanceService; |
| | | private IProductionOrderRouteItemParamService productionOrderRouteItemParamService; |
| | | |
| | | @Resource |
| | | private ProductStructureInstanceService productStructureInstanceService; |
| | | private IProductionOrderStructureService productionOrderStructureService; |
| | | |
| | | @Resource |
| | | private BaseParamService baseParamService; |
| | |
| | | @Override |
| | | public void deleteData(Long orderId, Long processRouteId) { |
| | | // å é¤å·¥èºè·¯çº¿å·¥åºåæ°é表 |
| | | processRouteItemParamInstanceService.remove(new LambdaQueryWrapper<ProcessRouteItemParamInstance>() |
| | | .eq(ProcessRouteItemParamInstance::getOrderId, orderId)); |
| | | productionOrderRouteItemParamService.remove(new LambdaQueryWrapper<ProductionOrderRouteItemParam>() |
| | | .eq(ProductionOrderRouteItemParam::getOrderId, orderId)); |
| | | |
| | | // å é¤å·¥èºè·¯çº¿åéé表 |
| | | processRouteItemInstanceService.remove(new LambdaQueryWrapper<ProcessRouteItemInstance>() |
| | | .eq(ProcessRouteItemInstance::getOrderId, orderId) |
| | | .eq(ProcessRouteItemInstance::getRouteId, processRouteId)); |
| | | productionOrderRouteItemService.remove(new LambdaQueryWrapper<ProductionOrderRouteItem>() |
| | | .eq(ProductionOrderRouteItem::getOrderId, orderId) |
| | | .eq(ProductionOrderRouteItem::getRouteId, processRouteId)); |
| | | |
| | | // å é¤BOMåéé表 |
| | | ProcessRoute processRoute = processRouteService.getById(processRouteId); |
| | | if (processRoute != null && processRoute.getBomId() != null) { |
| | | productStructureInstanceService.remove(new LambdaQueryWrapper<ProductStructureInstance>() |
| | | .eq(ProductStructureInstance::getOrderId, orderId) |
| | | .eq(ProductStructureInstance::getBomId, processRoute.getBomId())); |
| | | productionOrderStructureService.remove(new LambdaQueryWrapper<ProductionOrderStructure>() |
| | | .eq(ProductionOrderStructure::getOrderId, orderId) |
| | | .eq(ProductionOrderStructure::getBomId, processRoute.getBomId())); |
| | | } |
| | | } |
| | | |
| | |
| | | // è¿ç§»å·¥èºè·¯çº¿åéè¡¨æ°æ®ï¼è¿åæ§id->æ°instanceæ å° |
| | | List<ProcessRouteItem> processRouteItemList = processRouteItemService.list( |
| | | new LambdaQueryWrapper<ProcessRouteItem>().eq(ProcessRouteItem::getRouteId, processRoute.getId())); |
| | | Map<Long, ProcessRouteItemInstance> routeItemOldIdMap = migrationProcessRouteItem(orderId, processRouteItemList); |
| | | Map<Long, ProductionOrderRouteItem> routeItemOldIdMap = migrationProcessRouteItem(orderId, processRouteItemList); |
| | | |
| | | // è¿ç§»å·¥èºè·¯çº¿å
ç»å®çå·¥åºåæ° |
| | | if (processRouteItemList != null && !processRouteItemList.isEmpty()) { |
| | | for (ProcessRouteItem item : processRouteItemList) { |
| | | ProcessRouteItemInstance newInstance = routeItemOldIdMap.get(item.getId()); |
| | | ProductionOrderRouteItem newInstance = routeItemOldIdMap.get(item.getId()); |
| | | Long newRouteItemInstanceId = newInstance != null ? newInstance.getId() : item.getId(); |
| | | |
| | | List<ProcessRouteItemParam> paramList = processRouteItemParamService.list( |
| | |
| | | } |
| | | } |
| | | |
| | | private Map<Long, ProcessRouteItemInstance> migrationProcessRouteItem(Long orderId, List<ProcessRouteItem> list) { |
| | | Map<Long, ProcessRouteItemInstance> oldIdMap = new HashMap<>(); |
| | | private Map<Long, ProductionOrderRouteItem> migrationProcessRouteItem(Long orderId, List<ProcessRouteItem> list) { |
| | | Map<Long, ProductionOrderRouteItem> oldIdMap = new HashMap<>(); |
| | | if (list == null || list.isEmpty()) { |
| | | return oldIdMap; |
| | | } |
| | | List<ProcessRouteItemInstance> instances = list.stream().map(item -> { |
| | | ProcessRouteItemInstance instance = new ProcessRouteItemInstance(); |
| | | List<ProductionOrderRouteItem> instances = list.stream().map(item -> { |
| | | ProductionOrderRouteItem instance = new ProductionOrderRouteItem(); |
| | | BeanUtils.copyProperties(item, instance, "id"); |
| | | instance.setIsQuality(item.getIsQuality() != null && item.getIsQuality() ? 1 : 0); |
| | | instance.setOrderId(orderId); |
| | |
| | | } |
| | | return instance; |
| | | }).collect(Collectors.toList()); |
| | | processRouteItemInstanceService.saveBatch(instances); |
| | | productionOrderRouteItemService.saveBatch(instances); |
| | | return oldIdMap; |
| | | } |
| | | |
| | |
| | | if (list == null || list.isEmpty()) { |
| | | return; |
| | | } |
| | | List<ProcessRouteItemParamInstance> instances = list.stream().map(item -> { |
| | | ProcessRouteItemParamInstance instance = new ProcessRouteItemParamInstance(); |
| | | List<ProductionOrderRouteItemParam> instances = list.stream().map(item -> { |
| | | ProductionOrderRouteItemParam instance = new ProductionOrderRouteItemParam(); |
| | | BeanUtils.copyProperties(item, instance, "id"); |
| | | instance.setOrderId(orderId); |
| | | instance.setRouteItemId(newRouteItemInstanceId); |
| | | return instance; |
| | | }).collect(Collectors.toList()); |
| | | processRouteItemParamInstanceService.saveBatch(instances); |
| | | productionOrderRouteItemParamService.saveBatch(instances); |
| | | } |
| | | |
| | | private void migrationProductStructure(Long orderId, List<ProductStructure> list) { |
| | | if (list == null || list.isEmpty()) { |
| | | return; |
| | | } |
| | | Map<Long, ProductStructureInstance> oldIdMap = new HashMap<>(); |
| | | List<ProductStructureInstance> instances = list.stream().map(item -> { |
| | | ProductStructureInstance instance = new ProductStructureInstance(); |
| | | Map<Long, ProductionOrderStructure> oldIdMap = new HashMap<>(); |
| | | List<ProductionOrderStructure> instances = list.stream().map(item -> { |
| | | ProductionOrderStructure instance = new ProductionOrderStructure(); |
| | | BeanUtils.copyProperties(item, instance, "id"); |
| | | instance.setBomId(item.getBomId() != null ? item.getBomId().longValue() : null); |
| | | instance.setOrderId(orderId); |
| | |
| | | } |
| | | return instance; |
| | | }).collect(Collectors.toList()); |
| | | productStructureInstanceService.saveBatch(instances); |
| | | productionOrderStructureService.saveBatch(instances); |
| | | |
| | | // æ°å¢åæidï¼æ§id->æ°idï¼ä¿®æ£parentId |
| | | Map<Long, Long> oldToNewId = new HashMap<>(); |
| | |
| | | } |
| | | }); |
| | | |
| | | List<ProductStructureInstance> toUpdate = instances.stream() |
| | | List<ProductionOrderStructure> toUpdate = instances.stream() |
| | | .filter(i -> i.getParentId() != null && oldToNewId.containsKey(i.getParentId())) |
| | | .peek(i -> i.setParentId(oldToNewId.get(i.getParentId()))) |
| | | .collect(Collectors.toList()); |
| | | if (!toUpdate.isEmpty()) { |
| | | productStructureInstanceService.updateBatchById(toUpdate); |
| | | productionOrderStructureService.updateBatchById(toUpdate); |
| | | } |
| | | } |
| | | } |