Merge remote-tracking branch 'origin/master_merge' into master_merge

This commit is contained in:
zhouz
2024-07-14 13:00:15 +08:00
8 changed files with 46 additions and 25 deletions

View File

@@ -242,7 +242,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
// taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, null, null);
//四个点任务取货分配条件为取货完成信号即刻更新库存,所以不判断是否有起点任务
taskList = new ArrayList<>();
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"))) {
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(pointIds, null, pointIds, null);
} else if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("空载具放货"))) {
taskList = bstIvtPackageinfoivtMapper.getTaskList(null, pointIds, null, pointIds);
@@ -273,7 +273,7 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
return packageinfoivtList;
}
// 未完成的任务点位汇集
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"))) {
if (pointCode.equals(PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"))) {
pointSets = taskList.stream()
.flatMap(task -> Stream.of(
task.getPoint_code1(),
@@ -402,12 +402,12 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
List<SchBaseTask> taskList3 = taskList.stream().filter(r -> r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("输送线四个点任务")) || r.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)"))).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(taskList3)) {
if (StringUtils.isBlank(taskList3.get(0).getRequest_param())) {
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "任务未完成,请检查!");
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "任务未完成,请检查!");
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "取载具动作未完成,请检查!");
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "取载具动作未完成,请检查!");
} else {
if (!taskList3.get(0).getRequest_param().equals(PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"))) {
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "任务未完成,请检查!");
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,请等待桁架任务编号为:" + taskList3.get(0).getTask_code() + "任务未完成,请检查!");
log.info("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "取载具动作未完成,请检查!");
throw new BadRequestException("一楼装箱区放货分配" + baseTask.getTask_code() + ",分配失败,桁架任务编号为:" + taskList3.get(0).getTask_code() + "取载具动作未完成,请检查!");
}
}
}
@@ -511,13 +511,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
if (baseTask.getTask_type().equals(PackageInfoIvtEnum.TASK_TYPE.code("满轴缓存位->待检区"))) {
//过滤未二次分配的任务
if (StringUtils.isBlank(baseTask.getResponse_param())) {
throw new BadRequestException("该任务任务号为:" + baseTask.getTask_code() + ",起点未进行二次分配!");
throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + ",起点未进行二次分配!");
}
List<BstIvtPackageinfoivt> ivtList = packageinfoivtService.list(new LambdaQueryWrapper<BstIvtPackageinfoivt>()
.eq(BstIvtPackageinfoivt::getIs_used, PackageInfoIvtEnum.IS_USED.code("启用"))
.eq(BstIvtPackageinfoivt::getPoint_code, baseTask.getPoint_code1()));
if (CollectionUtils.isEmpty(ivtList)) {
throw new BadRequestException("任务编号为:" + baseTask.getTask_code() + "agv取货完成的目标点位不存在");
throw new BadRequestException("取货完成失败" + baseTask.getTask_code() + "agv取货完成的目标点位不存在");
}
//只有子卷号相同才能清除库存
if (baseTask.getVehicle_code().equals(ivtList.get(0).getContainer_name())) {
@@ -567,12 +567,12 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
//清空起点库存状态
bstIvtPackageinfoivtMapper.update(null, updateWrapper);
log.info("一楼装箱区二次分配清空起点库存" + baseTask.getTask_code() + ",执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
//标记取满轴或取空载具完成
//标记agv取满轴或四个点或两个点任务取空载具完成
UpdateWrapper<SchBaseTask> updateWrapper1 = new UpdateWrapper<>();
updateWrapper1.eq("task_id", baseTask.getTask_id());
updateWrapper1.set("request_param", PackageInfoIvtEnum.TASK_ACTION_TYPE.code("取货完成"));
taskService.update(updateWrapper1);
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成执行成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
log.info("一楼装箱区二次分配取货完成" + baseTask.getTask_code() + ",取货完成信号接收成功,点位:" + pointCode + "子卷号:" + baseTask.getVehicle_code());
}
/**

View File

@@ -79,7 +79,7 @@ public class AutoSendMzToDjq {
return;
}
//满轴有子卷且过滤未完成任务
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
List<BstIvtPackageinfoivt> mzqPackageinfoivtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("满轴缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("有子卷"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("四个点任务"), PackageInfoIvtEnum.SORT_TYPE.code("降序"), "");
if (CollectionUtils.isEmpty(mzqPackageinfoivtList)) {
return;
}

View File

@@ -54,10 +54,10 @@ public class AutoSendVehicleToDjq {
if (tryLock) {
String pointCode2;
JSONObject task = new JSONObject();
List<BstIvtPackageinfoivt> ivtList =ibstIvtPackageinfoivtService.getBstIvtPackageinfoivts(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"),"");
if (CollectionUtils.isNotEmpty(ivtList)) {
return;
}
// List<BstIvtPackageinfoivt> ivtList =ibstIvtPackageinfoivtService.getBstIvtPackageinfoivts(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("合格品"),"");
// if (CollectionUtils.isNotEmpty(ivtList)) {
// return;
// }
//存在装箱区有空载具的点位
List<BstIvtPackageinfoivt> zxqIvtList = packageinfoivtService.checkEndPointTask(PackageInfoIvtEnum.POINT_STATUS.code("装箱区"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"), PackageInfoIvtEnum.TASK_POINT_TYPE.code("取货任务"), "", "");
if (CollectionUtils.isEmpty(zxqIvtList)) {

View File

@@ -26,6 +26,7 @@ import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapp
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.enums.PackageInfoIvtEnum;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.common.utils.RedisUtils;
import org.nl.system.service.param.ISysParamService;
import org.nl.wms.ext.mes.service.impl.LmsToMesServiceImpl;
import org.nl.wms.sch.manage.TaskStatusEnum;
@@ -50,10 +51,13 @@ import static org.nl.wms.util.TaskUtil.getMaxNum;
public class AutoSendZxToDjw {
private final String THIS_CLASS = AutoSendZxToDjw.class.getName();
private Integer NUM = 0;
private final Integer NUM = 0;
private static final String NUM_KEY = "AutoSendZxToDjw:NUM";
private final RedissonClient redissonClient;
@Resource
private RedisUtils redisUtils;
@Resource
private IschBaseTaskService taskService;
@Resource
private ZxDjwTask zxDjwTask;
@@ -157,15 +161,25 @@ public class AutoSendZxToDjw {
//param.put("boxNo", relationList.get(0).getQuanlity_in_box());
//todo 木箱计划放入子卷数量暂时默认1
param.put("boxNo", relationList.get(0).getQuanlity_in_box());
NUM = NUM + 1;
if (NUM == Integer.parseInt(bstIvtBoxinfo.getNum())) {
//todo 查询是否为最后一个子卷暂时默认1
Integer num = getNumFromRedis();
num = num + 1;
if (num.equals(Integer.parseInt(bstIvtBoxinfo.getNum()))) {
param.put("lastOne", IOSEnum.IS_NOTANDYES.code(""));
NUM = 0;
num = 0;
} else {
//todo 查询是否为最后一个子卷暂时默认1
param.put("lastOne", IOSEnum.IS_NOTANDYES.code(""));
}
// 更新计数
redisUtils.set(NUM_KEY, num);
//NUM = NUM + 1;
// if (NUM == Integer.parseInt(bstIvtBoxinfo.getNum())) {
// //todo 查询是否为最后一个子卷暂时默认1
// param.put("lastOne", IOSEnum.IS_NOTANDYES.code("是"));
// NUM = 0;
// } else {
// //todo 查询是否为最后一个子卷暂时默认1
// param.put("lastOne", IOSEnum.IS_NOTANDYES.code("否"));
// }
jo.put("request_param", param.toString());
zxDjwTask.createTask(jo);
// try {
@@ -342,7 +356,13 @@ public class AutoSendZxToDjw {
return height;
}
private Integer getNumFromRedis() {
Object numObj = redisUtils.get(NUM_KEY);
if (numObj == null) {
return 0;
}
return (Integer) numObj;
}
// void sendMzqToDjq() {

View File

@@ -12,6 +12,7 @@
WHERE bct.point_status = '2' AND p.parent_container_name = #{parent_container_name} AND p.split_group = #{split_group}
AND (LENGTH(bct.qzz_no1) = 0 OR LENGTH(bct.qzz_no2) = 0)
AND (LENGTH(bct.qzz_no1) <![CDATA[ > ]]> 0 OR LENGTH(bct.qzz_no2) <![CDATA[ > ]]> 0)
AND bct.point_type = '1'
AND bct.is_used = '1'
LIMIT 1
</select>

View File

@@ -1204,7 +1204,7 @@ public class SlitterServiceImpl implements SlitterService {
} else {
pointCode.setQzz_no2(qzzNo);
}
pointCode.setPoint_status("3");
pointCode.setPoint_status("2");
slittingproductionplanService.updateBatchById(plans);
bcutpointivtService.updateById(pointCode);
JSONObject res = new JSONObject();

View File

@@ -41,7 +41,7 @@ public enum PackageInfoIvtEnum {
//起点终点类型
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务", "7","空载具放货", "8", "四个点任务分配", "9","空载具放货分配", "10")),
TASK_POINT_TYPE(MapOf.of("取货任务", "1", "放货任务", "2", "取货分配", "3", "放货分配", "4", "取货任务取货分配", "5", "放货任务放货分配", "6", "四个点任务", "7","空载具放货", "8", "四个点任务分配", "9","空载具放货分配", "10")),
//等待点类型
WAIT_POINT_TYPE(MapOf.of("满轴区等待点", "1", "待检区等待点", "2")),

View File

@@ -142,7 +142,7 @@
<el-table-column prop="vehicle_code" label="载具编码1" width="130" show-overflow-tooltip />
<el-table-column prop="vehicle_code2" label="载具编码2" width="100" show-overflow-tooltip />
<el-table-column prop="request_param" label="请求参数" min-width="120" show-overflow-tooltip />
<el-table-column prop="response_param" label="返回参数" min-width="120" show-overflow-tooltip />
<el-table-column prop="response_param" label="响应参数" min-width="120" show-overflow-tooltip />
<el-table-column prop="task_name" label="任务描述" min-width="120" show-overflow-tooltip />
<el-table-column prop="create_name" label="创建人" width="135" show-overflow-tooltip />
<el-table-column prop="create_time" label="创建时间" width="135" show-overflow-tooltip />