|
|
|
|
@@ -577,7 +577,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -634,7 +634,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -691,7 +691,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -875,7 +875,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -946,7 +946,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -1109,7 +1109,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -1257,9 +1257,9 @@ public class DashboardService {
|
|
|
|
|
// 总量----------------------------------------------------------------------------------------------------------
|
|
|
|
|
JSONObject total = new JSONObject();
|
|
|
|
|
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("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("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("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();
|
|
|
|
|
@@ -1281,10 +1281,10 @@ public class DashboardService {
|
|
|
|
|
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();
|
|
|
|
|
@@ -1463,7 +1463,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -1510,7 +1510,7 @@ public class DashboardService {
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
rowDatum.put("key", "数量");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty")+ "块");
|
|
|
|
|
rowDatum.put("value", datum.getIntValue("qty") + "块");
|
|
|
|
|
rowData.add(rowDatum);
|
|
|
|
|
|
|
|
|
|
rowDatum = new JSONObject();
|
|
|
|
|
@@ -1581,6 +1581,117 @@ public class DashboardService {
|
|
|
|
|
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) {
|
|
|
|
|
switch (status) {
|
|
|
|
|
case 0:
|
|
|
|
|
|