代码更新
This commit is contained in:
@@ -121,19 +121,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@LokiLog(type = LokiLogType.ACS_TO_LMS)
|
@LokiLog(type = LokiLogType.ACS_TO_LMS)
|
||||||
@Override
|
@Override
|
||||||
public String againApply(String task_id) {
|
public String againApply(String task_id) {
|
||||||
|
log.info("输入参数:"+task_id);
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||||
|
|
||||||
|
String point_code = "";
|
||||||
try {
|
try {
|
||||||
Class<?> clz = Class.forName(jsonTask.getString("handle_class"));
|
Class<?> clz = Class.forName(jsonTask.getString("handle_class"));
|
||||||
Object obj = clz.newInstance();
|
Object obj = clz.newInstance();
|
||||||
Method m = obj.getClass().getDeclaredMethod("againApply", JSONObject.class, String.class);
|
Method m = obj.getClass().getDeclaredMethod("againApply",String.class);
|
||||||
Object invoke = m.invoke(task_id);
|
point_code = (String) m.invoke(obj,task_id);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
log.info("输出参数:"+point_code);
|
||||||
return null;
|
return point_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@LokiLog(type = LokiLogType.ACS_TO_LMS)
|
@LokiLog(type = LokiLogType.ACS_TO_LMS)
|
||||||
@@ -295,28 +297,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
param.put("qty", jsonVeQty.getString("qty"));
|
param.put("qty", jsonVeQty.getString("qty"));
|
||||||
param.put("point_code1", point_code);
|
param.put("point_code1", point_code);
|
||||||
param.put("vehicle_code", vehicle_code);
|
param.put("vehicle_code", vehicle_code);
|
||||||
|
param.put("vehicle_type", vehicle_type);
|
||||||
// 创建任务
|
// 创建任务
|
||||||
HtSendEmpVehicleTask taskBean = SpringContextHolder.getBean(HtSendEmpVehicleTask.class);
|
HtSendEmpVehicleTask taskBean = SpringContextHolder.getBean(HtSendEmpVehicleTask.class);
|
||||||
String task_id = taskBean.createTask(param);
|
String task_id = taskBean.createTask(param);
|
||||||
|
|
||||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
|
||||||
if (StrUtil.equals(jsonTask.getString("task_status"), "4")) {
|
|
||||||
// 起点终点确定则下发
|
|
||||||
// JSONObject jsonObject = taskBean.renotifyAcs(task_id);
|
|
||||||
JSONObject jsonObject=new JSONObject();
|
|
||||||
if (StrUtil.equals(jsonObject.getString("status"), "200")) {
|
|
||||||
// 更新任务状态
|
|
||||||
jsonTask.put("task_status", TaskStatusEnum.ISSUE.getCode());
|
|
||||||
taskTab.update(jsonTask);
|
|
||||||
// 更新终点点位状态
|
|
||||||
JSONObject jsonEndPoint = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
|
||||||
jsonEndPoint.put("lock_type", "2");
|
|
||||||
pointTab.update(jsonEndPoint);
|
|
||||||
} else {
|
|
||||||
throw new BadRequestException(jsonObject.getString("message"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (StrUtil.equals(type, "7")) {
|
} else if (StrUtil.equals(type, "7")) {
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("point_code1", point_code);
|
param.put("point_code1", point_code);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public abstract class AbstractAcsTask {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param taskObj 代表一条任务对象
|
* @param taskObj 代表一条任务对象
|
||||||
* @param status 代表wcs任务完成状态: //1:执行中,2:完成 ,3:acs取消
|
* @param status 代表wcs任务完成状态: //0:acs,取消,:执行中,2:完成
|
||||||
* @return
|
* @return
|
||||||
* @discription wcs请求wms任务完成状态反馈接口, 比如agv从a点往b点走。生成任务的时候绑定b的物料信息,任务完成的时候,清除a的物料信息
|
* @discription wcs请求wms任务完成状态反馈接口, 比如agv从a点往b点走。生成任务的时候绑定b的物料信息,任务完成的时候,清除a的物料信息
|
||||||
* @author ldjun
|
* @author ldjun
|
||||||
@@ -131,7 +131,7 @@ public abstract class AbstractAcsTask {
|
|||||||
* @param task_id: 任务标识
|
* @param task_id: 任务标识
|
||||||
* @return 二次申请的点位
|
* @return 二次申请的点位
|
||||||
*/
|
*/
|
||||||
String againApply(String task_id) {
|
public String againApply(String task_id) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package org.nl.wms.sch.tasks;
|
package org.nl.wms.sch.tasks;
|
||||||
|
|
||||||
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@Builder
|
||||||
public class AcsTaskDto {
|
public class AcsTaskDto {
|
||||||
//任务标识
|
//任务标识
|
||||||
private String task_id;
|
private String task_id;
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
JSONArray tasks = taskTab.query("handle_class = '" + this.getClass().getName() + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
JSONArray tasks = taskTab.query("handle_class = '" + this.getClass().getName() + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||||
List<AcsTaskDto> arr = new ArrayList<>();
|
List<AcsTaskDto> arr = new ArrayList<>();
|
||||||
for (int i = 0, j = tasks.size(); i < j; i++) {
|
for (int i = 0, j = tasks.size(); i < j; i++) {
|
||||||
JSONObject json = tasks.getJSONObject(i);
|
/*JSONObject json = tasks.getJSONObject(i);
|
||||||
AcsTaskDto taskDto = new AcsTaskDto();
|
AcsTaskDto taskDto = new AcsTaskDto();
|
||||||
taskDto.setTask_id(json.getString("task_id"));
|
taskDto.setTask_id(json.getString("task_id"));
|
||||||
taskDto.setTask_code(json.getString("task_code"));
|
taskDto.setTask_code(json.getString("task_code"));
|
||||||
@@ -227,7 +227,7 @@ public class CallMaterialTask extends AbstractAcsTask {
|
|||||||
taskDto.setStart_device_code(json.getString("point_code1"));
|
taskDto.setStart_device_code(json.getString("point_code1"));
|
||||||
taskDto.setNext_device_code(json.getString("point_code2"));
|
taskDto.setNext_device_code(json.getString("point_code2"));
|
||||||
taskDto.setVehicle_code(json.getString("vehicle_code"));
|
taskDto.setVehicle_code(json.getString("vehicle_code"));
|
||||||
arr.add(taskDto);
|
arr.add(taskDto);*/
|
||||||
}
|
}
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -12,6 +13,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
|
import org.nl.wms.sch.SchTaskDto;
|
||||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||||
@@ -19,6 +21,7 @@ import org.nl.wms.sch.tasks.RegionTypeEnum;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -27,8 +30,6 @@ import java.util.List;
|
|||||||
public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
||||||
private final String THIS_CLASS = HtSendEmpVehicleTask.class.getName();
|
private final String THIS_CLASS = HtSendEmpVehicleTask.class.getName();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateTaskStatus(JSONObject taskObj, String status) {
|
public void updateTaskStatus(JSONObject taskObj, String status) {
|
||||||
@@ -40,6 +41,21 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
|
|
||||||
if (StrUtil.equals(status, "0")) {
|
if (StrUtil.equals(status, "0")) {
|
||||||
// 取消删除任务
|
// 取消删除任务
|
||||||
|
if (StrUtil.equals(jsonTask.getString("task_status"), TaskStatusEnum.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("已完成不能取消!");
|
||||||
|
}
|
||||||
|
String point_code3 = jsonTask.getString("point_code3");
|
||||||
|
String point_code2 = jsonTask.getString("point_code2");
|
||||||
|
if (ObjectUtil.isNotEmpty(point_code3)) {
|
||||||
|
JSONObject jsonPoint3 = pointTab.query("point_code ='" + point_code3 + "'").uniqueResult(0);
|
||||||
|
jsonPoint3.put("point_status", "1");
|
||||||
|
pointTab.update(jsonPoint3);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(point_code2)) {
|
||||||
|
JSONObject jsonPoint2 = pointTab.query("point_code ='" + point_code2 + "'").uniqueResult(0);
|
||||||
|
jsonPoint2.put("point_status", "1");
|
||||||
|
pointTab.update(jsonPoint2);
|
||||||
|
}
|
||||||
taskTab.delete("task_id = '" + task_id + "'");
|
taskTab.delete("task_id = '" + task_id + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +78,10 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
// 更新终点:判断point_code3是否为空,为空就更新point_code2
|
// 更新终点:判断point_code3是否为空,为空就更新point_code2
|
||||||
if (ObjectUtil.isNotEmpty(point_code3)) {
|
if (ObjectUtil.isNotEmpty(point_code3)) {
|
||||||
point_code = point_code3;
|
point_code = point_code3;
|
||||||
|
// 更新point_code2:解锁
|
||||||
|
JSONObject point2 = pointTab.query("point_code = '" + jsonTask.getString("point_code2") + "'").uniqueResult(0);
|
||||||
|
point2.put("lock_type", "1");
|
||||||
|
pointTab.update(point2);
|
||||||
} else {
|
} else {
|
||||||
point_code = jsonTask.getString("point_code2");
|
point_code = jsonTask.getString("point_code2");
|
||||||
}
|
}
|
||||||
@@ -79,6 +99,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
pointTab.update(endPoint);
|
pointTab.update(endPoint);
|
||||||
} else {//非叠盘架
|
} else {//非叠盘架
|
||||||
endPoint.put("lock_type", "1");
|
endPoint.put("lock_type", "1");
|
||||||
|
endPoint.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||||
endPoint.put("vehicle_qty", jsonTask.getString("vehicle_qty"));
|
endPoint.put("vehicle_qty", jsonTask.getString("vehicle_qty"));
|
||||||
endPoint.put("vehicle_type", jsonTask.getString("vehicle_type"));
|
endPoint.put("vehicle_type", jsonTask.getString("vehicle_type"));
|
||||||
endPoint.put("point_status", "2");
|
endPoint.put("point_status", "2");
|
||||||
@@ -91,132 +112,42 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public String createTask(JSONObject form) {
|
public String createTask(JSONObject form) {
|
||||||
|
/*
|
||||||
|
* 1.先生成确定起点的任务
|
||||||
|
* 2.通过findNextPoint()找终点
|
||||||
|
* 3.下发给ACS
|
||||||
|
*/
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表
|
|
||||||
WQLObject vehicleTab = WQLObject.getWQLObject("md_pb_vehicle"); // 载具表
|
|
||||||
|
|
||||||
String qty = form.getString("qty");
|
|
||||||
String point_code1 = form.getString("point_code1");
|
String point_code1 = form.getString("point_code1");
|
||||||
String point_code2 = "";
|
|
||||||
|
|
||||||
String task_id = "";
|
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||||
|
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||||
JSONObject jsonVehicle = vehicleTab.query("vehicle_code = '" + form.getString("vehicle_code") + "'").uniqueResult(0);
|
.task_type("")
|
||||||
if (ObjectUtil.isEmpty(jsonVehicle)) throw new BadRequestException("此载具号不存在");
|
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||||
|
.point_code1(point_code1)
|
||||||
// 1.判断货梯是否有任务,如果有生成起点确定的任务
|
.vehicle_code(form.getString("vehicle_code"))
|
||||||
// 空托盘一楼到二楼固定点位:SSX01A1 , SSX02A1
|
.vehicle_type(form.getString("vehicle_type"))
|
||||||
|
.vehicle_qty(form.getIntValue("qty"))
|
||||||
//判断SSX01A1是否有任务没有则判断其他的三个点位
|
.handle_class(THIS_CLASS)
|
||||||
boolean ssx_1 = this.isTask("SSX01A1");
|
.create_time(DateUtil.now())
|
||||||
if (ssx_1) {
|
.build();
|
||||||
String like = "SSX01%";
|
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||||
|
taskTab.insert(json);
|
||||||
JSONArray taskArrNum = new JSONArray();
|
this.findNextPoint();
|
||||||
JSONArray pointArr = pointTab.query("region_id = '" + RegionTypeEnum.SSX.getId() + "' and is_used = '1' and is_delete = '0' and point_code like '" + like + "'").getResultJSONArray(0);
|
// this.immediateNotifyAcs();
|
||||||
|
return String.valueOf(dto.getTask_id());
|
||||||
for (int i = 0; i < pointArr.size(); i++) {
|
|
||||||
JSONObject json = pointArr.getJSONObject(i);
|
|
||||||
boolean is_empTask = this.isTask(json.getString("point_code"));
|
|
||||||
|
|
||||||
if (!is_empTask) taskArrNum.add(json);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (taskArrNum.size() > 0) {
|
|
||||||
|
|
||||||
} else {
|
|
||||||
point_code2 = "SSX01A1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断SSX02A1是否有任务没有则判断其他的三个点位
|
|
||||||
if (ObjectUtil.isEmpty(point_code2)) {
|
|
||||||
boolean ssx_2 = this.isTask("SSX02A1");
|
|
||||||
if (ssx_2) {
|
|
||||||
String like = "SSX02%";
|
|
||||||
|
|
||||||
JSONArray taskArrNum = new JSONArray();
|
|
||||||
JSONArray pointArr = pointTab.query("region_id = '" + RegionTypeEnum.SSX.getId() + "' and is_used = '1' and is_delete = '0' and point_code like '" + like + "'").getResultJSONArray(0);
|
|
||||||
|
|
||||||
for (int i = 0; i < pointArr.size(); i++) {
|
|
||||||
JSONObject json = pointArr.getJSONObject(i);
|
|
||||||
boolean is_empTask = this.isTask(json.getString("point_code"));
|
|
||||||
|
|
||||||
if (!is_empTask) taskArrNum.add(json);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (taskArrNum.size() > 0) {
|
|
||||||
|
|
||||||
} else {
|
|
||||||
point_code2 = "SSX02A1";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 如果此时point_code2为空则生成起点确认的任务
|
|
||||||
if (ObjectUtil.isEmpty(point_code2)) {
|
|
||||||
JSONObject param = new JSONObject();
|
|
||||||
param.put("task_status", "2");
|
|
||||||
param.put("point_code1", point_code1);
|
|
||||||
param.put("vehicle_type", jsonVehicle.getString("vehicle_type"));
|
|
||||||
param.put("vehicle_qty", qty);
|
|
||||||
param.put("vehicle_code", jsonVehicle.getString("vehicle_code"));
|
|
||||||
param.put("acs_task_type", "1");
|
|
||||||
task_id = this.pubCreateTask(param);
|
|
||||||
} else {
|
|
||||||
// 说明货梯无任务:找终点
|
|
||||||
JSONObject param = new JSONObject();
|
|
||||||
param.put("vehicle_type", jsonVehicle.getString("vehicle_type"));
|
|
||||||
param.put("qty", qty);
|
|
||||||
String endPoint = this.endPoint(param);
|
|
||||||
|
|
||||||
// 如果终点为空则创建起点确定的任务
|
|
||||||
if (ObjectUtil.isEmpty(endPoint)) {
|
|
||||||
JSONObject param2 = new JSONObject();
|
|
||||||
param2.put("task_status", "2");
|
|
||||||
param2.put("point_code1", point_code1);
|
|
||||||
param2.put("vehicle_type", jsonVehicle.getString("vehicle_type"));
|
|
||||||
param2.put("vehicle_qty", qty);
|
|
||||||
param2.put("vehicle_code", jsonVehicle.getString("vehicle_code"));
|
|
||||||
param.put("acs_task_type", "1");
|
|
||||||
task_id = this.pubCreateTask(param2);
|
|
||||||
} else {
|
|
||||||
// 不为空则创建到养生A区等待点的任务
|
|
||||||
|
|
||||||
// 处理终点编码:入在第一个 '-'前加1,出在第一个 '-'前加2
|
|
||||||
// String sub_1 = endPoint.substring(0, endPoint.indexOf("-"));
|
|
||||||
// String sub_2 = endPoint.substring(endPoint.indexOf("-"), endPoint.length());
|
|
||||||
JSONObject param2 = new JSONObject();
|
|
||||||
param2.put("task_status", "4");
|
|
||||||
param2.put("point_code1", point_code1);
|
|
||||||
param2.put("point_code2", endPoint);
|
|
||||||
param2.put("vehicle_type", jsonVehicle.getString("vehicle_type"));
|
|
||||||
param2.put("vehicle_qty", qty);
|
|
||||||
param2.put("vehicle_code", jsonVehicle.getString("vehicle_code"));
|
|
||||||
param.put("acs_task_type", "1");
|
|
||||||
task_id = this.pubCreateTask(param2);
|
|
||||||
|
|
||||||
// 锁定终点
|
|
||||||
JSONObject jsonEnd = pointTab.query("point_code = '" + endPoint + "'").uniqueResult(0);
|
|
||||||
jsonEnd.put("lock_type", "2");
|
|
||||||
pointTab.update(jsonEnd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return task_id;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return
|
|
||||||
* @discription 确定下一点位
|
|
||||||
* @author ldjun
|
|
||||||
* @created 2020年6月12日 下午6:01:06
|
|
||||||
*/
|
|
||||||
@Override
|
@Override
|
||||||
public void findNextPoint() {
|
public void findNextPoint() {
|
||||||
|
/*
|
||||||
|
* 根据业务找对应的终点
|
||||||
|
*/
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||||
|
|
||||||
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "' and is_delete = '0' and task_status = '2'").getResultJSONArray(0);
|
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0);
|
||||||
for (int i = 0; i < taskArr.size(); i++) {
|
for (int i = 0; i < taskArr.size(); i++) {
|
||||||
JSONObject jsonTask = taskArr.getJSONObject(i);
|
JSONObject jsonTask = taskArr.getJSONObject(i);
|
||||||
String point_code_ht = "";
|
String point_code_ht = "";
|
||||||
@@ -298,6 +229,9 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void forceFinish(String task_id) {
|
public void forceFinish(String task_id) {
|
||||||
|
/*
|
||||||
|
* 强制完成
|
||||||
|
*/
|
||||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||||
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
|
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
|
||||||
}
|
}
|
||||||
@@ -371,32 +305,11 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
return end_code;
|
return end_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
public String pubCreateTask(JSONObject param) {
|
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
|
||||||
|
|
||||||
JSONObject jsonTask = new JSONObject();
|
|
||||||
jsonTask.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
|
|
||||||
jsonTask.put("task_code", CodeUtil.getNewCode("TASK_CODE"));
|
|
||||||
jsonTask.put("task_type", "");
|
|
||||||
jsonTask.put("task_status", param.getString("task_status"));
|
|
||||||
jsonTask.put("point_code1", param.getString("point_code1"));
|
|
||||||
jsonTask.put("point_code2", param.getString("point_code2"));
|
|
||||||
jsonTask.put("vehicle_type", param.getString("vehicle_type"));
|
|
||||||
jsonTask.put("vehicle_qty", param.getString("vehicle_qty"));
|
|
||||||
jsonTask.put("vehicle_code", param.getString("vehicle_code"));
|
|
||||||
jsonTask.put("priority", "1");
|
|
||||||
jsonTask.put("handle_class", THIS_CLASS);
|
|
||||||
jsonTask.put("sort_seq", "1");
|
|
||||||
jsonTask.put("acs_task_type", param.getString("acs_task_type"));
|
|
||||||
jsonTask.put("create_time", DateUtil.now());
|
|
||||||
taskTab.insert(jsonTask);
|
|
||||||
return jsonTask.getString("task_id");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean isTask(String point_code) {
|
public boolean isTask(String point_code) {
|
||||||
|
/*
|
||||||
|
* 判断点位是否有任务存在
|
||||||
|
*/
|
||||||
WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task");
|
WQLObject tab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||||
|
|
||||||
boolean result;
|
boolean result;
|
||||||
@@ -416,7 +329,12 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
public String againApply(String task_id) {
|
public String againApply(String task_id) {
|
||||||
|
/*
|
||||||
|
* 再次下发任务处理方法
|
||||||
|
* 涉及业务:入空载具、出空载具、入物料、出物料
|
||||||
|
*/
|
||||||
|
|
||||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表
|
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point"); // 点位表
|
||||||
@@ -430,7 +348,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
JSONObject jsonOnePoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
JSONObject jsonOnePoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
||||||
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
||||||
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
||||||
"' and point_code <> '"+jsonPoint2.getString("point_code")+
|
"' and point_code <> '" + jsonPoint2.getString("point_code") +
|
||||||
"' and point_status = '2' order by in_empty_seq ASC").uniqueResult(0);
|
"' and point_status = '2' order by in_empty_seq ASC").uniqueResult(0);
|
||||||
|
|
||||||
// 如果为空说明这一列其他货位为空 则入到最后一个货位
|
// 如果为空说明这一列其他货位为空 则入到最后一个货位
|
||||||
@@ -438,10 +356,14 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
||||||
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
||||||
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
||||||
"' and point_code <> '"+jsonPoint2.getString("point_code")+
|
"' and point_code <> '" + jsonPoint2.getString("point_code") +
|
||||||
"' and point_status = '1' order by in_empty_seq DESC").uniqueResult(0);
|
"' and point_status = '1' order by in_empty_seq DESC").uniqueResult(0);
|
||||||
|
|
||||||
if (ObjectUtil.isEmpty(jsonEmpPoint)) point_code = jsonEmpPoint.getString("point_code");
|
if (ObjectUtil.isNotEmpty(jsonEmpPoint)) {
|
||||||
|
point_code = jsonEmpPoint.getString("point_code");
|
||||||
|
jsonTask.put("point_code3", point_code);
|
||||||
|
taskTab.update(jsonTask);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 找前一位的空位
|
// 找前一位的空位
|
||||||
double in_empty_seq = NumberUtil.sub(jsonOnePoint.getIntValue("in_empty_seq"), 1);
|
double in_empty_seq = NumberUtil.sub(jsonOnePoint.getIntValue("in_empty_seq"), 1);
|
||||||
@@ -449,17 +371,46 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
|
|||||||
JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
JSONObject jsonEmpPoint = pointTab.query("region_id = '" + jsonPoint2.getString("region_id") +
|
||||||
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
"' and block_num = '" + jsonPoint2.getString("block_num") +
|
||||||
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
"' and col_num = '" + jsonPoint2.getString("col_num") +
|
||||||
"' and point_code <> '"+jsonPoint2.getString("point_code")+
|
"' and point_code <> '" + jsonPoint2.getString("point_code") +
|
||||||
"' and in_empty_seq = '"+ in_empty_seq +
|
"' and in_empty_seq = '" + in_empty_seq +
|
||||||
"' and point_status = '1'").uniqueResult(0);
|
"' and point_status = '1'").uniqueResult(0);
|
||||||
|
|
||||||
if (ObjectUtil.isNotEmpty(jsonEmpPoint)) point_code = jsonEmpPoint.getString("point_code");
|
if (ObjectUtil.isNotEmpty(jsonEmpPoint)) {
|
||||||
|
point_code = jsonEmpPoint.getString("point_code");
|
||||||
|
jsonTask.put("point_code3", point_code);
|
||||||
|
taskTab.update(jsonTask);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
JSONObject jsonEndPoint = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||||
|
jsonEndPoint.put("lock_type", "2");
|
||||||
|
pointTab.update(jsonEndPoint);
|
||||||
|
|
||||||
return point_code;
|
return point_code;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AcsTaskDto> addTask() {
|
public List<AcsTaskDto> addTask() {
|
||||||
return null;
|
/*
|
||||||
|
* 下发给ACS时需要特殊处理
|
||||||
|
*/
|
||||||
|
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '"+THIS_CLASS+"' and task_status = '"+TaskStatusEnum.START_AND_POINT.getCode()+"' and is_delete ='0'").getResultJSONArray(0);
|
||||||
|
|
||||||
|
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||||
|
for (int i = 0; i < arr.size(); i++) {
|
||||||
|
JSONObject json = arr.getJSONObject(i);
|
||||||
|
AcsTaskDto dto = AcsTaskDto.builder()
|
||||||
|
.task_id(json.getString("task_id"))
|
||||||
|
.task_code(json.getString("task_code"))
|
||||||
|
.task_type(json.getString("task_type"))
|
||||||
|
.start_device_code(json.getString("point_code1"))
|
||||||
|
.next_device_code(json.getString("point_code3"))
|
||||||
|
.vehicle_code(json.getString("vehicle_code"))
|
||||||
|
.vehicle_type(json.getString("vehicle_type"))
|
||||||
|
.priority(json.getString("priority"))
|
||||||
|
.remark(json.getString("remark"))
|
||||||
|
.build();
|
||||||
|
resultList.add(dto);
|
||||||
|
}
|
||||||
|
return resultList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user