fix: 混碾<>压机

This commit is contained in:
2024-03-13 14:17:06 +08:00
parent bc48565000
commit 7404047f8f
7 changed files with 114 additions and 24 deletions

View File

@@ -10,9 +10,22 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public enum PointStatus {
/**
* 空位
*/
EMPTY("空位", "1"),
/**
* 空载具
*/
EMPTY_VEHICLE("空载具", "2"),
HAS_GOODS("有箱有料", "3");
/**
* 有箱有料
*/
HAS_GOODS("有箱有料", "3"),
/**
* 等待
*/
WAITING("等待", "4");
private final String label;

View File

@@ -103,6 +103,11 @@ public class HLCallEmptyTask extends AbstractAcsTask {
point.put("task_code", task.getString("task_code"));
TaskUtils.addAutoUpdateColum(point);
point_table.update(point);
} else {
task.put("task_status", TaskStatus.CREATED.value());
task.put("remark", "任务转为等待压机空盅直接下来");
TaskUtils.addAutoUpdateColum(task);
task_table.update(task);
}
}
}

View File

@@ -90,7 +90,14 @@ public class YZCallMaterialTask extends AbstractAcsTask {
return task.getString("task_code");
} else {
throw new BadRequestException("[" + point.get("point_code") + "] 的叫料任务未找到起点!");
// update: 设置点位状态为等待(4)设置所需要的参数到remark中materialId
point.put("point_status", PointStatus.WAITING.value());
point.put("remark", workorder.getString("material_id"));
TaskUtils.addFormUpdateColum(point, form);
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
point_table.update(point);
return null;
// throw new BadRequestException("[" + point.get("point_code") + "] 的叫料任务未找到起点!");
}
}

View File

@@ -93,23 +93,50 @@ public class YZSendEmptyTask extends AbstractAcsTask {
for (int i = 0; i < tasks.size(); i++) {
JSONObject task = tasks.getJSONObject(i);
JSONObject point = WQL
// 获取混料叫空盘的半条任务, 补齐任务信息, 并且取消本条任务
// org.nl.wms.sch.task.call.empty.HLCallEmptyTask
// TaskStatus.CREATED.value()
JSONObject task2 = WQL
.getWO("SEND_EMPTY_TASK")
.addParam("flag", "1")
.addParam("flag", "3")
.process()
.uniqueResult(0);
if (ObjectUtil.isNotEmpty(task2)) {
JSONObject jsonObject = point_table.query("point_code = '" + task.getString("point_code1") + "'").uniqueResult(0);
jsonObject.put("lock_type", LockType.TASK_LOCKED.value());
jsonObject.put("task_code", task2.getString("task_code"));
TaskUtils.addAutoUpdateColum(jsonObject);
point_table.update(jsonObject);
if (ObjectUtil.isNotEmpty(point)) {
task.put("task_status", TaskStatus.START_AND_END.value());
task.put("point_code2", point.getString("point_code"));
task.put("remark", "");
task2.put("task_status", TaskStatus.START_AND_END.value());
task2.put("point_code2", task.getString("point_code1"));
task2.put("remark", "");
TaskUtils.addAutoUpdateColum(task2);
task_table.update(task2);
task.put("task_status", TaskStatus.CANCELLED.value());
task.put("remark", "任务以转移致混料叫空盅任务编码:" + task2.getString("task_code"));
TaskUtils.addAutoUpdateColum(task);
task_table.update(task);
} else {
JSONObject point = WQL
.getWO("SEND_EMPTY_TASK")
.addParam("flag", "1")
.process()
.uniqueResult(0);
point.put("lock_type", LockType.TASK_LOCKED.value());
point.put("task_code", task.getString("task_code"));
TaskUtils.addAutoUpdateColum(point);
point_table.update(point);
if (ObjectUtil.isNotEmpty(point)) {
task.put("task_status", TaskStatus.START_AND_END.value());
task.put("point_code2", point.getString("point_code"));
task.put("remark", "");
TaskUtils.addAutoUpdateColum(task);
task_table.update(task);
point.put("lock_type", LockType.TASK_LOCKED.value());
point.put("task_code", task.getString("task_code"));
TaskUtils.addAutoUpdateColum(point);
point_table.update(point);
}
}
}
}

View File

@@ -67,3 +67,14 @@
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
*
FROM
`sch_base_task` t
WHERE t.handle_class = 'org.nl.wms.sch.task.call.empty.HLCallEmptyTask'
AND t.task_status = '1'
ENDSELECT
ENDQUERY
ENDIF

View File

@@ -13,7 +13,6 @@ import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.wms.basedata.eum.TrueOrFalse;
import org.nl.wms.sch.manage.*;
import org.nl.wms.sch.task.util.TaskUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
/**
@@ -85,7 +84,7 @@ public class HLSendMaterialTask extends AbstractAcsTask {
JSONArray tasks = task_table
.query("is_delete = '0' AND task_status = '" + TaskStatus.SURE_START.value() + "' AND handle_class = '" + HLSendMaterialTask.class.getName() + "'", "priority DESC, create_time ASC")
.getResultJSONArray(0);
boolean flag = true;
if (ObjectUtil.isNotEmpty(tasks)) {
WQLObject point_table = WQLObject.getWQLObject("sch_base_point");
@@ -103,33 +102,43 @@ public class HLSendMaterialTask extends AbstractAcsTask {
.addParam("material_id", task.getString("material_id"))
.process()
.uniqueResult(0);
flag = false;
} else if ("2".equals(startPointType)) {
// 通过工单的关联压机送到对应位置,如果不满足就走以下流程
// 判断压机上是否有点位状态是4物料对应
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
.addParam("flag", "8")
.addParam("device_code", startPoint.getString("device_code"))
.addParam("flag", "10")
.addParam("material_id", task.getString("material_id"))
.process()
.uniqueResult(0);
if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) {
// 先去普通压机困料货位
flag = false;
// 通过工单的关联压机送到对应位置,如果不满足就走以下流程
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
.addParam("flag", "4")
.addParam("material_id", task.getString("material_id"))
.addParam("flag", "8")
.addParam("device_code", startPoint.getString("device_code"))
.process()
.uniqueResult(0);
if (ObjectUtil.isEmpty(nextPoint)) {
// 公共货位
if (ObjectUtil.isEmpty(nextPoint) || ObjectUtil.isEmpty(nextPoint.get("point_code"))) {
// 先去普通压机困料货位
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
.addParam("flag", "5")
.addParam("flag", "4")
.addParam("material_id", task.getString("material_id"))
.process()
.uniqueResult(0);
if (ObjectUtil.isEmpty(nextPoint)) {
// 公共货位
nextPoint = WQL.getWO("SEND_MATERIAL_TASK")
.addParam("flag", "5")
.process()
.uniqueResult(0);
}
}
}
}
if (ObjectUtil.isNotEmpty(nextPoint)) {
task.put("task_status", TaskStatus.START_AND_END.value());
task.put("point_code2", nextPoint.getString("point_code"));
task.put("remark", "");
task.put("remark", flag ? "直接送到布料机" : "");
TaskUtils.addAutoUpdateColum(task);
task_table.update(task);
@@ -251,6 +260,7 @@ public class HLSendMaterialTask extends AbstractAcsTask {
JSONObject point2 = new JSONObject();
point2.put("lock_type", LockType.UNLOCKED.value());
point2.put("task_code", "");
point2.put("remark", "");
point2.put("vehicle_type", task.getString("vehicle_type"));
point2.put("vehicle_code", task.getString("vehicle_code"));
point2.put("vd_id", task.getString("group_id"));

View File

@@ -187,3 +187,20 @@
ENDSELECT
ENDPAGEQUERY
ENDIF
IF 输入.flag = "10"
QUERY
SELECT
p.*
FROM
sch_base_point p
WHERE
p.is_used = '1'
AND p.lock_type = '1'
AND p.point_status = '4'
AND p.region_code = 'YZ'
AND p.point_type = '2'
AND p.remark = 输入.material_id
ENDSELECT
ENDQUERY
ENDIF