From 3ee94f5fcbd147625e12a146818785f08a491cbb Mon Sep 17 00:00:00 2001 From: zhangzq Date: Mon, 27 May 2024 15:51:53 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=87=BA=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/common/enums/StatusEnum.java | 2 +- .../service/dto/VehicleMaterQuery.java | 2 + .../impl/MdPbVehicleMaterServiceImpl.java | 1 - .../handler/impl/base/FIFORuleHandler.java | 145 +++++---------- .../handler/impl/base/NearbyRuleHandler.java | 11 +- .../service/dao/mapper/SchBaseTaskMapper.java | 10 +- .../dao/mapper/xml/SchBaseTaskMapper.xml | 22 +++ .../service/impl/SchBaseTaskServiceImpl.java | 3 +- .../impl/SubProcessActivityBehavior.java | 21 ++- .../nodeType/excess/impl/DecisionHandler.java | 49 +++-- .../out/StIvtIostorinvOutController.java | 31 +++ .../in/iostor_dtl/dao/StIvtIostorinvdtl.java | 5 + .../out/iostor/dao/StIvtIostorinvout.java | 4 +- .../impl/StIvtIostorinvOutServiceImpl.java | 57 +++++- .../IStIvtIostorinvdtlOutService.java | 2 + .../iostor_dtl/dao/StIvtIostorinvdtlOut.java | 3 +- .../mapper/StIvtIostorinvdtlOutMapper.java | 1 + .../impl/StIvtIostorinvdtlOutServiceImpl.java | 36 +++- .../controller/StIvtStructattrController.java | 4 + .../service/IStIvtStructattrService.java | 12 ++ .../dao/mapper/StIvtStructattrMapper.java | 3 + .../dao/mapper/xml/StIvtStructattrMapper.xml | 24 +++ .../service/dto/StructattrVechielDto.java | 176 ++++++++++++++++++ .../impl/StIvtStructattrServiceImpl.java | 34 ++++ 24 files changed, 510 insertions(+), 148 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dto/StructattrVechielDto.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java index 7bb95e95..77ec225e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/common/enums/StatusEnum.java @@ -24,7 +24,7 @@ public enum StatusEnum { /** * 单据状态 */ - FORM_STATUS(MapOf.of("生成", "10", "执行中", "20","完成", "90","取消", "100")), + FORM_STATUS(MapOf.of("生成", "10","已分配", "13", "执行中", "20","完成", "90","取消", "100")), /** * 出入库单据类型 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dto/VehicleMaterQuery.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dto/VehicleMaterQuery.java index 34bfbefe..76972b8b 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dto/VehicleMaterQuery.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/dto/VehicleMaterQuery.java @@ -17,6 +17,8 @@ public class VehicleMaterQuery extends BaseQuery { private String vehicle_code_begin; private String vehicle_code_end; private String vehicle_type; + private String pcsn; + private String material_id; @Override public void paramMapping() { diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/impl/MdPbVehicleMaterServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/impl/MdPbVehicleMaterServiceImpl.java index e1f935b9..c1ea89b0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/impl/MdPbVehicleMaterServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/base_manage/vehicle/vehicleMater/service/impl/MdPbVehicleMaterServiceImpl.java @@ -3,7 +3,6 @@ package org.nl.wms.base_manage.vehicle.vehicleMater.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService; -import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater; import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.mapper.MdPbVehicleMaterMapper; import org.springframework.stereotype.Service; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java index c6d7e26f..b23cf6da 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/FIFORuleHandler.java @@ -1,16 +1,33 @@ package org.nl.wms.decision_manage.handler.impl.base; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.utils.MapOf; +import org.nl.wms.base_manage.vehicle.vehicleInfo.service.dto.VehicleQuery; +import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.base_manage.vehicle.vehicleMater.service.dto.VehicleMaterQuery; +import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.decision_manage.handler.Decisioner; import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.function.Predicate; +import java.util.stream.Collectors; /* * @author ZZQ @@ -18,19 +35,16 @@ import java.util.List; * 先进先出策略 */ @Service("fifo") -public class FIFORuleHandler extends Decisioner { +public class FIFORuleHandler extends Decisioner { /** * 出入库明细服务 */ @Autowired - private IStIvtIostorinvdtlService iStIvtIostorinvdtlService; + private IStIvtStructattrService iStIvtStructattrService; + @Autowired + private IMdPbVehicleMaterService iMdPbVehicleMaterService; - /** - * 载具扩展属性服务服务 - */ -// @Autowired -// private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; /** * 巷道均衡策略 @@ -43,106 +57,35 @@ public class FIFORuleHandler extends Decisioner { * @return List :仓位集合 */ @Override - public List handler(List list, String param) { + public List handler(List list, StIvtIostorinvdtl param) { // 判断仓位是否为空 if (ObjectUtil.isEmpty(list)) { throw new BadRequestException("仓位集合为空!"); } + //分配数量 + int plan_qty = param.getPlan_qty().intValue(); + //当前条件只有id,批次 + List vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", param.getMaterial_id() + , "pcsn", param.getPcsn() + , "stor_code", param.getStor_code() + , "order_by", "update_time asc") + ); + List need = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList()); - // 判断策略类型 - JSONObject jsonParam = JSONObject.parseObject(param, JSONObject.class); + List disList = new ArrayList<>(); + for (StructattrVechielDto structattr : vechielDtos) { + if (need.contains(structattr.getStruct_code())){ + StIvtStructattr stIvtStructattr = new StIvtStructattr(); + BeanUtils.copyProperties(structattr,stIvtStructattr); + disList.add(stIvtStructattr); - List resultList = new ArrayList<>(); - - switch (jsonParam.getString("ioType")) { - case "1": - // 入库策略 - resultList = inHandler(list,jsonParam); - break; - case "2": - // 出库策略 -// resultList = outHandler(list,jsonParam); - break; - case "3": - // 通用策略 - break; - default: - throw new BadRequestException("策略类型错误!"); + int cause_qty = structattr.getQty().subtract(structattr.getFrozen_qty()).intValue(); + plan_qty = plan_qty - cause_qty; + if (plan_qty<=0){ + break; + } + } } - return resultList; + return disList; } - - /** - * 入库策略 - * @param attrList :仓位集合 - * @param jsonParam:materialId :物料标识 - * @return List :仓位集合 - */ - private List inHandler(List attrList, JSONObject jsonParam) { - - return attrList; - } - - /** - * 出库策略 - * @param attrList :仓位物料信息 - * @param jsonParam:iostorinvdtlId : 出入库明细标识(此方法只根据时间匹配) - * @return List :需出库仓位集合 - */ -// 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) -// .orderByAsc(MdPbStoragevehicleext::getInsert_time) -// ); -// -// 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/impl/base/NearbyRuleHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java index e8f13713..0139b644 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/decision_manage/handler/impl/base/NearbyRuleHandler.java @@ -2,7 +2,10 @@ package org.nl.wms.decision_manage.handler.impl.base; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.enums.StatusEnum; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.decision_manage.handler.Decisioner; import org.nl.wms.decision_manage.service.dao.StStrategyConfig; @@ -10,6 +13,7 @@ import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.Comparator; import java.util.List; @@ -27,7 +31,7 @@ public class NearbyRuleHandler extends Decisioner handler(List list, StIvtIostorinvdtl param) { - // 判断仓位是否为空 - if (ObjectUtil.isEmpty(list)) { - throw new BadRequestException("仓位集合为空!"); + if (CollectionUtils.isEmpty(list)){ + throw new BadRequestException("当前分配策略无可用货位"); } list.sort(Comparator.comparingInt(i -> i.getRow_num()+i.getCol_num()+i.getLayer_num()+i.getBlock_num())); //就近分配区分出库还是入库策略 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/SchBaseTaskMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/SchBaseTaskMapper.java index 02916312..cc6b7009 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/SchBaseTaskMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/SchBaseTaskMapper.java @@ -23,13 +23,5 @@ import java.util.Map; public interface SchBaseTaskMapper extends BaseMapper { IPage selectPageLeftJoin(IPage pages, @Param("whereJson") SchBaseTaskQuery whereJson, @Param("collect") List collect); - @Select("SELECT\n" + - "\tsch_base_task.*, md_pb_vehicleMater.*,md_me_materialbase.material_code,md_me_materialbase.material_name,md_me_materialbase.material_spec\n" + - "FROM\n" + - "\tsch_base_task\n" + - "\tLEFT JOIN md_pb_vehicleMater ON sch_base_task.vehicle_code = md_pb_vehicleMater.vehicle_code \n" + - "\tleft join md_me_materialbase on md_pb_vehicleMater.material_id = md_me_materialbase.material_id\n" + - "WHERE\n" + - "\tsch_base_task.vehicle_code = #{vehicle_code}") - List getByVehicle(String vehicle_code); + List getByVehicle(@Param("vehicles") List vehicles); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml index 83667251..62de88de 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/dispatch_manage/task/service/dao/mapper/xml/SchBaseTaskMapper.xml @@ -38,4 +38,26 @@ ORDER BY t.create_time DESC + 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 d82cd224..e5429a99 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 @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.ListOf; import org.nl.common.utils.SecurityUtils; import org.nl.wms.dispatch_manage.task.service.dao.SchBaseTask; import org.nl.wms.dispatch_manage.task.service.dao.mapper.SchBaseTaskMapper; @@ -60,7 +61,7 @@ public class SchBaseTaskServiceImpl extends ServiceImpl(); } - return this.baseMapper.getByVehicle(vehicle_code); + return this.baseMapper.getByVehicle(ListOf.of(vehicle_code.split(","))); } @Override diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/SubProcessActivityBehavior.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/SubProcessActivityBehavior.java index 1b535493..d248bce1 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/SubProcessActivityBehavior.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/engine/behavior/impl/SubProcessActivityBehavior.java @@ -26,10 +26,7 @@ import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Random; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Collectors; @@ -38,6 +35,7 @@ import java.util.stream.Stream; /* * @author ZZQ * @Date 2024/5/6 17:47 + * 后续可以定义规则 */ @Service("subProcess") public class SubProcessActivityBehavior extends FlowNodeActivityBehavior { @@ -63,9 +61,20 @@ public class SubProcessActivityBehavior extends FlowNodeActivityBehavior subList = new ArrayList<>(); + for (int i = 0; i < items.size(); i++) { + JSONObject item = items.getJSONObject(i); + String[] vehicle_codes = item.getString("vehicle_code").split(","); + for (String vehicle_code : vehicle_codes) { + JSONObject sub = new JSONObject(item); + sub.put("vehicle_code",vehicle_code); + subList.add(sub); + } + } + if (subList!=null){ //子流程并行,子流程单一的时候直接串行 - items.stream().map((Function) o -> CompletableFuture.runAsync(() -> { + subList.stream().map((Function) o -> CompletableFuture.runAsync(() -> { ExecutionEntity subEntity = new ExecutionEntity(); subEntity.setParent_id(entity.getProc_inst_id()); subEntity.setForm_id(entity.getForm_id()); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java index 644e3833..474280f5 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/flow_manage/flow/framework/process/nodeType/excess/impl/DecisionHandler.java @@ -16,11 +16,14 @@ import org.nl.wms.stor_manage.io.service.in.iostor_dtl.IStIvtIostorinvdtlService import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; /* * @author ZZQ @@ -51,20 +54,37 @@ public class DecisionHandler extends TypeHandler atomicStruct= new AtomicReference<>(); + StIvtIostorinvdtl iostorinvdtl = item_json.toJavaObject(StIvtIostorinvdtl.class); + List list = dispense(params, iostorinvdtl); + //更新仓位,更新数据 + String collect = list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.joining(",")); + stIvtIostorinvdtlInService.update(new UpdateWrapper() + .set("struct_code",collect) + .eq("id",iostorinvdtl.getId())); + item_json.put("struct_code",collect); + return t; + } + @Transactional + public List dispense(List params, StIvtIostorinvdtl iostorinvdtl) { + AtomicReference> structCode = new AtomicReference<>(); RedissonUtils.lock(()->{ - List list = iStIvtStructattrService.list(new QueryWrapper() - .eq("vehicle_code", "") + QueryWrapper query = new QueryWrapper() .eq("is_used", true) .eq("lock_type", StatusEnum.LOCK.code("无")) - .eq("stor_code",iostorinvdtlIn.getStor_code())); + .eq("stor_code", iostorinvdtl.getStor_code()); + if (iostorinvdtl.getIn_storage()){ + query.eq("vehicle_code",""); + }else { + query.ne("vehicle_code",""); + } + //如果是入库则过滤空;否则则不过滤 + List list = iStIvtStructattrService.list(query); if (CollectionUtils.isEmpty(list)){ throw new BadRequestException("当前分配策略无可用货位"); } for (String param : params) { Decisioner decisioner = decisionHandlerMap.get(param); - list = decisioner.handler(list, iostorinvdtlIn); + list = decisioner.handler(list, iostorinvdtl); if (CollectionUtils.isEmpty(list)){ throw new BadRequestException("当前分配策略无可用货位"); } @@ -73,19 +93,12 @@ public class DecisionHandler extends TypeHandler() - .set("vehicle_code",iostorinvdtlIn.getVehicle_code()) - .set("lock_type", StatusEnum.LOCK.code("入")) - .eq("struct_code",structCode)); +// .set("vehicle_code", iostorinvdtl.getVehicle_code()) + .set("lock_type", StatusEnum.LOCK.code(iostorinvdtl.getIn_storage()?"入":"出")) + .in("struct_code", list.stream().map(StIvtStructattr::getStruct_code).collect(Collectors.toList()))); },"入",2); - - stIvtIostorinvdtlInService.update(new UpdateWrapper() - .set("struct_code",atomicStruct.get()) - .eq("id",iostorinvdtlIn.getId())); - item_json.put("struct_code",atomicStruct.get()); - return t; + return structCode.get(); } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java index 11f7a980..bb51b88f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/controller/out/StIvtIostorinvOutController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.nl.common.TableDataInfo; import org.nl.common.domain.entity.PageQuery; +import org.nl.common.utils.MapOf; import org.nl.wms.dispatch_manage.task.service.ISchBaseTaskService; import org.nl.wms.stor_manage.io.service.dto.StorInvOutQuery; import org.nl.wms.stor_manage.io.service.dto.StorInvQuery; @@ -12,6 +13,7 @@ import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn; import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvOutService; import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,6 +38,8 @@ public class StIvtIostorinvOutController { private IStIvtIostorinvOutService iStIvtIostorinvOutService; @Autowired private IStIvtIostorinvdtlOutService iStIvtIostorinvDtlOutService; + @Autowired + private ISchBaseTaskService iSchBaseTaskService; @@ -56,5 +60,32 @@ public class StIvtIostorinvOutController { return new ResponseEntity<>(mapList,HttpStatus.OK); } + /** + * 出库分配 + * @param dtl + * @return + */ + @PostMapping("/outDecision") + public ResponseEntity outDecision(@RequestBody JSONObject dtl) { + String struct_code = iStIvtIostorinvOutService.dispense(dtl); + return new ResponseEntity<>(struct_code,HttpStatus.OK); + } + + /** + * 取消分配 + * @param dtl + * @return + */ + @PostMapping("/cancelDecision") + public ResponseEntity cancelDecision(@RequestBody JSONObject dtl) { + iStIvtIostorinvOutService.canceldispense(dtl); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/divDis") + public ResponseEntity divDis(@RequestBody JSONObject dtl) { + List dis = iSchBaseTaskService.getByVehicle(dtl.getString("vehicle_code")); + return new ResponseEntity<>(TableDataInfo.build(dis),HttpStatus.OK); + } } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/in/iostor_dtl/dao/StIvtIostorinvdtl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/in/iostor_dtl/dao/StIvtIostorinvdtl.java index 0fcd6ac0..f6d53d81 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/in/iostor_dtl/dao/StIvtIostorinvdtl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/in/iostor_dtl/dao/StIvtIostorinvdtl.java @@ -36,6 +36,11 @@ public class StIvtIostorinvdtl implements Serializable { */ private String inv_id; + /** + * 出入单标识 + */ + private Boolean in_storage = Boolean.TRUE; + /** * 源单号 */ diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvout.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvout.java index 95eacaaa..187ed87d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvout.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/dao/StIvtIostorinvout.java @@ -15,8 +15,8 @@ import lombok.EqualsAndHashCode; */ @Data @EqualsAndHashCode(callSuper = false) -@TableName("st_ivt_iostorinv_in") -public class StIvtIostorinvout implements Serializable { +@TableName("st_ivt_iostorinv_out") +public class StIvtIostorinvOut implements Serializable { private static final long serialVersionUID = 1L; diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java index f7340663..fb65a77c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor/impl/StIvtIostorinvOutServiceImpl.java @@ -2,25 +2,31 @@ package org.nl.wms.stor_manage.io.service.out.iostor.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.commons.lang3.StringUtils; +import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; -import org.nl.wms.stor_manage.io.service.in.iostor.dao.StIvtIostorinvIn; -import org.nl.wms.stor_manage.io.service.in.iostor.dao.mapper.StIvtIostorinvMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; import org.nl.wms.stor_manage.io.service.out.iostor.IStIvtIostorinvOutService; import org.nl.wms.stor_manage.io.service.out.iostor.dao.StIvtIostorinvOut; import org.nl.wms.stor_manage.io.service.out.iostor.dao.mapper.StIvtIostorinvOutMapper; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut; +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; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -35,6 +41,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl desicion = iStIvtStructattrService.desicion(form, Boolean.FALSE); + if (CollectionUtils.isEmpty(desicion)){ + throw new BadRequestException("分配失败,当前出库分配无可用货位"); + } + iStIvtIostorinvDtlOutService.update(new UpdateWrapper() + .set("vehicle_code",desicion.stream().map(StIvtStructattr::getVehicle_code).collect(Collectors.joining(","))) + .eq("id",form.getString("id"))); + int count = iStIvtIostorinvDtlOutService.count(new QueryWrapper() + .eq("inv_id", form.getString("inv_id")).isNull("vehicle_code")); + if (count == 0){ + this.update(new UpdateWrapper() + .set("status",StatusEnum.FORM_STATUS.code("已分配")) + .eq("id",form.getString("inv_id"))); + } + return desicion.get(0).getStruct_code(); + } + + @Override + @Transactional + public String canceldispense(JSONObject form) { + String vehicles = form.getString("vehicle_code"); + if (StringUtils.isNotEmpty(vehicles)){ + String[] split = vehicles.split(","); + //更新点位锁,删除分配 + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("无")) + .in("vehicle_code", Arrays.asList(split))); + iStIvtIostorinvDtlOutService.update(new UpdateWrapper() + .set("vehicle_code",null) + .eq("id",form.getString("id"))); + + this.update(new UpdateWrapper() + .set("status",StatusEnum.FORM_STATUS.code("生成")) + .eq("id",form.getString("inv_id"))); + } + return null; + } + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/IStIvtIostorinvdtlOutService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/IStIvtIostorinvdtlOutService.java index ac118e28..43d5908e 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/IStIvtIostorinvdtlOutService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/IStIvtIostorinvdtlOutService.java @@ -1,5 +1,6 @@ package org.nl.wms.stor_manage.io.service.out.iostor_dtl; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut; @@ -21,4 +22,5 @@ public interface IStIvtIostorinvdtlOutService extends IService getByInv(String inv_id); + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/StIvtIostorinvdtlOut.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/StIvtIostorinvdtlOut.java index 7ed63f11..762fbf7c 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/StIvtIostorinvdtlOut.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/StIvtIostorinvdtlOut.java @@ -23,7 +23,6 @@ import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = false) @TableName(value = "st_ivt_iostorinvdtl_out", autoResultMap = true) public class StIvtIostorinvdtlOut implements Serializable { - private static final long serialVersionUID = 1L; /** @@ -109,5 +108,7 @@ public class StIvtIostorinvdtlOut implements Serializable { private JSONObject form_data; + private Boolean in_storage = Boolean.FALSE; + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/mapper/StIvtIostorinvdtlOutMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/mapper/StIvtIostorinvdtlOutMapper.java index 03c29afe..9b8a563d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/mapper/StIvtIostorinvdtlOutMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/dao/mapper/StIvtIostorinvdtlOutMapper.java @@ -38,4 +38,5 @@ public interface StIvtIostorinvdtlOutMapper extends BaseMapper findByInv(String inv_id); + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/impl/StIvtIostorinvdtlOutServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/impl/StIvtIostorinvdtlOutServiceImpl.java index 3fff9305..88898a3f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/impl/StIvtIostorinvdtlOutServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/out/iostor_dtl/impl/StIvtIostorinvdtlOutServiceImpl.java @@ -1,17 +1,32 @@ package org.nl.wms.stor_manage.io.service.out.iostor_dtl.impl; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import org.apache.commons.lang3.StringUtils; +import org.nl.common.domain.exception.BadRequestException; +import org.nl.common.enums.StatusEnum; +import org.nl.common.utils.MapOf; +import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.mapper.StIvtIostorinvdtlMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.IStIvtIostorinvdtlOutService; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut; import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.mapper.StIvtIostorinvdtlOutMapper; +import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -24,6 +39,8 @@ import java.util.Map; @Service public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl implements IStIvtIostorinvdtlOutService { + @Autowired + private IStIvtStructattrService iStIvtStructattrService; @Override public void batchInsert(List dtls) { @@ -35,6 +52,23 @@ public class StIvtIostorinvdtlOutServiceImpl extends ServiceImpl(); } - return this.baseMapper.findByInv(inv_id); + List byInv = this.baseMapper.findByInv(inv_id); + //查询载具所在仓位 + for (Map map : byInv) { + Object vehicle_code = map.get("vehicle_code"); + if (vehicle_code!=null){ + List vehicles = Arrays.asList(((String) vehicle_code).split(",")); + List vechielDtos = iStIvtStructattrService.collectVechicle(MapOf.of("material_id", map.get("material_id") + , "pcsn", map.get("pcsn") + , "stor_code", map.get("stor_code") + , "vehicles", vehicles)); + String structs = vechielDtos.stream().map(StructattrVechielDto::getStruct_code).collect(Collectors.joining(",")); + int qty = vechielDtos.stream().mapToInt(a->a.getQty().intValue()).sum(); + map.put("struct_code",structs); + map.put("qty",qty); + } + } + return byInv; } + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java index b8eeb91c..673bce4d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/controller/StIvtStructattrController.java @@ -1,6 +1,7 @@ package org.nl.wms.stor_manage.struct.controller; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import org.nl.common.domain.entity.PageQuery; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; @@ -13,6 +14,9 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Map; + /** *

* 仓位属性表 前端控制器 diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java index 49006989..337bfd19 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/IStIvtStructattrService.java @@ -1,9 +1,11 @@ package org.nl.wms.stor_manage.struct.service; +import com.alibaba.fastjson.JSONObject; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.common.domain.entity.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; import java.util.List; import java.util.Map; @@ -31,4 +33,14 @@ public interface IStIvtStructattrService extends IService { Object pageQuery(StructattrQuery query, PageQuery page); void changeActive(StIvtStructattr dto); + + /** + * 手动调用出入库规则 + * @param form + * @param in + * @return + */ + List desicion(JSONObject form, Boolean in); + + List collectVechicle(Map query); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/StIvtStructattrMapper.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/StIvtStructattrMapper.java index cc45a741..7e072a22 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/StIvtStructattrMapper.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/StIvtStructattrMapper.java @@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Param; import org.nl.common.domain.entity.PageQuery; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; import java.util.List; import java.util.Map; @@ -20,4 +21,6 @@ import java.util.Map; public interface StIvtStructattrMapper extends BaseMapper { List getPageQuery(@Param("query") StructattrQuery query, PageQuery pageQuery); + + List collectVehicle(Map query); } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml index 598eddb3..6a02e2ba 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml @@ -36,4 +36,28 @@ + diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dto/StructattrVechielDto.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dto/StructattrVechielDto.java new file mode 100644 index 00000000..02b9d7db --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dto/StructattrVechielDto.java @@ -0,0 +1,176 @@ +package org.nl.wms.stor_manage.struct.service.dto; + +import lombok.Data; +import org.nl.common.domain.entity.BaseQuery; +import org.nl.common.domain.entity.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; + +import java.math.BigDecimal; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class StructattrVechielDto extends MdPbVehicleMater { + private static final long serialVersionUID = 1L; + + /** + * 仓位标识 + */ + private String id; + + /** + * 仓位编码 + */ + private String struct_code; + + /** + * 仓位名称 + */ + private String struct_name; + + /** + * 库区标识 + */ + private String sect_code; + + /** + * 仓库标识 + */ + private String stor_code; + + /** + * 容量 + */ + private Integer capacity; + + /** + * 宽度 + */ + private Integer w; + + /** + * 高度 + */ + private Integer h; + + /** + * 深度(长度) + */ + private Integer l; + + /** + * 承受重量 + */ + private Integer weight; + + /** + * 起始X坐标 + */ + private BigDecimal xqty; + + /** + * 起始Y坐标 + */ + private BigDecimal yqty; + + /** + * 起始Z坐标 + */ + private BigDecimal zqty; + + /** + * 排 + */ + private Integer row_num; + + /** + * 列 + */ + private Integer col_num; + + /** + * 层 + */ + private Integer layer_num; + + /** + * 块 + */ + private Integer block_num; + + /** + * 超限货位关联的货位编号 + */ + private String control_code; + + /** + * 创建人 + */ + private String create_id; + + /** + * 创建人姓名 + */ + private String create_name; + + /** + * 创建时间 + */ + private String create_time; + + /** + * 是否临时仓位 + */ + private Boolean is_temp; + + /** + * 是否启用 + */ + private Boolean is_used; + + /** + * 锁定类型 + */ + private String lock_type; + + /** + * 是否判断高度 + */ + private String is_zdepth; + + /** + * 存储载具号 + */ + private String vehicle_code; + + /** + * 备注 + */ + private String remark; + + /** + * 背景图片 + */ + private String back_ground_pic; + + /** + * 前景色 + */ + private String front_ground_color; + + /** + * 背景色 + */ + private String back_ground_color; + + /** + * 字体显示方向 + */ + private String font_direction_scode; + + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java index 4bfaf560..c3ef9967 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/impl/StIvtStructattrServiceImpl.java @@ -1,16 +1,22 @@ package org.nl.wms.stor_manage.struct.service.impl; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import org.apache.commons.lang3.StringUtils; import org.nl.common.TableDataInfo; import org.nl.common.domain.entity.PageQuery; +import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; import org.nl.common.utils.IdUtil; import org.nl.wms.base_manage.vehicle.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.base_manage.vehicle.vehicleMater.service.dao.MdPbVehicleMater; +import org.nl.wms.flow_manage.flow.framework.process.nodeType.excess.impl.DecisionHandler; +import org.nl.wms.stor_manage.io.service.in.iostor_dtl.dao.StIvtIostorinvdtl; +import org.nl.wms.stor_manage.io.service.out.iostor_dtl.dao.StIvtIostorinvdtlOut; import org.nl.wms.stor_manage.record.service.IStIvtStructivtflowService; import org.nl.wms.stor_manage.record.service.dao.StIvtStructivtflow; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; @@ -18,10 +24,15 @@ import org.nl.wms.stor_manage.struct.service.dao.mapper.StIvtStructattrMapper; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.stor_manage.struct.service.dto.StructattrQuery; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; +import org.nl.wms.system_manage.service.param.ISysParamService; +import org.nl.wms.system_manage.service.param.dao.Param; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -40,6 +51,11 @@ public class StIvtStructattrServiceImpl extends ServiceImpl desicion(JSONObject form, Boolean in) { + //查询出入库配置规则 + Param byCode = iSysParamService.findByCode("decision_"+ in); + if (byCode ==null || StringUtils.isEmpty(byCode.getValue())){ + throw new BadRequestException("未配置出入库默认规则,请在系统配置中配置"); + } + List decisions = Arrays.asList(byCode.getValue().split(",")); + List dispense = decisionHandler.dispense(decisions, form.toJavaObject(StIvtIostorinvdtl.class)); + return dispense; + } + + @Override + public List collectVechicle(Map query) { + List collectVehicle = this.baseMapper.collectVehicle(query); + return collectVehicle; + + } }