From d44c9ab933cfca67d4c550e499228f90432cbb3a Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期四, 15 五月 2025 11:03:11 +0800
Subject: [PATCH] 钣金工单计划:优化子件工单的读取方式 先存储内存,再从内存扣减,最后一起保存
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java | 63 ++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 19 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
index eb57e76..15d21c4 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
@@ -1,33 +1,34 @@
package com.aps.core.service.impl;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Optional;
-
-
+import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.common.security.utils.DictUtils;
+import com.aps.core.domain.ApsPlatePlan;
import com.aps.core.domain.ApsPlatePlanTemp;
import com.aps.core.mapper.ApsPartPlanTempMapper;
+import com.aps.core.mapper.ApsPlatePlanMapper;
import com.aps.core.mapper.ApsPlatePlanTempMapper;
+import com.aps.core.service.IApsPlatePlanService;
import com.aps.system.api.domain.SysDictData;
import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import com.aps.core.mapper.ApsPlatePlanMapper;
-import com.aps.core.domain.ApsPlatePlan;
-import com.aps.core.service.IApsPlatePlanService;
+
+import java.math.BigDecimal;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Optional;
/**
* 閽i噾璁″垝绠$悊Service涓氬姟灞傚鐞�
- *
+ *
* @author ruoyi
* @date 2025-04-08
*/
@Service
-public class ApsPlatePlanServiceImpl implements IApsPlatePlanService
+public class ApsPlatePlanServiceImpl implements IApsPlatePlanService
{
@Autowired
private ApsPlatePlanMapper apsPlatePlanMapper;
@@ -39,7 +40,7 @@
/**
* 鏌ヨ閽i噾璁″垝绠$悊
- *
+ *
* @param id 閽i噾璁″垝绠$悊涓婚敭
* @return 閽i噾璁″垝绠$悊
*/
@@ -51,7 +52,7 @@
/**
* 鏌ヨ閽i噾璁″垝绠$悊鍒楄〃
- *
+ *
* @param apsPlatePlan 閽i噾璁″垝绠$悊
* @return 閽i噾璁″垝绠$悊
*/
@@ -63,21 +64,21 @@
/**
* 鏂板閽i噾璁″垝绠$悊
- *
+ *
* @param apsPlatePlan 閽i噾璁″垝绠$悊
* @return 缁撴灉
*/
@Override
public int insertApsPlatePlan(ApsPlatePlan apsPlatePlan)
{
- apsPlatePlan.setId(IdUtils.fastUUID());
+ apsPlatePlan.setId(IdUtil.getSnowflakeNextId());
apsPlatePlan.setCreateTime(DateUtils.getNowDate());
return apsPlatePlanMapper.insertApsPlatePlan(apsPlatePlan);
}
/**
* 淇敼閽i噾璁″垝绠$悊
- *
+ *
* @param apsPlatePlan 閽i噾璁″垝绠$悊
* @return 缁撴灉
*/
@@ -89,7 +90,7 @@
/**
* 鎵归噺鍒犻櫎閽i噾璁″垝绠$悊
- *
+ *
* @param ids 闇�瑕佸垹闄ょ殑閽i噾璁″垝绠$悊涓婚敭
* @return 缁撴灉
*/
@@ -101,7 +102,7 @@
/**
* 鍒犻櫎閽i噾璁″垝绠$悊淇℃伅
- *
+ *
* @param id 閽i噾璁″垝绠$悊涓婚敭
* @return 缁撴灉
*/
@@ -124,7 +125,7 @@
ids[i]=apsPartPlanTemps.get(i).getId();
ApsPlatePlan platePlan=new ApsPlatePlan();
BeanUtils.copyProperties(apsPartPlanTemps.get(i), platePlan);
- platePlan.setId(IdUtils.fastUUID());
+ platePlan.setId(IdUtil.getSnowflakeNextId());
platePlan.setCreateTime(DateUtils.getNowDate());
//鎻掑叆姝e紡琛紝骞惰褰�
apsPlatePlanMapper.insertApsPlatePlan(platePlan);
@@ -184,6 +185,30 @@
}
}
+ /**
+ * 閽i噾鍐椾綑宸ュ崟鎶ヨ〃
+ * @param apsPlatePlan
+ * @return
+ */
+ @Override
+ public List<ApsPlatePlan> selectPlateRedundantOrderList(ApsPlatePlan apsPlatePlan) {
+ return apsPlatePlanMapper.selectPlateRedundantOrderList(apsPlatePlan);
+ }
-
+ @Override
+ public ApsPlatePlan selectUnMatchPlateSubPlan(String plant, String itemNumber, Hashtable<String, List<ApsPlatePlan>> subPlans) {
+ if(subPlans.containsKey(itemNumber)) {
+ List<ApsPlatePlan> subPlanList = subPlans.get(itemNumber);
+ Optional<ApsPlatePlan> firstPlant = subPlanList.stream().filter(x -> x.getUnmatchedQuantity().compareTo(BigDecimal.ZERO) > 0).findFirst();
+ return firstPlant.orElse(null);
+ }else {
+ List<ApsPlatePlan> plans = apsPlatePlanMapper.selectUnMatchPlateSubPlanList(plant, itemNumber);
+ if (!plans.isEmpty()) {
+ subPlans.put(itemNumber, plans);
+ return selectUnMatchPlateSubPlan(plant, itemNumber, subPlans);
+ } else {
+ return null;
+ }
+ }
+ }
}
--
Gitblit v1.9.3