1.ndc交互粘包需要分割判断
2.空架入库会出现最后同时满料,增加软锁控制,创建任务时过滤,二次分配时可以放,任务完成或取消后解锁
This commit is contained in:
@@ -137,6 +137,9 @@ public class SchBasePoint implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String point_status_name;
|
||||
|
||||
@ApiModelProperty(value = "是否锁定")
|
||||
private Boolean is_lock;
|
||||
|
||||
// 组盘标识
|
||||
@TableField(exist = false)
|
||||
private String group_id;
|
||||
|
||||
@@ -76,7 +76,8 @@ public class KGHJRKTask extends AbstractTask {
|
||||
// 找终点
|
||||
SchBasePoint startPoint = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getPoint_code, task.getPoint_code1()));
|
||||
SchBasePoint point = findNextPoint(startPoint, task.getVehicle_type());
|
||||
//创建任务时判断软锁,已锁则不能创建,下发任务时不考虑
|
||||
SchBasePoint point = findNextPoint(startPoint, task.getVehicle_type(),0);
|
||||
if (ObjectUtil.isEmpty(point)) {
|
||||
task.setRemark("未找到所需点位!");
|
||||
taskService.update(task);
|
||||
@@ -97,9 +98,9 @@ public class KGHJRKTask extends AbstractTask {
|
||||
task.setRemark("");
|
||||
taskService.update(task);
|
||||
|
||||
// //发起任务时先把点位占用,防止发起重复任务
|
||||
// point.setIng_task_code(task.getTask_code());
|
||||
// pointService.update(point);
|
||||
//发起任务时先把点位占用,防止发起重复任务
|
||||
point.setIs_lock(true);
|
||||
pointService.update(point);
|
||||
|
||||
//下发
|
||||
this.renotifyAcs(task);
|
||||
@@ -112,7 +113,7 @@ public class KGHJRKTask extends AbstractTask {
|
||||
* 2.倒叙查找,找到满足当前位置数量不足3的即可
|
||||
* 3.负极板优先放到HCQ7,放满了再放到HCQ1
|
||||
*/
|
||||
private SchBasePoint findNextPoint(SchBasePoint startPoint, String vehicleType) {
|
||||
private SchBasePoint findNextPoint(SchBasePoint startPoint, String vehicleType,int type) {
|
||||
String regionCode = null;
|
||||
String regionCode2 = null;
|
||||
if ("A1".equals(startPoint.getWorkshop_code())) {
|
||||
@@ -139,6 +140,9 @@ public class KGHJRKTask extends AbstractTask {
|
||||
if (!temp.getPoint_code().endsWith("01")) {
|
||||
continue;
|
||||
}
|
||||
if(type==0&&temp.getIs_lock()){
|
||||
log.info("当前点位{}已被软锁,寻找终点时默认跳过",temp.getPoint_code());
|
||||
}
|
||||
//如果当列已放满,跳过到下一列最后一个点位0501开始判断
|
||||
if (flag && !temp.getPoint_code().endsWith("0501")) {
|
||||
continue;
|
||||
@@ -235,14 +239,17 @@ public class KGHJRKTask extends AbstractTask {
|
||||
// 终点解锁,库存增加
|
||||
endPointObj.setIng_task_code("");
|
||||
endPointObj.setVehicle_qty(1);
|
||||
endPointObj.setIs_lock(false);
|
||||
pointService.update(endPointObj);
|
||||
endPointObj = pointService.getById(endPoint.substring(0, endPoint.length() - 1) + "2");
|
||||
endPointObj.setIng_task_code("");
|
||||
endPointObj.setVehicle_qty(1);
|
||||
endPointObj.setIs_lock(false);
|
||||
pointService.update(endPointObj);
|
||||
endPointObj = pointService.getById(endPoint.substring(0, endPoint.length() - 1) + "3");
|
||||
endPointObj.setIng_task_code("");
|
||||
endPointObj.setVehicle_qty(1);
|
||||
endPointObj.setIs_lock(false);
|
||||
pointService.update(endPointObj);
|
||||
|
||||
|
||||
@@ -254,6 +261,7 @@ public class KGHJRKTask extends AbstractTask {
|
||||
// 终点解锁
|
||||
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
||||
endPointObj.setIng_task_code("");
|
||||
endPointObj.setIs_lock(false);
|
||||
pointService.update(endPointObj);
|
||||
}
|
||||
taskObj.setRemark("任务取消");
|
||||
@@ -282,7 +290,7 @@ public class KGHJRKTask extends AbstractTask {
|
||||
}
|
||||
SchBasePoint startPoint = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getPoint_code, schBaseTask.getPoint_code1()));
|
||||
SchBasePoint point = findNextPoint(startPoint, schBaseTask.getVehicle_type());
|
||||
SchBasePoint point = findNextPoint(startPoint, schBaseTask.getVehicle_type(),1);
|
||||
if ("ZJBKGHJDJW".equals(point.getRegion_code())) {
|
||||
schBaseTask.setPoint_code2(point.getPoint_code() + "0" + (point.getVehicle_qty() + 1));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user