fix: 修复联调中存在的问题
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user