From 17eb62f9d9cb2706296ea35f241dd8aafbebd6f2 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期日, 12 十一月 2023 05:17:08 +0800 Subject: [PATCH] Changes11 --- mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 77 insertions(+), 31 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 281daf7..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,9 +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; @@ -57,6 +64,7 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.util.*; +import java.util.concurrent.CompletableFuture; /** @@ -78,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 @@ -256,55 +270,82 @@ } @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; } - List<String> uinck = new ArrayList<>(); for (StructureData data : list) { - Part part = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getFatherPartNo()).eq(Part::getEngChgLevel, data.getFatherVersion())); + 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.getFatherPartNo() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getPartNo() + "涓嶅瓨鍦�"); + return; } - Structure structure = baseMapper.selectOne(Wrappers.<Structure>lambdaQuery() - .eq(Structure::getPartId, part.getId()) - .eq(Structure::getBomTypeDb, data.getStructureType()) - .eq(Structure::getAlternativeNo, data.getAlternativeNo())); + 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.setVersion(data.getFatherVersion()); - structure.setAlternativeDesc(data.getAlternativeDesc()); - structure.setActive(true); - structure.setBomTypeDb(data.getStructureType()); + structure.setMaster(false); + structure.setVersion("1"); + //structure.setActive(true); + structure.setBomTypeDb("M"); structure.setIfsSync(false); - structure.setAlternativeNo(data.getAlternativeNo()); + 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); } - if (uinck.contains(structure.getId() + "_" + data.getLineItemNo())) { - throw new RuntimeException("闆朵欢鍙�:" + part.getPartNo() + "琛岄」鍙烽噸澶�"); - } - Part childPart = partMapper.selectOne(Wrappers.<Part>lambdaQuery().eq(Part::getPartNo, data.getChildPartNo()).eq(Part::getEngChgLevel, data.getChildVersion())); + 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.getChildPartNo() + "涓嶅瓨鍦�"); + log.error("闆朵欢鍙�:" + data.getSonPartNo() + "涓嶅瓨鍦�"); + return; } + List<Operation> operations = operationMapper.selectList(Wrappers.<Operation>lambdaQuery().eq(Operation::getName, data.getOperationName())); + Operation operation = operations.get(0); StructureComponent component = new StructureComponent(); component.setStructureId(structure.getId()); component.setPartId(childPart.getId()); component.setPlanningMethod(childPart.getPlanningMethod()); - component.setQpa(new BigDecimal(data.getQpa())); - component.setLineItemNo(Integer.valueOf(data.getLineItemNo())); - component.setDiscNum(StringUtils.isEmpty(data.getDiskNum()) ? null : new Long(data.getDiskNum())); - //鏌ヨ宸ュ簭 濡傛灉鏈夊涓幏鍙栫涓�涓� - List<Operation> operationList = operationMapper.selectList(Wrappers.<Operation>lambdaQuery() - .eq(Operation::getName, data.getOperationName()) - .eq(Operation::getActive, true).orderByAsc(Operation::getId)); - if (CollectionUtil.isEmpty(operationList)) { - throw new RuntimeException("宸ュ簭" + data.getOperationName() + "涓嶅瓨鍦�"); + 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(operationList.get(0).getId()); + component.setOperationId(operation.getId()); + component.setPlanningMethod("A"); + component.setSpecs(childPart.getSpecs()); + component.setPartModel(childPart.getPartModel()); structureComponentMapper.insert(component); - uinck.add(structure.getId() + "_" + data.getLineItemNo()); } } @@ -353,6 +394,8 @@ @Override public R fullSave(StructureDTO structure) { + System.out.println(structure); + System.out.println("==============================="); int noCount = baseMapper.selectCount(Wrappers.<Structure>lambdaQuery() .eq(Structure::getAlternativeNo, structure.getAlternativeNo()) .eq(Structure::getBomTypeDb, structure.getBomTypeDb()) @@ -386,9 +429,9 @@ structure.setIfsSync(false); resetMaster(structure); baseMapper.updateById(structure); - // 瀵规帴ifs - List<StructureDTO> structureDTOS = structureMapper.getStructureDtoByIds(Arrays.asList(structure.getId())); - structureIfsSyncByDto(structureDTOS); + //// 瀵规帴ifs + //List<StructureDTO> structureDTOS = structureMapper.getStructureDtoByIds(Arrays.asList(structure.getId())); + //structureIfsSyncByDto(structureDTOS); return R.ok(); } @@ -452,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