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

遗传算法-物料缓存

parent 01233646
package com.aps.service.plan;
import com.aps.common.util.*;
import com.aps.common.util.redis.RedisUtils;
import com.aps.controller.gantt.FileUploadController;
import com.aps.entity.*;
import com.aps.entity.Algorithm.*;
......@@ -77,7 +78,8 @@ public class PlanResultService {
@Autowired
private ConfigMapper configMapper;
@Autowired
private RedisUtils redisUtils;
@Autowired
private StrategyRuleService _strategyRuleService;
......@@ -924,6 +926,22 @@ private GlobalParam InitGlobalParam()
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<>();
MaterialInfoWrapper.eq(MaterialInfo::getIsdeleted,0);
......@@ -947,7 +965,7 @@ private GlobalParam InitGlobalParam()
LambdaQueryWrapper<PurchaseReceipt> PurchaseReceiptWrapper = new LambdaQueryWrapper<>();
PurchaseReceiptWrapper.eq(PurchaseReceipt::getIsdeleted,0);
//原材料待验
//原材料待验
List<PurchaseReceipt> PurchaseReceiptlist= purchaseReceiptMapper.selectList(PurchaseReceiptWrapper);
LambdaQueryWrapper<SjzPfWhStock> SjzPfWhStockWrapper = new LambdaQueryWrapper<>();
......@@ -955,69 +973,73 @@ private GlobalParam InitGlobalParam()
List<SjzPfWhStock> SjzPfWhStocklists= sjzPfWhStockMapper.selectList(SjzPfWhStockWrapper);
materiallist.forEach(m -> {
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 (MaterialInfo m : materiallist)
{
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);
}
}
List<ErpPurchaseOrder> ErpPurchaseOrders= ErpPurchaseOrderlist.stream()
.filter(t->t.getMaterialId()==m.getId())
.collect(Collectors.toList());
if(ErpPurchaseOrders!=null)
// materiallist.forEach(m -> {
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()==null)
{
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);
}
continue;
}
}else {
List<SjzPfWhStock> SjzPfWhStocks= SjzPfWhStocklists.stream()
.filter(t->t.getMaterialid()==m.getId())
.collect(Collectors.toList());
if(SjzPfWhStocks!=null)
{
for (SjzPfWhStock mm:SjzPfWhStocks) {//原材料采购,可用时间要加上检验时间
MaterialSupply ms=new MaterialSupply();
LocalDateTime dt =ParamValidator.parseDateTime( mm.getExp1(),"");
ms.setQuantity(mm.getFjl1Sl());
ms.setArrivalTime(dt);
materialSupplys.add(ms);
if (m.getMaterialTypeName().equals("MP")) {
List<PurchaseReceipt> PurchaseReceipts = PurchaseReceiptlist.stream()
.filter(t -> t.getMaterialid() == m.getId())
.collect(Collectors.toList());
if (PurchaseReceipts != null&&PurchaseReceipts.size()>0) {
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);
}
}
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);
materials.add(material);
});
CommonCache.put("material",materials);
return materials;
material.setInTransit(materialSupplys);
materials.add(material);
// });
}
return materials;
}
private Map<Integer, Object> InitEntrys(String SceneId,List<ProdEquipment> ProdEquipments,List<Order> ProdLaunchOrders)
......
......@@ -10,9 +10,9 @@ spring:
pathmatch:
matching-strategy: ant_path_matcher # Spring Boot 2.6+ 需要这个配置
redis:
host: 192.168.0.181
port: 6380
timeout: 10000
host: 39.100.88.40
port: 6379
timeout: 120000
database: 10
password: redis@228!
# 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