fix: 与ACS对接
This commit is contained in:
@@ -13,6 +13,7 @@ import org.nl.wms.ext.acs.service.dto.to.wms.FeedBackTaskStatusRequest;
|
||||
import org.nl.wms.ext.record.service.ISysInteractRecordService;
|
||||
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||
@@ -28,8 +29,10 @@ import javax.annotation.PostConstruct;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -40,8 +43,11 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
@Service
|
||||
public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
|
||||
// 反射类方法的缓存
|
||||
/**
|
||||
* 反射类方法的缓存
|
||||
*/
|
||||
private Map<String, Method> methodCache = new ConcurrentHashMap<>();
|
||||
private Map<String, Object> deveceList = new ConcurrentHashMap<>();
|
||||
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@@ -58,7 +64,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ISysInteractRecordService interactRecordService;
|
||||
|
||||
// 初始化反射方法
|
||||
/**
|
||||
* 初始化反射方法
|
||||
*/
|
||||
@PostConstruct
|
||||
public void initCacheMethod() {
|
||||
for (Method method : this.getClass().getMethods()) {
|
||||
@@ -76,7 +84,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
String requestMethodName = param.getString("request_method_name");
|
||||
BaseResponse result = BaseResponse.build(requestNo);
|
||||
String device_code = param.getString("device_code");
|
||||
param.put("config_code",requestMethodCode);
|
||||
SchBasePoint deviceObj = pointService.getById(device_code);
|
||||
if ("6".equals(requestMethodCode)) {
|
||||
// 送满料
|
||||
param.put("config_code",deviceObj.getRegion_code() + "MLTask");
|
||||
} else if ("7".equals(requestMethodCode)) {
|
||||
// 叫空盘
|
||||
param.put("config_code",deviceObj.getRegion_code() + "QKTask");
|
||||
} else if ("8".equals(requestMethodCode)) {
|
||||
// 叫空盘
|
||||
param.put("config_code",deviceObj.getRegion_code() + "SKTask");
|
||||
}
|
||||
try {
|
||||
if(ObjectUtil.isEmpty(requestMethodCode)){
|
||||
throw new BadRequestException("任务类型不正确!requestMethodCode:"+requestMethodCode+",device_code:"+device_code);
|
||||
@@ -180,8 +198,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
public AgainApplyResponse againApply(JSONObject task) {
|
||||
AgainApplyResponse result = AgainApplyResponse.responseOk(task.getString("request_no"));
|
||||
try {
|
||||
String configCode = task.getString("config_code");
|
||||
AbstractTask task1 = taskFactory.getTask(configCode);
|
||||
SchBaseTask task2 = taskService.getById(task.getString("task_id"));
|
||||
AbstractTask task1 = taskFactory.getTask(task2.getConfig_code());
|
||||
// id / code
|
||||
String pointCode = task1.againApply(task.getString("task_id"));
|
||||
result.setNext_point_code(pointCode);
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -198,8 +198,8 @@ public abstract class AbstractTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void apply(JSONObject param) throws BadRequestException {
|
||||
// 申请任务
|
||||
SchBaseTask task = new SchBaseTask(); // 任务实体
|
||||
String apply_point_code = param.getString("device_code"); // 请求点
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
String apply_point_code = param.getString("device_code");
|
||||
String config_code = param.getString("config_code");
|
||||
String requestNo = param.getString("requestNo");
|
||||
// 1、校验数据
|
||||
@@ -230,7 +230,7 @@ public abstract class AbstractTask {
|
||||
if (ObjectUtil.isEmpty(workorder)) {
|
||||
throw new BadRequestException("设备" + one.getPoint_code() + "工单未生产!");
|
||||
}
|
||||
param.put("workorder_code", workorder.getWorkorder_code()); // 静置时间
|
||||
param.put("workorder_code", workorder.getWorkorder_code());
|
||||
// 设置任务数据
|
||||
task.setVehicle_type(workorder.getVehicle_type());
|
||||
}
|
||||
@@ -249,19 +249,22 @@ public abstract class AbstractTask {
|
||||
task.setVehicle_code(param.getString("vehicle_code"));
|
||||
task.setVehicle_qty(param.getInteger("vehicle_qty"));
|
||||
task.setTask_status(TaskStatus.APPLY.getCode());
|
||||
task.setWorkshop_code(taskConfig.getWorkshop_code()); // 车间编码
|
||||
task.setWorkshop_code(taskConfig.getWorkshop_code());
|
||||
// 设置起/终点
|
||||
this.setTaskPoint(taskConfig, task, apply_point_code);
|
||||
task.setRequest_param(JSONObject.toJSONString(param));
|
||||
TaskUtils.setCreateByAcsOrPda(task, param); // 设置创建人信息
|
||||
// 设置创建人信息
|
||||
TaskUtils.setCreateByAcsOrPda(task, param);
|
||||
AbstractTask bean = SpringContextHolder.getBean(this.getClass());
|
||||
// 3、判断是否直接找点下发
|
||||
if (taskConfig.getIs_immediate_create()) { // 立即创建吧组盘放到具体位置,免得重复创建
|
||||
if (taskConfig.getIs_immediate_create()) {
|
||||
// 立即创建吧组盘放到具体位置,免得重复创建
|
||||
bean.createCompletion(task);
|
||||
} else { // 不需要立即创建,需要立马组盘
|
||||
// 设置组盘 - 需要的话由子类自行实现
|
||||
task.setGroup_id(bean.setGroupPlate(param));
|
||||
taskService.save(task); // 创建一条单点任务。
|
||||
// 创建一条单点任务。
|
||||
taskService.save(task);
|
||||
bean.create();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/12/1
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("KJQKTask")
|
||||
@Component("KJZCQKTask")
|
||||
public class KJQKTask extends AbstractTask {
|
||||
private static final String TASK_CONFIG_CODE = "KJQKTask";
|
||||
@Autowired
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
|
||||
* @Date: 2023/11/30
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("KJSKTask")
|
||||
@Component("KJZCSKTask")
|
||||
public class KJSKTask extends AbstractTask {
|
||||
private static final String TASK_CONFIG_CODE = "KJSKTask";
|
||||
@Autowired
|
||||
|
||||
Reference in New Issue
Block a user