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