opt: 套轴异常处理流程
This commit is contained in:
@@ -138,4 +138,12 @@ public interface IBstIvtCutpointivtService extends IService<BstIvtCutpointivt> {
|
||||
List<BstIvtCutpointivt> getNBJCanUsePoint(String type, String pointStatus, String area, String sort);
|
||||
|
||||
List<BstIvtCutpointivt> getNBJAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort);
|
||||
|
||||
/***
|
||||
* 获取桁架或者AGV点位编码
|
||||
* @param endPoint
|
||||
* @param b
|
||||
* @return
|
||||
*/
|
||||
BstIvtCutpointivt getPointByTrussOrAgvCode(String endPoint, boolean flag);
|
||||
}
|
||||
|
||||
@@ -169,4 +169,16 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl<BstIvtCutpointivtM
|
||||
public List<BstIvtCutpointivt> getNBJAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort) {
|
||||
return bstIvtCutpointivtMapper.getNBJAreaNotTaskPointByStatus(type, pointStatus, area, sort);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BstIvtCutpointivt getPointByTrussOrAgvCode(String point, boolean flag) {
|
||||
LambdaQueryWrapper<BstIvtCutpointivt> lam = new QueryWrapper<BstIvtCutpointivt>().lambda();
|
||||
lam.eq(flag, BstIvtCutpointivt::getIs_used, "1")
|
||||
.and(ll -> ll.eq(BstIvtCutpointivt::getPoint_code, point)
|
||||
.or()
|
||||
.eq(BstIvtCutpointivt::getTruss_point_code1, point)
|
||||
.or()
|
||||
.eq(BstIvtCutpointivt::getTruss_point_code2, point));
|
||||
return bstIvtCutpointivtMapper.selectOne(lam);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,13 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
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.sch.point.dao.StIvtShaftivt;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant;
|
||||
@@ -38,6 +42,8 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
||||
private IschBaseTaskService taskService;
|
||||
@Autowired
|
||||
private IBstIvtCutpointivtService bcutpointivtService;
|
||||
@Autowired
|
||||
private IBstIvtShafttubeivtService shaftivtService;
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
/*
|
||||
@@ -80,8 +86,22 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
||||
// 互换资源
|
||||
// update: 在acs请求取货完成就已经清空点位信息
|
||||
String endPoint = task.getPoint_code2();
|
||||
BstIvtCutpointivt endPointObj = bcutpointivtService.getPintByAgvCode(endPoint, false);
|
||||
BstIvtCutpointivt endPointObj = bcutpointivtService.getPointByTrussOrAgvCode(endPoint, false);
|
||||
TaskUtils.pointMaintenanceInventory(task, endPointObj, "2");
|
||||
// (桁架任务的时候)起点要清空
|
||||
if (task.getPoint_code2().equals(endPointObj.getTruss_point_code1())
|
||||
|| task.getPoint_code2().equals(endPointObj.getTruss_point_code2())) {
|
||||
BstIvtShafttubeivt shafttubeivt = shaftivtService.getByPointCode(task.getPoint_code1(), false);
|
||||
shafttubeivt.setQzz_size("");
|
||||
shafttubeivt.setHave_qzz("0");
|
||||
shafttubeivt.setTube_code1("");
|
||||
shafttubeivt.setTube_code2("");
|
||||
shafttubeivt.setTube_name1("");
|
||||
shafttubeivt.setTube_name2("");
|
||||
shafttubeivt.setContainer_name1("");
|
||||
shafttubeivt.setContainer_name2("");
|
||||
shaftivtService.updateById(shafttubeivt);
|
||||
}
|
||||
bcutpointivtService.updateById(endPointObj);
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,6 @@ public class AutoSendAirShaftAgvTask {
|
||||
log.info("异常处理位无空位!");
|
||||
// 点位禁用
|
||||
cutPoint.setRemark("计划状态已被改变!");
|
||||
cutPoint.setIs_used("0");
|
||||
cutPoint.setUpdate_time(DateUtil.now());
|
||||
bcutpointivtService.updateById(cutPoint);
|
||||
}
|
||||
|
||||
@@ -326,8 +326,8 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
// 去异常位
|
||||
if (plans.size() == 0) {
|
||||
log.error("找不到[{}]对应的分切计划,分切计划可能被删除或者拼接!", collect);
|
||||
// 移动到异常处理位
|
||||
List<BstIvtCutpointivt> exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("4", "1", "0", "0");
|
||||
// 移动到异常处理位(随机一个点位,在送到B2对面的位置)
|
||||
List<BstIvtCutpointivt> exceptionPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0", "0");
|
||||
if (exceptionPoints.size() > 0) {
|
||||
BstIvtCutpointivt exceptionPoint = exceptionPoints.get(0);
|
||||
// 枷锁
|
||||
@@ -335,17 +335,16 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
boolean tryLockPointR = lockPointR.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
if (tryLockPointR) {
|
||||
List<PdmBiSlittingproductionplan> planTemp = slittingproductionplanService.list(
|
||||
new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
|
||||
.in(PdmBiSlittingproductionplan::getContainer_name, collect));
|
||||
PdmBiSlittingproductionplan tempPlan = planTemp.get(0);
|
||||
// 需要枷锁
|
||||
JSONObject exParam = new JSONObject();
|
||||
exParam.put("point_code1", startPoint.getPoint_code());
|
||||
exParam.put("point_code2", SlitterConstant.SLITTER_SHAFT_UP.equals(tempPlan.getUp_or_down())
|
||||
exParam.put("point_code2", ObjectUtil.isEmpty(exceptionPoint.getQzz_no1())
|
||||
? exceptionPoint.getTruss_point_code1() : exceptionPoint.getTruss_point_code2());
|
||||
exParam.put("vehicle_code1", SlitterTaskUtil.getQzzNoByUpOrDown(tempPlan));
|
||||
exParam.put("vehicle_code2", SlitterTaskUtil.getQzzNoByUpOrDown(tempPlan));
|
||||
if (ObjectUtil.isEmpty(exceptionPoint.getQzz_no1())) {
|
||||
exParam.put("vehicle_code1", collect);
|
||||
} else {
|
||||
exParam.put("vehicle_code2", collect);
|
||||
}
|
||||
exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务"));
|
||||
exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
sendNBJExceptionPointTask.createTask(exParam);
|
||||
@@ -361,9 +360,9 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,异常处理位没位置,创建任务失败!");
|
||||
stepTipLogs.add("套轴完成->[" + collect + "]对应的分切计划状态已更改,无暂存位置,创建任务失败!");
|
||||
redisUtils.set("ERROR" + deviceCode, stepTipLogs);
|
||||
throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,异常处理位没位置!");
|
||||
throw new BadRequestException("[" + collect + "]对应的分切计划状态已更改,无暂存位置!");
|
||||
}
|
||||
}
|
||||
// 分切计划设置纸卷重量
|
||||
@@ -1097,6 +1096,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
startPointObj.setPoint_status("1");
|
||||
startPointObj.setQzz_no1("");
|
||||
startPointObj.setQzz_no2("");
|
||||
startPointObj.setRemark("");
|
||||
TaskUtils.updateOptMessageByBCutPoint(startPointObj);
|
||||
bcutpointivtService.updateById(startPointObj);
|
||||
task.setTask_status(TaskStatusEnum.PICK_UP_COMPLETED.getCode());
|
||||
|
||||
Reference in New Issue
Block a user