fix: 与ACS对接

This commit is contained in:
2023-12-25 10:59:36 +08:00
parent 68c68e6c4d
commit 75719ec709
4 changed files with 36 additions and 14 deletions

View File

@@ -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) {

View File

@@ -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();
}
}

View File

@@ -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

View File

@@ -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