fix:sorting呼叫载具及时修改货架状态,opc信号读取修复

This commit is contained in:
yanps
2024-08-16 13:23:10 +08:00
parent ebbe7d28be
commit 804c7c54da
17 changed files with 291 additions and 379 deletions

View File

@@ -384,27 +384,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
*/
private void releaseComplete(SchBaseTask schBaseTask, String status, String is_connector, String taskType, boolean is_empty) {
//TODO:空料容放货完成反馈给Connector
if (!is_empty) {
finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code2());
} else {
finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code1());
if ("1".equals(is_connector)) {
if ("1".equals(is_connector)) {
if (!is_empty) {
finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code2());
} else {
finishTask(schBaseTask.getTask_code(), schBaseTask.getPoint_code1());
JSONObject json = new JSONObject();
json.put("vehicle_code", schBaseTask.getVehicle_code());
json.put("status", status);
json.put("device_code", schBaseTask.getPoint_code2());
json.put("task_code", schBaseTask.getTask_code());
AcsResponse acsResponse = connectorService.feedAgvTaskStatus(json);
}
if ("2".equals(is_connector)) {
JSONObject json = new JSONObject();
json.put("vehicle_code", schBaseTask.getVehicle_code());
json.put("status", status);
json.put("device_code", schBaseTask.getPoint_code2());
json.put("task_code", schBaseTask.getTask_code());
AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json);
}
} else if ("2".equals(is_connector)) {
JSONObject json = new JSONObject();
json.put("vehicle_code", schBaseTask.getVehicle_code());
json.put("status", status);
json.put("device_code", schBaseTask.getPoint_code2());
json.put("task_code", schBaseTask.getTask_code());
AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json);
}
}
@@ -509,13 +507,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
boolean flag = true;
AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json);
if (acsResponse.getStatus() != 200 || StringUtils.isNotEmpty(acsResponse.getErrMsg())) {
throw new BadRequestException("申请失败,"+ acsResponse.getErrMsg());
throw new BadRequestException("申请失败," + acsResponse.getErrMsg());
}
}
}
/**
* 申请放货
*
* @param schBaseTask
* @param status
* @param is_connector
@@ -531,9 +530,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
boolean flag = true;
AcsResponse acsResponse = sortingService.feedAgvTaskStatus(json);
if (acsResponse.getStatus() != 200 || StringUtils.isNotEmpty(acsResponse.getErrMsg())) {
throw new BadRequestException("申请失败,"+ acsResponse.getErrMsg());
throw new BadRequestException("申请失败," + acsResponse.getErrMsg());
}
}else if("1".equals(is_connector)){
} else if ("1".equals(is_connector)) {
JSONObject json = new JSONObject();
json.put("vehicle_code", schBaseTask.getVehicle_code());
json.put("status", status);

View File

@@ -96,11 +96,7 @@ 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());
}
connectorTask.apply(param);
schBasePoint.setIs_lock(true);
schBasePointService.updateById(schBasePoint);
map1.put("task_code", task_code);

View File

@@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.enums.region.RegionEnum;
import org.nl.config.IdUtil;
import org.nl.config.MapOf;
@@ -38,6 +39,7 @@ import java.util.Map;
/**
* @author LENOVO
*/
@Slf4j
@Service
public class SortingServiceImpl implements SortingService {
@@ -51,6 +53,7 @@ public class SortingServiceImpl implements SortingService {
@Override
public Map createAgvTask(JSONObject jsonObject) {
log.info("sorting下发agv任务:{}",jsonObject);
try {
Assert.noNullElements(new Object[]{jsonObject,jsonObject.getString("pointCode"),jsonObject.getString("vehicle_code")
,jsonObject.getString("task_type"),jsonObject.getString("is_empty")},"请求参数不能为空");
@@ -85,20 +88,19 @@ public class SortingServiceImpl implements SortingService {
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");
connectorTask.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");
connectorTask.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");
connectorTask.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");
}
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){

View File

@@ -122,7 +122,7 @@ public class ConnectorUtil {
return AcsResponse.requestRefuse("未连接ACS!");
}
String url = connectorUrl + api;
log.info("下发acs任务的参数为:{}", JSON.toJSONString(object));
log.info("反馈sortingAGV状态:{},url:{}", JSON.toJSONString(object),url);
AcsResponse resultForAcs;
try {
String resultMsg = HttpRequest.post(url)
@@ -130,6 +130,7 @@ public class ConnectorUtil {
.execute().body();
result = JSONObject.parseObject(resultMsg);
resultForAcs = JSONObject.toJavaObject(result, AcsResponse.class);
log.info("反馈sortingAGV状态的响应:{}", JSON.toJSONString(resultMsg));
} catch (Exception e) {
String msg = e.getMessage();
//网络不通

View File

@@ -71,6 +71,7 @@ public class FTGTask extends AbstractTask {
// 设置终点并修改创建成功状态
task.setPoint_code1(schBasePoint.getPoint_code());
task.setVehicle_type(schBasePoint.getCan_vehicle_type());
task.setVehicle_code(schBasePoint.getVehicle_code());
task.setRemark("");
task.setTask_status(TaskStatus.CREATED.getCode());
taskService.updateById(task);

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.enums.GoodsEnum;
import org.nl.common.enums.region.RegionEnum;
import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService;
@@ -25,6 +26,7 @@ import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig;
import org.nl.wms.sch.task_manage.AbstractTask;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum;
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
import org.nl.wms.util.PointUtils;
@@ -98,6 +100,7 @@ public class SortingCMTTask extends AbstractTask {
pointService.update(new UpdateWrapper<SchBasePoint>()
.set("ing_task_code",task.getTask_code())
.set("is_lock",true)
.set("point_status", GoodsEnum.OUT_OF_STOCK.getValue())
.eq("point_code",structPoint.getPoint_code()));
}
}

View File

@@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.enums.GoodsEnum;
import org.nl.common.enums.VehicleEnum;
import org.nl.common.enums.region.RegionEnum;
import org.nl.common.enums.wms.PointStatusEnum;
import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
@@ -69,6 +71,7 @@ public class SortingCNTTask extends AbstractTask {
pointService.update(new UpdateWrapper<SchBasePoint>()
.set("ing_task_code",task.getTask_code())
.set("is_lock",true)
.set("point_status", GoodsEnum.OUT_OF_STOCK.getValue())
.eq("point_code",basePoint.getPoint_code()));
}
}

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<included>
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<property name="LOG_HOME" value="${logPath}"/>
<!--<define name="DEVICECODE" class="org.nl.common.logging.DeviceCodeDir"/>-->
<!-- 按照每天生成日志文件 -->
<appender name="FILE_11" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/connectorOrSorting/%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<!--单个日志最大容量 至少10MB才能看得出来-->
<maxFileSize>200MB</maxFileSize>
<!--所有日志最多占多大容量-->
<totalSizeCap>2GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>${log.charset}</charset>
</encoder>
</appender>
<!-- <logger name="org.nl.start.Init" level="info" additivity="false">
<appender-ref ref="FILE3"/>
</logger>-->
<!-- 打印sql -->
<logger name="org.nl.wms.sch.task_manage.task.ConnectorUtil" level="info" additivity="false">
<appender-ref ref="FILE_11"/>
</logger>
</included>

View File

@@ -18,6 +18,7 @@
</appender>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="${logPath}"/>
<include resource="log/ConnectorAndSorting.xml"/>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">