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 | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 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 6fda182..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,15 +1,11 @@ package com.aps.core.service.impl; import cn.hutool.core.util.IdUtil; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; 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.ApsMaterialStorageManagement; import com.aps.core.domain.ApsPlatePlan; import com.aps.core.domain.ApsPlatePlanTemp; -import com.aps.core.domain.ApsPlateStandardRequire; import com.aps.core.mapper.ApsPartPlanTempMapper; import com.aps.core.mapper.ApsPlatePlanMapper; import com.aps.core.mapper.ApsPlatePlanTempMapper; @@ -18,9 +14,10 @@ import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.Hashtable; import java.util.List; import java.util.Optional; @@ -197,4 +194,21 @@ 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