feat: 二期ACS气胀轴二次分配

This commit is contained in:
2025-03-20 16:23:04 +08:00
parent 459bd30d25
commit 78ff0c69bf
4 changed files with 104 additions and 16 deletions

View File

@@ -390,6 +390,7 @@ public class SlitterServiceImpl implements SlitterService {
@SneakyThrows
@Override
public JSONObject acsSendShaftToCache(JSONObject param) {
// 需要请求放货
log.info("ACS申请送气涨轴到气涨轴暂存位的输入参数为{}", param);
String lock = "lock";
JSONObject res = new JSONObject();
@@ -409,15 +410,21 @@ public class SlitterServiceImpl implements SlitterService {
BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false);
// 临时存放气涨轴尺寸
startPoint.setQzz_size(qzzSize);
// 获取等待点(放货点)
// 获取空位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
// List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint);
// if (shafttubeivts.size() == 0) {
// throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
// }
BstIvtShafttubeivt putWaitPoint = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location())
.eq(BstIvtShafttubeivt::getPoint_type, "8"));
if (ObjectUtil.isNotEmpty(putWaitPoint)) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
// 创建任务
param.put("point_code1", deviceCode);
param.put("point_code2", shafttubeivt.getPoint_code());
param.put("point_code2", putWaitPoint.getPoint_code());
// hint: 当前分切计划的气涨轴尺寸
param.put("qzz_size", qzzSize);
param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位"));
@@ -452,14 +459,20 @@ public class SlitterServiceImpl implements SlitterService {
}
BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false);
// 获取气涨轴缓存没有任务的点位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize,
startPoint.getQzz_generation(), startPoint.getPoint_location());
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位");
// List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize,
// startPoint.getQzz_generation(), startPoint.getPoint_location());
// if (shafttubeivts.size() == 0) {
// throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位");
// }
BstIvtShafttubeivt pickWaitPoint = shafttubeivtService.getOne(new LambdaQueryWrapper<BstIvtShafttubeivt>()
.eq(BstIvtShafttubeivt::getPoint_location, startPoint.getPoint_location())
.eq(BstIvtShafttubeivt::getPoint_type, "7"));
if (ObjectUtil.isNotEmpty(pickWaitPoint)) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的等待点位");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
// BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
JSONObject taskParam = new JSONObject();
taskParam.put("point_code1", shafttubeivt.getPoint_code());
taskParam.put("point_code1", pickWaitPoint.getPoint_code());
taskParam.put("point_code2", startPoint.getPoint_code());
taskParam.put("is_bushing", SlitterConstant.SLITTER_YES);
taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位"));

View File

@@ -35,11 +35,6 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK);
}
@PostMapping("/orderFinish")
@Log(value = "ACS给WMS下发工单完成状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@@ -230,6 +225,13 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.acsCallShaftFromCache(param), HttpStatus.OK);
}
@PostMapping("/acsRequestPoint")
@Log(value = "二期ACS请求出轴", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore
public ResponseEntity<Object> acsRequestPoint(@RequestBody JSONObject param) {
return new ResponseEntity<>(acsToWmsService.acsRequestPoint(param), HttpStatus.OK);
}
@PostMapping("/forceMove")
@Log(value = "二期捆扎位ACS请求强制离开", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
@SaIgnore

View File

@@ -239,4 +239,11 @@ public interface AcsToWmsService {
* @return JSONObject
*/
JSONObject forceMove(JSONObject param);
/**
* 二期请求放货/取货
* @param param
* @return
*/
JSONObject acsRequestPoint(JSONObject param);
}

View File

@@ -19,6 +19,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService;
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt;
import org.nl.b_lms.pda.service.ProductOutTwoService;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService;
import org.nl.b_lms.pdm.bi.slittingproductionplan.service.dao.PdmBiSlittingproductionplan;
@@ -165,6 +167,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired
private IStIvtIostorinvOutService iStIvtIostorinvOutService;
@Autowired
private IBstIvtShafttubeivtService shafttubeivtService;
/**
@@ -2730,4 +2734,66 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
log.info("forceMove返回参数---------------------------------------------{}", result.toString());
return result;
}
@Override
public JSONObject acsRequestPoint(JSONObject param) {
log.info("acsRequestPoint输入参数为--------------------------" + param.toString());
JSONObject result = new JSONObject();
// task_code、type
String type = param.getString("type");
String taskCode = param.getString("task_code");
SchBaseTask task = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
.eq(SchBaseTask::getTask_code, taskCode)
.eq(SchBaseTask::getIs_delete, "0"));
if (ObjectUtil.isEmpty(task)) {
throw new BadRequestException("任务号【" + taskCode + "】对应的任务找不到!");
}
String targetPoint = "";
if ("1".equals(type)) {
// 请求取货
String deviceCode = task.getPoint_code2();
BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false);
JSONObject requestParam = JSONObject.parseObject(task.getRequest_param());
String qzzSize = requestParam.getString("qzz_size");
// 获取气涨轴缓存没有任务的点位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCache(qzzSize,
startPoint.getQzz_generation(), startPoint.getPoint_location());
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到气涨轴规格「" + qzzSize + "」的暂存位");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
targetPoint = shafttubeivt.getPoint_code();
// 修改任务
task.setPoint_code1(targetPoint);
task.setRemark("取货请求成功");
task.setUpdate_time(DateUtil.now());
}
if ("2".equals(type)) {
// 请求放货
// 穿拔轴点位
String deviceCode = task.getPoint_code1();
BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false);
JSONObject requestParam = JSONObject.parseObject(task.getRequest_param());
String qzzSize = requestParam.getString("qzz_size");
// 临时存放气涨轴尺寸
startPoint.setQzz_size(qzzSize);
// 获取空位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
}
BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0);
targetPoint = shafttubeivt.getPoint_code();
// 修改任务
task.setPoint_code2(targetPoint);
task.setRemark("放货请求成功");
task.setUpdate_time(DateUtil.now());
}
taskService.updateById(task);
result.put("status", HttpStatus.OK.value());
result.put("device_code", targetPoint);
result.put("message", "反馈成功!");
log.info("acsRequestPoint输出参数为--------------------------" + result.toString());
return result;
}
}