zhanghl
2025-05-15 3d4f867baf71a0afdb8f8711b0af650efd716ff0
优化 钣金工单计划:从Redis中读取子件工单信息
已修改1个文件
19 ■■■■ 文件已修改
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
@@ -1,6 +1,7 @@
package com.aps.core.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.uuid.IdUtils;
@@ -204,10 +205,10 @@
    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);
           Optional<ApsPlatePlan> planOptional = subPlanList.stream().filter(x -> x.getUnmatchedQuantity().compareTo(BigDecimal.ZERO) > 0).findFirst();
           return planOptional.orElse(null);
       }else {
           List<ApsPlatePlan> plans = apsPlatePlanMapper.selectUnMatchPlateSubPlanList(plant, itemNumber);
           List<ApsPlatePlan> plans = getSubPlansFromRedis(itemNumber);
           if (!plans.isEmpty()) {
               subPlans.put(itemNumber, plans);
               return selectUnMatchPlateSubPlan(plant, itemNumber, subPlans);
@@ -240,4 +241,16 @@
            return false;
        }
    }
    public List<ApsPlatePlan> getSubPlansFromRedis(String itemNumber) {
        List<ApsPlatePlan> subPlans;
        JSONArray jsonArray =(JSONArray) redisTemplate.opsForValue().get("PLATE_SUB_PLAN:" + itemNumber);
        if (jsonArray != null && !jsonArray.isEmpty()) {
            subPlans = jsonArray.stream().map(obj -> JSONObject.parseObject(String.valueOf(obj), ApsPlatePlan.class)).toList();
            subPlans.forEach(subPlan -> subPlan.setVersion(0));
        }else {
            subPlans = apsPlatePlanMapper.selectUnMatchPlateSubPlanList("FORTUNA", itemNumber);
        }
        return subPlans;
    }
}