fix: 计划单双轴判断
This commit is contained in:
@@ -54,6 +54,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
|||||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||||
String agv_system_type = "2";
|
String agv_system_type = "2";
|
||||||
for (SchBaseTask task : taskList) {
|
for (SchBaseTask task : taskList) {
|
||||||
|
JSONObject object = JSONObject.parseObject(task.getRequest_param());
|
||||||
AcsTaskDto dto = AcsTaskDto.builder()
|
AcsTaskDto dto = AcsTaskDto.builder()
|
||||||
.ext_task_id(task.getTask_id())
|
.ext_task_id(task.getTask_id())
|
||||||
.task_code(task.getTask_code())
|
.task_code(task.getTask_code())
|
||||||
@@ -66,6 +67,7 @@ public class SendNBJExceptionPointTask extends AbstractAcsTask {
|
|||||||
.agv_system_type(agv_system_type)
|
.agv_system_type(agv_system_type)
|
||||||
.priority(task.getPriority())
|
.priority(task.getPriority())
|
||||||
.remark(task.getRemark())
|
.remark(task.getRemark())
|
||||||
|
.interaction_json(object)
|
||||||
.product_area(task.getProduct_area())
|
.product_area(task.getProduct_area())
|
||||||
.build();
|
.build();
|
||||||
resultList.add(dto);
|
resultList.add(dto);
|
||||||
|
|||||||
@@ -250,6 +250,8 @@ public class SlitterDownTrussTask extends AbstractAcsTask {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
task.setUpdate_time(DateUtil.now());
|
task.setUpdate_time(DateUtil.now());
|
||||||
|
task.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||||
|
task.setUpdate_optname(SecurityUtils.getCurrentUsername());
|
||||||
taskService.updateById(task);
|
taskService.updateById(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
|||||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||||
String agv_system_type = "2";
|
String agv_system_type = "2";
|
||||||
for (SchBaseTask task : taskList) {
|
for (SchBaseTask task : taskList) {
|
||||||
|
JSONObject object = JSONObject.parseObject(task.getRequest_param());
|
||||||
AcsTaskDto dto = AcsTaskDto.builder()
|
AcsTaskDto dto = AcsTaskDto.builder()
|
||||||
.ext_task_id(task.getTask_id())
|
.ext_task_id(task.getTask_id())
|
||||||
.task_code(task.getTask_code())
|
.task_code(task.getTask_code())
|
||||||
@@ -72,6 +73,7 @@ public class TrussSendAirShaftTask extends AbstractAcsTask {
|
|||||||
.agv_system_type(agv_system_type)
|
.agv_system_type(agv_system_type)
|
||||||
.priority(task.getPriority())
|
.priority(task.getPriority())
|
||||||
.remark(task.getRemark())
|
.remark(task.getRemark())
|
||||||
|
.interaction_json(object)
|
||||||
.product_area(task.getProduct_area())
|
.product_area(task.getProduct_area())
|
||||||
.build();
|
.build();
|
||||||
resultList.add(dto);
|
resultList.add(dto);
|
||||||
|
|||||||
@@ -380,9 +380,19 @@ public class AutoCallAirShaftTask extends Prun {
|
|||||||
skipTheSameTubePlans(needPlans);
|
skipTheSameTubePlans(needPlans);
|
||||||
return;
|
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");
|
saveCutPlanMessage(empty, needPlans, qzzSize, "0");
|
||||||
SlitterTaskUtil.putCurrentPaperSpec(param, oldPlans);
|
|
||||||
// 套管数量
|
// 套管数量
|
||||||
param.put("casingCount", needPlans.size());
|
param.put("casingCount", needPlans.size());
|
||||||
// 拔管数量
|
// 拔管数量
|
||||||
@@ -1076,6 +1086,16 @@ public class AutoCallAirShaftTask extends Prun {
|
|||||||
param.put("casingCount", 0);
|
param.put("casingCount", 0);
|
||||||
// 拔管数量
|
// 拔管数量
|
||||||
param.put("pullCount", list.size());
|
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: 当前分切计划的气涨轴尺寸
|
// hint: 当前分切计划的气涨轴尺寸
|
||||||
param.put("qzz_size", plan.getQzz_size());
|
param.put("qzz_size", plan.getQzz_size());
|
||||||
param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>穿拔轴位"));
|
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("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||||
exParam.put("acs_task_type", "6");
|
exParam.put("acs_task_type", "6");
|
||||||
exParam.put("containers", collect);
|
exParam.put("containers", collect);
|
||||||
|
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||||
sendNBJExceptionPointTask.createTask(exParam);
|
sendNBJExceptionPointTask.createTask(exParam);
|
||||||
res.put("status", HttpStatus.HTTP_OK);
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
res.put("message", "创建送至异常处理位!");
|
res.put("message", "创建送至异常处理位!");
|
||||||
@@ -445,6 +446,7 @@ public class SlitterServiceImpl implements SlitterService {
|
|||||||
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);
|
||||||
exParam.put("acs_task_type", "6");
|
exParam.put("acs_task_type", "6");
|
||||||
|
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||||
exParam.put("containers", collect);
|
exParam.put("containers", collect);
|
||||||
sendNBJExceptionPointTask.createTask(exParam);
|
sendNBJExceptionPointTask.createTask(exParam);
|
||||||
res.put("status", HttpStatus.HTTP_OK);
|
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("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||||
exParam.put("acs_task_type", "6");
|
exParam.put("acs_task_type", "6");
|
||||||
exParam.put("containers", collect);
|
exParam.put("containers", collect);
|
||||||
|
exParam.put("qzz_size", startPoint.getQzz_size());
|
||||||
sendNBJExceptionPointTask.createTask(exParam);
|
sendNBJExceptionPointTask.createTask(exParam);
|
||||||
res.put("status", HttpStatus.HTTP_OK);
|
res.put("status", HttpStatus.HTTP_OK);
|
||||||
res.put("message", "请求成功");
|
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("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : "");
|
||||||
taskParam.put("task_type", "010814");
|
taskParam.put("task_type", "010814");
|
||||||
taskParam.put("containers", collect);
|
taskParam.put("containers", collect);
|
||||||
|
taskParam.put("qzz_size", demoPlan.getQzz_size());
|
||||||
taskParam.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
taskParam.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||||
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||||
taskParam.put("immediateNotifyAcs", "0");
|
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("vehicle_code2", SlitterConstant.SLITTER_SHAFT_DOWN.equals(demoPlan.getUp_or_down()) ? qzzNo : "");
|
||||||
taskParam.put("task_type", "010814");
|
taskParam.put("task_type", "010814");
|
||||||
taskParam.put("containers", collect);
|
taskParam.put("containers", collect);
|
||||||
|
taskParam.put("qzz_size", demoPlan.getQzz_size());
|
||||||
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||||
taskParam.put("immediateNotifyAcs", "1");
|
taskParam.put("immediateNotifyAcs", "1");
|
||||||
trussSendAirShaftTask.createTask(taskParam);
|
trussSendAirShaftTask.createTask(taskParam);
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ public class SlitterTaskUtil {
|
|||||||
System.out.println(isNumeric("3000"));
|
System.out.println(isNumeric("3000"));
|
||||||
System.out.println(isNumeric("3000.32"));
|
System.out.println(isNumeric("3000.32"));
|
||||||
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+)?");
|
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