From fc4b28fbfffcd8498916d2208a70d936a7e6490b Mon Sep 17 00:00:00 2001 From: zhangzq Date: Wed, 31 Jul 2024 15:55:13 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=B7=B1=E4=BD=8D=E4=BC=98=E5=85=88?= =?UTF-8?q?=E7=AD=96=E7=95=A5=EF=BC=8C=E9=99=90=E9=AB=98=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/common/domain/aspect/LogAspect.java | 3 +- .../impl/base/LimitStorageRuleHandler.java | 91 +------------------ .../impl/diy/DepthPriorityHandler.java | 27 ++++++ .../decision_manage/strategy/AddDialog.vue | 10 ++ 4 files changed, 44 insertions(+), 87 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java index 7ae460df..4b04b4d7 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/domain/aspect/LogAspect.java @@ -18,6 +18,7 @@ package org.nl.common.domain.aspect; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import io.netty.util.internal.ThrowableUtil; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; @@ -128,7 +129,7 @@ public class LogAspect { if (argList.size() == 0) { return ""; } - return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); + return JSON.toJSONString(argList); } public String getUsername() { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java index 34bf67b1..c4236961 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/base/LimitStorageRuleHandler.java @@ -1,6 +1,7 @@ package org.nl.wms.decision_manage.handler.decisioner.impl.base; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import org.nl.common.domain.exception.BadRequestException; import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService; import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl; @@ -22,13 +23,8 @@ import java.util.stream.Collectors; * 货位限位策略:限高,限宽,限长,限重 */ @Service("limitStorage") -public class LimitStorageRuleHandler extends Decisioner { +public class LimitStorageRuleHandler extends Decisioner { - /** - * 出入库明细服务 - */ - @Autowired - private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; /** * 载具扩展属性服务服务 @@ -47,37 +43,22 @@ public class LimitStorageRuleHandler extends Decisioner :仓位集合 */ @Override - public List handler(List list, StIvtIostorinvdtl param) { + public List handler(List list, JSONObject param) { // 判断仓位是否为空 // 判断策略类型 - String vehicleCode = param.getVehicle_code(); + String vehicleCode = param.getString("vehicle_code"); BmVehicleInfo vehileInfo = bmVehicleInfoService.vehileInfo(vehicleCode); if (vehileInfo==null){ throw new BadRequestException("当前载具信息不存在:"+vehicleCode+"!"); } List resultList = inHandler(list,vehileInfo); - - -// switch (Strategy_Config.getStrategy_type()) { -// case "1": -// // 入库策略 -// break; -// case "2": -// // 出库策略 -// resultList = outHandler(list,jsonParam); -// break; -// case "3": -// // 通用策略 -// break; -// default: -// throw new BadRequestException("策略类型错误!"); return resultList; } /** * 入库策略:判断货位的长宽高 * @param attrList :仓位集合 - * @param jsonParam:materialId :物料标识、width: 宽度、 height:高度、zdepth:深度 + * @param vehicle :物料标识、width: 宽度、 height:高度、zdepth:深度 * @return List :仓位集合 */ private List inHandler(List attrList, BmVehicleInfo vehicle) { @@ -106,66 +87,4 @@ public class LimitStorageRuleHandler extends Decisioner :需出库仓位集合 - */ -// private List outHandler(List attrList, JSONObject jsonParam) { -// -// // 查询对应的出入库明细 -// StIvtIostorinvdtlIn dtlDao = iStIvtIostorinvdtlService.getById(jsonParam.getString("iostorinvdtlId")); -// -// // 查询传入仓位物料中的数量是否满足明细中的数量 -// List vehicleCodeIn = attrList.stream() -// .map(StIvtStructattr::getVehicle_code) -// .distinct() -// .collect(Collectors.toList()); -// -// // 查询对应的载具物料 -// List extList = iMdPbStoragevehicleextService.list( -// new QueryWrapper().lambda() -// .in(MdPbStoragevehicleext::getStoragevehicle_code, vehicleCodeIn) -// ); -// -// double attrQty = extList.stream() -// .map(MdPbStoragevehicleext::getQty) -// .reduce(BigDecimal.ZERO, BigDecimal::add) -// .doubleValue(); -// -// if (dtlDao.getUnassign_qty().doubleValue() > attrQty) { -// // 说明不满足所需重量则全部返回 -// return attrList; -// } -// -// // 需返回仓位物料集合 -// List resultList = new ArrayList<>(); -// // 满足所需数量: 根据巷道进行平均分配 -// double unAssingQty = dtlDao.getUnassign_qty().doubleValue(); -// -// while (unAssingQty > 0) { -// -// // 添加需返回的仓位物料 -// StIvtStructattr attrDao = attrList.get(0); -// resultList.add(attrDao); -// -// // 减去未分配重量 -// MdPbStoragevehicleext extDao = extList.stream() -// .filter(row -> row.getStoragevehicle_code().equals(attrDao.getVehicle_code())) -// .findFirst().orElse(null); -// -// if (ObjectUtil.isEmpty(extDao)) { -// throw new BadRequestException("未查询到载具对应的物料【"+attrDao.getVehicle_code()+"】"); -// } -// -// unAssingQty = NumberUtil.sub(unAssingQty,extDao.getQty().doubleValue()); -// -// // 移出此仓位物料,方便下一轮进行匹配 -// attrList.remove(attrDao); -// } -// -// return resultList; -// } - } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java new file mode 100644 index 00000000..ee44ff8c --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/decisioner/impl/diy/DepthPriorityHandler.java @@ -0,0 +1,27 @@ +package org.nl.wms.decision_manage.handler.decisioner.impl.diy; + +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.decision_manage.handler.decisioner.Decisioner; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.stream.Collectors; + +/* + * @author ZZQ + * @Date 2024/7/31 15:19 + */ +//@Service("depthPriority") +public class DepthPriorityHandler extends Decisioner { + //现场1/4排深位 + @Override + public List handler(List list, JSONObject param) { + List collect = list.stream().filter(a -> a.getRow_num() == 1 || a.getRow_num() == 4).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(collect)){ + return collect; + } + return list; + } +} diff --git a/wms_pro/qd/src/views/wms/decision_manage/strategy/AddDialog.vue b/wms_pro/qd/src/views/wms/decision_manage/strategy/AddDialog.vue index 28fea582..ec7e8a8f 100644 --- a/wms_pro/qd/src/views/wms/decision_manage/strategy/AddDialog.vue +++ b/wms_pro/qd/src/views/wms/decision_manage/strategy/AddDialog.vue @@ -53,6 +53,13 @@ + + + + + + + @@ -125,6 +132,9 @@ export default { strategy_type: [ { required: true, message: '策略类型不能为空', trigger: 'blur' } ], + strategy_code: [ + { required: true, message: '策略编码不能为空', trigger: 'blur' } + ], param: [ { required: true, message: '参数不能为空', trigger: 'blur' } ],