Commit 34daae81 张少辉

1.库存缺料报表增加104服务器库存

1 个父辈 a9f04393
......@@ -105,6 +105,9 @@ public class LizhenApi extends DefaultSmfApiListener {
@Value("${api.storageLevelWarningUrl}")
private String storageLevelWarningUrl;
@Value("${api.server104InventoryUrl}")
private String server104InventoryUrl;
@PostConstruct
public void init(){
fetchGRUrl = dataCache.getConfigCache("fetchGRUrl",fetchGRUrl);
......@@ -780,4 +783,15 @@ public class LizhenApi extends DefaultSmfApiListener {
e.printStackTrace();
}
}
public Map<String, Integer> getServer104Inventory() {
Map<String, Integer> resultMap = new HashMap<>();
try {
String result = HttpHelper.sendGet(server104InventoryUrl);
resultMap = JSONObject.parseObject(result, Map.class);
} catch (Exception e) {
return new HashMap<>();
}
return resultMap;
}
}
......@@ -9,6 +9,7 @@ import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.storage.bean.InventoryItem;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.custom.lizhen.LizhenApi;
import com.neotel.smfcore.custom.lizhen.innerBox.bean.ReelConsumption;
import com.neotel.smfcore.custom.lizhen.innerBox.bean.ReelConsumptionInventory;
import com.neotel.smfcore.custom.lizhen.innerBox.service.manager.IReelConsumptionManager;
......@@ -45,6 +46,9 @@ public class TowerInventoryController {
@Autowired
private ITowerInventoryService towerInventoryService;
@Autowired
private LizhenApi lizhenApi;
@Scheduled(fixedRate = 1000*60*1, initialDelay = 1000 * 30)
public void syncTowerInventoryData() {
try {
......@@ -60,8 +64,6 @@ public class TowerInventoryController {
towerInventoryService.removeByNoPartNumber(partNumberList);
}
log.info("开始同步 Tower 库存数据...");
List<TowerInventory> towerInventoryList = getTowerInventoryDetail(consumptionList);
for (TowerInventory towerInventory : towerInventoryList) {
......@@ -115,7 +117,9 @@ public class TowerInventoryController {
headers.add(Arrays.asList("替代料分组"));
headers.add(Arrays.asList("需求最小库存盘数"));
//headers.add(Arrays.asList("需求最大库存盘数"));
headers.add(Arrays.asList("当前库存盘数"));
headers.add(Arrays.asList("当前料仓库存"));
headers.add(Arrays.asList("104库存"));
headers.add(Arrays.asList("总库存"));
headers.add(Arrays.asList("缺料盘数"));
headers.add(Arrays.asList("缺料百分比"));
......@@ -150,6 +154,8 @@ public class TowerInventoryController {
rowData.add(inv.getMinNeedInventory());
//rowData.add(inv.getMaxNeedInventory());
rowData.add(inv.getCurrentInventory());
rowData.add(inv.getInventory104());
rowData.add(inv.getTotalInventory());
rowData.add(inv.getShortageDisks());
rowData.add(String.format("%.2f%%", inv.getShortagePercentage()));
......@@ -179,6 +185,11 @@ public class TowerInventoryController {
public List<TowerInventory> getTowerInventoryDetail(List<ReelConsumption> reelConsumptionList) {
List<TowerInventory> towerInventoryList = new ArrayList<>();
Map<String, Integer> server104Inventory = lizhenApi.getServer104Inventory();
if (server104Inventory == null){
server104Inventory = new HashMap<>();
}
//key为PartNumber,Value为替代料分组
Map<String,String> partNumberReplaceGroupMap = reelConsumptionManager.findAllPartNumberByReplaceGroup();
......@@ -248,6 +259,8 @@ public class TowerInventoryController {
//找到替代料分组,然后计算库存
int count = 0;
int count104 = 0;
List<String> replacePartNumberList = new ArrayList<>();
replacePartNumberList.add(towerInventory.getPartNumber());
String replaceGroup = towerInventory.getReplaceGroup();
......@@ -261,16 +274,21 @@ public class TowerInventoryController {
replacePartNumberList = replacePartNumberList.stream().distinct().collect(Collectors.toList());
for (String replacePartNumber : replacePartNumberList) {
count = count + allPartNumberInventory.getOrDefault(replacePartNumber, 0);
count104 = count104 + server104Inventory.getOrDefault(replacePartNumber,0);
}
towerInventory.setCurrentInventory(count);
towerInventory.setInventory104(count104);
int totalCount = count + count104;
towerInventory.setTotalInventory(totalCount);
// 缺料计算
if (minNeedInventory == 0) {
towerInventory.setShortageDisks(0);
towerInventory.setShortagePercentage(0.0);
} else {
int shortageDisks = count - minNeedInventory;
int shortageDisks = totalCount - minNeedInventory;
towerInventory.setShortageDisks(shortageDisks);
double percentage = (double) shortageDisks / minNeedInventory * 100;
......
......@@ -21,6 +21,10 @@ public class TowerInventory extends BasePo implements Serializable {
private int currentInventory;
private int inventory104;
private int totalInventory;
private int shortageDisks; //缺料盘数
private double shortagePercentage; //缺料百分比
......
......@@ -26,4 +26,7 @@ api:
#获取尺寸信息
brandQtyUrl: http://10.68.30.22:8082/api/wcs/brandQty
#修改1楼的水位预警信息
storageLevelWarningUrl: http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
\ No newline at end of file
storageLevelWarningUrl: http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
#查找104服务器的库存
server104InventoryUrl: http://10.68.27.104/smf-core/api/material/getAllInventory
\ No newline at end of file
......@@ -27,4 +27,6 @@ api:
#获取尺寸信息
brandQtyUrl: http://10.42.220.171:8082/api/mlb/brandQty
#修改1楼的水位预警信息
storageLevelWarningUrl: http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
\ No newline at end of file
storageLevelWarningUrl: http://10.68.27.83/smf-core/thirdBarcode/updateStorageAlearyCheckOut
#查找104服务器的库存
server104InventoryUrl: http://10.68.27.104/smf-core/api/material/getAllInventory
\ No newline at end of file
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!