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