Commit 34daae81 张少辉

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

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