rev:1.增加C生产区到地面货架双向配置2.修改A_2生产区到地面货架13排车辆配置
This commit is contained in:
@@ -545,13 +545,18 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
|
|||||||
if (ObjectUtil.isEmpty(regionEnumList)) {
|
if (ObjectUtil.isEmpty(regionEnumList)) {
|
||||||
throw new BadRequestException("任务 [" + instdto.getTask_code() + "] 起点或终点没有找到对应AGV类型无法生成指令。");
|
throw new BadRequestException("任务 [" + instdto.getTask_code() + "] 起点或终点没有找到对应AGV类型无法生成指令。");
|
||||||
}
|
}
|
||||||
|
// 判断是否是AB生产区到地面货架
|
||||||
if (regionEnumList.size() > 1) {
|
if (regionEnumList.size() > 1) {
|
||||||
// 判断终点是否是1层的
|
// 如果是终点是13排的则是PS30车辆
|
||||||
if (nextJson.getString("z").equals("01")) {
|
if (nextJson.getString("x").equals("13")) {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
// 判断终点是否是1层的
|
||||||
|
if (nextJson.getString("z").equals("01")) {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
|
} else {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
||||||
|
|||||||
@@ -459,12 +459,18 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
|
|||||||
throw new BadRequestException("任务 [" + taskcode + "] 起点或终点没有找到对应AGV类型无法生成指令。");
|
throw new BadRequestException("任务 [" + taskcode + "] 起点或终点没有找到对应AGV类型无法生成指令。");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断是否是AB生产区到地面货架
|
||||||
if (regionEnumList.size() > 1) {
|
if (regionEnumList.size() > 1) {
|
||||||
// 判断终点是否是1层的
|
// 如果是终点是13排的则是PS30车辆
|
||||||
if (nextJson.getString("z").equals("01")) {
|
if (nextJson.getString("x").equals("13")) {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
// 判断终点是否是1层的
|
||||||
|
if (nextJson.getString("z").equals("01")) {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
|
} else {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
||||||
|
|||||||
@@ -41,6 +41,12 @@ public enum RegionEnum {
|
|||||||
// C生产区-->D生产区
|
// C生产区-->D生产区
|
||||||
C_D("C", "D","PS20","Group-001"),
|
C_D("C", "D","PS20","Group-001"),
|
||||||
|
|
||||||
|
// C生产区-->地面货架
|
||||||
|
C_DMHJ("C", "DMHJ","PS20","Group-001"),
|
||||||
|
|
||||||
|
// 地面货架-->C生产区
|
||||||
|
DMHJ_C("DMHJ", "C","PS20","Group-001"),
|
||||||
|
|
||||||
// D生产区-->地面货架
|
// D生产区-->地面货架
|
||||||
D_DMHJ("D", "DMHJ","PS20","Group-001"),
|
D_DMHJ("D", "DMHJ","PS20","Group-001"),
|
||||||
|
|
||||||
|
|||||||
@@ -212,12 +212,18 @@ public class AutoCreateInst {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 判断是否是AB生产区到地面货架
|
||||||
if (regionEnumList.size() > 1) {
|
if (regionEnumList.size() > 1) {
|
||||||
// 判断终点是否是1层的
|
// 如果是终点是13排的则是PS30车辆
|
||||||
if (nextJson.getString("z").equals("01")) {
|
if (nextJson.getString("x").equals("13")) {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
// 判断终点是否是1层的
|
||||||
|
if (nextJson.getString("z").equals("01")) {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ_ONE.getAgv_type());
|
||||||
|
} else {
|
||||||
|
instdto.setMaterial(RegionEnum.AB_DMHJ.getAgv_type());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
instdto.setMaterial(regionEnumList.get(0).getAgv_type());
|
||||||
|
|||||||
@@ -0,0 +1,148 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task.tasks.fj;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.IdUtil;
|
||||||
|
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.AcsTaskDto;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lxy
|
||||||
|
* @Description: C生产区到地面货架
|
||||||
|
* @Date: 2025/4/21
|
||||||
|
*/
|
||||||
|
@Component(value = "MCDMTask")
|
||||||
|
@TaskType("MCDMTask")
|
||||||
|
public class MCDMTask extends AbstractTask {
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WmsToMesService wmsToMesService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String create(JSONObject json) {
|
||||||
|
SchBaseTask task = new SchBaseTask();
|
||||||
|
task.setTask_id(IdUtil.getStringId());
|
||||||
|
task.setTask_code(json.getString("TaskCode"));
|
||||||
|
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||||
|
task.setConfig_code(json.getString("task_type"));
|
||||||
|
task.setPoint_code1(json.getString("PickingLocation"));
|
||||||
|
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||||
|
task.setIs_vehicle(json.getString("IsPanCode"));
|
||||||
|
task.setExt_group_data(json.getString("CarryIsEmptyTuoPan"));
|
||||||
|
task.setRequest_param(json.toString());
|
||||||
|
task.setPriority(json.getString("Priority"));
|
||||||
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
task.setCreate_time(DateUtil.now());
|
||||||
|
taskService.save(task);
|
||||||
|
return task.getTask_id();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AcsTaskDto sendAcsParam(String taskId) {
|
||||||
|
SchBaseTask taskDao = taskService.getById(taskId);
|
||||||
|
|
||||||
|
// 组织下发给acs的数据
|
||||||
|
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||||
|
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||||
|
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||||
|
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||||
|
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||||
|
acsTaskDto.setPriority(taskDao.getPriority());
|
||||||
|
acsTaskDto.setTask_type("1");
|
||||||
|
acsTaskDto.setIs_vehicle(taskDao.getIs_vehicle());
|
||||||
|
acsTaskDto.setIs_empvehicle(taskDao.getExt_group_data());
|
||||||
|
|
||||||
|
return acsTaskDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
// 校验任务
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已完成!");
|
||||||
|
}
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已取消!");
|
||||||
|
}
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) {
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) {
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) {
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void backMes(String task_code) {
|
||||||
|
wmsToMesService.receiveTaskStatusMesData(taskService.getByCode(task_code));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
// 任务完成
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
|
||||||
|
// 通知mes任务完成
|
||||||
|
wmsToMesService.receiveTaskStatusMesData(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,148 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task.tasks.fj;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.IdUtil;
|
||||||
|
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
|
import org.nl.wms.sch.task.service.ISchBaseTaskconfigService;
|
||||||
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.AcsTaskDto;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
|
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
|
||||||
|
import org.nl.wms.sch.task_manage.task.TaskType;
|
||||||
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
import org.nl.wms.util.TaskUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: lxy
|
||||||
|
* @Description: 地面货架到C生产区
|
||||||
|
* @Date: 2025/4/21
|
||||||
|
*/
|
||||||
|
@Component(value = "MDMCTask")
|
||||||
|
@TaskType("MDMCTask")
|
||||||
|
public class MDMCTask extends AbstractTask {
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskService taskService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISchBaseTaskconfigService taskConfigService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WmsToMesService wmsToMesService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String create(JSONObject json) {
|
||||||
|
SchBaseTask task = new SchBaseTask();
|
||||||
|
task.setTask_id(IdUtil.getStringId());
|
||||||
|
task.setTask_code(json.getString("TaskCode"));
|
||||||
|
task.setTask_status(TaskStatus.CREATE.getCode());
|
||||||
|
task.setConfig_code(json.getString("task_type"));
|
||||||
|
task.setPoint_code1(json.getString("PickingLocation"));
|
||||||
|
task.setPoint_code2(json.getString("PlacedLocation"));
|
||||||
|
task.setIs_vehicle(json.getString("IsPanCode"));
|
||||||
|
task.setExt_group_data(json.getString("CarryIsEmptyTuoPan"));
|
||||||
|
task.setRequest_param(json.toString());
|
||||||
|
task.setPriority(json.getString("Priority"));
|
||||||
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
task.setCreate_time(DateUtil.now());
|
||||||
|
taskService.save(task);
|
||||||
|
return task.getTask_id();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AcsTaskDto sendAcsParam(String taskId) {
|
||||||
|
SchBaseTask taskDao = taskService.getById(taskId);
|
||||||
|
|
||||||
|
// 组织下发给acs的数据
|
||||||
|
AcsTaskDto acsTaskDto = new AcsTaskDto();
|
||||||
|
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
|
||||||
|
acsTaskDto.setTask_code(taskDao.getTask_code());
|
||||||
|
acsTaskDto.setStart_device_code(taskDao.getPoint_code1());
|
||||||
|
acsTaskDto.setNext_device_code(taskDao.getPoint_code2());
|
||||||
|
acsTaskDto.setPriority(taskDao.getPriority());
|
||||||
|
acsTaskDto.setTask_type("1");
|
||||||
|
acsTaskDto.setIs_vehicle(taskDao.getIs_vehicle());
|
||||||
|
acsTaskDto.setIs_empvehicle(taskDao.getExt_group_data());
|
||||||
|
|
||||||
|
return acsTaskDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateStatus(String task_code, TaskStatus status) {
|
||||||
|
// 校验任务
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已完成!");
|
||||||
|
}
|
||||||
|
if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) {
|
||||||
|
throw new BadRequestException("该任务已取消!");
|
||||||
|
}
|
||||||
|
// 根据传来的类型去对任务进行操作
|
||||||
|
if (status.equals(TaskStatus.EXECUTING)) {
|
||||||
|
taskObj.setTask_status(TaskStatus.EXECUTING.getCode());
|
||||||
|
taskObj.setRemark("执行中");
|
||||||
|
TaskUtils.setUpdateByAcs(taskObj);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.FINISHED)) {
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
if (status.equals(TaskStatus.CANCELED)) {
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void forceFinish(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancel(String task_code) {
|
||||||
|
SchBaseTask taskObj = taskService.getByCode(task_code);
|
||||||
|
if (ObjectUtil.isEmpty(taskObj)) {
|
||||||
|
throw new BadRequestException("该任务不存在");
|
||||||
|
}
|
||||||
|
this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void backMes(String task_code) {
|
||||||
|
wmsToMesService.receiveTaskStatusMesData(taskService.getByCode(task_code));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
// 任务完成
|
||||||
|
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
|
||||||
|
// 通知mes任务完成
|
||||||
|
wmsToMesService.receiveTaskStatusMesData(taskObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
|
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
|
||||||
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
|
taskObj.setFinished_type(taskFinishedType.getCode());
|
||||||
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
|
taskService.updateById(taskObj);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user