From b8fed13b2db09ba79b21bb792ce5161bac62e29b Mon Sep 17 00:00:00 2001
From: sfd <sun.sunshine@163.com>
Date: 星期五, 23 五月 2025 15:15:35 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-backend into dev
---
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessStatController.java | 2
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java | 15 +------
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java | 2 +
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessShopStatController.java | 9 +++-
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java | 82 +++++++++++++++++++++--------------------
aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateProcessStatService.java | 4 +-
aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml | 4 +
7 files changed, 59 insertions(+), 59 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessShopStatController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessShopStatController.java
index ab26b2a..931dbc8 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessShopStatController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessShopStatController.java
@@ -52,8 +52,13 @@
@PostMapping("/update")
public AjaxResult update()
{
- apsPlateProcessShopStatService.saveShopStat();
- return toAjax(true);
+ try {
+ apsPlateProcessShopStatService.saveShopStat();
+ return toAjax(true);
+ } catch (Exception e) {
+ return AjaxResult.error("鏇存柊澶辫触锛�"+e.getMessage());
+ }
+
}
/**
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessStatController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessStatController.java
index 2b8ae88..874a4bc 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessStatController.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlate/ApsPlateProcessStatController.java
@@ -89,7 +89,7 @@
@PostMapping("/update")
public AjaxResult updateStat()
{
- apsPlateProcessStatService.savePlateProcessStat();
+ apsPlateProcessStatService.computePlateProcessStat();
return toAjax(true);
}
/**
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java
index 5f3df07..d844106 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlateProcessStatMapper.java
@@ -73,4 +73,6 @@
* 鎵归噺鎻掑叆鏁版嵁
* */
int batchInsertPlateStat(List<ApsPlateProcessStat> list);
+
+ int deleteAll();
}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateProcessStatService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateProcessStatService.java
index e8b73bb..aa0add2 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateProcessStatService.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateProcessStatService.java
@@ -60,6 +60,6 @@
*/
public int deleteApsPlateProcessStatById(String id);
- @Transactional
- void savePlateProcessStat();
+
+ List<ApsPlateProcessStat> computePlateProcessStat();
}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
index 2436835..49350cd 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java
@@ -5,6 +5,8 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.alibaba.nacos.common.utils.JacksonUtils;
@@ -136,38 +138,34 @@
/**
* 淇濆瓨閽i噾杞﹂棿缁熻
*/
- @Transactional
+ @Transactional( rollbackFor =Exception.class)
@Override
public void saveShopStat() {
- try {
- apsPlateProcessStatService.savePlateProcessStat();
+ // 瀹氫箟璇ュ姛鑳戒娇鐢ㄦ暟鎹簮涓哄崡閫氱殑宸ュ巶
+ final String plant = "FORTUNA";
+ final String major="BJ";
+ // 鏌ヨ鐩稿叧鏁版嵁
+ ApsPlatePlan platePlan = new ApsPlatePlan();
+ platePlan.setPlant(plant);
+ List<ApsPlatePlan> planList = apsPlatePlanMapper.selectApsPlatePlanList(platePlan);
+
+ ApsShop apsShop = new ApsShop();
+ apsShop.setPlantCode(plant);
+ List<ApsShop> shopList = shopMapper.selectApsShopList(apsShop);
+
+ ApsStandardProcess process = new ApsStandardProcess();
+ process.setPlant(plant);
+ process.setMajor(major);
+
+ List<ApsStandardProcess> shopProcesses = standardProcessMapper.selectApsStandardProcessList(process);
+
+ if (!planList.isEmpty() && !shopList.isEmpty() && !shopProcesses.isEmpty()) {
// 寮�濮嬩箣鍓嶅厛鍒犻櫎鎵�鏈夊巻鍙叉暟鎹�
+ apsPlateProcessStatMapper.deleteAll();
apsPlateProcessShopStatMapper.deleteAll();
-
- // 瀹氫箟璇ュ姛鑳戒娇鐢ㄦ暟鎹簮涓哄崡閫氱殑宸ュ巶
- final String plant = "FORTUNA";
- final String major="閽i噾";
- // 鏌ヨ鐩稿叧鏁版嵁
- ApsPlatePlan platePlan = new ApsPlatePlan();
- platePlan.setPlant(plant);
- List<ApsPlatePlan> planList = apsPlatePlanMapper.selectApsPlatePlanList(platePlan);
-
- List<ApsPlateProcessStat> statList = apsPlateProcessStatMapper.selectApsPlateProcessStatList(new ApsPlateProcessStat());
-
- ApsShop apsShop = new ApsShop();
- apsShop.setPlantCode(plant);
- List<ApsShop> shopList = shopMapper.selectApsShopList(apsShop);
-
- ApsStandardProcess process = new ApsStandardProcess();
- process.setPlant(plant);
- process.setMajor(major);
- List<ApsStandardProcess> shopProcesses = standardProcessMapper.selectApsStandardProcessList(process);
- if (planList.isEmpty() || shopList.isEmpty() || shopProcesses.isEmpty()) {
- log.warn("璁″垝鍒楄〃銆佽溅闂村垪琛ㄦ垨宸ュ簭鍒楄〃涓虹┖锛屾棤娉曠敓鎴愮粺璁′俊鎭�");
- return;
- }
- // 鏋勫缓杞﹂棿鍚嶇О鍒板伐搴忓悕绉扮殑鏄犲皠
- Map<String, List<String>> shopToProcessNames = shopProcesses.stream()
+ List<ApsPlateProcessStat> statList =apsPlateProcessStatService.computePlateProcessStat();
+ // 鏋勫缓杞﹂棿鍚嶇О鍒板伐搴忓悕绉扮殑鏄犲皠
+ Map<String, List<String>> shopToProcessNames = shopProcesses.stream().filter(x -> null!=x.getWorkShop())
.collect(Collectors.groupingBy(ApsStandardProcess::getWorkShop,
Collectors.mapping(ApsStandardProcess::getProcessName, Collectors.toList())
));
@@ -179,18 +177,22 @@
statsToInsert.add(stat);
}
}
- // 鎵归噺鎻掑叆浠ユ彁楂樻�ц兘
- if (!statsToInsert.isEmpty()) {
- int batchSize = 1000;
- for (int i = 0; i < statsToInsert.size(); i += batchSize) {
- int end = Math.min(i + batchSize, statsToInsert.size());
- List<ApsPlateProcessShopStat> batch = statsToInsert.subList(i, end);
- apsPlateProcessShopStatMapper.batchInsert(batch);
- }
+ List<List<ApsPlateProcessStat>> processStatBatchList = ListUtil.split(statList, 1000);
+ processStatBatchList.forEach(batch -> apsPlateProcessStatMapper.batchInsertPlateStat(batch));
+
+
+ List<List<ApsPlateProcessShopStat>> shopStatBatchList = ListUtil.split(statsToInsert, 1000);
+ shopStatBatchList.forEach(batch -> apsPlateProcessShopStatMapper.batchInsert(batch));
+ }else {
+ if(shopProcesses.isEmpty()){
+ throw new RuntimeException("鏈壘鍒版爣鍑嗗伐搴忔暟鎹紒");
}
- } catch (Exception e) {
- log.error("淇濆瓨閽i噾杞﹂棿缁熻鏃跺彂鐢熷紓甯�", e);
- throw new RuntimeException("淇濆瓨閽i噾杞﹂棿缁熻澶辫触", e);
+ if(shopList.isEmpty()){
+ throw new RuntimeException("鏈壘鍒拌溅闂存暟鎹紒");
+ }
+ if(planList.isEmpty()){
+ throw new RuntimeException("鏈壘鍒板伐鍗曟暟鎹紒");
+ }
}
}
@@ -210,7 +212,6 @@
stat.setWorkCenter(plan.getWorkCenter());
stat.setProcessNumber(plan.getProcessNumber());
try {
-
List<String> processNames = shopToProcessNames.getOrDefault(shopName, Collections.emptyList());
if (!processNames.isEmpty()) {
@@ -253,6 +254,7 @@
}
} catch (Exception e) {
log.error("computer error:"+ JSONObject.toJSONString(stat));
+ throw new RuntimeException("璁$畻杞﹂棿缁熻鏁版嵁寮傚父锛�");
}
return stat;
}
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java
index 410a1d6..55507be 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java
@@ -107,12 +107,10 @@
/**
* 淇濆瓨閽i噾缁熻鏁版嵁
*/
- @Transactional
@Override
- public void savePlateProcessStat() {
+ public List<ApsPlateProcessStat> computePlateProcessStat() {
String batchNum = IdUtils.fastSimpleUUID();
List<ApsPlateProcessStat> tempList = apsPlateProcessStatMapper.queryTempStat();
- ApsPlateProcessStat apsPlateProcessStat = tempList.stream().filter(x -> x.getWorkOrderNo().equals("MO-250409003498")).findFirst().get();
Map<String, List<ApsPlateProcessStat>> groupByOrderNo = tempList.stream().collect(groupingBy(ApsPlateProcessStat::getWorkOrderNo));
Boolean hasBefore = false;
LocalDateTime now = LocalDateTime.now();
@@ -186,16 +184,7 @@
}
hasBefore=false;
}
- apsPlateProcessStatMapper.removeOtherStat(batchNum);
- if(!totalList.isEmpty()){
- int batchSize = 1000;
- totalList.forEach(x->x.setId(String.valueOf(IdUtil.getSnowflakeNextId())));
- for (int i = 0; i < totalList.size(); i += batchSize) {
- int end = Math.min(i + batchSize, totalList.size());
- List<ApsPlateProcessStat> batch = totalList.subList(i, end);
- apsPlateProcessStatMapper.batchInsertPlateStat(batch);
- }
- }
+ return totalList;
}
diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml
index 2db812a..5eefeb2 100644
--- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml
+++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml
@@ -160,7 +160,9 @@
<update id="removeOtherStat" parameterType="String">
delete from aps_plate_process_stat where batch_number != #{batchNumber}
</update>
-
+ <update id="deleteAll" parameterType="String">
+ delete from aps_plate_process_stat
+ </update>
<insert id="batchInsertPlateStat" parameterType="com.aps.core.domain.ApsPlate.ApsPlateProcessStat">
insert into aps_plate_process_stat
(
--
Gitblit v1.9.3