add 分拣作业监控
This commit is contained in:
@@ -230,7 +230,7 @@ public class ResultBean implements Serializable, Cloneable {
|
|||||||
rows = new ArrayList();
|
rows = new ArrayList();
|
||||||
}
|
}
|
||||||
JSONArray jrows = this.rows2jsonarray(rows);
|
JSONArray jrows = this.rows2jsonarray(rows);
|
||||||
JSONObject jrow = null;
|
JSONObject jrow = new JSONObject();
|
||||||
if (jrows.size() > 0) {
|
if (jrows.size() > 0) {
|
||||||
jrow = jrows.getJSONObject(0);
|
jrow = jrows.getJSONObject(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,4 +51,11 @@ public class DashboardController {
|
|||||||
public ResponseEntity<Object> warehouseMonitor(){
|
public ResponseEntity<Object> warehouseMonitor(){
|
||||||
return new ResponseEntity<>(dashboardService.warehouseMonitor(), HttpStatus.OK);
|
return new ResponseEntity<>(dashboardService.warehouseMonitor(), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/sortProductionMonitor")
|
||||||
|
@Log("分拣作业监控")
|
||||||
|
@ApiOperation("分拣作业监控")
|
||||||
|
public ResponseEntity<Object> sortProductionMonitor(){
|
||||||
|
return new ResponseEntity<>(dashboardService.sortProductionMonitor(), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -577,7 +577,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -634,7 +634,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -691,7 +691,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -875,7 +875,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -946,7 +946,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -1109,7 +1109,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -1257,9 +1257,9 @@ public class DashboardService {
|
|||||||
// 总量----------------------------------------------------------------------------------------------------------
|
// 总量----------------------------------------------------------------------------------------------------------
|
||||||
JSONObject total = new JSONObject();
|
JSONObject total = new JSONObject();
|
||||||
result.put("total", total);
|
result.put("total", total);
|
||||||
total.put("pressWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject)o).getDoubleValue("weight")).sum() / 1000));
|
total.put("pressWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject) o).getDoubleValue("weight")).sum() / 1000));
|
||||||
total.put("dryWeight", String.format("%.2f", todayOutKiln.stream().mapToDouble(o -> ((JSONObject)o).getDoubleValue("weight")).sum() / 1000));
|
total.put("dryWeight", String.format("%.2f", todayOutKiln.stream().mapToDouble(o -> ((JSONObject) o).getDoubleValue("weight")).sum() / 1000));
|
||||||
total.put("sortWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.FJ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject)o).getDoubleValue("weight")).sum() / 1000));
|
total.put("sortWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.FJ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject) o).getDoubleValue("weight")).sum() / 1000));
|
||||||
|
|
||||||
// 混碾生产------------------------------------------------------------------------------------------------------
|
// 混碾生产------------------------------------------------------------------------------------------------------
|
||||||
JSONArray mixProduction = new JSONArray();
|
JSONArray mixProduction = new JSONArray();
|
||||||
@@ -1281,10 +1281,10 @@ public class DashboardService {
|
|||||||
result.put("pressProduction", pressProduction);
|
result.put("pressProduction", pressProduction);
|
||||||
|
|
||||||
// 当日产量
|
// 当日产量
|
||||||
pressProduction.put("dailyProductionQty", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToInt(o -> ((JSONObject)o).getIntValue("qty")).sum() / 10000.00));
|
pressProduction.put("dailyProductionQty", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToInt(o -> ((JSONObject) o).getIntValue("qty")).sum() / 10000.00));
|
||||||
|
|
||||||
// 当班产量
|
// 当班产量
|
||||||
pressProduction.put("dailyProductionWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject)o).getDoubleValue("weight")).sum() / 1000));
|
pressProduction.put("dailyProductionWeight", String.format("%.2f", todayWorkOrderProduction.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).mapToDouble(o -> ((JSONObject) o).getDoubleValue("weight")).sum() / 1000));
|
||||||
|
|
||||||
// 设备产量
|
// 设备产量
|
||||||
JSONArray equipmentProduction = new JSONArray();
|
JSONArray equipmentProduction = new JSONArray();
|
||||||
@@ -1463,7 +1463,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -1510,7 +1510,7 @@ public class DashboardService {
|
|||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
rowDatum.put("key", "数量");
|
rowDatum.put("key", "数量");
|
||||||
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
||||||
rowData.add(rowDatum);
|
rowData.add(rowDatum);
|
||||||
|
|
||||||
rowDatum = new JSONObject();
|
rowDatum = new JSONObject();
|
||||||
@@ -1581,6 +1581,117 @@ public class DashboardService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分拣作业监控
|
||||||
|
*
|
||||||
|
* @return 分拣作业监控数据
|
||||||
|
*/
|
||||||
|
public JSONObject sortProductionMonitor() {
|
||||||
|
JSONObject result = new JSONObject();
|
||||||
|
|
||||||
|
JSONArray fjWorkOrders = WQL.getWO("DASHBOARD").addParam("flag", "10").process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
List<JSONObject> inProductionWorkOrder = fjWorkOrders.stream().map(o -> (JSONObject) o).filter(o -> "3".equals(o.getString("order_status"))).collect(Collectors.toList());
|
||||||
|
JSONObject currentWorkOrder;
|
||||||
|
if (inProductionWorkOrder.isEmpty()) {
|
||||||
|
JSONObject current = new JSONObject();
|
||||||
|
result.put("current", current);
|
||||||
|
currentWorkOrder = new JSONObject();
|
||||||
|
current.put("workOrderCode", "");
|
||||||
|
current.put("materialName", "");
|
||||||
|
current.put("spec", "");
|
||||||
|
current.put("qty", "");
|
||||||
|
current.put("weight", "");
|
||||||
|
current.put("orderCode", "");
|
||||||
|
current.put("customer", "");
|
||||||
|
current.put("vehicleType", "");
|
||||||
|
current.put("hasHalf", "");
|
||||||
|
} else {
|
||||||
|
JSONObject current = new JSONObject();
|
||||||
|
result.put("current", current);
|
||||||
|
currentWorkOrder = inProductionWorkOrder.get(0);
|
||||||
|
current.put("workOrderCode", currentWorkOrder.getString("workorder_code"));
|
||||||
|
current.put("materialName", currentWorkOrder.getString("material_name"));
|
||||||
|
current.put("spec", currentWorkOrder.getString("gg"));
|
||||||
|
current.put("qty", currentWorkOrder.getString("plan_qty") + "块");
|
||||||
|
current.put("weight", String.format("%.2f", currentWorkOrder.getDoubleValue("plan_weight") / 1000) + "吨");
|
||||||
|
current.put("orderCode", currentWorkOrder.getString("dd"));
|
||||||
|
current.put("customer", currentWorkOrder.getString("kh"));
|
||||||
|
current.put("vehicleType", currentWorkOrder.getString("vehicle_type_name"));
|
||||||
|
JSONObject half = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND is_full = '0' AND vehicle_type = '" + currentWorkOrder.getString("vehicle_type") + "' AND material_id = " + currentWorkOrder.getString("material_id")).uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(half)) {
|
||||||
|
current.put("hasHalf", "否");
|
||||||
|
} else {
|
||||||
|
current.put("hasHalf", "是");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject depalletize = new JSONObject();
|
||||||
|
result.put("depalletize", depalletize);
|
||||||
|
JSONArray depalletizeWOD = WQLObject.getWQLObject("pdm_bd_work_order_daily").query("workorder_id = " + currentWorkOrder.getLongValue("workorder_id")).getResultJSONArray(0);
|
||||||
|
int completed = depalletizeWOD.stream().mapToInt(o -> ((JSONObject) o).getIntValue("qty")).sum();
|
||||||
|
depalletize.put("completed", completed);
|
||||||
|
depalletize.put("uncompleted", Math.max(0, currentWorkOrder.getIntValue("plan_qty") - completed));
|
||||||
|
|
||||||
|
JSONObject palletize = new JSONObject();
|
||||||
|
result.put("palletize", palletize);
|
||||||
|
JSONArray palletizeVD = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND workorder_id = " + currentWorkOrder.getLongValue("workorder_id")).getResultJSONArray(0);
|
||||||
|
palletize.put("completed", palletizeVD.stream().mapToInt(o -> ((JSONObject) o).getIntValue("qty")).sum());
|
||||||
|
palletize.put("uncompleted", 0);
|
||||||
|
|
||||||
|
JSONArray depalletizedVehicle = new JSONArray();
|
||||||
|
result.put("depalletizedVehicle", depalletizedVehicle);
|
||||||
|
JSONArray depalletizedVD = WQL.getWO("DASHBOARD").addParam("flag", "11").process().getResultJSONArray(0);
|
||||||
|
for (JSONObject vd : depalletizedVD.stream().map(o -> (JSONObject) o).collect(Collectors.toList())) {
|
||||||
|
JSONObject row = new JSONObject();
|
||||||
|
row.put("datetime", vd.getString("update_time"));
|
||||||
|
row.put("vehicleCode", vd.getString("vehicle_code"));
|
||||||
|
row.put("materialName", vd.getString("material_name"));
|
||||||
|
row.put("qty", vd.getString("qty") + "块");
|
||||||
|
row.put("weight", String.format("%.2f", vd.getDoubleValue("weight") / 1000) + "吨");
|
||||||
|
depalletizedVehicle.add(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray palletizedVehicle = new JSONArray();
|
||||||
|
result.put("palletizedVehicle", palletizedVehicle);
|
||||||
|
JSONArray palletizedVD = WQL.getWO("DASHBOARD").addParam("flag", "12").process().getResultJSONArray(0);
|
||||||
|
for (JSONObject vd : palletizedVD.stream().map(o -> (JSONObject) o).collect(Collectors.toList())) {
|
||||||
|
JSONObject row = new JSONObject();
|
||||||
|
row.put("datetime", vd.getString("create_time"));
|
||||||
|
row.put("vehicleCode", vd.getString("vehicle_code"));
|
||||||
|
row.put("materialName", vd.getString("material_name"));
|
||||||
|
row.put("qty", vd.getString("qty") + "块");
|
||||||
|
row.put("weight", String.format("%.2f", vd.getDoubleValue("weight") / 1000) + "吨");
|
||||||
|
palletizedVehicle.add(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray residualWorkOrder = new JSONArray();
|
||||||
|
result.put("residualWorkOrder", residualWorkOrder);
|
||||||
|
List<JSONObject> otherWorkOrder = fjWorkOrders.stream().map(o -> (JSONObject) o).filter(o -> "1".equals(o.getString("order_status"))).collect(Collectors.toList());
|
||||||
|
for (JSONObject workOrder : otherWorkOrder) {
|
||||||
|
JSONObject row = new JSONObject();
|
||||||
|
row.put("workOrderCode", workOrder.getString("workorder_code"));
|
||||||
|
row.put("materialName", workOrder.getString("material_name"));
|
||||||
|
row.put("spec", workOrder.getString("gg"));
|
||||||
|
row.put("qty", workOrder.getString("plan_qty") + "块");
|
||||||
|
row.put("weight", String.format("%.2f", workOrder.getDoubleValue("plan_weight") / 1000) + "吨");
|
||||||
|
row.put("orderCode", workOrder.getString("dd"));
|
||||||
|
row.put("customer", workOrder.getString("kh"));
|
||||||
|
row.put("vehicleType", workOrder.getString("vehicle_type_name"));
|
||||||
|
row.put("createTime", workOrder.getString("create_time"));
|
||||||
|
row.put("hasHalf", "");
|
||||||
|
JSONObject half = WQLObject.getWQLObject("st_ivt_vehicle_detail").query("is_delete = '0' AND is_full = '0' AND vehicle_type = '" + workOrder.getString("vehicle_type") + "' AND material_id = " + workOrder.getLongValue("material_id")).uniqueResult(0);
|
||||||
|
if (ObjectUtil.isEmpty(half)) {
|
||||||
|
row.put("hasHalf", "否");
|
||||||
|
} else {
|
||||||
|
row.put("hasHalf", "是");
|
||||||
|
}
|
||||||
|
residualWorkOrder.add(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private int deviceStatusToDictStatus(int status) {
|
private int deviceStatusToDictStatus(int status) {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 0:
|
case 0:
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
## 表字段对应输入参数
|
## 表字段对应输入参数
|
||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
|
输入.workorder_id TYPEAS f_string
|
||||||
|
|
||||||
[临时表]
|
[临时表]
|
||||||
--这边列出来的临时表就会在运行期动态创建
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
@@ -206,7 +207,7 @@
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
IF 输入.flag = "9"
|
IF 输入.flag = "9"
|
||||||
QEURY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
wo.workorder_code,
|
wo.workorder_code,
|
||||||
d.device_name,
|
d.device_name,
|
||||||
@@ -235,3 +236,70 @@
|
|||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "10"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
wo.workorder_id,
|
||||||
|
wo.workorder_code,
|
||||||
|
mb.material_name,
|
||||||
|
wo.gg,
|
||||||
|
wo.plan_qty,
|
||||||
|
wo.plan_weight,
|
||||||
|
mb.dd,
|
||||||
|
wo.kh,
|
||||||
|
wo.vehicle_type,
|
||||||
|
dd.label AS vehicle_type_name,
|
||||||
|
mb.material_id,
|
||||||
|
wo.order_status,
|
||||||
|
wo.create_time
|
||||||
|
FROM
|
||||||
|
pdm_bd_workorder wo
|
||||||
|
LEFT JOIN md_me_materialbase mb ON wo.material_id = mb.material_id
|
||||||
|
LEFT JOIN sys_dict_detail dd ON wo.vehicle_type = dd.`value` AND dd.`name` = 'vehicle_type'
|
||||||
|
WHERE
|
||||||
|
wo.is_delete = '0'
|
||||||
|
AND wo.device_code = 'FJCDJXS01'
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
vd.update_time,
|
||||||
|
vd.vehicle_code,
|
||||||
|
vd.qty,
|
||||||
|
vd.weight,
|
||||||
|
mb.material_name
|
||||||
|
FROM
|
||||||
|
st_ivt_vehicle_detail vd
|
||||||
|
LEFT JOIN md_me_materialbase mb ON vd.material_id = mb.material_id
|
||||||
|
WHERE
|
||||||
|
vd.is_delete = '1'
|
||||||
|
AND vd.vehicle_type = '2'
|
||||||
|
AND vd.out_kiln_time <> ''
|
||||||
|
AND TO_DAYS(vd.update_time) = TO_DAYS(NOW())
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "12"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
vd.create_time,
|
||||||
|
vd.vehicle_code,
|
||||||
|
vd.qty,
|
||||||
|
vd.weight,
|
||||||
|
mb.material_name
|
||||||
|
FROM
|
||||||
|
st_ivt_vehicle_detail vd
|
||||||
|
LEFT JOIN md_me_materialbase mb ON vd.material_id = mb.material_id
|
||||||
|
LEFT JOIN pdm_bd_workorder wo ON vd.workorder_id = wo.workorder_id
|
||||||
|
WHERE
|
||||||
|
vd.is_delete = '0'
|
||||||
|
AND wo.device_code = 'FJCDJXS01'
|
||||||
|
AND TO_DAYS(vd.create_time) = TO_DAYS(NOW())
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
@@ -463,7 +463,7 @@ public class WorkorderServiceImpl implements WorkordeService {
|
|||||||
int qualifiedQty = row.getIntValue("qualified_qty");
|
int qualifiedQty = row.getIntValue("qualified_qty");
|
||||||
int unqualifiedQty = row.getIntValue("unqualified_qty");
|
int unqualifiedQty = row.getIntValue("unqualified_qty");
|
||||||
double weight = row.getDoubleValue("weight");
|
double weight = row.getDoubleValue("weight");
|
||||||
this.reportWorkOrderDaily(workOrderId, qty, qualifiedQty, unqualifiedQty, weight, weight / qty);
|
this.reportWorkOrderDaily(workOrderId, qty, qualifiedQty, unqualifiedQty, weight, qty == 0 ? qty : weight / qty);
|
||||||
|
|
||||||
// 汇总
|
// 汇总
|
||||||
JSONArray workOrderDailyList = WQLObject.getWQLObject("pdm_bd_work_order_daily").query("workorder_id = " + workOrderId).getResultJSONArray(0);
|
JSONArray workOrderDailyList = WQLObject.getWQLObject("pdm_bd_work_order_daily").query("workorder_id = " + workOrderId).getResultJSONArray(0);
|
||||||
|
|||||||
Reference in New Issue
Block a user