Commit 5d00b320 authored by Tong Li's avatar Tong Li

遗传算法-物料缓存

parent 01233646
package com.aps.service.plan; package com.aps.service.plan;
import com.aps.common.util.*; import com.aps.common.util.*;
import com.aps.common.util.redis.RedisUtils;
import com.aps.controller.gantt.FileUploadController; import com.aps.controller.gantt.FileUploadController;
import com.aps.entity.*; import com.aps.entity.*;
import com.aps.entity.Algorithm.*; import com.aps.entity.Algorithm.*;
...@@ -77,7 +78,8 @@ public class PlanResultService { ...@@ -77,7 +78,8 @@ public class PlanResultService {
@Autowired @Autowired
private ConfigMapper configMapper; private ConfigMapper configMapper;
@Autowired
private RedisUtils redisUtils;
@Autowired @Autowired
private StrategyRuleService _strategyRuleService; private StrategyRuleService _strategyRuleService;
...@@ -924,6 +926,22 @@ private GlobalParam InitGlobalParam() ...@@ -924,6 +926,22 @@ private GlobalParam InitGlobalParam()
return cmaterials; return cmaterials;
} }
cmaterials= (List<Material>)redisUtils.get("material");
if(cmaterials!=null)
{
return cmaterials;
}
materials=getMaterials();
CommonCache.put("material",materials);
redisUtils.set("material",materials);
return materials;
}
private List<Material> getMaterials(){
List<Material> materials=new ArrayList<>();
LambdaQueryWrapper<MaterialInfo> MaterialInfoWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MaterialInfo> MaterialInfoWrapper = new LambdaQueryWrapper<>();
MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0); MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0);
...@@ -947,7 +965,7 @@ private GlobalParam InitGlobalParam() ...@@ -947,7 +965,7 @@ private GlobalParam InitGlobalParam()
LambdaQueryWrapper<PurchaseReceipt> PurchaseReceiptWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PurchaseReceipt> PurchaseReceiptWrapper = new LambdaQueryWrapper<>();
PurchaseReceiptWrapper.eq(PurchaseReceipt::getIsdeleted,0); PurchaseReceiptWrapper.eq(PurchaseReceipt::getIsdeleted,0);
//原材料待验 //原材料待验
List<PurchaseReceipt> PurchaseReceiptlist= purchaseReceiptMapper.selectList(PurchaseReceiptWrapper); List<PurchaseReceipt> PurchaseReceiptlist= purchaseReceiptMapper.selectList(PurchaseReceiptWrapper);
LambdaQueryWrapper<SjzPfWhStock> SjzPfWhStockWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SjzPfWhStock> SjzPfWhStockWrapper = new LambdaQueryWrapper<>();
...@@ -955,69 +973,73 @@ private GlobalParam InitGlobalParam() ...@@ -955,69 +973,73 @@ private GlobalParam InitGlobalParam()
List<SjzPfWhStock> SjzPfWhStocklists= sjzPfWhStockMapper.selectList(SjzPfWhStockWrapper); List<SjzPfWhStock> SjzPfWhStocklists= sjzPfWhStockMapper.selectList(SjzPfWhStockWrapper);
materiallist.forEach(m -> { for (MaterialInfo m : materiallist)
Material material=new Material(); {
material.setId(m.getId());
material.setMaterialType(m.getMaterialType());
material.setMaterialTypeName(m.getMaterialTypeName());
material.setCkeckLeadTime(m.getInspectDuration());
material.setPurchaseLeadTime(m.getPurchaseDuration());
double stock= Stocklist.stream()
.filter(t->t.getMaterialId().equals(m.getId()))
.mapToDouble(Stock::getTotal)
.sum();
material.setCurrentStock(stock);
List<MaterialSupply> materialSupplys=new ArrayList<>();
if(m.getMaterialTypeName().equals("MP"))
{
List<PurchaseReceipt> PurchaseReceipts= PurchaseReceiptlist.stream()
.filter(t->t.getMaterialid()==m.getId())
.collect(Collectors.toList());
if(PurchaseReceipts!=null)
{
for (PurchaseReceipt mm:PurchaseReceipts) {//原材料待验
MaterialSupply ms=new MaterialSupply();
LocalDateTime dt = mm.getExp5() == null ? ParamValidator.parseDateTime(mm.getExp1(),"") : mm.getExp5();
ms.setQuantity(mm.getFjl1Sl());
ms.setArrivalTime(dt);
materialSupplys.add(ms);
}
} // materiallist.forEach(m -> {
List<ErpPurchaseOrder> ErpPurchaseOrders= ErpPurchaseOrderlist.stream() Material material = new Material();
.filter(t->t.getMaterialId()==m.getId()) material.setId(m.getId());
.collect(Collectors.toList()); material.setMaterialType(m.getMaterialType());
if(ErpPurchaseOrders!=null) material.setMaterialTypeName(m.getMaterialTypeName());
material.setCkeckLeadTime(m.getInspectDuration());
material.setPurchaseLeadTime(m.getPurchaseDuration());
double stock = Stocklist.stream()
.filter(t -> t.getMaterialId().equals(m.getId()))
.mapToDouble(Stock::getTotal)
.sum();
material.setCurrentStock(stock);
List<MaterialSupply> materialSupplys = new ArrayList<>();
if(m.getMaterialTypeName()==null)
{ {
for (ErpPurchaseOrder mm:ErpPurchaseOrders) {//原材料采购,可用时间要加上检验时间 continue;
MaterialSupply ms=new MaterialSupply();
LocalDateTime dt = mm.getArrivalDate().plusDays(m.getInspectDuration());
ms.setQuantity(mm.getPurchaseQty());
ms.setArrivalTime(dt);
materialSupplys.add(ms);
}
} }
}else { if (m.getMaterialTypeName().equals("MP")) {
List<SjzPfWhStock> SjzPfWhStocks= SjzPfWhStocklists.stream() List<PurchaseReceipt> PurchaseReceipts = PurchaseReceiptlist.stream()
.filter(t->t.getMaterialid()==m.getId()) .filter(t -> t.getMaterialid() == m.getId())
.collect(Collectors.toList()); .collect(Collectors.toList());
if(SjzPfWhStocks!=null) if (PurchaseReceipts != null&&PurchaseReceipts.size()>0) {
{
for (SjzPfWhStock mm:SjzPfWhStocks) {//原材料采购,可用时间要加上检验时间 for (PurchaseReceipt mm : PurchaseReceipts) {//原材料待验
MaterialSupply ms=new MaterialSupply(); MaterialSupply ms = new MaterialSupply();
LocalDateTime dt =ParamValidator.parseDateTime( mm.getExp1(),""); LocalDateTime dt = mm.getExp5() == null ? ParamValidator.parseDateTime(mm.getExp1(), "") : mm.getExp5();
ms.setQuantity(mm.getFjl1Sl()); ms.setQuantity(mm.getFjl1Sl());
ms.setArrivalTime(dt); ms.setArrivalTime(dt);
materialSupplys.add(ms); materialSupplys.add(ms);
}
}
List<ErpPurchaseOrder> ErpPurchaseOrders = ErpPurchaseOrderlist.stream()
.filter(t -> t.getMaterialId() == m.getId())
.collect(Collectors.toList());
if (ErpPurchaseOrders != null&&ErpPurchaseOrders.size()>0) {
for (ErpPurchaseOrder mm : ErpPurchaseOrders) {//原材料采购,可用时间要加上检验时间
MaterialSupply ms = new MaterialSupply();
LocalDateTime dt = mm.getArrivalDate().plusDays(m.getInspectDuration());
ms.setQuantity(mm.getPurchaseQty());
ms.setArrivalTime(dt);
materialSupplys.add(ms);
}
}
} else {
List<SjzPfWhStock> SjzPfWhStocks = SjzPfWhStocklists.stream()
.filter(t -> t.getMaterialid() == m.getId())
.collect(Collectors.toList());
if (SjzPfWhStocks != null&&SjzPfWhStocks.size()>0) {
for (SjzPfWhStock mm : SjzPfWhStocks) {//原材料采购,可用时间要加上检验时间
MaterialSupply ms = new MaterialSupply();
LocalDateTime dt = ParamValidator.parseDateTime(mm.getExp1(), "");
ms.setQuantity(mm.getFjl1Sl());
ms.setArrivalTime(dt);
materialSupplys.add(ms);
}
} }
} }
} material.setInTransit(materialSupplys);
material.setInTransit(materialSupplys); materials.add(material);
materials.add(material); // });
}); }
CommonCache.put("material",materials); return materials;
return materials;
} }
private Map<Integer, Object> InitEntrys(String SceneId,List<ProdEquipment> ProdEquipments,List<Order> ProdLaunchOrders) private Map<Integer, Object> InitEntrys(String SceneId,List<ProdEquipment> ProdEquipments,List<Order> ProdLaunchOrders)
......
...@@ -10,9 +10,9 @@ spring: ...@@ -10,9 +10,9 @@ spring:
pathmatch: pathmatch:
matching-strategy: ant_path_matcher # Spring Boot 2.6+ 需要这个配置 matching-strategy: ant_path_matcher # Spring Boot 2.6+ 需要这个配置
redis: redis:
host: 192.168.0.181 host: 39.100.88.40
port: 6380 port: 6379
timeout: 10000 timeout: 120000
database: 10 database: 10
password: redis@228! password: redis@228!
# Swagger 配置 # Swagger 配置
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment