fix: 计划单双轴判断
This commit is contained in:
@@ -54,6 +54,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
String agv_system_type = "2";
|
||||
for (SchBaseTask task : taskList) {
|
||||
JSONObject object = JSONObject.parseObject(task.getRequest_param());
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(task.getTask_id())
|
||||
.task_code(task.getTask_code())
|
||||
@@ -66,6 +67,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
||||
.agv_system_type(agv_system_type)
|
||||
.priority(task.getPriority())
|
||||
.remark(task.getRemark())
|
||||
.interaction_json(object)
|
||||
.product_area(task.getProduct_area())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
|
||||
@@ -250,6 +250,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
||||
}
|
||||
}
|
||||
task.setUpdate_time(DateUtil.now());
|
||||
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||
task.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||
taskService.updateById(task);
|
||||
}
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
String agv_system_type = "2";
|
||||
for (SchBaseTask task : taskList) {
|
||||
JSONObject object = JSONObject.parseObject(task.getRequest_param());
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(task.getTask_id())
|
||||
.task_code(task.getTask_code())
|
||||
@@ -72,6 +73,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
||||
.agv_system_type(agv_system_type)
|
||||
.priority(task.getPriority())
|
||||
.remark(task.getRemark())
|
||||
.interaction_json(object)
|
||||
.product_area(task.getProduct_area())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
|
||||
@@ -380,9 +380,19 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
skipTheSameTubePlans(needPlans);
|
||||
return;
|
||||
}
|
||||
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
|
||||
if (!SlitterTaskUtil.singleShaftCheck(param, oldPlans.size())) {
|
||||
log.warn("气涨轴[{}]对应的分切计划存在异常!", oldQzzNo);
|
||||
bcutpointivtService.update(new UpdateWrapper<BstIvtCutpointivt>()
|
||||
.eq("ivt_id", startPoint.getIvt_id())
|
||||
.set("is_used", "0")
|
||||
.set("remark", "气胀轴" + oldQzzNo + "对应的分切计划存在异常,无效点位自动禁用")
|
||||
.set("update_time", DateUtil.now()));
|
||||
stepErrorInfo.add("气胀轴" + oldQzzNo + "对应的分切计划存在异常,无效点位[" + startPoint.getPoint_code() + "]自动禁用。");
|
||||
return;
|
||||
}
|
||||
// 保存所需要的分切计划数据到点位上(套轴对接位)更新分切计划
|
||||
saveCutPlanMessage(empty, needPlans, qzzSize, "0");
|
||||
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
|
||||
// 套管数量
|
||||
param.put("casingCount", needPlans.size());
|
||||
// 拔管数量
|
||||
@@ -1076,6 +1086,16 @@ public class AutoCallAirShaftTask extends Prun {
|
||||
param.put("casingCount", 0);
|
||||
// 拔管数量
|
||||
param.put("pullCount", list.size());
|
||||
if (!SlitterTaskUtil.singleShaftCheck(param, list.size())) {
|
||||
log.warn("气涨轴[{}]对应的分切计划存在异常!", qzzNo);
|
||||
bcutpointivtService.update(new UpdateWrapper<BstIvtCutpointivt>()
|
||||
.eq("ivt_id", cutpointivt.getIvt_id())
|
||||
.set("is_used", "0")
|
||||
.set("remark", "气胀轴" + qzzNo + "对应的分切计划存在异常,无效点位自动禁用")
|
||||
.set("update_time", DateUtil.now()));
|
||||
stepErrorInfo.add("气胀轴" + qzzNo + "对应的分切计划存在异常,无效点位[" + cutpointivt.getPoint_code() + "]自动禁用。");
|
||||
return;
|
||||
}
|
||||
// hint: 当前分切计划的气涨轴尺寸
|
||||
param.put("qzz_size", plan.getQzz_size());
|
||||
param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>穿拔轴位"));
|
||||
|
||||
@@ -425,6 +425,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
exParam.put("acs_task_type", "6");
|
||||
exParam.put("containers", collect);
|
||||
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||
sendNBJExceptionPointTask.createTask(exParam);
|
||||
res.put("status", HttpStatus.HTTP_OK);
|
||||
res.put("message", "创建送至异常处理位!");
|
||||
@@ -445,6 +446,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
exParam.put("task_type", SlitterEnum.TASK_TYPE.code("套轴异常处理桁架任务"));
|
||||
exParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
exParam.put("acs_task_type", "6");
|
||||
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||
exParam.put("containers", collect);
|
||||
sendNBJExceptionPointTask.createTask(exParam);
|
||||
res.put("status", HttpStatus.HTTP_OK);
|
||||
@@ -464,6 +466,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
exParam.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
exParam.put("acs_task_type", "6");
|
||||
exParam.put("containers", collect);
|
||||
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||
sendNBJExceptionPointTask.createTask(exParam);
|
||||
res.put("status", HttpStatus.HTTP_OK);
|
||||
res.put("message", "请求成功");
|
||||
@@ -528,6 +531,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : "");
|
||||
taskParam.put("task_type", "010814");
|
||||
taskParam.put("containers", collect);
|
||||
taskParam.put("qzz_size", demoPlan.getQzz_size());
|
||||
taskParam.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
taskParam.put("immediateNotifyAcs", "0");
|
||||
@@ -544,6 +548,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
taskParam.put("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : "");
|
||||
taskParam.put("task_type", "010814");
|
||||
taskParam.put("containers", collect);
|
||||
taskParam.put("qzz_size", demoPlan.getQzz_size());
|
||||
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
taskParam.put("immediateNotifyAcs", "1");
|
||||
trussSendAirShaftTask.createTask(taskParam);
|
||||
|
||||
@@ -139,6 +139,7 @@ public class SlitterTaskUtil {
|
||||
System.out.println(isNumeric("3000"));
|
||||
System.out.println(isNumeric("3000.32"));
|
||||
System.out.println(isNumeric("-3000.32"));
|
||||
boolean b = checkComplete("1", "2", null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -658,4 +659,49 @@ public class SlitterTaskUtil {
|
||||
return s.matches("-?\\d+(\\.\\d+)?");
|
||||
}
|
||||
|
||||
/**
|
||||
* 单根轴的数据判断:根据指定的尺寸类型,校验左侧或右侧电流数据是否完整。
|
||||
* 当 size 为 1 时,只需一侧数据完整即返回 true;
|
||||
* 当 size 为 2 时,要求左右两侧数据均完整才返回 true。
|
||||
*
|
||||
* @param param 包含相关字段的 JSON 对象,必须包含以下键:
|
||||
* "currentLeft", "currentLeftSize", "currentLeftSpec",
|
||||
* "currentRight", "currentRightSize", "currentRightSpec"
|
||||
* @param size 校验模式大小,决定校验逻辑:
|
||||
* - 1:表示任一轴(左或右)数据完整即可(逻辑或)
|
||||
* - 2:表示左右两轴数据都必须完整(逻辑与)
|
||||
* @return 符合校验规则时返回 true,否则返回 false
|
||||
*/
|
||||
public static boolean singleShaftCheck(JSONObject param, int size) {
|
||||
String currentLeft = param.getString("currentLeft");
|
||||
String currentLeftSize = param.getString("currentLeftSize");
|
||||
String currentLeftSpec = param.getString("currentLeftSpec");
|
||||
String currentRight = param.getString("currentRight");
|
||||
String currentRightSize = param.getString("currentRightSize");
|
||||
String currentRightSpec = param.getString("currentRightSpec");
|
||||
|
||||
// 根据 size 值执行不同的校验策略:1 表示任一轴有效即可,2 表示双轴均需有效
|
||||
switch (size) {
|
||||
case 1:
|
||||
return checkComplete(currentLeft, currentLeftSpec, currentLeftSize)
|
||||
|| checkComplete(currentRight, currentRightSpec, currentRightSize);
|
||||
case 2:
|
||||
return checkComplete(currentLeft, currentLeftSpec, currentLeftSize)
|
||||
&& checkComplete(currentRight, currentRightSpec, currentRightSize);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
public static boolean checkComplete(String... checks) {
|
||||
if (checks == null) {
|
||||
return false;
|
||||
}
|
||||
for (String check : checks) {
|
||||
if (ObjectUtil.isEmpty(check)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user