Browse Source

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

master
yanps 6 months ago
parent
commit
ebbe7d28be
  1. 6
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java
  2. 6
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/PlcToAgvDeviceDriver.java
  3. 18
      acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java
  4. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java
  5. 32
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java
  6. 11
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/WmsToSortingService.java
  7. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java
  8. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java
  9. 24
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java
  10. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java

6
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java

@ -254,6 +254,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
PlcToAgvDeviceDriver plcToAgvDeviceDriver = (PlcToAgvDeviceDriver) device.getDeviceDriver();
try {
plcToAgvDeviceDriver.writing("AGVInOP", "0");
plcToAgvDeviceDriver.writing("AGVSetOutReqUpper", "0");
plcToAgvDeviceDriver.writing("AGVSetOutReqLower", "0");
} catch (Exception e) {
log.info("下发AGVInOP信号:{}失败", "0");
}
@ -383,8 +385,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
PlcToAgvDeviceDriver plcToAgvDeviceDriver = (PlcToAgvDeviceDriver) device.getDeviceDriver();
try {
plcToAgvDeviceDriver.writing("AGVInOP", "0");
plcToAgvDeviceDriver.writing("AGVSetInReqUpper", "0");
plcToAgvDeviceDriver.writing("AGVSetInReqLower", "0");
} catch (Exception e) {
log.info("下发AGVInOP信号:{}失败", "0");
log.info("下发AGVInOP信号失败");
}
data = feedBackStatus(data, index, 4, inst, task, 2, false);
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) {

6
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/basedriver/plc_to_agv/PlcToAgvDeviceDriver.java

@ -29,6 +29,7 @@ import org.nl.acs.task.service.TaskService;
import org.nl.acs.task.service.dto.TaskDto;
import org.nl.acs.task.service.mapper.TaskMapper;
import org.nl.acs.utils.ConvertUtil;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.config.SpringContextHolder;
import org.nl.system.service.lucene.LuceneExecuteLogService;
@ -89,7 +90,8 @@ public class PlcToAgvDeviceDriver extends AbstractOpcDeviceDriver implements Dev
AGVEnable = this.itemProtocol.getAGVEnable();
} catch (Exception var17) {
return;
log.info("读取信号失败,失败原因:{}", var17.getMessage());
throw new BadRequestException("读取信号失败,失败原因:" + var17.getMessage());
}
}
@ -162,13 +164,11 @@ public class PlcToAgvDeviceDriver extends AbstractOpcDeviceDriver implements Dev
}
public void executing(Server server, Map<String, Object> itemMap) {
this.control(itemMap);
}
@Override
public JSONObject getDeviceStatusName() {
JSONObject jo = new JSONObject();

18
acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/route/service/impl/RouteLineServiceImpl.java

@ -529,28 +529,10 @@ public class RouteLineServiceImpl extends CommonServiceImpl<RouteLineMapper, Rou
RoutePlanDto routePlan = (RoutePlanDto) var2.next();
Map map1 = new HashMap();
map1.put("route_plan_id", routePlan.getPlan_uuid());
//List<Entity> allRouteLines = Db.use().query(initsql,param);
/*long l = System.currentTimeMillis();
List<Entity> allRouteLines = Db.use((DataSource) SpringContextHolder.getBean("dataSource")).query(initsql,param);
long l1 = System.currentTimeMillis();
System.out.println("加载时间"+(l1-l));*/
replaceAccess(routePlan.getPlan_uuid());
this.routePlans.put(routePlan.getPlan_code(), routePlan);
/*List<RouteLineDto> routeDaoList = allRouteLines.stream().map(entity -> {
RouteLineDto routeLineDto = new RouteLineDto();
routeLineDto.setDevice_code(entity.get("device_code").toString());
routeLineDto.setNext_device_code(entity.get("next_device_code").toString());
routeLineDto.setRoute_plan_id(entity.get("route_plan_id").toString());
routeLineDto.setType(entity.get("type").toString());
routeLineDto.setPath(entity.get("path").toString());
routeLineDto.setWeights(Integer.parseInt(entity.get("weights").toString()));
return routeLineDto;
}).collect(Collectors.toList());*/
List<RouteLineDto> routeDaoList = routePlansList.stream().map(entity -> {
RouteLineDto routeLineDto = new RouteLineDto();
routeLineDto.setDevice_code(entity.get("device_code").toString());

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/connector/service/impl/ConnectorToWmsServiceImpl.java

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

32
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/SortingServiceImpl.java

@ -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");

11
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/sorting/service/impl/WmsToSortingService.java

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

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/AbstractTask.java

@ -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()) {
// 校验工单

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/connector/FTGTask.java

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

24
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCMTTask.java

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

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/sorting/SortingCNTTask.java

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

Loading…
Cancel
Save