From d8d129a2e41f7099968cb4f4dc1b028ab985135f Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期四, 16 十一月 2023 20:20:47 +0800
Subject: [PATCH] Changes14
---
mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/StructureServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++--------------
1 files changed, 74 insertions(+), 28 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 9acf37a..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())
@@ -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