From 9c6cb85e505cbb3aa993a17f34fb86952e7e88a8 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Tue, 15 Jul 2025 12:15:51 +0800 Subject: [PATCH] =?UTF-8?q?opt:1.=E7=A9=BA=E5=87=BA=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E5=88=86=E9=85=8D=EF=BC=8C=E8=87=AA=E5=8A=A8=E5=8F=96=E6=B6=88?= =?UTF-8?q?=EF=BC=8C=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E6=B5=81=E7=A8=8B?= =?UTF-8?q?;=20=20=20=20=202.=E9=A1=B6=E6=A5=BC=E5=87=BA=E5=BA=93=E4=B8=8D?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=88=B01308=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/handler/impl/ToPickPlatformTask.java | 56 ++++++++++--------- .../service/impl/SchBaseTaskServiceImpl.java | 40 ++++++++++--- 2 files changed, 61 insertions(+), 35 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java index 11e571f4..2ee3e9e1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/handler/impl/ToPickPlatformTask.java @@ -21,7 +21,6 @@ import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; -import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.springframework.beans.factory.annotation.Autowired; @@ -30,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; -import java.util.Objects; import java.util.stream.Collectors; /* @@ -60,39 +58,45 @@ public class ToPickPlatformTask extends AbstractTask { String vehicle_code = from.getString("vehicle_code"); String target_point = null;// = from.getString("target_point"); String priority = from.getString("priority"); - List targetPoints = iSchBasePointService.list(new QueryWrapper() - .eq("region_code", "PICK01").eq("is_used", true)); - //通过全局变量获取目标位置 - if (CollectionUtils.isEmpty(targetPoints)){ - throw new BadRequestException("当前拣选工位未启用"); + StIvtStructattr struct = iStIvtStructattrService.getOne(new QueryWrapper().eq("vehicle_code", vehicle_code)); + if (ObjectUtils.isEmpty(struct)) { + throw new BadRequestException("创建任务失败:未找到该物料对应起点仓位"); } - //轮询 - log.info("上次拣选平台分配位置:{},拣选平台开放点:{}",Lask_Point,targetPoints); - for (int i = 0; i < targetPoints.size(); i++) { - String code = targetPoints.get(i).getCode(); - if (targetPoints.size()>1 && !code.equals(Lask_Point)){ - target_point = code; - break; + String start_struct_code = struct.getStruct_code(); + //25.7.15,acs新增规则,顶楼出库拣选任务不允许去1308 + if (start_struct_code.contains("B")) { + target_point = "1311"; + } else { + List targetPoints = iSchBasePointService.list(new QueryWrapper() + .eq("region_code", "PICK01").eq("is_used", true)); + //通过全局变量获取目标位置 + if (CollectionUtils.isEmpty(targetPoints)) { + throw new BadRequestException("当前拣选工位未启用"); + } + //轮询 + log.info("上次拣选平台分配位置:{},拣选平台开放点:{}", Lask_Point, targetPoints); + for (int i = 0; i < targetPoints.size(); i++) { + String code = targetPoints.get(i).getCode(); + if (targetPoints.size() > 1 && !code.equals(Lask_Point)) { + target_point = code; + break; + } + target_point = code; } - target_point = code; } - if (StringUtils.isEmpty(vehicle_code) ||StringUtils.isEmpty(target_point)){ + if (StringUtils.isEmpty(vehicle_code) || StringUtils.isEmpty(target_point)) { throw new BadRequestException("创建任务失败:方法请求参数不能为空"); } List list = iSchBaseTaskService.list(new QueryWrapper().eq("vehicle_code", vehicle_code) .lt("status", StatusEnum.FORM_STATUS.code("完成"))); - if (!CollectionUtils.isEmpty(list)){ - throw new BadRequestException("当前载具存在任务:"+list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); + if (!CollectionUtils.isEmpty(list)) { + throw new BadRequestException("当前载具存在任务:" + list.stream().map(SchBaseTask::getTask_code).collect(Collectors.joining(","))); } - StIvtStructattr struct = iStIvtStructattrService.getOne(new QueryWrapper().eq("vehicle_code", vehicle_code)); - if (ObjectUtils.isEmpty(struct)){ - throw new BadRequestException("创建任务失败:未找到该物料对应起点仓位"); - } - String start_struct_code = struct.getStruct_code(); + //移库判断 - if (struct.getStor_code().equals("FStockId")){ - synchronized ("FStockId"){ - start_struct_code= SpringContextHolder.getBean(OutStorageTask.class).DoubleStor(struct); + if (struct.getStor_code().equals("FStockId")) { + synchronized ("FStockId") { + start_struct_code = SpringContextHolder.getBean(OutStorageTask.class).DoubleStor(struct); } } SchBaseTask task = new SchBaseTask(); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java index 1f40c070..ee0f8034 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/impl/SchBaseTaskServiceImpl.java @@ -256,7 +256,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl formData = this.getIoSourceFormData(task.getVehicle_code(), vehicleMaterList.get(0).getPcsn()); if (ObjectUtils.isNotEmpty(formData)) { Map formDataMap = formData.get(0); @@ -265,16 +265,27 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() - .set(PmFormData::getAssign_qty, cancelQty) - .eq(PmFormData::getId, id)); + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper(); + PmFormData pmFormData = iPmFormDataService.getById(id); + BigDecimal cancelQty = pmFormData.getAssign_qty().subtract(vehicleMaterList.get(0).getFrozen_qty()).abs(); + if (cancelQty.compareTo(BigDecimal.ZERO) == 0) { + lambdaUpdateWrapper.set(PmFormData::getQty, pmFormData.getAssign_qty()); + } + lambdaUpdateWrapper.set(PmFormData::getAssign_qty, cancelQty).eq(PmFormData::getId, id); + iPmFormDataService.update(lambdaUpdateWrapper); } String msg = "该库存在执行出库单id为:" + id + ",任务号为:" + task.getTask_code() + ",触发空出或被手动取消,取消数量为:" + vehicleMaterList.get(0).getFrozen_qty(); //冻结解锁 - iMdPbVehicleMaterService.update(new LambdaUpdateWrapper().set(MdPbVehicleMater::getFrozen_qty, 0).set(MdPbVehicleMater::getRemark, msg).eq(MdPbVehicleMater::getId, vehicleMaterList.get(0).getId())); + iMdPbVehicleMaterService.update(new LambdaUpdateWrapper() + .set(MdPbVehicleMater::getFrozen_qty, 0) + .set(MdPbVehicleMater::getRemark, msg) + .eq(MdPbVehicleMater::getId, vehicleMaterList.get(0).getId())); //库位空出 - iStIvtStructattrService.update(new LambdaUpdateWrapper().set(StIvtStructattr::getLock_type, StatusEnum.LOCK.code("空出锁")).set(StIvtStructattr::getRemark, msg).eq(StIvtStructattr::getVehicle_code, task.getVehicle_code())); + iStIvtStructattrService.update(new LambdaUpdateWrapper() + .set(StIvtStructattr::getLock_type, StatusEnum.LOCK.code("空出锁")) + .set(StIvtStructattr::getRemark, msg) + .eq(StIvtStructattr::getVehicle_code, task.getVehicle_code())); + } } } @@ -321,11 +332,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl vehicleList = iMdPbVehicleMaterService.list(new QueryWrapper() .eq("vehicle_code", task.getVehicle_code()) .eq("is_delete", false)); if (ObjectUtils.isNotEmpty(vehicleList)) { - //非混料托盘 + //非混料托盘,混料托盘不能直接清除库存 if (vehicleList.size() == 1) { //清除库位库存 iStIvtStructattrService.update(new UpdateWrapper() @@ -334,6 +348,11 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() + .set("update_time", DateUtil.now()) + .set("remark", "空出") + .eq("id", vehicleList.get(0).getId())); } //流程异常完成 vehicleList = vehicleList.stream().filter(r -> StringUtils.isNotBlank(r.getProc_inst_id())).collect(Collectors.toList()); @@ -343,11 +362,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl() - .set("status", StatusEnum.FORM_STATUS.code("取消")) .set("remark", struct_code + "空出异常") .set("update_time", DateUtil.now()) .eq("task_code", task_code)); + param.put("status", StatusEnum.FORM_STATUS.code("取消")); + //取消分配数据 + operation(param); } break; case "rm":