feat: 自动化混碾<>压制
This commit is contained in:
@@ -0,0 +1,42 @@
|
|||||||
|
package org.nl.wms.sch.manage;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.wql.WQL;
|
||||||
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.modules.wql.core.engine.object.WO;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lyd
|
||||||
|
* @Description: 布料机自动叫料
|
||||||
|
* @Date: 2024/3/28
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component("autoCallMaterial")
|
||||||
|
public class AutoCallMaterial {
|
||||||
|
public void run() {
|
||||||
|
// 获取所有布料机点位:状态不等于'4',区域'YZ',类型'2'
|
||||||
|
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||||
|
WO manageQuery = WQL.getWO("MANAGE_QUERY");
|
||||||
|
JSONArray objects = manageQuery.addParam("flag", "4").process().getResultJSONArray(0);
|
||||||
|
if (objects.size() == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String now = DateUtil.now();
|
||||||
|
// 标记并存储
|
||||||
|
for (int i = 0; i < objects.size(); i++) {
|
||||||
|
JSONObject object = objects.getJSONObject(i);
|
||||||
|
object.put("point_status", "4");
|
||||||
|
object.put("update_optname", "定时调度");
|
||||||
|
object.put("update_time", now);
|
||||||
|
pointTable.update(object);
|
||||||
|
}
|
||||||
|
log.info("自动叫料完毕,更新布料机数量:{},更新参数:{}", objects.size(), objects);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -85,3 +85,17 @@
|
|||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
DISTINCT p.*
|
||||||
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
LEFT JOIN pdm_bd_workorder w ON w.device_code = p.device_code AND w.order_status < '4'
|
||||||
|
WHERE p.region_code = 'YZ'
|
||||||
|
AND p.point_type = '2'
|
||||||
|
AND p.point_status <> '4'
|
||||||
|
AND w.workorder_id IS NOT NULL
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
@@ -94,7 +94,8 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
JSONObject startPoint = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0);
|
JSONObject startPoint = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0);
|
||||||
JSONObject nextPoint = null;
|
JSONObject nextPoint = null;
|
||||||
|
|
||||||
// 如果是高速混料机下料位就只能去液压机困料货位,如果不是高速混料机下料位优先去普通压机困料货位,普通压机困料货位没有位置再去公用困料货位。
|
// 如果是高速混料机下料位就只能去液压机困料货位,如果不是高速混料机下料位优先去普通压机困料货位,
|
||||||
|
// 普通压机困料货位没有位置再去公用困料货位。
|
||||||
String startPointType = startPoint.getString("point_type");
|
String startPointType = startPoint.getString("point_type");
|
||||||
if ("1".equals(startPointType)) {
|
if ("1".equals(startPointType)) {
|
||||||
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
@@ -104,18 +105,34 @@ public class HLSendMaterialTask extends AbstractAcsTask {
|
|||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
flag = false;
|
flag = false;
|
||||||
} else if ("2".equals(startPointType)) {
|
} else if ("2".equals(startPointType)) {
|
||||||
// 判断压机上是否有点位状态是4,物料对应
|
// 获取混碾工单,用于判断是否存在指定压机
|
||||||
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
JSONObject object = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
.addParam("flag", "10")
|
.addParam("flag", "11")
|
||||||
.addParam("material_id", task.getString("material_id"))
|
.addParam("point_code", task.getString("point_code1"))
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) {
|
if (ObjectUtil.isNotEmpty(object.getString("associated_device"))) {
|
||||||
|
// 如果有关联压机(状态:4,锁定:1),直接送到对应的布料机上
|
||||||
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
|
.addParam("flag", "12")
|
||||||
|
.addParam("point_code", object.getString("associated_device"))
|
||||||
|
.process()
|
||||||
|
.uniqueResult(0);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||||
|
// 判断压机上是否有点位状态是4,物料对应
|
||||||
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
|
.addParam("flag", "10")
|
||||||
|
.addParam("material_id", task.getString("material_id"))
|
||||||
|
.process()
|
||||||
|
.uniqueResult(0);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||||
flag = false;
|
flag = false;
|
||||||
// 通过工单的关联压机送到对应位置,如果不满足就走以下流程
|
// 通过工单的关联压机送到对应位置,如果不满足就走以下流程
|
||||||
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
|
||||||
.addParam("flag", "8")
|
.addParam("flag", "8")
|
||||||
.addParam("device_code", startPoint.getString("device_code"))
|
.addParam("point_code", startPoint.getString("device_code"))
|
||||||
.process()
|
.process()
|
||||||
.uniqueResult(0);
|
.uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) {
|
if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) {
|
||||||
|
|||||||
@@ -170,7 +170,7 @@
|
|||||||
`pdm_bd_workorder` wo
|
`pdm_bd_workorder` wo
|
||||||
LEFT JOIN sch_base_point p ON p.device_code = wo.associated_device AND p.region_code = 'KLHJ'
|
LEFT JOIN sch_base_point p ON p.device_code = wo.associated_device AND p.region_code = 'KLHJ'
|
||||||
AND p.point_type = '3' AND p.point_status = '1' AND p.lock_type = '1' AND p.is_used = '1'
|
AND p.point_type = '3' AND p.point_status = '1' AND p.lock_type = '1' AND p.is_used = '1'
|
||||||
WHERE wo.order_status = '3' AND wo.device_code = 输入.device_code
|
WHERE wo.order_status = '3' AND wo.device_code = 输入.point_code
|
||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -191,10 +191,10 @@
|
|||||||
IF 输入.flag = "10"
|
IF 输入.flag = "10"
|
||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
p.*
|
DISTINCT p.*
|
||||||
FROM
|
FROM
|
||||||
sch_base_point p
|
sch_base_point p
|
||||||
LEFT JOIN pdm_bd_workorder w ON p.device_code = w.device_code AND w.order_status = '3'
|
LEFT JOIN pdm_bd_workorder w ON p.device_code = w.device_code AND w.order_status < '4'
|
||||||
WHERE
|
WHERE
|
||||||
p.is_used = '1'
|
p.is_used = '1'
|
||||||
AND p.lock_type = '1'
|
AND p.lock_type = '1'
|
||||||
@@ -205,3 +205,28 @@
|
|||||||
ENDSELECT
|
ENDSELECT
|
||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
IF 输入.flag = "11"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
wo.*
|
||||||
|
FROM
|
||||||
|
`pdm_bd_workorder` wo
|
||||||
|
LEFT JOIN sch_base_point p ON p.point_code = 输入.point_code
|
||||||
|
WHERE wo.order_status = '3' AND wo.device_code = p.device_code
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
IF 输入.flag = "12"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
p.*
|
||||||
|
FROM
|
||||||
|
`sch_base_point` p
|
||||||
|
WHERE p.region_code = 'YZ'
|
||||||
|
AND p.point_type = '2'
|
||||||
|
AND p.point_status = '4'
|
||||||
|
AND p.lock_type = '1'
|
||||||
|
AND p.device_code = 输入.point_code
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|||||||
Reference in New Issue
Block a user