fix: 修复联调中存在的问题

This commit is contained in:
yanps
2024-08-14 17:55:47 +08:00
parent 62d4582f97
commit ebbe7d28be
10 changed files with 75 additions and 64 deletions

View File

@@ -7,6 +7,7 @@ import cn.hutool.http.HttpStatus;
import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.config.MapOf;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.ext.connector.service.ConnectorToWmsService;
import org.nl.wms.sch.point.service.ISchBasePointService;
@@ -95,7 +96,11 @@ public class ConnectorToWmsServiceImpl implements ConnectorToWmsService {
param.put("task_code", task_code);
param.put("remark", remark);
param.put("ext_data", data);
connectorTask.apply(param);
try{
connectorTask.apply(param);
}catch (Exception e){
return MapOf.of("status", 400,"msg", e.getMessage());
}
schBasePoint.setIs_lock(true);
schBasePointService.updateById(schBasePoint);
map1.put("task_code", task_code);

View File

@@ -1,6 +1,9 @@
package org.nl.wms.ext.sorting.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
@@ -18,6 +21,8 @@ import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dto.PointMaterialInfo;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.task.TaskFactory;
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCMTTask;
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingCNTTask;
import org.nl.wms.sch.task_manage.task.tasks.sorting.SortingSMTTask;
@@ -37,13 +42,7 @@ import java.util.Map;
public class SortingServiceImpl implements SortingService {
@Autowired
private SortingCMTTask sortingCMTTask;
@Autowired
private SortingCNTTask sortingCNTTask;
@Autowired
private SortingSMTTask sortingSMTTask;
@Autowired
private SortingSNTTask sortingSNTTask;
private TaskFactory taskFactory;
@Autowired
private ISchBasePointService iSchBasePointService;
@Autowired
@@ -69,6 +68,13 @@ public class SortingServiceImpl implements SortingService {
String vehicle_code = jsonObject.getString("vehicle_code");
//托盘上的堆垛信息
JSONArray jsonArray = JSONUtil.parseArray(jsonObject.get("pallet_detail"));
SchBasePoint schBasePoint = iSchBasePointService.selectByPointCode(pointCode);
if(ObjectUtil.isEmpty(schBasePoint)) {
return MapOf.of("status", 400,"msg", "点位编码不存在!");
}
if(schBasePoint.getIs_lock()){
return MapOf.of("status", 400,"msg", "该点位已创建任务!");
}
// TODO:呼叫空托
iSchBasePointService.update(new UpdateWrapper<SchBasePoint>()
.set("is_lock",true)
@@ -76,21 +82,23 @@ public class SortingServiceImpl implements SortingService {
.eq("point_code",pointCode));
JSONObject taskParam = new JSONObject(MapOf.of("task_code",task_code,"job_name",jobname,"device_code",pointCode,"requestNo"
, "sorting_"+IdUtil.getStringId(),"ext_data",jsonObject,"vehicle_code",vehicle_code,"ext_data",jsonObject));
AbstractTask connectorTask = taskFactory.getTask("CNTTask");
if(SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)){
taskParam.put("config_code","SortingCNTTask");
sortingCNTTask.apply(taskParam);
//TODO:叫料
}else if(SortingEnum.TASK_TYPE_ONE.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)){
taskParam.put("config_code","SortingCMTTask");
sortingCMTTask.apply(taskParam);
//TODO:将空托盘放到线边库
}else if(SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.IS_EMPTY.getValue().equals(is_empty)){
taskParam.put("config_code","SortingSNTTask");
sortingSNTTask.apply(taskParam);
//TODO:将满料放到线边库
}else if(SortingEnum.TASK_TYPE_TWO.getValue().equals(task_type) && SortingEnum.NOT_EMPTY.getValue().equals(is_empty)){
taskParam.put("config_code","SortingSMTTask");
sortingSMTTask.apply(taskParam);
}
try{
connectorTask.apply(taskParam);
}catch (Exception e){
return MapOf.of("status", 400,"msg", e.getMessage());
}
return MapOf.of("status", 200,"msg", "sucess");
}catch (Exception ex){
@@ -106,6 +114,8 @@ public class SortingServiceImpl implements SortingService {
for (SchBaseVehiclematerialgroup schBaseVehiclematerialgroup : list) {
Gson gson = new Gson();
ConnectorDto connectorDto = gson.fromJson(schBaseVehiclematerialgroup.getExtend(), ConnectorDto.class);
connectorDto.setDueDate(StrUtil.isNotEmpty(connectorDto.getDueDate())?connectorDto.getDueDate():RegionEnum.TRUBEND_SHELVES_3_1_1.getRegion_code());
connectorDto.setNextOperation(StrUtil.isNotEmpty(connectorDto.getNextOperation())?connectorDto.getNextOperation(): DateUtil.now());
connectors.add(connectorDto);
}
// List<PointMaterialInfo> structList = iSchBasePointService.getStructList(RegionEnum.ZDFJ.getRegion_code(), "1");

View File

@@ -25,16 +25,7 @@ public class WmsToSortingService {
private ISchBaseTaskService iSchBaseTaskService;
public AcsResponse feedAgvTaskStatus(JSONObject json) {
String task_code = json.getString("task_code");
SchBaseTask task = iSchBaseTaskService.getByCode(task_code);
String request_param = task.getRequest_param();
JSONObject toJSON = (JSONObject)JSONObject.toJSON(request_param);
if (toJSON == null){
throw new BadRequestException("WmsToSortingService反馈异常,sorting对接数据ext_data为空");
}
AcsResponse acsResponse = ConnectorUtil.notifyEextSystem("api/external/wms/agv", toJSON, GeneralDefinition.SORTING_URL);
AcsResponse acsResponse = ConnectorUtil.notifyEextSystem("api/external/wms/agv", json, GeneralDefinition.SORTING_URL);
return acsResponse;
}
}

View File

@@ -108,7 +108,7 @@ public abstract class AbstractTask {
// taskDto.setStart_wait_code(task.getStart_wait_point());
// taskDto.setNext_wait_code(task.getNext_wait_point());
taskDto.setVehicle_code(task.getVehicle_code());
this.setTask(task.getConfig_code(), taskDto,task);
this.setTask(task.getConfig_code(), taskDto, task);
list.add(taskDto);
JSONObject result = AcsUtil.notifyAcs("api/wms/task", list);
if (HttpStatus.OK.value() == result.getInteger("status")) {
@@ -124,7 +124,7 @@ public abstract class AbstractTask {
}
}
private AcsTaskDto setTask(String config_code, AcsTaskDto taskDto,SchBaseTask task) {
private AcsTaskDto setTask(String config_code, AcsTaskDto taskDto, SchBaseTask task) {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, config_code));
taskDto.setPriority(taskConfig.getPriority());
@@ -243,6 +243,7 @@ public abstract class AbstractTask {
// 获取对接位点位对象
SchBasePoint pointObj = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, apply_point_code));
if (ObjectUtil.isEmpty(pointObj)) throw new BadRequestException("点位编码不存在!");
// 判断是否校验工单
if (taskConfig.getIs_check_workorder()) {
// 校验工单
@@ -295,12 +296,12 @@ public abstract class AbstractTask {
task.setGroup_id(bean.setGroupPlate(param));
// 创建一条单点任务。
taskService.save(task);
try{
try {
bean.create();
}catch (Exception e){
} catch (Exception e) {
taskService.update(Wrappers.lambdaUpdate(SchBaseTask.class)
.set(SchBaseTask::getRemark,"下发任务失败"+ e.getMessage())
.eq(SchBaseTask::getTask_code,task.getTask_code()));
.set(SchBaseTask::getRemark, "下发任务失败" + e.getMessage())
.eq(SchBaseTask::getTask_code, task.getTask_code()));
}
}
}

View File

@@ -120,14 +120,14 @@ public class FTGTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(schBasePoint)) {
PointUtils.updateByIngTaskCode(schBasePoint);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, startPoint)
.set(SchBasePoint::getIs_lock, false));
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
}
String point_code2 = taskObj.getPoint_code2();
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
PointUtils.updateByIngTaskCode(schBasePoint2);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code2)
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code, null));
.set(SchBasePoint::getIs_lock, false));
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());

View File

@@ -10,6 +10,9 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.enums.region.RegionEnum;
import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.database.vehicle.service.IMdBaseVehicleService;
import org.nl.wms.database.vehicle.service.dao.MdBaseVehicle;
import org.nl.wms.database.vehicle.service.dto.MdBaseVehicleQuery;
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
@@ -52,6 +55,8 @@ public class SortingCMTTask extends AbstractTask {
private ISchBasePointService schBasePointService;
@Autowired
private ISchBaseVehiclematerialgroupService schBaseVehiclematerialgroupService;
@Autowired
private IMdBaseVehicleService iMdBaseVehicleService;
@Override
protected void create() throws BadRequestException {
@@ -72,7 +77,20 @@ public class SortingCMTTask extends AbstractTask {
String jobname = jsonObject.getString("jobname");
//载具托盘号
String vehicle_code = jsonObject.getString("vehicle_code");
SchBasePoint structPoint = schBasePointService.getOne(new QueryWrapper<SchBasePoint>().eq("vehicle_code", vehicle_code));
MdBaseVehicle vehicle_code1 = iMdBaseVehicleService.getOne(new QueryWrapper<MdBaseVehicle>().eq("vehicle_code", vehicle_code));
if(ObjectUtil.isEmpty(vehicle_code1)) throw new BadRequestException("载具不存在");
SchBasePoint structPoint = schBasePointService.getOne(new QueryWrapper<SchBasePoint>()
.eq("vehicle_code", vehicle_code)
.eq("point_status","2")
.eq("is_lock",false));
if (ObjectUtil.isEmpty(structPoint)) {
task.setRemark("未找到所需点位!");
taskService.updateById(task);
// 消息通知
noticeService.createNotice("未找到所需点位!", TASK_CONFIG_CODE + task.getTask_code(),
NoticeTypeEnum.WARN.getCode());
continue;
}
taskService.update(new UpdateWrapper<SchBaseTask>()
.set("task_status",TaskStatus.CREATED.getCode())
.set("point_code1",structPoint.getPoint_code())
@@ -122,14 +140,14 @@ public class SortingCMTTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(schBasePoint)) {
PointUtils.updateByIngTaskCode(schBasePoint);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, startPoint)
.set(SchBasePoint::getIs_lock, false));
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code,null));
}
String point_code2 = taskObj.getPoint_code2();
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
PointUtils.updateByIngTaskCode(schBasePoint2);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code2)
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code,null));
.set(SchBasePoint::getIs_lock, false));
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());

View File

@@ -111,14 +111,14 @@ public class SortingCNTTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(schBasePoint)) {
PointUtils.updateByIngTaskCode(schBasePoint);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, startPoint)
.set(SchBasePoint::getIs_lock, false));
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code,null));
}
String point_code2 = taskObj.getPoint_code2();
SchBasePoint schBasePoint2 = pointService.selectByPointCode(point_code2);
if (ObjectUtil.isNotEmpty(schBasePoint2)) {
PointUtils.updateByIngTaskCode(schBasePoint2);
pointService.update(Wrappers.lambdaUpdate(SchBasePoint.class).eq(SchBasePoint::getPoint_code, point_code2)
.set(SchBasePoint::getIs_lock, false).set(SchBasePoint::getVehicle_code,null));
.set(SchBasePoint::getIs_lock, false));
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());