fix: 3/6寸同个位置导致的问题

This commit is contained in:
2025-04-13 11:09:14 +08:00
parent d67fe10455
commit 6a39e3c7fd
3 changed files with 46 additions and 14 deletions

View File

@@ -174,7 +174,7 @@ public class PdmBiSlittingproductionplanServiceImpl extends ServiceImpl<PdmBiSli
LambdaQueryWrapper<PdmBiSlittingproductionplan> lam = new QueryWrapper<PdmBiSlittingproductionplan>().lambda();
lam.eq(PdmBiSlittingproductionplan::getQzzno, qzzNo)
.eq(PdmBiSlittingproductionplan::getIs_delete, "0")
.eq(PdmBiSlittingproductionplan::getStatus, status);
.eq(ObjectUtil.isNotEmpty(status), PdmBiSlittingproductionplan::getStatus, status);
return pdmBiSlittingproductionplanMapper.selectList(lam);
}

View File

@@ -232,7 +232,9 @@ public class AutoCallAirShaftTask {
// update: 不需要(同标箔或者锂电分开)
// todo: 需要校验区域0/1
List<BstIvtCutpointivt> qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, specification);
if (qzzPoint.size() == 0) {//若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可
log.info("查找到满足到对应尺寸的点位-{}", qzzPoint);
if (qzzPoint.size() == 0) {
//若套轴暂存位没有相同规格的气胀轴,直接去气胀轴库找即可
// 调用ACS滚条气涨轴下来
if (!toAcsOutShaft(qzzSize,location, empty)) {
log.error("穿拔轴{}不进行套轴,跳过!", empty.getPoint_code());
@@ -245,16 +247,48 @@ public class AutoCallAirShaftTask {
}
// 查找一条没任务的点位
BstIvtCutpointivt startPoint = qzzPoint.get(0);
// 当前纸管的规格信息
String oldQzzNo = ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getQzz_no1() : startPoint.getQzz_no2();
if (oldQzzNo == null) {
log.error("当前气胀轴的编码为空!");
return;
}
String startPointCode = ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getTruss_point_code1() : startPoint.getTruss_point_code2();
if (startPointCode == null) {
log.error("当前点位的编码为空!");
return;
}
// 如果A6寸 B3寸则需要过滤到精确点位
if (ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) && ObjectUtil.isNotEmpty(startPoint.getQzz_no2())) {
// 获取需要的数据
List<PdmBiSlittingproductionplan> aPlans = slittingproductionplanService.getByQzzNoByStatus(startPoint.getQzz_no1(), null);
List<PdmBiSlittingproductionplan> bPlans = slittingproductionplanService.getByQzzNoByStatus(startPoint.getQzz_no2(), null);
log.info("筛选得到的计划值:{}{}", aPlans, bPlans);
if (aPlans.size() > 0) {
PdmBiSlittingproductionplan aPlan = aPlans.get(0);
if (needPlan.getQzz_size().equals(aPlan.getQzz_size())) {
oldQzzNo = aPlan.getQzzno();
startPointCode = startPoint.getTruss_point_code1();
} else {
if (bPlans.size() > 0) {
PdmBiSlittingproductionplan bPlan = bPlans.get(0);
if (needPlan.getQzz_size().equals(bPlan.getQzz_size())) {
oldQzzNo = bPlan.getQzzno();
startPointCode = startPoint.getTruss_point_code2();
}
}
}
}
}
// 创建任务
JSONObject param = new JSONObject();
param.put("point_code1", ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getTruss_point_code1() : startPoint.getTruss_point_code2());
param.put("point_code1", startPointCode);
param.put("point_code2", empty.getPoint_code());
param.put("vehicle_code", ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getQzz_no1() : startPoint.getQzz_no2());
param.put("vehicle_code", oldQzzNo);
// 气胀轴号
param.put("qzz_no", ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getQzz_no1() : startPoint.getQzz_no2());
param.put("qzz_no", oldQzzNo);
param.put("needPlan", planDto);
// 是否拔轴
param.put("is_pulling", SlitterConstant.SLITTER_YES);
@@ -263,12 +297,6 @@ public class AutoCallAirShaftTask {
param.put("qzz_size", needPlan.getQzz_size());
// 所需的纸管规格
SlitterTaskUtil.putNeedPaperSpec(param, needPlans);
// 当前纸管的规格信息
String oldQzzNo = ObjectUtil.isNotEmpty(startPoint.getQzz_no1())
? startPoint.getQzz_no1() : startPoint.getQzz_no2();
if (oldQzzNo == null) {
throw new BadRequestException("当前气胀轴的编码为空!");
}
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
saveCutPlanMessage(empty, needPlans, qzzSize);
// 设置是否套轴1正常套轴2待定到后面还会申请套轴

View File

@@ -134,6 +134,10 @@ public class SlitterTaskUtil {
return sb.toString();
}
public static void main(String[] args) {
System.out.println(getComposePaperTubeInformation("玻璃纤维及其制品|FRP管|6英寸|15|1100", "1"));
}
/**
* 设置所需的套管纸管信息
* @param param 任务参数