更新任务状态变化逻辑
This commit is contained in:
@@ -166,7 +166,7 @@ public class TaskFeedbackServiceImpl implements TaskFeedbackService {
|
||||
TaskFeedbackDto dto = this.findById(id);
|
||||
TaskDto entity = taskService.findById(dto.getTask_id());
|
||||
JSONObject feed_jo = new JSONObject();
|
||||
feed_jo.put("ext_task_id", entity.getTask_id());
|
||||
feed_jo.put("task_id", entity.getTask_id());
|
||||
feed_jo.put("task_code", entity.getTask_code());
|
||||
feed_jo.put("task_status", entity.getTask_status());
|
||||
JSONArray ja = new JSONArray();
|
||||
|
||||
@@ -542,7 +542,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
||||
if (!StrUtil.startWith(dto.getTask_code(), "-") && StrUtil.equals(hasWms, "1")) {
|
||||
TaskFeedbackDto feefbackdto = taskFeedbackService.findByCode(entity.getTask_code());
|
||||
JSONObject feed_jo = new JSONObject();
|
||||
feed_jo.put("ext_task_id", entity.getTask_id());
|
||||
feed_jo.put("task_id", entity.getTask_id());
|
||||
feed_jo.put("task_code", dto.getTask_code());
|
||||
feed_jo.put("task_status", dto.getTask_status());
|
||||
JSONArray ja = new JSONArray();
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
sch_base_point
|
||||
WHERE
|
||||
is_used = '1'
|
||||
AND lock_type = '1'
|
||||
AND is_delete = '0'
|
||||
OPTION 输入.region_id <> ""
|
||||
region_id = 输入.region_id
|
||||
ENDOPTION
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.sch.task;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -12,8 +11,6 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.sch.base.point.LockType;
|
||||
import org.nl.wms.sch.base.point.PointStatus;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
@@ -24,7 +21,6 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 纽迪希亚3叫空载具任务
|
||||
@@ -68,17 +64,17 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
this.cancel(task.getString("task_id"));
|
||||
this.cancelTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.EXECUTING.getCode())) {
|
||||
task.put("task", TaskStatus.EXECUTING.getCode());
|
||||
task.put("task_status", TaskStatus.EXECUTING.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
taskTable.update(task);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.FINISHED.getCode())) {
|
||||
this.finishTask(task, TaskFinishedType.AUTO);
|
||||
this.finishTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,7 +130,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
|
||||
this.finishTask(task, TaskFinishedType.MANUAL);
|
||||
this.finishTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -145,48 +141,15 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONObject task = taskTable
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("task_id = " + taskId)
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成的任务不能取消");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.ISSUE.getCode())) {
|
||||
JSONArray cancelTaskArr = new JSONArray();
|
||||
cancelTaskArr.add(task);
|
||||
Map<String, Object> acsResult = SpringContextHolder.getBean(WmsToAcsService.class).cancelToAcs(cancelTaskArr);
|
||||
if (!MapUtil.getStr(acsResult, "status").equals("200")) {
|
||||
throw new BadRequestException(MapUtil.getStr(acsResult, "message"));
|
||||
}
|
||||
}
|
||||
|
||||
taskTable.delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
this.cancelTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -224,19 +187,28 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) {
|
||||
public void finishTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())
|
||||
&& taskFinishedType.equals(TaskFinishedType.MANUAL)) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL) {
|
||||
if (Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发的任务需要从ACS完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
}
|
||||
}
|
||||
|
||||
task.put("finished_type", taskFinishedType.getCode());
|
||||
task.put("finished_type", taskOperationType.getCode());
|
||||
task.put("task_status", TaskStatus.FINISHED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(task);
|
||||
}
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
@@ -250,13 +222,65 @@ public class CallEmptyVehicleTask extends AbstractAcsTask {
|
||||
nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode());
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
nextPoint.put("vehicle_code", startPoint.getString("vehicle_code"));
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
|
||||
startPoint.put("point_status", PointStatus.EMPTY.getCode());
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
startPoint.put("vehicle_code", "");
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL
|
||||
&& Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发任务需要从ACS取消");
|
||||
}
|
||||
|
||||
WQLObject.getWQLObject("sch_base_task").delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
package org.nl.wms.sch.task;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.sch.base.point.LockType;
|
||||
import org.nl.wms.sch.base.point.PointStatus;
|
||||
import org.nl.wms.sch.base.point.PointType;
|
||||
@@ -24,7 +20,6 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 纽迪希亚3呼叫原料出库任务
|
||||
@@ -70,17 +65,17 @@ public class CallMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
this.cancel(task.getString("task_id"));
|
||||
this.cancelTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.EXECUTING.getCode())) {
|
||||
task.put("task", TaskStatus.EXECUTING.getCode());
|
||||
task.put("task_status", TaskStatus.EXECUTING.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
taskTable.update(task);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.FINISHED.getCode())) {
|
||||
this.finishTask(task, TaskFinishedType.AUTO);
|
||||
this.finishTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +142,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
|
||||
this.finishTask(task, TaskFinishedType.MANUAL);
|
||||
this.finishTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,64 +152,40 @@ public class CallMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONObject task = taskTable
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("task_id = " + taskId)
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成的任务不能取消");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.ISSUE.getCode())) {
|
||||
JSONArray cancelTaskArr = new JSONArray();
|
||||
cancelTaskArr.add(task);
|
||||
Map<String, Object> acsResult = SpringContextHolder.getBean(WmsToAcsService.class).cancelToAcs(cancelTaskArr);
|
||||
if (!MapUtil.getStr(acsResult, "status").equals("200")) {
|
||||
throw new BadRequestException(MapUtil.getStr(acsResult, "message"));
|
||||
}
|
||||
}
|
||||
|
||||
taskTable.delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
this.cancelTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) {
|
||||
public void finishTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())
|
||||
&& taskFinishedType.equals(TaskFinishedType.MANUAL)) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL) {
|
||||
if (Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发的任务需要从ACS完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
}
|
||||
}
|
||||
|
||||
task.put("finished_type", taskFinishedType.getCode());
|
||||
task.put("finished_type", taskOperationType.getCode());
|
||||
task.put("task_status", TaskStatus.FINISHED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(task);
|
||||
}
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
@@ -226,24 +197,72 @@ public class CallMaterialTask extends AbstractAcsTask {
|
||||
.uniqueResult(0);
|
||||
|
||||
if (StrUtil.equals(startPoint.getString("point_type"), PointType.STORAGE_LOCATION.getCode())) {
|
||||
JSONObject vehicle = WQLObject
|
||||
.getWQLObject("md_pb_vehicle")
|
||||
.query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
|
||||
WQLObject.getWQLObject("st_ivt_structivt").delete("point_id = " + startPoint.getString("point_id"));
|
||||
}
|
||||
|
||||
nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode());
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
nextPoint.put("vehicle_code", startPoint.getString("vehicle_code"));
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
|
||||
startPoint.put("point_status", PointStatus.EMPTY.getCode());
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
startPoint.put("vehicle_code", "");
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL
|
||||
&& Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发任务需要从ACS取消");
|
||||
}
|
||||
|
||||
WQLObject.getWQLObject("sch_base_task").delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,17 +69,17 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
this.cancel(task.getString("task_id"));
|
||||
this.cancelTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.EXECUTING.getCode())) {
|
||||
task.put("task", TaskStatus.EXECUTING.getCode());
|
||||
task.put("task_status", TaskStatus.EXECUTING.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
taskTable.update(task);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.FINISHED.getCode())) {
|
||||
this.finishTask(task, TaskFinishedType.AUTO);
|
||||
this.finishTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
|
||||
this.finishTask(task, TaskFinishedType.MANUAL);
|
||||
this.finishTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,48 +147,15 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONObject task = taskTable
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("task_id = " + taskId)
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成的任务不能取消");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.ISSUE.getCode())) {
|
||||
JSONArray cancelTaskArr = new JSONArray();
|
||||
cancelTaskArr.add(task);
|
||||
Map<String, Object> acsResult = SpringContextHolder.getBean(WmsToAcsService.class).cancelToAcs(cancelTaskArr);
|
||||
if (!MapUtil.getStr(acsResult, "status").equals("200")) {
|
||||
throw new BadRequestException(MapUtil.getStr(acsResult, "message"));
|
||||
}
|
||||
}
|
||||
|
||||
taskTable.delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
this.cancelTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -228,19 +195,28 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) {
|
||||
public void finishTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())
|
||||
&& taskFinishedType.equals(TaskFinishedType.MANUAL)) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL) {
|
||||
if (Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发的任务需要从ACS完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
}
|
||||
}
|
||||
|
||||
task.put("finished_type", taskFinishedType.getCode());
|
||||
task.put("finished_type", taskOperationType.getCode());
|
||||
task.put("task_status", TaskStatus.FINISHED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(task);
|
||||
}
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
@@ -254,13 +230,65 @@ public class SendEmptyVehicleTask extends AbstractAcsTask {
|
||||
nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode());
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
nextPoint.put("vehicle_code", startPoint.getString("vehicle_code"));
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
|
||||
startPoint.put("point_status", PointStatus.EMPTY.getCode());
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
startPoint.put("vehicle_code", "");
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL
|
||||
&& Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发任务需要从ACS取消");
|
||||
}
|
||||
|
||||
WQLObject.getWQLObject("sch_base_task").delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package org.nl.wms.sch.task;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@@ -12,8 +11,7 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.md.pb.VehicleStatus;
|
||||
import org.nl.wms.sch.base.point.LockType;
|
||||
import org.nl.wms.sch.base.point.PointStatus;
|
||||
import org.nl.wms.sch.base.point.PointType;
|
||||
@@ -25,7 +23,6 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 纽迪希亚3送满料车任务
|
||||
@@ -52,7 +49,7 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
|
||||
/**
|
||||
* @param taskJSON 代表一条任务对象
|
||||
* @param status 代表wcs任务完成状态: //0:acs,取消,:执行中,2:完成
|
||||
* @param status 代表wcs任务完成状态: //0:acs,取消,:执行中,2:完成
|
||||
* @discription wcs请求wms任务完成状态反馈接口, 比如agv从a点往b点走。生成任务的时候绑定b的物料信息,任务完成的时候,清除a的物料信息
|
||||
* @author ldjun
|
||||
* @created 2019年4月17日 下午8:51:50
|
||||
@@ -70,23 +67,22 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
this.cancel(task.getString("task_id"));
|
||||
this.cancelTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.EXECUTING.getCode())) {
|
||||
task.put("task", TaskStatus.EXECUTING.getCode());
|
||||
task.put("task_status", TaskStatus.EXECUTING.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
taskTable.update(task);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.FINISHED.getCode())) {
|
||||
this.finishTask(task, TaskFinishedType.AUTO);
|
||||
this.finishTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param param 创建任务需要的参数
|
||||
*
|
||||
* @return 返回任务标识
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -137,7 +133,7 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
|
||||
this.finishTask(task, TaskFinishedType.MANUAL);
|
||||
this.finishTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,52 +144,18 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONObject task = taskTable
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("task_id = " + taskId)
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成的任务不能取消");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.ISSUE.getCode())) {
|
||||
JSONArray cancelTaskArr = new JSONArray();
|
||||
cancelTaskArr.add(task);
|
||||
Map<String, Object> acsResult = SpringContextHolder.getBean(WmsToAcsService.class).cancelToAcs(cancelTaskArr);
|
||||
if (!MapUtil.getStr(acsResult, "status").equals("200")) {
|
||||
throw new BadRequestException(MapUtil.getStr(acsResult, "message"));
|
||||
}
|
||||
}
|
||||
|
||||
taskTable.delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
this.cancelTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @discription 确定下一点位
|
||||
* @author ldjun
|
||||
* @created 2020年6月12日 下午6:01:06
|
||||
@@ -229,19 +191,28 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) {
|
||||
public void finishTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())
|
||||
&& taskFinishedType.equals(TaskFinishedType.MANUAL)) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL) {
|
||||
if (Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发的任务需要从ACS完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
}
|
||||
}
|
||||
|
||||
task.put("finished_type", taskFinishedType.getCode());
|
||||
task.put("finished_type", taskOperationType.getCode());
|
||||
task.put("task_status", TaskStatus.FINISHED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(task);
|
||||
}
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
@@ -259,29 +230,83 @@ public class SendFullVehicleTask extends AbstractAcsTask {
|
||||
.query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
|
||||
JSONObject vm = WQLObject
|
||||
.getWQLObject("st_ivt_vehicle_material")
|
||||
.query("vehicle_id = " + vehicle.getString("vehicle_id"), "create_time ASC")
|
||||
.uniqueResult(0);
|
||||
if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.HAS_MATERIAL.getCode())) {
|
||||
JSONObject vm = WQLObject
|
||||
.getWQLObject("st_ivt_vehicle_material")
|
||||
.query("vehicle_id = " + vehicle.getString("vehicle_id"), "create_time ASC")
|
||||
.uniqueResult(0);
|
||||
|
||||
JSONObject ivt = new JSONObject();
|
||||
ivt.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
ivt.put("point_id", nextPoint.getString("point_id"));
|
||||
ivt.put("instorage_time", vm.getString("create_time"));
|
||||
JSONObject ivt = new JSONObject();
|
||||
ivt.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
ivt.put("point_id", nextPoint.getString("point_id"));
|
||||
ivt.put("instorage_time", vm.getString("create_time"));
|
||||
|
||||
WQLObject.getWQLObject("st_ivt_structivt").insert(ivt);
|
||||
WQLObject.getWQLObject("st_ivt_structivt").insert(ivt);
|
||||
}
|
||||
}
|
||||
|
||||
nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode());
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
nextPoint.put("vehicle_code", startPoint.getString("vehicle_code"));
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
|
||||
startPoint.put("point_status", PointStatus.EMPTY.getCode());
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
startPoint.put("vehicle_code", "");
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL
|
||||
&& Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发任务需要从ACS取消");
|
||||
}
|
||||
|
||||
WQLObject.getWQLObject("sch_base_task").delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.md.pb.VehicleStatus;
|
||||
import org.nl.wms.sch.base.point.LockType;
|
||||
import org.nl.wms.sch.base.point.PointStatus;
|
||||
import org.nl.wms.sch.base.point.PointType;
|
||||
@@ -74,13 +75,13 @@ public class SendResiduesMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.EXECUTING.getCode())) {
|
||||
task.put("task", TaskStatus.EXECUTING.getCode());
|
||||
task.put("task_status", TaskStatus.EXECUTING.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
taskTable.update(task);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatus.FINISHED.getCode())) {
|
||||
this.finishTask(task, TaskFinishedType.AUTO);
|
||||
this.finishTask(task, TaskOperationType.AUTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +138,7 @@ public class SendResiduesMaterialTask extends AbstractAcsTask {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
|
||||
this.finishTask(task, TaskFinishedType.MANUAL);
|
||||
this.finishTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -148,48 +149,15 @@ public class SendResiduesMaterialTask extends AbstractAcsTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void cancel(String taskId) {
|
||||
WQLObject taskTable = WQLObject.getWQLObject("sch_base_task");
|
||||
JSONObject task = taskTable
|
||||
JSONObject task = WQLObject
|
||||
.getWQLObject("sch_base_task")
|
||||
.query("task_id = " + taskId)
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(task)) {
|
||||
throw new BadRequestException("该任务不存在");
|
||||
}
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成的任务不能取消");
|
||||
}
|
||||
|
||||
if (StrUtil.equals(task.getString("task_status"), TaskStatus.ISSUE.getCode())) {
|
||||
JSONArray cancelTaskArr = new JSONArray();
|
||||
cancelTaskArr.add(task);
|
||||
Map<String, Object> acsResult = SpringContextHolder.getBean(WmsToAcsService.class).cancelToAcs(cancelTaskArr);
|
||||
if (!MapUtil.getStr(acsResult, "status").equals("200")) {
|
||||
throw new BadRequestException(MapUtil.getStr(acsResult, "message"));
|
||||
}
|
||||
}
|
||||
|
||||
taskTable.delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
this.cancelTask(task, TaskOperationType.MANUAL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -229,19 +197,28 @@ public class SendResiduesMaterialTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void finishTask(JSONObject task, TaskFinishedType taskFinishedType) {
|
||||
public void finishTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())
|
||||
&& taskFinishedType.equals(TaskFinishedType.MANUAL)) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL) {
|
||||
if (Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发的任务需要从ACS完成");
|
||||
}
|
||||
if (!StrUtil.equals(taskStatus, TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("只有已确认起点和终点的任务可以手动完成");
|
||||
}
|
||||
}
|
||||
|
||||
task.put("finished_type", taskFinishedType.getCode());
|
||||
task.put("finished_type", taskOperationType.getCode());
|
||||
task.put("task_status", TaskStatus.FINISHED.getCode());
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(task);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(task);
|
||||
}
|
||||
WQLObject.getWQLObject("sch_base_task").update(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
@@ -259,29 +236,83 @@ public class SendResiduesMaterialTask extends AbstractAcsTask {
|
||||
.query("vehicle_code = '" + startPoint.getString("vehicle_code") + "'")
|
||||
.uniqueResult(0);
|
||||
|
||||
JSONObject vm = WQLObject
|
||||
.getWQLObject("st_ivt_vehicle_material")
|
||||
.query("vehicle_id = " + vehicle.getString("vehicle_id"), "create_time ASC")
|
||||
.uniqueResult(0);
|
||||
if (StrUtil.equals(vehicle.getString("vehicle_status"), VehicleStatus.HAS_MATERIAL.getCode())) {
|
||||
JSONObject vm = WQLObject
|
||||
.getWQLObject("st_ivt_vehicle_material")
|
||||
.query("vehicle_id = " + vehicle.getString("vehicle_id"), "create_time ASC")
|
||||
.uniqueResult(0);
|
||||
|
||||
JSONObject ivt = new JSONObject();
|
||||
ivt.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
ivt.put("point_id", nextPoint.getString("point_id"));
|
||||
ivt.put("instorage_time", vm.getString("create_time"));
|
||||
JSONObject ivt = new JSONObject();
|
||||
ivt.put("stockrecord_id", IdUtil.getSnowflake(1L, 1L).nextId());
|
||||
ivt.put("point_id", nextPoint.getString("point_id"));
|
||||
ivt.put("instorage_time", vm.getString("create_time"));
|
||||
|
||||
WQLObject.getWQLObject("st_ivt_structivt").insert(ivt);
|
||||
WQLObject.getWQLObject("st_ivt_structivt").insert(ivt);
|
||||
}
|
||||
}
|
||||
|
||||
nextPoint.put("point_status", PointStatus.HAS_VEHICLE.getCode());
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
nextPoint.put("vehicle_code", startPoint.getString("vehicle_code"));
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
|
||||
startPoint.put("point_status", PointStatus.EMPTY.getCode());
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
startPoint.put("vehicle_code", "");
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cancelTask(JSONObject task, TaskOperationType taskOperationType) {
|
||||
String taskStatus = task.getString("task_status");
|
||||
if (StrUtil.equals(taskStatus, TaskStatus.FINISHED.getCode())) {
|
||||
throw new BadRequestException("该任务已完成");
|
||||
}
|
||||
|
||||
if (taskOperationType == TaskOperationType.MANUAL
|
||||
&& Integer.parseInt(taskStatus) > Integer.parseInt(TaskStatus.START_AND_END.getCode())) {
|
||||
throw new BadRequestException("已下发任务需要从ACS取消");
|
||||
}
|
||||
|
||||
WQLObject.getWQLObject("sch_base_task").delete(task);
|
||||
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
String startPointCode = task.getString("point_code1");
|
||||
if (StrUtil.isNotEmpty(startPointCode)) {
|
||||
JSONObject startPoint = pointTable
|
||||
.query("point_code = '" + startPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
startPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(startPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(startPoint);
|
||||
}
|
||||
pointTable.update(startPoint);
|
||||
}
|
||||
|
||||
String nextPointCode = task.getString("point_code2");
|
||||
if (StrUtil.isNotEmpty(nextPointCode)) {
|
||||
JSONObject nextPoint = pointTable
|
||||
.query("point_code = '" + nextPointCode + "'")
|
||||
.uniqueResult(0);
|
||||
nextPoint.put("lock_type", LockType.UNLOCKED.getCode());
|
||||
if (taskOperationType == TaskOperationType.AUTO) {
|
||||
CommonUtils.addAdminUpdateColum(nextPoint);
|
||||
} else {
|
||||
CommonUtils.addUpdateColum(nextPoint);
|
||||
}
|
||||
pointTable.update(nextPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import lombok.Getter;
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum TaskFinishedType {
|
||||
public enum TaskOperationType {
|
||||
|
||||
AUTO("1", "自动"),
|
||||
MANUAL("2", "手动");
|
||||
@@ -3,13 +3,9 @@ package org.nl.wms.sch.task.util;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.base.point.LockType;
|
||||
import org.nl.wms.sch.base.point.PointStatus;
|
||||
import org.nl.wms.sch.task.TaskFinishedType;
|
||||
import org.nl.wms.sch.task.TaskStatus;
|
||||
import org.nl.wms.sch.task.dto.AcsTaskDTO;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -150,6 +150,8 @@ sa-token:
|
||||
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
|
||||
# token 前缀
|
||||
token-prefix: Bearer
|
||||
is-read-body: false
|
||||
is-read-cookie: false
|
||||
|
||||
loki:
|
||||
url: http://localhost:3100/loki/api/v1
|
||||
|
||||
@@ -2,7 +2,7 @@ spring:
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
active: dev
|
||||
active: prod
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
data:
|
||||
|
||||
Reference in New Issue
Block a user