新需求固化室一键解绑
This commit is contained in:
@@ -121,6 +121,9 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem
|
|||||||
request.setDevice_code(this.getDeviceCode());
|
request.setDevice_code(this.getDeviceCode());
|
||||||
request.setType("1");
|
request.setType("1");
|
||||||
acsToWmsService.notify(request);
|
acsToWmsService.notify(request);
|
||||||
|
if(state==4) {
|
||||||
|
this. writing(ItemProtocol.item_to_state,4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
last_action = action;
|
last_action = action;
|
||||||
last_mode = mode;
|
last_mode = mode;
|
||||||
|
|||||||
@@ -22,9 +22,11 @@ import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
|
|||||||
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task_manage.AbstractTask;
|
import org.nl.wms.sch.task_manage.AbstractTask;
|
||||||
|
import org.nl.wms.sch.task_manage.GeneralDefinition;
|
||||||
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
|
||||||
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
|
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.PointStatusEnum;
|
||||||
@@ -42,11 +44,13 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
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.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -74,6 +78,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PointMapper pointMapper;
|
private PointMapper pointMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SchBasePointMapper schBasePointMapper;
|
||||||
|
|
||||||
// 初始化反射方法
|
// 初始化反射方法
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void initCacheMethod() {
|
public void initCacheMethod() {
|
||||||
@@ -91,17 +98,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String requestMethodName = param.getString("request_medthod_name");
|
String requestMethodName = param.getString("request_medthod_name");
|
||||||
BaseResponse result = BaseResponse.build(requestNo);
|
BaseResponse result = BaseResponse.build(requestNo);
|
||||||
String device_code = param.getString("device_code");
|
String device_code = param.getString("device_code");
|
||||||
param.put("config_code",requestMethodCode);
|
param.put("config_code", requestMethodCode);
|
||||||
try {
|
try {
|
||||||
if(ObjectUtil.isEmpty(requestMethodCode)){
|
if (ObjectUtil.isEmpty(requestMethodCode)) {
|
||||||
throw new BadRequestException("任务类型不正确!requestMethodCode:"+requestMethodName+",device_code:"+device_code);
|
throw new BadRequestException("任务类型不正确!requestMethodCode:" + requestMethodName + ",device_code:" + device_code);
|
||||||
}
|
}
|
||||||
AbstractTask task = taskFactory.getTask(requestMethodCode);
|
AbstractTask task = taskFactory.getTask(requestMethodCode);
|
||||||
// 执行创建任务
|
// 执行创建任务
|
||||||
task.apply(param);
|
task.apply(param);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String message = e.getMessage();
|
String message = e.getMessage();
|
||||||
log.error("ACS请求LMS出现错误: {}",e.getMessage(),e);
|
log.error("ACS请求LMS出现错误: {}", e.getMessage(), e);
|
||||||
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
||||||
result.setMessage(message);
|
result.setMessage(message);
|
||||||
result.setRequestNo(requestNo);
|
result.setRequestNo(requestNo);
|
||||||
@@ -109,7 +116,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"),
|
noticeService.createNotice("异常信息:" + message, "acsApply: " + param.getString("request_medthod_code"),
|
||||||
NoticeTypeEnum.EXCEPTION.getCode());
|
NoticeTypeEnum.EXCEPTION.getCode());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -152,7 +159,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
try {
|
try {
|
||||||
abstractTask.updateTaskStatus(taskObj.getTask_id(), status);
|
abstractTask.updateTaskStatus(taskObj.getTask_id(), status);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("任务状态更新失败: {}", e.getMessage(),e);
|
log.error("任务状态更新失败: {}", e.getMessage(), e);
|
||||||
return BaseResponse.responseError(requestNo, "任务:[" + taskId + "]状态更新失败," + message);
|
return BaseResponse.responseError(requestNo, "任务:[" + taskId + "]状态更新失败," + message);
|
||||||
}
|
}
|
||||||
return BaseResponse.responseOk(requestNo, "任务状态反馈成功!");
|
return BaseResponse.responseOk(requestNo, "任务状态反馈成功!");
|
||||||
@@ -165,23 +172,53 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
public BaseResponse notify(JSONObject param) {
|
public BaseResponse notify(JSONObject param) {
|
||||||
String requestNo = param.getString("requestNo");
|
String requestNo = param.getString("requestNo");
|
||||||
log.info("notifyAcs - 请求参数 {}", param);
|
log.info("notifyAcs - 请求参数 {}", param);
|
||||||
Integer type=param.getInteger("type");
|
Integer type = param.getInteger("type");
|
||||||
String device_code = param.getString("device_code");
|
String device_code = param.getString("device_code");
|
||||||
String state = param.getString("state");
|
String state = param.getString("state");
|
||||||
switch(type) {
|
String ghs_device_code;
|
||||||
|
switch (type) {
|
||||||
case 1:
|
case 1:
|
||||||
//自动门反馈设备状态,将对应十个固化室工位的状态修改为传入状态
|
//自动门反馈设备状态,将对应十个固化室工位的状态修改为传入状态
|
||||||
String ghs_device_code="GHS"+device_code.substring(device_code.length()-2);
|
ghs_device_code = "GHS" + device_code.substring(device_code.length() - 2);
|
||||||
pointMapper.updatePointStatus(ghs_device_code,state);
|
pointMapper.updatePointStatus(ghs_device_code, state);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
//正极板对接位反馈设备有无货
|
//正极板对接位反馈设备有无货
|
||||||
device_code=device_code.substring(0,device_code.length()-2);
|
device_code = device_code.substring(0, device_code.length() - 2);
|
||||||
pointMapper.updatePointVehicleQty(device_code,state);
|
pointMapper.updatePointVehicleQty(device_code, state);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
//正极板空架缓存区人工搬走后显示更新无货
|
//正极板空架缓存区人工搬走后显示更新无货
|
||||||
pointMapper.updatePointVehicleQty(device_code,state);
|
pointMapper.updatePointVehicleQty(device_code, state);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
//自动门反馈全部人工出库,将对应十个固化室工位的物料状态清空,组盘表解绑
|
||||||
|
ghs_device_code = "GHS" + device_code.substring(device_code.length() - 2);
|
||||||
|
List<SchBasePoint> schBasePointList = schBasePointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
|
.like(SchBasePoint::getPoint_code, ghs_device_code));
|
||||||
|
for (SchBasePoint schBasePoint : schBasePointList) {
|
||||||
|
List<String> vehicleCodeList = Arrays.stream(schBasePoint.getVehicle_code().split(",")).collect(Collectors.toList());
|
||||||
|
//组盘全部解绑
|
||||||
|
for (String vehicleCode : vehicleCodeList) {
|
||||||
|
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne(new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
|
||||||
|
.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
|
||||||
|
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,
|
||||||
|
GroupBindMaterialStatusEnum.BOUND.getValue()));
|
||||||
|
if (ObjectUtil.isNotEmpty(groupEntity)) {
|
||||||
|
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||||
|
groupEntity.setUpdate_id(GeneralDefinition.ACS_ID);
|
||||||
|
groupEntity.setUpdate_name(GeneralDefinition.ACS_NAME);
|
||||||
|
groupEntity.setUpdate_time(DateUtil.now());
|
||||||
|
vehiclematerialgroupService.update(groupEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//清空点位
|
||||||
|
schBasePoint.setVehicle_type("");
|
||||||
|
schBasePoint.setVehicle_code("");
|
||||||
|
schBasePoint.setVehicle_qty(0);
|
||||||
|
schBasePoint.setUpdate_time(DateUtil.now());
|
||||||
|
pointService.update(schBasePoint);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -192,7 +229,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
/**
|
/**
|
||||||
* 任务阶段反馈最新点位
|
* 任务阶段反馈最新点位
|
||||||
* todo
|
* todo
|
||||||
* */
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse feedbackState(JSONObject param) {
|
public BaseResponse feedbackState(JSONObject param) {
|
||||||
@@ -200,26 +237,26 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
String taskId = param.getString("taskId");
|
String taskId = param.getString("taskId");
|
||||||
BaseResponse result = BaseResponse.build(requestNo);
|
BaseResponse result = BaseResponse.build(requestNo);
|
||||||
try {
|
try {
|
||||||
SchBaseTask schBaseTask=taskService.getById(taskId);
|
SchBaseTask schBaseTask = taskService.getById(taskId);
|
||||||
if(ObjectUtil.isEmpty(schBaseTask)){
|
if (ObjectUtil.isEmpty(schBaseTask)) {
|
||||||
throw new BadRequestException("任务不存在!taskId:"+taskId);
|
throw new BadRequestException("任务不存在!taskId:" + taskId);
|
||||||
}
|
}
|
||||||
if (Integer.parseInt(schBaseTask.getTask_status()) >= Integer.parseInt(TaskStatus.FINISHED.getCode())) {
|
if (Integer.parseInt(schBaseTask.getTask_status()) >= Integer.parseInt(TaskStatus.FINISHED.getCode())) {
|
||||||
throw new BadRequestException("任务已完成或已取消!");
|
throw new BadRequestException("任务已完成或已取消!");
|
||||||
}
|
}
|
||||||
AbstractTask task = taskFactory.getTask(schBaseTask.getConfig_code());
|
AbstractTask task = taskFactory.getTask(schBaseTask.getConfig_code());
|
||||||
// 执行创建任务
|
// 执行创建任务
|
||||||
task.feedbackState(param,schBaseTask,result);
|
task.feedbackState(param, schBaseTask, result);
|
||||||
taskService.update(schBaseTask);
|
taskService.update(schBaseTask);
|
||||||
Map<String, String> map=new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
map.put("start_point",schBaseTask.getPoint_code1());
|
map.put("start_point", schBaseTask.getPoint_code1());
|
||||||
map.put("next_point",schBaseTask.getPoint_code2());
|
map.put("next_point", schBaseTask.getPoint_code2());
|
||||||
map.put("start_height",schBaseTask.getPoint_code1_height());
|
map.put("start_height", schBaseTask.getPoint_code1_height());
|
||||||
map.put("next_height",schBaseTask.getPoint_code2_height());
|
map.put("next_height", schBaseTask.getPoint_code2_height());
|
||||||
result.setParameters(map);
|
result.setParameters(map);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
String message = e.getMessage();
|
String message = e.getMessage();
|
||||||
log.error("ACS请求LMS出现错误: {}{}", e.getMessage(),e);
|
log.error("ACS请求LMS出现错误: {}{}", e.getMessage(), e);
|
||||||
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
result.setCode(HttpStatus.HTTP_BAD_REQUEST);
|
||||||
result.setMessage(message);
|
result.setMessage(message);
|
||||||
result.setRequestNo(requestNo);
|
result.setRequestNo(requestNo);
|
||||||
|
|||||||
Reference in New Issue
Block a user