opt:增加任务及点位消息通知
This commit is contained in:
@@ -192,9 +192,9 @@ public class ZheDaAgvServiceImpl implements ZheDaAgvService {
|
|||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
log.error("tofix子母车取货完成,离开,第1次写入{}输送线信号成功!",siteDeviceDriver.getDeviceCode());
|
//log.error("tofix子母车取货完成,离开,第1次写入{}输送线信号成功!",siteDeviceDriver.getDeviceCode());
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
log.error("tofix子母车取货完成,离开,第1次写入{}信号失败:{}{}",siteDeviceDriver.getDeviceCode(),e,e.getMessage());
|
//log.error("tofix子母车取货完成,离开,第1次写入{}信号失败:{}{}",siteDeviceDriver.getDeviceCode(),e,e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class ItemProtocol {
|
|||||||
public int getOpcIntegerValue(String protocol) {
|
public int getOpcIntegerValue(String protocol) {
|
||||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
log.error("读取错误!");
|
//log.error("读取错误!");
|
||||||
} else {
|
} else {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,6 +221,10 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
SiteDeviceDriver siteDeviceDriver = (SiteDeviceDriver) device.getDeviceDriver();
|
SiteDeviceDriver siteDeviceDriver = (SiteDeviceDriver) device.getDeviceDriver();
|
||||||
//输送线对接,增加取货完成写入确认信号10
|
//输送线对接,增加取货完成写入确认信号10
|
||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
|
siteDeviceDriver.writing(10);
|
||||||
|
siteDeviceDriver.writing(10);
|
||||||
|
siteDeviceDriver.writing(10);
|
||||||
|
siteDeviceDriver.writing(10);
|
||||||
}
|
}
|
||||||
//校验agv上报站点编号与指令起始点相同
|
//校验agv上报站点编号与指令起始点相同
|
||||||
if (ObjectUtil.isEmpty(inst)) {
|
if (ObjectUtil.isEmpty(inst)) {
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class ItemProtocol {
|
|||||||
public int getOpcIntegerValue(String protocol) {
|
public int getOpcIntegerValue(String protocol) {
|
||||||
Integer value = this.driver.getIntegeregerValue(protocol);
|
Integer value = this.driver.getIntegeregerValue(protocol);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
log.error("读取错误!");
|
//log.error("读取错误!");
|
||||||
} else {
|
} else {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import org.nl.acs.device_driver.DeviceDriver;
|
|||||||
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
import org.nl.acs.device_driver.RouteableDeviceDriver;
|
||||||
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver;
|
||||||
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
import org.nl.acs.device_driver.driver.ExecutableDeviceDriver;
|
||||||
import org.nl.acs.ext.wms.data.BaseRequest;
|
|
||||||
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
import org.nl.acs.ext.wms.service.AcsToWmsService;
|
||||||
import org.nl.acs.instruction.domain.Instruction;
|
import org.nl.acs.instruction.domain.Instruction;
|
||||||
import org.nl.acs.instruction.service.InstructionService;
|
import org.nl.acs.instruction.service.InstructionService;
|
||||||
@@ -24,7 +23,6 @@ import org.openscada.opc.lib.da.Server;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -221,20 +219,24 @@ public class BaoshijianSiteDeviceDriver extends AbstractOpcDeviceDriver implemen
|
|||||||
this.writing("x7", 0);
|
this.writing("x7", 0);
|
||||||
} else if (x2 != last_x2 && x2 == 1 && !out && x5==0 && x7==0) {
|
} else if (x2 != last_x2 && x2 == 1 && !out && x5==0 && x7==0) {
|
||||||
//DJW02申请空盘
|
//DJW02申请空盘
|
||||||
mode2 =1;
|
mode2 = 1;
|
||||||
out = false;
|
out = false;
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
String device_code = this.device_code + "DJW02";
|
String device_code = this.device_code + "DJW02";
|
||||||
jsonObject.put("device_code", device_code);
|
jsonObject.put("device_code", device_code);
|
||||||
jsonObject.put("requestDate", new Date());
|
jsonObject.put("requestDate", new Date());
|
||||||
jsonObject.put("vehicle_type",2);
|
jsonObject.put("vehicle_type", 2);
|
||||||
jsonObject.put("requestNo", IdUtil.simpleUUID());
|
jsonObject.put("requestNo", IdUtil.simpleUUID());
|
||||||
jsonObject.put("request_method_code", "TBXQKTask");
|
jsonObject.put("request_method_code", "TBXQKTask");
|
||||||
String result=acsToWmsService.applyTaskToWms(jsonObject);
|
//log.error("tofix涂板线呼叫空架BaoshijianSiteDeviceDriver:" + device_code + "信号为" + mode + ":" + "x2" + ":" + x2 + ",满足请求条件,发出请求空架任务");
|
||||||
|
String result = acsToWmsService.applyTaskToWms(jsonObject);
|
||||||
JSONObject res_jo = JSONObject.parseObject(result);
|
JSONObject res_jo = JSONObject.parseObject(result);
|
||||||
if (res_jo.getString("status").equals("200")){
|
if ("200".equals(res_jo.getString("status"))) {
|
||||||
|
// log.error("tofix涂板线呼叫空架BaoshijianSiteDeviceDriver:" + device_code + "信号为" + mode + ":" + "x2" + ":" + x2 + ",请求空架任务成功!");
|
||||||
this.writing("x5", 1);
|
this.writing("x5", 1);
|
||||||
out = true;
|
out = true;
|
||||||
|
} else {
|
||||||
|
log.error("tofix涂板线呼叫空架BaoshijianSiteDeviceDriver:" + device_code + "信号为" + mode + ":" + "x2" + ":" + x2 + ",请求空架任务失败!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -224,21 +224,15 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
|
|||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
//空托盘出库
|
//空托盘出库
|
||||||
if (move == 1 && !requireSucess) {
|
log.info("tofix输送线SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + "已无此信号协议,需输送线去掉");
|
||||||
apply(6);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
//涂板线申请空盘
|
//涂板线申请空盘
|
||||||
if (move == 0 && !requireSucess) {
|
log.info("tofix输送线SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + "已无此信号协议,需输送线去掉");
|
||||||
apply(7);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
//空托盘出库
|
//空托盘出库
|
||||||
if (move == 1 && !requireSucess) {
|
log.info("tofix输送线SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + "已无此信号协议,需输送线去掉");
|
||||||
apply(8);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch (flag) {
|
switch (flag) {
|
||||||
@@ -250,9 +244,7 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
|
|||||||
case 2:
|
case 2:
|
||||||
writing(3);
|
writing(3);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
last_mode = mode;
|
last_mode = mode;
|
||||||
last_error = error;
|
last_error = error;
|
||||||
@@ -412,31 +404,21 @@ public class SiteDeviceDriver extends AbstractOpcDeviceDriver implements DeviceD
|
|||||||
jsonObject.put("requestDate", new Date());
|
jsonObject.put("requestDate", new Date());
|
||||||
jsonObject.put("vehicle_type", this.pallet_type);
|
jsonObject.put("vehicle_type", this.pallet_type);
|
||||||
jsonObject.put("requestNo", IdUtil.simpleUUID());
|
jsonObject.put("requestNo", IdUtil.simpleUUID());
|
||||||
switch (type) {
|
if (type == 5) {
|
||||||
case 5:
|
if (device_code.startsWith("ZCSSX")) {
|
||||||
if (device_code.startsWith("ZCSSX")) {
|
log.error("tofix输送线呼叫空架SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + ",满足请求条件,发出请求空架任务");
|
||||||
log.info("tofix输送线SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + ",满足请求条件,发出请求空架任务");
|
jsonObject.put("request_method_code", "KJQKTask");
|
||||||
jsonObject.put("request_method_code", "KJQKTask");
|
}
|
||||||
} else {
|
|
||||||
jsonObject.put("request_method_code", "TBXQKTask");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
jsonObject.put("request_method_code", "TBXQKTask");
|
|
||||||
break;
|
|
||||||
case 8:
|
|
||||||
jsonObject.put("request_method_code", "KJSKTask");
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
String result = acsToWmsService.applyTaskToWms(jsonObject);
|
String result = acsToWmsService.applyTaskToWms(jsonObject);
|
||||||
JSONObject res_jo = JSONObject.parseObject(result);
|
JSONObject res_jo = JSONObject.parseObject(result);
|
||||||
// if (StrUtil.equals(res_jo.getString("code"), "200")) {
|
if (StrUtil.equals(res_jo.getString("code"), "200")) {
|
||||||
this.writing(type);
|
this.writing(type);
|
||||||
this.setRequireSucess(true);
|
this.setRequireSucess(true);
|
||||||
log.info("acs申请任务", this.device_code, "任务申请成功!");
|
log.info("tofix输送线呼叫空架SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + ",申请空架任务成功!");
|
||||||
// }else{
|
} else {
|
||||||
// this.writing(99);
|
log.info("tofix输送线呼叫空架SiteDeviceDriver:" + device_code + "信号为" + mode + ":" + move + ":" + requireSucess + ",申请空架任务失败!" + res_jo.getString("message"));
|
||||||
// }
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,9 +84,9 @@ public class QueryZDAgvTaskStatus {
|
|||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
siteDeviceDriver.writing(10);
|
siteDeviceDriver.writing(10);
|
||||||
log.error("tofix子母车反馈任务完成,第2次写入{}输送线信号成功!",siteDeviceDriver.getDeviceCode());
|
//log.error("tofix子母车反馈任务完成,第2次写入{}输送线信号成功!",siteDeviceDriver.getDeviceCode());
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
log.error("tofix子母车反馈任务完成,第2次写入检测站点驱动信号失败:{}{}",e,e.getMessage());
|
//log.error("tofix子母车反馈任务完成,第2次写入检测站点驱动信号失败:{}{}",e,e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -120,7 +120,7 @@ public class QueryZDAgvTaskStatus {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e){
|
} catch (Exception e){
|
||||||
log.error("自动线程开始查询浙大AGV任务状态失败!失败原因:{}", e.getMessage());
|
//log.error("自动线程开始查询浙大AGV任务状态失败!失败原因:{}", e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -246,7 +246,7 @@ public class SyncDeviceStatus {
|
|||||||
redisUtils.set("agv", agv);
|
redisUtils.set("agv", agv);
|
||||||
// log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime);
|
// log.trace("自动上报驱动状态,完毕耗时{}", System.currentTimeMillis() - startTime);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("tofix自动线程开始查询AGV设备,自动上报驱动状态失败{}{}", e, e.getMessage());
|
//log.error("tofix自动线程开始查询AGV设备,自动上报驱动状态失败{}{}", e, e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.common.enums.NoticeEnum;
|
import org.nl.common.enums.NoticeEnum;
|
||||||
@@ -18,12 +17,11 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.common.mnt.websocket.MsgType;
|
import org.nl.common.mnt.websocket.MsgType;
|
||||||
import org.nl.common.mnt.websocket.SocketMsg;
|
import org.nl.common.mnt.websocket.SocketMsg;
|
||||||
import org.nl.common.mnt.websocket.WebSocketServer;
|
import org.nl.common.mnt.websocket.WebSocketServer;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
|
||||||
import org.nl.system.service.dict.dao.Dict;
|
import org.nl.system.service.dict.dao.Dict;
|
||||||
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
|
import org.nl.system.service.dict.dao.mapper.SysDictMapper;
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.system.service.notice.dao.mapper.SysNoticeMapper;
|
|
||||||
import org.nl.system.service.notice.dao.SysNotice;
|
import org.nl.system.service.notice.dao.SysNotice;
|
||||||
|
import org.nl.system.service.notice.dao.mapper.SysNoticeMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -33,7 +31,6 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Consumer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 服务实现
|
* @description 服务实现
|
||||||
@@ -156,19 +153,21 @@ public class SysNoticeServiceImpl extends ServiceImpl<SysNoticeMapper, SysNotice
|
|||||||
@Override
|
@Override
|
||||||
public void createNotice(String msg, String title, String type) {
|
public void createNotice(String msg, String title, String type) {
|
||||||
log.info("创建消息通知-信息:{}, 标题:{}, 类型:{}", msg, title, type);
|
log.info("创建消息通知-信息:{}, 标题:{}, 类型:{}", msg, title, type);
|
||||||
// 获取标题相同的信息
|
String dealStatus = NoticeEnum.DEAL_STATUS_NO.getValue();
|
||||||
List<SysNotice> sysNotices = sysNoticeMapper.selectList(new LambdaQueryWrapper<SysNotice>().eq(SysNotice::getNotice_title, title));
|
String haveRead = NoticeEnum.HAVE_READ_OFF.getValue();
|
||||||
if (ObjectUtil.isNotEmpty(sysNotices)) return;
|
if (title.contains("LTX")||title.contains("ZCS")) {
|
||||||
|
dealStatus = NoticeEnum.DEAL_STATUS_NO_NEED.getValue();
|
||||||
|
haveRead = NoticeEnum.HAVE_READ_ON.getValue();
|
||||||
|
}
|
||||||
SysNotice noticeDto = SysNotice.builder()
|
SysNotice noticeDto = SysNotice.builder()
|
||||||
.notice_id(IdUtil.getSnowflake(1,1).nextIdStr())
|
.notice_id(IdUtil.getSnowflake(1, 1).nextIdStr())
|
||||||
.notice_type(type)
|
.notice_type(type)
|
||||||
.notice_title(title)
|
.notice_title(title)
|
||||||
.notice_content(msg)
|
.notice_content(msg)
|
||||||
.deal_status(NoticeEnum.DEAL_STATUS_NO.getValue())
|
.deal_status(dealStatus)
|
||||||
.have_read(NoticeEnum.HAVE_READ_OFF.getValue())
|
.have_read(haveRead)
|
||||||
.create_time(DateUtil.now())
|
.create_time(DateUtil.now())
|
||||||
.build();
|
.build();
|
||||||
// 插入
|
|
||||||
sysNoticeMapper.insert(noticeDto);
|
sysNoticeMapper.insert(noticeDto);
|
||||||
JSONObject res = new JSONObject();
|
JSONObject res = new JSONObject();
|
||||||
res.put("data", "notice_message_update");
|
res.put("data", "notice_message_update");
|
||||||
|
|||||||
@@ -34,11 +34,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -73,6 +70,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
private CockpitMapper cockpitMapper;
|
private CockpitMapper cockpitMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private GHCMLTask ghcmlTask;
|
private GHCMLTask ghcmlTask;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化反射方法
|
* 初始化反射方法
|
||||||
*/
|
*/
|
||||||
@@ -116,13 +114,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
interactRecordService.saveRecord(requestMethodName, param, result, GeneralDefinition.ACS_LMS);
|
interactRecordService.saveRecord(requestMethodName, param, result, GeneralDefinition.ACS_LMS);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String message = e.getMessage();
|
String message = e.getMessage();
|
||||||
log.error("ACS请求LMS出现错误,acsApply请求参数为:{},错误信息为:{},{}",param,e, message);
|
log.error("ACS请求LMS出现错误,acsApply请求参数为:{},错误信息为:{},{}", param, e, message);
|
||||||
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
||||||
result.setMessage(message);
|
result.setMessage(message);
|
||||||
result.setRequestNo(requestNo);
|
result.setRequestNo(requestNo);
|
||||||
|
String title = "acsApply: " + param.getString("request_method_code");
|
||||||
// 消息通知
|
// 消息通知
|
||||||
noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"),
|
noticeService.createNotice("异常信息:" + message, title, NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -194,6 +192,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case 1:
|
case 1:
|
||||||
//反馈设备状态,将对应固化室修改为传入状态
|
//反馈设备状态,将对应固化室修改为传入状态
|
||||||
|
List<String> deviceCodeList = new ArrayList<>(Arrays.asList("ZCSSX010107", "ZCSSX010207", "ZCSSX030101", "ZCSSX030201", "ZCSSX020101", "ZCSSX020201",
|
||||||
|
"ZCSSX030107", "ZCSSX030207", "ZCSSX020107", "ZCSSX020207", "LTX01DJW02", "LTXD2JW02", "LTXD03JW02", "LTXD04JW02", "LTXD05JW02", "LTXD06JW02"));
|
||||||
|
if (deviceCodeList.contains(device_code)) {
|
||||||
|
String msg = device_code + "的光电反馈变更:"+pointService.getById(device_code).getPoint_status()+" -> " + state;
|
||||||
|
noticeService.createNotice(msg, device_code, NoticeTypeEnum.NOTIFICATION.getCode());
|
||||||
|
}
|
||||||
pointMapper.updatePointStatus(device_code, state);
|
pointMapper.updatePointStatus(device_code, state);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -203,8 +207,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
case 3:
|
case 3:
|
||||||
//设备反馈故障
|
//设备反馈故障
|
||||||
try {
|
try {
|
||||||
SchBasePoint schBasePoint=pointService.getById(device_code);
|
SchBasePoint schBasePoint = pointService.getById(device_code);
|
||||||
if(ObjectUtil.isNotEmpty(schBasePoint)) {
|
if (ObjectUtil.isNotEmpty(schBasePoint)) {
|
||||||
if ("0".equals(current_status)) {
|
if ("0".equals(current_status)) {
|
||||||
schBasePoint.setIs_used(true);
|
schBasePoint.setIs_used(true);
|
||||||
pointService.update(schBasePoint);
|
pointService.update(schBasePoint);
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
|||||||
@Override
|
@Override
|
||||||
public SchBaseVehiclematerialgroup getVehicleGroupInfo(String vehicleCode, String vehicleType, String status) {
|
public SchBaseVehiclematerialgroup getVehicleGroupInfo(String vehicleCode, String vehicleType, String status) {
|
||||||
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
|
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
|
||||||
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
||||||
// .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
|
// .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
|
||||||
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, status)
|
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, status)
|
||||||
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
|
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package org.nl.wms.sch.task_manage;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
@@ -224,9 +223,8 @@ public abstract class AbstractTask {
|
|||||||
// 获取执行中的任务
|
// 获取执行中的任务
|
||||||
List<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(
|
List<SchBaseTask> unFinishTasksByTaskConfig = taskService.findUnFinishTasksByTaskConfig(
|
||||||
taskConfig.getConfig_code(), apply_point_code, taskConfig.getTask_direction());
|
taskConfig.getConfig_code(), apply_point_code, taskConfig.getTask_direction());
|
||||||
|
|
||||||
Assert.isFalse(unFinishTasksByTaskConfig.size() >= tcmn,
|
Assert.isFalse(unFinishTasksByTaskConfig.size() >= tcmn,
|
||||||
"该点位申请的任务未完成数已超过上限,无法申请任务");
|
"点位" + apply_point_code + ",已存在未完成任务类型为" + taskConfig.getConfig_code() + "的任务,申请失败!请检查!");
|
||||||
// 获取对接位点位对象
|
// 获取对接位点位对象
|
||||||
SchBasePoint pointObj = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
SchBasePoint pointObj = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
.eq(SchBasePoint::getPoint_code, apply_point_code));
|
.eq(SchBasePoint::getPoint_code, apply_point_code));
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
if (ObjectUtil.isNotEmpty(temp)) {
|
if (ObjectUtil.isNotEmpty(temp)) {
|
||||||
return temp;
|
return temp;
|
||||||
}
|
}
|
||||||
// 如果没有找到。或者分配等待点失败,就选择一个空列存放
|
//如果没有找到。或者分配等待点失败,就选择一个空列存放
|
||||||
return autoMapper.getZCEmptyMaterialPoint(nextRegionStr.get(0), jsonObject.getString("material_id"));
|
return autoMapper.getZCEmptyMaterialPoint(nextRegionStr.get(0), jsonObject.getString("material_id"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,15 +64,16 @@ public class KJQKTask extends AbstractTask {
|
|||||||
JSONObject extGroupData = JSONObject.parseObject(requestParam);
|
JSONObject extGroupData = JSONObject.parseObject(requestParam);
|
||||||
// 根据对接位查找对应的载具类型
|
// 根据对接位查找对应的载具类型
|
||||||
SchBasePoint endPoint = pointService.getById(task.getPoint_code2());
|
SchBasePoint endPoint = pointService.getById(task.getPoint_code2());
|
||||||
log.error("tofix__KJQKTask_目标点位:" + endPoint.getPoint_code() + ",点位状态为:"+endPoint.getPoint_status());
|
log.error("tofix__KJQKTask_目标点位" + endPoint.getPoint_code() + ",点位状态为:"+endPoint.getPoint_status());
|
||||||
if (!endPoint.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) {
|
if (!endPoint.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) {
|
||||||
log.error("tofix__KJQKTask_目标点位:" + endPoint.getPoint_code() + ",点位状态不为无货,不满足补空架任务生成条件");
|
log.error("tofix__KJQKTask_目标点位" + endPoint.getPoint_code() + "申请KJQKTask任务,但该点位状态为2有货,不满足任务生成条件,请核对该点位现场的实际状态!");
|
||||||
throw new BadRequestException("目标点位:" + endPoint.getPoint_code() + ",点位状态不为无货,不满足补空架任务生成条件");
|
throw new BadRequestException("点位" + endPoint.getPoint_code() + "申请KJQKTask任务,但该点位状态为2有货,不满足任务生成条件,请核对该点位现场的实际状态!");
|
||||||
}
|
}
|
||||||
extGroupData.put("vehicle_type", endPoint.getCan_vehicle_type());
|
extGroupData.put("vehicle_type", endPoint.getCan_vehicle_type());
|
||||||
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
throw new BadRequestException("未找到所需点位!");
|
log.error("tofix__KJQKTask_点位" + endPoint.getPoint_code() + "未找到取空架起点!请检查ZCSSX010107,ZCSSX010207点位状态是否为2有货,或这些起点已存在未完成的KJQKTask任务");
|
||||||
|
throw new BadRequestException("点位:" + endPoint.getPoint_code() + "未找到取空架起点!请检查ZCSSX010107,ZCSSX010207点位状态是否为2有货,或这些起点已存在未完成的KJQKTask任务");
|
||||||
}
|
}
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code1(point.getPoint_code());
|
task.setPoint_code1(point.getPoint_code());
|
||||||
@@ -80,7 +81,6 @@ public class KJQKTask extends AbstractTask {
|
|||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
log.error("tofix_KJQKTask+" + task.getPoint_code1() + ":" + task.getPoint_code2() + "创建任务成功!");
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
PointUtils.setUpdateByAcs(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
@@ -96,14 +96,13 @@ public class KJQKTask extends AbstractTask {
|
|||||||
// todo:不考虑等待点
|
// todo:不考虑等待点
|
||||||
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().lambda();
|
LambdaQueryWrapper<SchBasePoint> lam = new QueryWrapper<SchBasePoint>().lambda();
|
||||||
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
||||||
.eq(SchBasePoint::getVehicle_type, extGroupData.getString("vehicle_type"))
|
.eq(SchBasePoint::getCan_material_type, "AGV")
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
.or()
|
.or()
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
|
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
|
||||||
.orderByAsc(SchBasePoint::getCol_num)
|
.orderByAsc(SchBasePoint::getPoint_code);
|
||||||
.orderByAsc(SchBasePoint::getRow_num);
|
|
||||||
List<SchBasePoint> list = pointService.list(lam);
|
List<SchBasePoint> list = pointService.list(lam);
|
||||||
return list.size() > 0 ? list.get(0) : null;
|
return list.size() > 0 ? list.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,19 +100,23 @@ public class TBXQKTask extends AbstractTask {
|
|||||||
String requestParam = task.getRequest_param();
|
String requestParam = task.getRequest_param();
|
||||||
JSONObject extGroupData = JSONObject.parseObject(requestParam);
|
JSONObject extGroupData = JSONObject.parseObject(requestParam);
|
||||||
// 根据对接位查找对应的载具类型
|
// 根据对接位查找对应的载具类型
|
||||||
SchBasePoint startPoint = pointService.getById(task.getPoint_code2());
|
SchBasePoint endPoint = pointService.getById(task.getPoint_code2());
|
||||||
extGroupData.put("vehicle_type", startPoint.getCan_vehicle_type());
|
if (!endPoint.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) {
|
||||||
|
log.error("tofix__TBXQKTask_目标点位" + endPoint.getPoint_code() + "申请TBXQKTask任务,但该点位状态为2有货,不满足任务生成条件,请核对该点位现场的实际状态!");
|
||||||
|
throw new BadRequestException("点位" + endPoint.getPoint_code() + "申请TBXQKTask任务,但该点位状态为2有货,不满足任务生成条件,请核对该点位现场的实际状态!");
|
||||||
|
}
|
||||||
|
extGroupData.put("vehicle_type", endPoint.getCan_vehicle_type());
|
||||||
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
|
||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
throw new BadRequestException("未找到所需点位!");
|
log.error("tofix__TBXQKTask_点位" + endPoint.getPoint_code() + "未找到取空架起点!请检查起点ZCSSX020107,ZCSSX020207,ZCSSX030107,ZCSSX030207点位状态是否为2有货,或这些起点已存在未完成的TBXQKTask任务");
|
||||||
|
throw new BadRequestException("点位" + endPoint.getPoint_code() + "未找到取空架起点!请检查起点ZCSSX020107,ZCSSX020207,ZCSSX030107,ZCSSX030207点位状态是否为2有货,或这些起点已存在未完成的TBXQKTask任务");
|
||||||
}
|
}
|
||||||
// 设置终点并修改创建成功状态
|
// 设置终点并修改创建成功状态
|
||||||
task.setPoint_code1(point.getPoint_code());
|
task.setPoint_code1(point.getPoint_code());
|
||||||
task.setVehicle_type(startPoint.getCan_vehicle_type());
|
task.setVehicle_type(endPoint.getCan_vehicle_type());
|
||||||
task.setRemark("");
|
task.setRemark("");
|
||||||
task.setTask_status(TaskStatus.CREATED.getCode());
|
task.setTask_status(TaskStatus.CREATED.getCode());
|
||||||
taskService.save(task);
|
taskService.save(task);
|
||||||
|
|
||||||
point.setIng_task_code(task.getTask_code());
|
point.setIng_task_code(task.getTask_code());
|
||||||
PointUtils.setUpdateByAcs(point);
|
PointUtils.setUpdateByAcs(point);
|
||||||
pointService.updateById(point);
|
pointService.updateById(point);
|
||||||
@@ -130,14 +134,15 @@ public class TBXQKTask extends AbstractTask {
|
|||||||
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
lam.in(SchBasePoint::getRegion_code, startRegionStr)
|
||||||
// 点位类型是拆盘机出口
|
// 点位类型是拆盘机出口
|
||||||
.eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT)
|
.eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT)
|
||||||
.eq(SchBasePoint::getCan_vehicle_type, requestParam.getString("vehicle_type"))
|
.eq(SchBasePoint::getCan_material_type, "RGV")
|
||||||
// 当前执行的任务为空或者NULL,有数据表示锁住
|
// 当前执行的任务为空或者NULL,有数据表示锁住
|
||||||
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
|
||||||
.or()
|
.or()
|
||||||
.eq(SchBasePoint::getIng_task_code, ""))
|
.eq(SchBasePoint::getIng_task_code, ""))
|
||||||
.eq(SchBasePoint::getPoint_status,"2")
|
.eq(SchBasePoint::getPoint_status, "2")
|
||||||
.eq(SchBasePoint::getBlock_num, "1")
|
.eq(SchBasePoint::getBlock_num, "1")
|
||||||
.eq(SchBasePoint::getIs_used, true);
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
|
.orderByAsc(SchBasePoint::getPoint_code);
|
||||||
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
List<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||||
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
|
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user