WmsInfoController.java
4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package com.huaheng.api.wmsinfo.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.wmsinfo.domain.*;
import com.huaheng.common.constant.Constants;
import com.huaheng.pc.config.location.domain.CscLocation;
import com.huaheng.pc.config.location.domain.Location;
import com.huaheng.pc.config.location.service.CscLocationServiceImpl;
import com.huaheng.pc.config.location.service.LocationServiceImpl;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailServiceImpl;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* 数字孪生面板 控制器
*/
@RestController
@RequestMapping("/api/wms/info")
public class WmsInfoController {
public static final String TIME = "2023-03-28 12:12:00";
public static final String MATERIAL_NAME = "纸箱";
public static final String FROM_LOCATION = "L020202";
public static final String TO_LOCATION = "L010101";
@Resource
private LocationServiceImpl locationService;
@Resource
private CscLocationServiceImpl cscLocationService;
@Resource
private InventoryDetailServiceImpl inventoryDetailService;
/**
* 仓库数据概况
*/
@GetMapping()
@ResponseBody
public WmsInfoResult getInfo() {
WmsInfoResult result = new WmsInfoResult();
result.status = 200;
result.data.add(getLocationInfo());
result.data.add(getMaterialInfo());
result.data.add(getTurnOverRateInfo());
result.data.add(getWarehouseUsageInfo());
result.data.add(getWarehouseActionInfo());
return result;
}
private DataItem<List<LocationInfo>> getLocationInfo(){
DataItem data = new DataItem("库位信息");
List<LocationInfo> list = new ArrayList<>();
LambdaQueryWrapper<Location> query = Wrappers.lambdaQuery();
query.eq(Location::getZoneCode, "L");
for(Location location: locationService.list(query)) {
list.add(LocationInfo.parse(location));
}
for(CscLocation location: cscLocationService.list()) {
list.add(LocationInfo.parse(location));
}
data.Json = list;
return data;
}
private DataItem<List<MaterialInfo>> getMaterialInfo(){
DataItem data = new DataItem("物资信息");
List<MaterialInfo> list = new ArrayList<>();
for(InventoryDetail inventoryDetail: inventoryDetailService.list()) {
list.add(MaterialInfo.parse(inventoryDetail));
}
data.Json = list;
return data;
}
private DataItem<WarehouseUsageInfo> getWarehouseUsageInfo(){
DataItem data = new DataItem("库容使用率");
WarehouseUsageInfo body = new WarehouseUsageInfo();
body.addUsage(100, 26640, "CSC", "穿梭车库");
body.addUsage(120, 1046, "LK", "立体库");
data.Json = body;
return data;
}
private DataItem<TurnOverRateInfo> getTurnOverRateInfo(){
DataItem data = new DataItem("物资周转退库率");
TurnOverRateInfo body = new TurnOverRateInfo();
body.setBackoutRate(1.0f, TIME);
body.setTurnOverRate(1.0f, TIME);
data.Json = body;
return data;
}
private DataItem<WarehouseActionInfo> getWarehouseActionInfo(){
DataItem data = new DataItem("仓库变化信息");
WarehouseActionInfo body = new WarehouseActionInfo();
body.addRuKu(TIME, 100, MATERIAL_NAME, TO_LOCATION);
body.addChuKu(TIME, 100, MATERIAL_NAME, TO_LOCATION);
body.addYiKu(TIME, 100, MATERIAL_NAME, FROM_LOCATION, TO_LOCATION);
data.Json = body;
return data;
}
}