add 自动更新工单生产数量
This commit is contained in:
@@ -0,0 +1,80 @@
|
|||||||
|
package org.nl.wms.sch.manage;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.wql.WQL;
|
||||||
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||||
|
import org.nl.wms.sch.task.util.TaskUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhangjiangwei
|
||||||
|
* @date 2023/07/04 09:56
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Component("autoUpdateWorkOrder")
|
||||||
|
public class AutoUpdateWorkOrder {
|
||||||
|
|
||||||
|
private final WmsToAcsService wmsToAcsService;
|
||||||
|
|
||||||
|
@SneakyThrows
|
||||||
|
public void run() {
|
||||||
|
JSONArray workOrders = WQL.getWO("MANAGE_QUERY").addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(workOrders)) {
|
||||||
|
List<Object> list = workOrders.stream().map(o -> {
|
||||||
|
JSONObject workOrder = (JSONObject) o;
|
||||||
|
JSONObject newData = new JSONObject();
|
||||||
|
newData.put("workorder_id", workOrder.getString("workorder_id"));
|
||||||
|
newData.put("region_code", workOrder.getString("region_code"));
|
||||||
|
newData.put("device_code", workOrder.getString("device_code"));
|
||||||
|
return (Object) newData;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
JSONObject result = wmsToAcsService.getDeviceStatus(new JSONArray(list));
|
||||||
|
WQLObject workOrderTable = WQLObject.getWQLObject("pdm_bd_workorder");
|
||||||
|
|
||||||
|
if ("200".equals(result.getString("status"))) {
|
||||||
|
JSONArray data = result.getJSONArray("data");
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(data)) {
|
||||||
|
JSONArray yzData = new JSONArray(data.stream().filter(o -> Region.YZ.value().equals(((JSONObject) o).getString("region_code"))).collect(Collectors.toList()));
|
||||||
|
JSONObject yzWorkOrderUpdate = new JSONObject();
|
||||||
|
TaskUtils.addAutoUpdateColum(yzWorkOrderUpdate);
|
||||||
|
for (int i = 0; i < yzData.size(); i++) {
|
||||||
|
JSONObject newData = yzData.getJSONObject(i);
|
||||||
|
yzWorkOrderUpdate.put("real_qty", newData.getString("reql_qty"));
|
||||||
|
yzWorkOrderUpdate.put("qualified_qty", newData.getString("qualified"));
|
||||||
|
yzWorkOrderUpdate.put("unqualified_qty", newData.getString("unqualified"));
|
||||||
|
workOrderTable.update(yzWorkOrderUpdate, "workorder_id = " + newData.getString("workorder_id"));
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray fjData = new JSONArray(data.stream().filter(o -> Region.FJ.value().equals(((JSONObject) o).getString("region_code"))).collect(Collectors.toList()));
|
||||||
|
JSONObject fjWorkOrderUpdate = new JSONObject();
|
||||||
|
TaskUtils.addAutoUpdateColum(fjWorkOrderUpdate);
|
||||||
|
for (int i = 0; i < fjData.size(); i++) {
|
||||||
|
JSONObject newData = fjData.getJSONObject(i);
|
||||||
|
yzWorkOrderUpdate.put("real_qty", newData.getString("reql_qty"));
|
||||||
|
workOrderTable.update(yzWorkOrderUpdate, "workorder_id = " + newData.getString("workorder_id"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONArray yield = WQL.getWO("MANAGE_QUERY").addParam("flag", "5").process().getResultJSONArray(0);
|
||||||
|
WQLObject materialTable = WQLObject.getWQLObject("md_me_materialbase");
|
||||||
|
for (int i = 0; i < yield.size(); i++) {
|
||||||
|
JSONObject deviceYield = yield.getJSONObject(i);
|
||||||
|
deviceYield.put("surplus_aux_qty", Math.max(deviceYield.getIntValue("aux_qty") - deviceYield.getIntValue("current_aux_qty"), 0));
|
||||||
|
materialTable.update(deviceYield);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -85,3 +85,39 @@
|
|||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
workorder.*,
|
||||||
|
device.region_code
|
||||||
|
FROM
|
||||||
|
pdm_bd_workorder workorder
|
||||||
|
LEFT JOIN pdm_bi_device device ON workorder.device_id = device.device_id
|
||||||
|
WHERE
|
||||||
|
workorder.is_delete = '0'
|
||||||
|
AND workorder.order_status = '3'
|
||||||
|
AND device.region_code IN ('YZ', 'FJ')
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "5"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
workorder.material_id,
|
||||||
|
mb.aux_qty,
|
||||||
|
SUM(workorder.qualified_qty) AS current_aux_qty
|
||||||
|
FROM
|
||||||
|
pdm_bd_workorder workorder
|
||||||
|
LEFT JOIN pdm_bi_device device ON workorder.device_id = device.device_id
|
||||||
|
LEFT JOIN md_me_materialbase mb ON workorder.material_id = mb.material_id
|
||||||
|
WHERE
|
||||||
|
workorder.is_delete = '0'
|
||||||
|
AND workorder.order_status = '5'
|
||||||
|
AND device.region_code = 'YZ'
|
||||||
|
GROUP BY
|
||||||
|
workorder.material_id
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
@@ -324,19 +324,6 @@ public class FJSendMaterialTask extends AbstractAcsTask {
|
|||||||
param.add(info);
|
param.add(info);
|
||||||
wmsToAcsService.writeVehicle(param);
|
wmsToAcsService.writeVehicle(param);
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject workorder = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "7")
|
|
||||||
.addParam("vd_id", task.getString("group_id"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
JSONObject workorder_update = new JSONObject();
|
|
||||||
workorder_update.put("real_qty", workorder.getIntValue("real_qty") + workorder.getIntValue("qty"));
|
|
||||||
workorder_update.put("qualified_qty", workorder.getIntValue("qualified_qty") + workorder.getIntValue("qty"));
|
|
||||||
TaskUtils.addACSUpdateColum(workorder_update);
|
|
||||||
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder_update, "workorder_id = " + workorder.getString("workorder_id"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -231,19 +231,6 @@ public class YZSendMaterialTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
point_table.update(point2, "point_code = '" + point_code2 + "'");
|
point_table.update(point2, "point_code = '" + point_code2 + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject workorder = WQL
|
|
||||||
.getWO("SEND_MATERIAL_TASK")
|
|
||||||
.addParam("flag", "7")
|
|
||||||
.addParam("vd_id", task.getString("group_id"))
|
|
||||||
.process()
|
|
||||||
.uniqueResult(0);
|
|
||||||
|
|
||||||
JSONObject workorder_update = new JSONObject();
|
|
||||||
workorder_update.put("real_qty", workorder.getIntValue("real_qty") + workorder.getIntValue("qty"));
|
|
||||||
workorder_update.put("qualified_qty", workorder.getIntValue("qualified_qty") + workorder.getIntValue("qty"));
|
|
||||||
TaskUtils.addACSUpdateColum(workorder_update);
|
|
||||||
WQLObject.getWQLObject("pdm_bd_workorder").update(workorder_update, "workorder_id = " + workorder.getString("workorder_id"));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: prod
|
active: dev
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -181,6 +181,7 @@
|
|||||||
ref="table"
|
ref="table"
|
||||||
v-loading="crud.loading"
|
v-loading="crud.loading"
|
||||||
:data="crud.data"
|
:data="crud.data"
|
||||||
|
:cell-style="cellStyle"
|
||||||
size="mini"
|
size="mini"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
@selection-change="crud.selectionChangeHandler"
|
@selection-change="crud.selectionChangeHandler"
|
||||||
@@ -418,6 +419,15 @@ export default {
|
|||||||
}, 100)
|
}, 100)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
cellStyle({ row, column }) {
|
||||||
|
if (column.property === 'surplus_aux_qty') {
|
||||||
|
const auxQty = row.aux_qty
|
||||||
|
const surplusAuxQty = row.surplus_aux_qty
|
||||||
|
if (surplusAuxQty <= auxQty * 0.1) {
|
||||||
|
return 'background: red'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user