From c9db22f6ccb6a6d66e38dec09807e88b160f29e8 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 15 十一月 2023 11:20:50 +0800 Subject: [PATCH] 销售订单-修改2 --- mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java | 65 ++++++++++++++++++++++++++++++-- 1 files changed, 61 insertions(+), 4 deletions(-) diff --git a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java index a6243fe..63986d6 100644 --- a/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java +++ b/mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java @@ -17,6 +17,7 @@ package com.chinaztt.mes.technology.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Console; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; @@ -46,10 +47,15 @@ import com.chinaztt.mes.technology.mapper.StructureMapper; import com.chinaztt.mes.technology.service.StructureService; import com.chinaztt.ztt.common.core.util.R; +import com.chinaztt.ztt.common.security.util.SecurityUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; +import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -58,6 +64,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; +import java.util.concurrent.CompletableFuture; /** @@ -79,6 +86,12 @@ private NumberGenerator<Structure> numberGenerator; private DictUtils dictUtils; private IfsFeignClient ifsFeignClient; + @Autowired + private PlatformTransactionManager transactionManager; + + private RedisTemplate redisTemplate; + @Autowired + private ThreadPoolTaskExecutor threadPoolTaskExecutor; /** * @Author: Hans @@ -257,7 +270,21 @@ } @Override + @Transactional(rollbackFor = Exception.class) public void importExcel(List<StructureData> list) { + list.forEach(System.out::println); + String key = "syncStructure_lock" + SecurityUtils.getUser().getId(); + if (redisTemplate.hasKey(key)) { + throw new RuntimeException("鏈夊鍏ヤ换鍔℃鍦ㄥ鐞�"); + } + CompletableFuture.runAsync(()->{ + asyncImport(list); + redisTemplate.delete(key); + },threadPoolTaskExecutor); + } + + + void asyncImport(List<StructureData> list){ if (CollectionUtil.isEmpty(list)) { return; } @@ -265,23 +292,37 @@ List<Part> parts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getPartNo())); Part part = parts.get(0); if (part == null) { - throw new RuntimeException("闆朵欢鍙�:" + data.getPartNo() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getPartNo() + "涓嶅瓨鍦�"); + return; } Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery().eq(Structure::getPartId, part.getId())); if (structure == null) { structure = new Structure(); BeanUtils.copyProperties(data, structure); structure.setPartId(part.getId()); - structure.setActive(true); + structure.setMaster(false); + structure.setVersion("1"); + //structure.setActive(true); structure.setBomTypeDb("M"); structure.setIfsSync(false); structure.setAlternativeNo("*"); + structure.setSharpenerNo(data.getSharpenerNo()); + structure.setCaveNum(data.getCaveNum()); + structure.setGramWeight(data.getGramWeight()); + structure.setMoldingCycle(data.getMoldingCycle()); + structure.setMachine(data.getMachine()); + structure.setScale(data.getScale()); + structure.setDryingTime(data.getDryingTime()); + structure.setDryingTemperature(data.getDryingTemperature()); + structure.setPackingInfo(data.getPackingInfo()); + structure.setCustom(data.getCustom()); baseMapper.insert(structure); } List<Part> childParts = partMapper.selectList(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getSonPartNo())); Part childPart = childParts.get(0); if (childPart == null) { - throw new RuntimeException("闆朵欢鍙�:" + data.getSonPartNo() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getSonPartNo() + "涓嶅瓨鍦�"); + return; } List<Operation> operations = operationMapper.selectList(Wrappers.<Operation>lambdaQuery().eq(Operation::getName, data.getOperationName())); Operation operation = operations.get(0); @@ -289,8 +330,21 @@ component.setStructureId(structure.getId()); component.setPartId(childPart.getId()); component.setPlanningMethod(childPart.getPlanningMethod()); - component.setQpa(new BigDecimal(1));// todo: 浜у搧缁撴瀯瀵煎叆鏁伴噺,杩樼己涓�涓鍙� + QueryWrapper<StructureComponent> queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().select(StructureComponent::getLineItemNo).eq(StructureComponent::getStructureId,structure.getId()).orderByDesc(StructureComponent::getLineItemNo); + List<StructureComponent> structureComponents = structureComponentMapper.selectList(queryWrapper); + component.setQpa(new BigDecimal(data.getTotalNUm()));// todo: 浜у搧缁撴瀯瀵煎叆鏁伴噺,杩樼己涓�涓鍙� + Console.log("鍊�===銆�"+structureComponents); + if(structureComponents.size()<1){ + component.setLineItemNo(1); + }else { + Integer lineItemNo = structureComponents.get(0).getLineItemNo(); + component.setLineItemNo(lineItemNo+1); + } component.setOperationId(operation.getId()); + component.setPlanningMethod("A"); + component.setSpecs(childPart.getSpecs()); + component.setPartModel(childPart.getPartModel()); structureComponentMapper.insert(component); } } @@ -441,6 +495,9 @@ Structure structure = baseMapper.selectById(component.getStructureId()); structure.setIfsSync(false); validate(structure.getPartId(), component.getPartId()); + Part part = partMapper.selectById(component.getPartId()); + component.setPartModel(part.getPartModel()); + component.setSpecs(part.getSpecs()); structureComponentMapper.insert(component); // 瀵规帴ifs // List<StructureDTO> structureDTOS = structureMapper.getStructureDtoByIds(Arrays.asList(component.getStructureId())); -- Gitblit v1.9.3