fix:二期出库rgv任务改成集中下发
This commit is contained in:
@@ -21,6 +21,7 @@ import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -235,8 +236,6 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
||||
jsonParam.put("task_group_id", jsonTask.getString("task_group_id"));
|
||||
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
|
||||
bean1.createLashTask(jsonParam);
|
||||
// 再次下发:找相同任务组的下发
|
||||
sendTaskAcs(jsonTask.getString("task_group_id"),true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -300,74 +299,61 @@ public class TwoOutHeapTask extends AbstractAcsTask {
|
||||
this.updateTaskStatus(taskObj, IOSEnum.IS_NOTANDYES.code("否"));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void sendTaskAcs(String groupTaskId,boolean retry) {
|
||||
RedissonUtils.lock(c -> {
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task");
|
||||
List<JSONObject> taskArrAll = wo_Task
|
||||
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and task_group_id = '" + groupTaskId + "'" + " and is_delete ='0' ORDER BY create_time")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
if (ObjectUtil.isEmpty(taskArrAll) && retry) {
|
||||
taskArrAll = wo_Task
|
||||
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' ORDER BY create_time")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
}
|
||||
|
||||
// 是否下发多个AGV输送出库任务
|
||||
WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task");
|
||||
List<JSONObject> taskArrAll = wo_Task
|
||||
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' ORDER BY create_time")
|
||||
.getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
// 是否下发多个AGV输送出库任务
|
||||
if (CollectionUtils.isEmpty(taskArrAll)){
|
||||
return;
|
||||
}
|
||||
List<JSONObject> taskArr;
|
||||
// 是否异常出库口任务
|
||||
String TWO_EXCEP = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXCEP").getValue();
|
||||
if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
String is_send_many = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("is_send_many").getValue();
|
||||
// 是否异常出库口任务
|
||||
String TWO_EXCEP = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("TWO_EXCEP").getValue();
|
||||
|
||||
List<JSONObject> taskArr;
|
||||
if (TWO_EXCEP.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
if (is_send_many.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
// 只允许每个行架点位有一条任务
|
||||
taskArr = sendTask(taskArrAll);
|
||||
} else {
|
||||
taskArr = taskArrAll;
|
||||
}
|
||||
if (is_send_many.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
// 只允许每个行架点位有一条任务
|
||||
taskArr = sendTask(taskArrAll);
|
||||
} else {
|
||||
taskArr = taskArrAll;
|
||||
}
|
||||
} else {
|
||||
taskArr = taskArrAll;
|
||||
}
|
||||
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject json = taskArr.get(i);
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.vehicle_code(json.getString("vehicle_code2"))
|
||||
.vehicle_code2(json.getString("vehicle_code"))
|
||||
.interaction_json(json.getJSONObject("request_param"))
|
||||
.priority(json.getString("priority"))
|
||||
.class_type(IOSEnum.ACS_TYPE.code("RGV输送任务"))
|
||||
.dtl_type(String.valueOf(dtl_type))
|
||||
.product_area(IOSEnum.PRODUCT_AREA.code("BLK"))
|
||||
.remark(json.getString("remark"))
|
||||
.build();
|
||||
|
||||
if (json.getString("vehicle_code2").contains("A")) {
|
||||
dto.setRoute_plan_code("two");
|
||||
} else {
|
||||
dto.setRoute_plan_code("normal");
|
||||
}
|
||||
resultList.add(dto);
|
||||
|
||||
// 更新任务为下发
|
||||
JSONObject paramMap = new JSONObject();
|
||||
paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode());
|
||||
wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'");
|
||||
|
||||
// 调用下发
|
||||
if (ObjectUtil.isNotEmpty(resultList)) {
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(resultList));
|
||||
AcsUtil.notifyAcs("api/wms/task", arr);
|
||||
}
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject json = taskArr.get(i);
|
||||
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.vehicle_code(json.getString("vehicle_code2"))
|
||||
.vehicle_code2(json.getString("vehicle_code"))
|
||||
.interaction_json(json.getJSONObject("request_param"))
|
||||
.priority(json.getString("priority"))
|
||||
.class_type(IOSEnum.ACS_TYPE.code("RGV输送任务"))
|
||||
.dtl_type(String.valueOf(dtl_type))
|
||||
.product_area(IOSEnum.PRODUCT_AREA.code("BLK"))
|
||||
.remark(json.getString("remark"))
|
||||
.build();
|
||||
if (json.getString("vehicle_code2").contains("A")) {
|
||||
dto.setRoute_plan_code("two");
|
||||
} else {
|
||||
dto.setRoute_plan_code("normal");
|
||||
}
|
||||
},"resendrgv", 30, this);
|
||||
resultList.add(dto);
|
||||
// 调用下发
|
||||
if (ObjectUtil.isNotEmpty(resultList)) {
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(resultList));
|
||||
AcsUtil.notifyAcs("api/wms/task", arr);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,10 +313,8 @@ public class LashManageServiceImpl implements LashManageService {
|
||||
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
|
||||
jsonTaskParam.put("vehicle_code2", jsonVeExt.getString("storagevehicle_code"));
|
||||
jsonTaskParam.put("request_param", whereJson);
|
||||
|
||||
TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class);
|
||||
bean.createTask(jsonTaskParam);
|
||||
bean.sendTaskAcs(whereJson.getString("task_group_id"),true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user