From 474df3f5d8286f12e80a9fafd6d9a50449dc6ee5 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 15 May 2023 00:27:04 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=B7=BB=E5=8A=A0=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E8=A1=A8=E6=9C=8D=E5=8A=A1/=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=BB=93=E5=BA=93=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/common/publish/AbstraceListener.java | 5 +- .../common/publish/BussEventMulticaster.java | 7 +- .../org/nl/common/publish/PublishEvent.java | 8 - .../nl/common/publish/event/PointEvent.java | 21 +- .../nl/common/publish/event/PublishEvent.java | 21 + .../nl/common/publish/event/VechlieEvent.java | 12 +- .../publish/listener/PointListener.java | 17 - .../material}/MaterialsafeivtController.java | 6 +- .../StructrelamaterialController.java | 6 +- .../storage}/SectattrController.java | 50 +- .../storage}/StorattrController.java | 27 +- .../storage}/StructattrController.java | 38 +- .../StructrelavehicletypeController.java | 6 +- .../storage/IStIvtBsrealstorattrService.java | 37 + .../storage/IStIvtSectattrService.java | 47 ++ .../storage/IStIvtStructattrService.java | 37 + .../storage/dao/StIvtBsrealstorattr.java | 4 +- .../service/storage/dao/StIvtSectattr.java | 29 +- .../service/storage/dao/StIvtStructattr.java | 25 +- .../dao/mapper/StIvtBsrealstorattrMapper.java | 4 +- .../dao/mapper/StIvtSectattrMapper.java | 20 + .../dao/mapper/StIvtStructattrMapper.java | 4 +- .../mapper/xml}/StIvtBsrealstorattrMapper.xml | 2 +- .../dao/mapper/xml/StIvtSectattrMapper.xml | 46 ++ .../dao/mapper/xml}/StIvtStructattrMapper.xml | 2 +- .../service/storage/dto/SectattrQuery.java | 24 + .../service/storage/dto/StructarrQuery.java | 26 + .../impl/StIvtBsrealstorattrServiceImpl.java | 35 + .../impl/StIvtSectattrServiceImpl.java | 131 ++++ .../impl/StIvtStructattrServiceImpl.java | 99 +++ .../备份st/rest/StructivtController.java | 93 --- .../java/org/nl/wms/procure_manage/pcs.xls | Bin 221696 -> 221696 bytes .../java/org/nl/wms/product_manage/pdm.xls | Bin 215040 -> 215040 bytes .../sch/service/impl/PointServiceImpl.java | 8 +- .../java/org/nl/wms/scheduler_manage/sch.xls | Bin 187392 -> 187392 bytes .../service/point/PointListener.java | 16 + .../point/impl/SchBasePointServiceImpl.java | 7 +- .../storage_manage/CHANGE_BILL_TYPE_ENUM.java | 43 ++ .../nl/wms/storage_manage/ST_CHANGE_TYPE.java | 23 - .../org/nl/wms/storage_manage/StorEvent.java | 12 +- .../wms/storage_manage/StorEventListener.java | 36 +- .../StIvtBsrealstorattrController.java | 49 -- .../storage/StIvtSectattrController.java | 20 - .../storage/StIvtStructattrController.java | 20 - .../record/dao/StIvtStructivtflow.java | 34 +- .../record/dto/StIvtStructivtflowDto.java | 79 +++ .../service/IStIvtStructivtflowService.java | 2 + .../impl/StIvtStructivtflowServiceImpl.java | 60 ++ .../storage/IStIvtBsrealstorattrService.java | 16 - .../storage/IStIvtSectattrService.java | 16 - .../storage/IStIvtStructattrService.java | 16 - .../dao/mapper/StIvtSectattrMapper.java | 16 - .../dao/mapper/StIvtSectattrMapper.xml | 5 - .../impl/StIvtBsrealstorattrServiceImpl.java | 20 - .../impl/StIvtSectattrServiceImpl.java | 20 - .../impl/StIvtStructattrServiceImpl.java | 20 - .../impl/StIvtIostorinvCpServiceImpl.java | 9 +- .../StIvtIostorinvBcpController.java | 88 +-- .../iostorInv/IStIvtIostorinvBcpService.java | 27 +- .../IStIvtIostorinvdisBcpService.java | 25 - .../iostorInv/dao/StIvtIostorinvBcp.java | 76 +- .../iostorInv/dao/StIvtIostorinvdisBcp.java | 134 ---- .../dao/mapper/StIvtIostorinvBcpMapper.java | 7 +- .../mapper/StIvtIostorinvdisBcpMapper.java | 20 - .../mapper/xml/StIvtIostorinvBcpMapper.xml | 35 + .../mapper/xml/StIvtIostorinvdisBcpMapper.xml | 24 - .../iostorInv/dto/BcpIostorInvQuery.java | 3 +- .../impl/StIvtIostorinvBcpServiceImpl.java | 219 ++++-- .../impl/StIvtIostorinvdisBcpServiceImpl.java | 31 - .../structIvt/IStIvtStructivtBcpService.java | 8 + .../structIvt/dao/StIvtStructivtBcp.java | 7 +- .../dao/mapper/StIvtStructivtBcpMapper.java | 7 + .../mapper/xml/StIvtStructivtBcpMapper.xml | 17 + .../impl/StIvtStructivtBcpServiceImpl.java | 41 ++ .../java/org/nl/wms/storage_manage/stivt.xls | Bin 409088 -> 403456 bytes .../semiproduct/semiProductIn/AddDialog.vue | 14 +- .../semiproduct/semiProductIn/AddDtl.vue | 182 ----- .../semiproduct/semiProductIn/DivDialog.vue | 652 ------------------ .../semiproduct/semiProductIn/ViewDialog.vue | 27 +- .../semiproduct/semiProductIn/index.vue | 66 +- 80 files changed, 1318 insertions(+), 1828 deletions(-) delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/common/publish/PublishEvent.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PublishEvent.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/common/publish/listener/PointListener.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/material}/MaterialsafeivtController.java (96%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/material}/StructrelamaterialController.java (96%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/storage}/SectattrController.java (51%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/storage}/StorattrController.java (72%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/storage}/StructattrController.java (57%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/{备份st/rest => storage/controller/vehicle}/StructrelavehicletypeController.java (95%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtBsrealstorattrService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtSectattrService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata => masterdata_manage/storage}/service/storage/dao/StIvtBsrealstorattr.java (95%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata => masterdata_manage/storage}/service/storage/dao/StIvtSectattr.java (83%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata => masterdata_manage/storage}/service/storage/dao/StIvtStructattr.java (89%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata => masterdata_manage/storage}/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java (61%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtSectattrMapper.java rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata => masterdata_manage/storage}/service/storage/dao/mapper/StIvtStructattrMapper.java (60%) rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata/service/storage/dao/mapper => masterdata_manage/storage/service/storage/dao/mapper/xml}/StIvtBsrealstorattrMapper.xml (58%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtSectattrMapper.xml rename mes/hd/nladmin-system/src/main/java/org/nl/wms/{storage_manage/basedata/service/storage/dao/mapper => masterdata_manage/storage/service/storage/dao/mapper/xml}/StIvtStructattrMapper.xml (59%) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/SectattrQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/StructarrQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtBsrealstorattrServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructivtController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/CHANGE_BILL_TYPE_ENUM.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/ST_CHANGE_TYPE.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtBsrealstorattrController.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtSectattrController.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtStructattrController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dto/StIvtStructivtflowDto.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtBsrealstorattrService.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtSectattrService.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtStructattrService.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.xml delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtBsrealstorattrServiceImpl.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtSectattrServiceImpl.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtStructattrServiceImpl.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvdisBcpService.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvdisBcp.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvdisBcpMapper.java delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisBcpMapper.xml delete mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvdisBcpServiceImpl.java delete mode 100644 mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/AddDtl.vue delete mode 100644 mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/DivDialog.vue diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/AbstraceListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/AbstraceListener.java index f7f15ec5..06b9e3b4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/AbstraceListener.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/AbstraceListener.java @@ -1,9 +1,12 @@ package org.nl.common.publish; +import org.nl.common.publish.event.PublishEvent; + /* * @author ZZQ * @Date 2023/4/28 13:40 */ public abstract class AbstraceListener { - protected abstract void doEvent(E event); + //返回值用于回调函数 + protected abstract String doEvent(E event); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/BussEventMulticaster.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/BussEventMulticaster.java index 885a57e9..48519586 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/BussEventMulticaster.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/BussEventMulticaster.java @@ -1,6 +1,7 @@ package org.nl.common.publish; import org.jetbrains.annotations.NotNull; +import org.nl.common.publish.event.PublishEvent; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.stereotype.Component; @@ -28,8 +29,12 @@ public class BussEventMulticaster implements BeanPostProcessor { } for (AbstraceListener listener : getListenerByEvent(event)) { if (sync){ - listener.doEvent(event); + String result= listener.doEvent(event); + if (event.getCallback() !=null && result !=null){ + event.getCallback().accept(result); + }; }else { + //TODO:异步回调 new Thread(()->{ listener.doEvent(event); }).start(); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/PublishEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/PublishEvent.java deleted file mode 100644 index edcdb9cf..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/PublishEvent.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.nl.common.publish; - -/* - * @author ZZQ - * @Date 2023/4/28 13:39 - */ -public interface PublishEvent { -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java index 1a5518c6..34ec253f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PointEvent.java @@ -1,10 +1,27 @@ package org.nl.common.publish.event; -import org.nl.common.publish.PublishEvent; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Map; + /* * @author ZZQ * @Date 2023/4/28 13:50 */ -public class PointEvent implements PublishEvent { +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PointEvent extends PublishEvent { + + private String type; + private String point_code1; + private String point_code2; + private Map extParam; + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PublishEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PublishEvent.java new file mode 100644 index 00000000..adcbbf27 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/PublishEvent.java @@ -0,0 +1,21 @@ +package org.nl.common.publish.event; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.function.Consumer; + +/* + * @author ZZQ + * @Date 2023/5/15 00:22 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public abstract class PublishEvent { + + private Consumer callback = null; +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/VechlieEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/VechlieEvent.java index 2261704b..ea82f534 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/VechlieEvent.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/event/VechlieEvent.java @@ -3,7 +3,8 @@ package org.nl.common.publish.event; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; -import org.nl.common.publish.PublishEvent; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import java.util.List; import java.util.Map; @@ -12,14 +13,15 @@ import java.util.Map; * @author ZZQ * @Date 2023/4/28 13:50 */ -@Builder +@SuperBuilder @Data @AllArgsConstructor -public class VechlieEvent implements PublishEvent { +@NoArgsConstructor +public class VechlieEvent extends PublishEvent { - String VechlieCode; + private String VechlieCode; //meterilaCode ,qty - List meterilas; + private List meterilas; //出还是入 } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/listener/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/listener/PointListener.java deleted file mode 100644 index 57a18bf2..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/common/publish/listener/PointListener.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.nl.common.publish.listener; - -import org.nl.common.publish.AbstraceListener; -import org.nl.common.publish.event.PointEvent; -import org.springframework.stereotype.Component; - -/* - * @author ZZQ - * @Date 2023/4/28 13:57 - */ -@Component -public class PointListener extends AbstraceListener { - @Override - protected void doEvent(PointEvent event) { - System.out.println("----事件触发-----"); - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/MaterialsafeivtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/MaterialsafeivtController.java similarity index 96% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/MaterialsafeivtController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/MaterialsafeivtController.java index 4f29ad90..3ec45201 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/MaterialsafeivtController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/MaterialsafeivtController.java @@ -1,12 +1,12 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.material; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; import org.nl.wms.masterdata_manage.备份st.service.MaterialsafeivtService; import org.nl.wms.masterdata_manage.备份st.service.dto.MaterialsafeivtDto; import org.springframework.data.domain.Pageable; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelamaterialController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java similarity index 96% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelamaterialController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java index d8f8161c..df34f982 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelamaterialController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/material/StructrelamaterialController.java @@ -1,12 +1,12 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.material; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; import org.nl.wms.masterdata_manage.备份st.service.StructrelamaterialService; import org.nl.wms.masterdata_manage.备份st.service.dto.StructrelamaterialDto; import org.springframework.data.domain.Pageable; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/SectattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java similarity index 51% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/SectattrController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java index c7ada9bd..7fec72f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/SectattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java @@ -1,21 +1,27 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.storage; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.wms.masterdata_manage.备份st.service.SectattrService; -import org.nl.wms.masterdata_manage.备份st.service.dto.SectattrDto; -import org.springframework.data.domain.Pageable; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dto.SectattrQuery; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; +import java.util.List; import java.util.Map; /** @@ -29,56 +35,56 @@ import java.util.Map; @Slf4j public class SectattrController { - private final SectattrService sectattrService; + @Autowired + private IStIvtSectattrService isectattrService; @GetMapping @Log("查询库区") @ApiOperation("查询库区") - //@PreAuthorize("@el.check('sectattr:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(sectattrService.queryAll(whereJson,page),HttpStatus.OK); + public ResponseEntity query(SectattrQuery query, PageQuery page){ + Page list = isectattrService.page(page.build(StIvtSectattr.class), query.build()); + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); } @PostMapping @Log("新增库区") @ApiOperation("新增库区") - //@PreAuthorize("@el.check('sectattr:add')") - public ResponseEntity create(@Validated @RequestBody SectattrDto dto){ - sectattrService.create(dto); + public ResponseEntity create(@Validated @RequestBody JSONObject form){ + isectattrService.create(form); return new ResponseEntity<>(HttpStatus.CREATED); } @PutMapping @Log("修改库区") @ApiOperation("修改库区") - //@PreAuthorize("@el.check('sectattr:edit')") - public ResponseEntity update(@Validated @RequestBody SectattrDto dto){ - sectattrService.update(dto); + public ResponseEntity updateForm(@Validated @RequestBody JSONObject form){ + isectattrService.updateForm(form); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @Log("删除库区") @ApiOperation("删除库区") - //@PreAuthorize("@el.check('sectattr:del')") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { - sectattrService.deleteAll(ids); + if (ids !=null && ids.length>0){ + isectattrService.removeByIds(Arrays.asList(ids)); + } return new ResponseEntity<>(HttpStatus.OK); } @GetMapping("/getSect") @Log("查询库区下拉框") @ApiOperation("查询库区下拉框") - //@PreAuthorize("@el.check('materialtype:list')") - public ResponseEntity querySect(@RequestParam Map whereJson) { - return new ResponseEntity<>(sectattrService.getSect(whereJson), HttpStatus.OK); + public ResponseEntity querySect(@RequestParam JSONObject query) { + List list = isectattrService.getSect(query); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); } @PutMapping("/changeActive") @Log("修改库区状态") @ApiOperation("修改库区状态") public ResponseEntity update(@RequestBody JSONObject json) { - sectattrService.changeActive(json); + isectattrService.changeActive(json); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StorattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StorattrController.java similarity index 72% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StorattrController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StorattrController.java index bb23c3ee..039ff89c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StorattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StorattrController.java @@ -1,21 +1,26 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.storage; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.备份st.service.StorattrService; import org.nl.wms.masterdata_manage.备份st.service.dto.StorattrDto; -import org.springframework.data.domain.Pageable; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; 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; /** @@ -29,14 +34,18 @@ import java.util.Map; @Slf4j public class StorattrController { - private final StorattrService storattrService; + @Autowired + protected IStIvtBsrealstorattrService stIvtBsrealstorattrService; + @Autowired + protected StorattrService storattrService; - @GetMapping + + @PostMapping("/queryStor") @Log("查询仓库") @ApiOperation("查询仓库") - //@PreAuthorize("@el.check('Storattr:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(storattrService.queryAll(whereJson,page),HttpStatus.OK); + public ResponseEntity queryStor() { + List list = stIvtBsrealstorattrService.list(new QueryWrapper().eq("is_used", true)); + return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); } @PostMapping diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java similarity index 57% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructattrController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java index 1df0ee60..4325fb74 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java @@ -1,22 +1,25 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.storage; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.nl.wms.masterdata_manage.备份st.service.StructattrService; -import org.nl.wms.masterdata_manage.备份st.service.dto.StructattrDto; -import org.springframework.data.domain.Pageable; +import org.nl.common.TableDataInfo; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dto.StructarrQuery; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.Map; +import java.util.Arrays; /** * @author zhouz @@ -29,22 +32,23 @@ import java.util.Map; @Slf4j public class StructattrController { - private final StructattrService structattrService; + private final IStIvtStructattrService ivtStructattrService; @GetMapping @Log("查询仓位") @ApiOperation("查询仓位") //@PreAuthorize("@el.check('structattr:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(structattrService.queryAll(whereJson,page),HttpStatus.OK); + public ResponseEntity queryAll(StructarrQuery query, PageQuery page){ + Page list = ivtStructattrService.page(page.build(StIvtStructattr.class), query.build()); + return new ResponseEntity<>(TableDataInfo.build(list),HttpStatus.OK); } @PostMapping @Log("新增仓位") @ApiOperation("新增仓位") //@PreAuthorize("@el.check('structattr:add')") - public ResponseEntity create(@Validated @RequestBody StructattrDto dto){ - structattrService.create(dto); + public ResponseEntity create(@Validated @RequestBody JSONObject form){ + ivtStructattrService.create(form); return new ResponseEntity<>(HttpStatus.CREATED); } @@ -52,8 +56,8 @@ public class StructattrController { @Log("修改仓位") @ApiOperation("修改仓位") //@PreAuthorize("@el.check('structattr:edit')") - public ResponseEntity update(@Validated @RequestBody StructattrDto dto){ - structattrService.update(dto); + public ResponseEntity updateForm(@Validated @RequestBody JSONObject form){ + ivtStructattrService.updateForm(form); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } @@ -62,7 +66,9 @@ public class StructattrController { //@PreAuthorize("@el.check('structattr:del')") @DeleteMapping public ResponseEntity delete(@RequestBody Long[] ids) { - structattrService.deleteAll(ids); + if (ids != null && ids.length>0){ + ivtStructattrService.removeByIds(Arrays.asList(ids)); + } return new ResponseEntity<>(HttpStatus.OK); } @@ -70,7 +76,7 @@ public class StructattrController { @Log("修改仓位状态") @ApiOperation("修改仓位状态") public ResponseEntity update(@RequestBody JSONObject json) { - structattrService.changeActive(json); + ivtStructattrService.changeActive(json); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelavehicletypeController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/vehicle/StructrelavehicletypeController.java similarity index 95% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelavehicletypeController.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/vehicle/StructrelavehicletypeController.java index 3590e689..f0de9c20 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructrelavehicletypeController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/vehicle/StructrelavehicletypeController.java @@ -1,13 +1,13 @@ -package org.nl.wms.masterdata_manage.备份st.rest; +package org.nl.wms.masterdata_manage.storage.controller.vehicle; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; import org.nl.wms.masterdata_manage.备份st.service.StructrelavehicletypeService; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtBsrealstorattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtBsrealstorattrService.java new file mode 100644 index 00000000..8aa1ad2a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtBsrealstorattrService.java @@ -0,0 +1,37 @@ +package org.nl.wms.masterdata_manage.storage.service.storage; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; + +/** + *

+ * 实物库属性表 服务类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +public interface IStIvtBsrealstorattrService extends IService { + + /** + * 创建 + * @param form + * @return + */ + String create(JSONObject form); + + /** + * 修改 + * @param form + * @return + */ + String updateForm(JSONObject form); + + + /** + * 改变启用状态 + * @param json + */ + void changeActive(JSONObject json); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtSectattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtSectattrService.java new file mode 100644 index 00000000..f9bbd4bf --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtSectattrService.java @@ -0,0 +1,47 @@ +package org.nl.wms.masterdata_manage.storage.service.storage; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 库区属性表 服务类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +public interface IStIvtSectattrService extends IService { + + /** + * 创建 + * @param form + * @return + */ + String create(JSONObject form); + + /** + * 修改 + * @param form + * @return + */ + String updateForm(JSONObject form); + + /** + * 改变启用状态 + * @param json + */ + void changeActive(JSONObject json); + + /** + * 查询库区下拉选 + * @param json + * @return + */ + List getSect(JSONObject json); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java new file mode 100644 index 00000000..26a7c8bd --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java @@ -0,0 +1,37 @@ +package org.nl.wms.masterdata_manage.storage.service.storage; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; + +/** + *

+ * 仓位属性表 服务类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +public interface IStIvtStructattrService extends IService { + /** + * 创建 + * @param form + * @return + */ + String create(JSONObject form); + + /** + * 修改 + * @param form + * @return + */ + String updateForm(JSONObject form); + + + /** + * 改变启用状态 + * @param json + */ + void changeActive(JSONObject json); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtBsrealstorattr.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtBsrealstorattr.java similarity index 95% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtBsrealstorattr.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtBsrealstorattr.java index cb31a349..fa06c949 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtBsrealstorattr.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtBsrealstorattr.java @@ -1,5 +1,6 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao; +package org.nl.wms.masterdata_manage.storage.service.storage.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -26,6 +27,7 @@ public class StIvtBsrealstorattr implements Serializable { /** * 仓库标识 */ + @TableId(value = "stor_id") private String stor_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtSectattr.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtSectattr.java similarity index 83% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtSectattr.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtSectattr.java index d24a0e47..56b58e0e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtSectattr.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtSectattr.java @@ -1,11 +1,13 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao; +package org.nl.wms.masterdata_manage.storage.service.storage.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; /** *

@@ -25,7 +27,8 @@ public class StIvtSectattr implements Serializable { /** * 库区标识 */ - private Long sect_id; + @TableId(value = "sect_id") + private String sect_id; /** * 库区编码 @@ -55,7 +58,15 @@ public class StIvtSectattr implements Serializable { /** * 仓库标识 */ - private Long stor_id; + private String stor_id; + /** + * 仓库code + */ + private String stor_code; + /** + * 仓库ming + */ + private String stor_name; /** * 仓库类型 @@ -130,7 +141,7 @@ public class StIvtSectattr implements Serializable { /** * 创建时间 */ - private String create_time; + private Date create_time; /** * 修改人姓名 @@ -140,12 +151,8 @@ public class StIvtSectattr implements Serializable { /** * 修改时间 */ - private String update_time; + private Date update_time; - /** - * 是否删除 - */ - private String is_delete; /** * 背景色 @@ -170,12 +177,12 @@ public class StIvtSectattr implements Serializable { /** * 所在楼层 */ - private BigDecimal floor_no; + private Integer floor_no; /** * 是否启用 */ - private String is_used; + private Boolean is_used; /** * 外部标识 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtStructattr.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java similarity index 89% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtStructattr.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java index 1aad54a9..7fa3e8c8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/StIvtStructattr.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java @@ -1,11 +1,13 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao; +package org.nl.wms.masterdata_manage.storage.service.storage.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.math.BigDecimal; +import java.util.Date; /** *

@@ -25,6 +27,7 @@ public class StIvtStructattr implements Serializable { /** * 仓位标识 */ + @TableId(value = "struct_id") private String struct_id; /** @@ -120,12 +123,12 @@ public class StIvtStructattr implements Serializable { /** * 是否临时仓位 */ - private String is_tempstruct; + private Boolean is_tempstruct; /** * 超限货位关联的货位编号 */ - private String control_point; + private String control_code; /** * 创建人 @@ -140,7 +143,7 @@ public class StIvtStructattr implements Serializable { /** * 创建时间 */ - private String create_time; + private Date create_time; /** * 修改人 @@ -155,12 +158,8 @@ public class StIvtStructattr implements Serializable { /** * 修改时间 */ - private String update_time; + private Date update_time; - /** - * 是否删除 - */ - private String is_delete; /** * 背景色 @@ -185,17 +184,13 @@ public class StIvtStructattr implements Serializable { /** * 是否启用 */ - private String is_used; + private Boolean is_used; /** * 是否判断高度 */ private String is_zdepth; - /** - * 存储载具标识 - */ - private String storagevehicle_id; /** * 存储载具号 @@ -205,7 +200,7 @@ public class StIvtStructattr implements Serializable { /** * 是否空载具 */ - private String is_emptyvehicle; + private Boolean is_emptyvehicle; /** * 载具数量 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java similarity index 61% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java index b1ccb09d..fd48e52b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtBsrealstorattrMapper.java @@ -1,7 +1,7 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao.mapper; +package org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; /** *

diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtSectattrMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtSectattrMapper.java new file mode 100644 index 00000000..b34b2451 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtSectattrMapper.java @@ -0,0 +1,20 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 库区属性表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-05-04 + */ +public interface StIvtSectattrMapper extends BaseMapper { + + List> getSectByStorQuery(Map query); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtStructattrMapper.java similarity index 60% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.java rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtStructattrMapper.java index 091d9e1e..2c9de372 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/StIvtStructattrMapper.java @@ -1,7 +1,7 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao.mapper; +package org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtStructattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; /** *

diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtBsrealstorattrMapper.xml similarity index 58% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.xml rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtBsrealstorattrMapper.xml index 1bc02fdc..eb8e23ff 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtBsrealstorattrMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtBsrealstorattrMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtSectattrMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtSectattrMapper.xml new file mode 100644 index 00000000..14ffda24 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtSectattrMapper.xml @@ -0,0 +1,46 @@ + + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml similarity index 59% rename from mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.xml rename to mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml index 761ac988..d3d05f95 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtStructattrMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/mapper/xml/StIvtStructattrMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/SectattrQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/SectattrQuery.java new file mode 100644 index 00000000..31229e7a --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/SectattrQuery.java @@ -0,0 +1,24 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; + +/* + * @author ZZQ + * @Date 2023/5/14 17:13 + */ +@Data +public class SectattrQuery extends BaseQuery { + + private String search; + private String stor_id; + + @Override + public void paramMapping() { + super.doP.put("search", QParam.builder().k(new String[]{"sect_code","sect_name"}).type(QueryTEnum.LK).build()); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/StructarrQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/StructarrQuery.java new file mode 100644 index 00000000..73ffcfa2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dto/StructarrQuery.java @@ -0,0 +1,26 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; + +/* + * @author ZZQ + * @Date 2023/5/14 17:13 + */ +@Data +public class StructarrQuery extends BaseQuery { + + private String search; + private String stor_id; + private String sect_id; + //struct.storagevehicle_code is null or struct.storagevehicle_code = '' + private String lock_type; + + @Override + public void paramMapping() { + super.doP.put("search", QParam.builder().k(new String[]{"struct_code","struct_name"}).type(QueryTEnum.LK).build()); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtBsrealstorattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtBsrealstorattrServiceImpl.java new file mode 100644 index 00000000..e39fa188 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtBsrealstorattrServiceImpl.java @@ -0,0 +1,35 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtBsrealstorattrMapper; +import org.springframework.stereotype.Service; + +/** + *

+ * 实物库属性表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +@Service +public class StIvtBsrealstorattrServiceImpl extends ServiceImpl implements IStIvtBsrealstorattrService { + + @Override + public String create(JSONObject form) { + return null; + } + + @Override + public String updateForm(JSONObject form) { + return null; + } + + @Override + public void changeActive(JSONObject json) { + + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java new file mode 100644 index 00000000..78a1a0f6 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java @@ -0,0 +1,131 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtSectattrMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 库区属性表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +@Service +public class StIvtSectattrServiceImpl extends ServiceImpl implements IStIvtSectattrService { + //仓库 + @Autowired + private IStIvtBsrealstorattrService storattrService; + //仓位 + @Autowired + private IStIvtStructattrService structattrService; + + @Override + public String create(JSONObject form) { + Assert.notNull(form,"参数不能为空"); + StIvtSectattr one = this.getOne(new QueryWrapper().eq("sect_code",form.getString("sect_code"))); + if (one != null) { + throw new BadRequestException("存在相同的仓库编号"); + } + StIvtSectattr sectattr = form.toJavaObject(StIvtSectattr.class); + sectattr.setSect_id(IdUtil.getStringId()); + sectattr.setCreate_id(SecurityUtils.getCurrentUserId()); + sectattr.setCreate_name(SecurityUtils.getCurrentNickName()); + sectattr.setCreate_time(new Date()); + packageSectForm(form, sectattr); + this.save(sectattr); + + return sectattr.getSect_id(); + } + + private void packageSectForm(JSONObject form, StIvtSectattr sectattr) { + StIvtBsrealstorattr storattr = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + sectattr.setStor_id(storattr.getStor_id()); + sectattr.setStor_code(storattr.getStor_code()); + sectattr.setStor_name(storattr.getStor_name()); + } + + @Override + public String updateForm(JSONObject form) { + Assert.notNull(form,"参数不能为空"); + + String sect_id = form.getString("sect_id"); + StIvtSectattr one = this.getOne(new QueryWrapper().eq("sect_id", form.getString("sect_id"))); + if (one == null) { + throw new BadRequestException(form.getString("sect_id")+"被删除,操作失败!"); + } + StIvtSectattr sectattr = form.toJavaObject(StIvtSectattr.class); + packageSectForm(form, sectattr); + sectattr.setUpdate_id(SecurityUtils.getCurrentUserId()); + sectattr.setUpdate_name(SecurityUtils.getCurrentNickName()); + sectattr.setUpdate_time(new Date()); + return sect_id; + } + + @Override + @Transactional + public void changeActive(JSONObject form) { + Assert.notNull(form,"参数不能为空"); + + StIvtBsrealstorattr storattr = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + if (!storattr.getIs_used()){ + throw new BadRequestException(form.getString("stor_id")+"该库区所属的仓库已禁用,请先启用该仓库!"); + } + + this.update(new UpdateWrapper() + .set("is_used",form.getString("is_used")) + .set("update_id",SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .eq("sect_id",form.getString("sect_id"))); + + structattrService.update(new UpdateWrapper() + .set("is_used",form.getString("is_used")) + .set("update_id",SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .eq("sect_id",form.getString("sect_id"))); + } + + @Override + public List getSect(JSONObject json) { + List> sects = this.baseMapper.getSectByStorQuery(json); + Map>> groupBy_stor_id = sects.stream().collect(Collectors.groupingBy(a -> (String)((Map)a).get("stor_id"))); + List stor_ja = new ArrayList<>(); + for (Map.Entry>> entry : groupBy_stor_id.entrySet()) { + Map stor_cas = new HashMap<>(); + List> sectList = entry.getValue(); + stor_cas.put("value", entry.getKey()); + stor_cas.put("label", sectList.get(0).get("stor_name")); + List sect_ja = new ArrayList<>(); + for (Map map : sectList) { + Map sect_cas = new HashMap<>(); + sect_cas.put("value", map.get("sect_id")); + sect_cas.put("label", map.get("sect_name")); + sect_ja.add(sect_cas); + } + stor_cas.put("children", sect_ja); + stor_ja.add(stor_cas); + } + return stor_ja; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java new file mode 100644 index 00000000..7b5536e6 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java @@ -0,0 +1,99 @@ +package org.nl.wms.masterdata_manage.storage.service.storage.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtSectattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + *

+ * 仓位属性表 服务实现类 + *

+ * + * @author generator + * @since 2023-05-04 + */ +@Service +public class StIvtStructattrServiceImpl extends ServiceImpl implements IStIvtStructattrService { + + @Autowired + private IStIvtSectattrService sectattrService; + @Autowired + private IStIvtBsrealstorattrService storattrService; + + @Override + public String create(JSONObject form) { + Assert.notNull(form,"请求参数不能为空"); + StIvtStructattr one = this.getOne(new QueryWrapper().eq("struct_code", form.getString("struct_code"))); + if (one != null) { + throw new BadRequestException("存在相同的库区编号"); + } + StIvtStructattr structattr = form.toJavaObject(StIvtStructattr.class); + structattr.setStruct_id(IdUtil.getStringId()); + structattr.setCreate_id(SecurityUtils.getCurrentUserId()); + structattr.setCreate_name(SecurityUtils.getCurrentNickName()); + structattr.setCreate_time(new Date()); + packageFormByattr(form, structattr); + this.save(structattr); + return structattr.getStruct_id(); + } + + private void packageFormByattr(JSONObject form, StIvtStructattr structattr) { + 库区仓库:{ + StIvtSectattr sectarr = sectattrService.getOne(new QueryWrapper().eq("sect_id", form.getString("sect_id"))); + structattr.setSect_id(sectarr.getSect_id()); + structattr.setSect_code(sectarr.getSect_code()); + structattr.setSect_name(sectarr.getSect_name()); + structattr.setStor_id(sectarr.getStor_id()); + structattr.setStor_code(sectarr.getStor_code()); + structattr.setStor_name(sectarr.getStor_name()); + } + } + + @Override + public String updateForm(JSONObject form) { + Assert.notNull(form,"请求参数不能为空"); + StIvtStructattr one = this.getOne(new QueryWrapper().eq("struct_code", form.getString("struct_code"))); + if (one == null) { + throw new BadRequestException(form.getString("struct_code")+"被删除,操作失败!"); + } + StIvtStructattr structattr = form.toJavaObject(StIvtStructattr.class); + structattr.setUpdate_id(SecurityUtils.getCurrentUserId()); + structattr.setUpdate_name(SecurityUtils.getCurrentNickName()); + structattr.setUpdate_time(new Date()); + packageFormByattr(form, structattr); + this.updateById(structattr); + return structattr.getStruct_id(); + } + + @Override + public void changeActive(JSONObject form) { + Assert.notNull(form,"请求参数不能为空"); + StIvtSectattr sectarr = sectattrService.getOne(new QueryWrapper().eq("sect_id", form.getString("sect_id"))); + if (!sectarr.getIs_used()){ + throw new BadRequestException("该仓位所属的库区已禁用,请先启用该库区!"); + } + + this.update(new UpdateWrapper() + .set("is_used",form.getString("is_used")) + .set("update_id",SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .eq("struct_id",form.getString("struct_id"))); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructivtController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructivtController.java deleted file mode 100644 index 93528a7f..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/备份st/rest/StructivtController.java +++ /dev/null @@ -1,93 +0,0 @@ - -package org.nl.wms.masterdata_manage.备份st.rest; - - -import com.alibaba.fastjson.JSONObject; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; - import lombok.RequiredArgsConstructor; -import org.nl.common.anno.Log; -import lombok.extern.slf4j.Slf4j; -import org.nl.wms.masterdata_manage.备份st.service.StructivtService; -import org.nl.wms.masterdata_manage.备份st.service.dto.StructivtDto; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** -* @author geng by -* @date 2022-06-02 -**/ -@RestController -@RequiredArgsConstructor -@Api(tags = "库存管理管理") -@RequestMapping("/api/structivt") -@Slf4j -public class StructivtController { - - private final StructivtService structivtService; - - @GetMapping - @Log("查询库存管理") - @ApiOperation("查询库存管理") - //@PreAuthorize("@el.check('structivt:list')") - public ResponseEntity query(@RequestParam Map whereJson, Pageable page){ - return new ResponseEntity<>(structivtService.queryAll(whereJson,page),HttpStatus.OK); - } - - @PostMapping - @Log("新增库存管理") - @ApiOperation("新增库存管理") - //@PreAuthorize("@el.check('structivt:add')") - public ResponseEntity create(@Validated @RequestBody StructivtDto dto){ - structivtService.create(dto); - return new ResponseEntity<>(HttpStatus.CREATED); - } - - @PutMapping - @Log("修改库存管理") - @ApiOperation("修改库存管理") - //@PreAuthorize("@el.check('structivt:edit')") - public ResponseEntity update(@Validated @RequestBody StructivtDto dto){ - structivtService.update(dto); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @Log("删除库存管理") - @ApiOperation("删除库存管理") - //@PreAuthorize("@el.check('structivt:del')") - @DeleteMapping - public ResponseEntity delete(@RequestBody Long[] ids) { - structivtService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @GetMapping("/getStruct") - @Log("查询仓位下拉") - @ApiOperation("查询仓位下拉") - //@PreAuthorize("@el.check('structivt:list')") - public ResponseEntity getStruct(){ - return new ResponseEntity<>(structivtService.getStruct(),HttpStatus.OK); - } - - @PostMapping("/getStructById") - @Log("根据仓位id查询仓位信息") - @ApiOperation("根据仓位id查询仓位信息") - //@PreAuthorize("@el.check('structivt:list')") - public ResponseEntity getStructById(@RequestBody JSONObject param){ - return new ResponseEntity<>(structivtService.getStructById(param),HttpStatus.OK); - } - - @GetMapping("/getUnits") - @Log("查询计量单位下拉") - @ApiOperation("查询计量单位下拉") - //@PreAuthorize("@el.check('structivt:list')") - public ResponseEntity getUnits(){ - return new ResponseEntity<>(structivtService.getUnits(),HttpStatus.OK); - } - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/procure_manage/pcs.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/procure_manage/pcs.xls index 3a54ae55331ba498471503b040d98fd999a67b7f..f2e40e8d3c58ba3d4a9ffabe2ccc72c2e01fef28 100644 GIT binary patch delta 47 zcmZoT!rO3!cS8;fo5Rh<#B0r)i&(ZXa44MJ(+_ER5TWSeW{*0|2b53o-xz diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java new file mode 100644 index 00000000..23debd2c --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/PointListener.java @@ -0,0 +1,16 @@ +package org.nl.wms.scheduler_manage.service.point; + +import org.nl.common.publish.AbstraceListener; +import org.nl.common.publish.event.PublishEvent; + +/* + * @author ZZQ + * @Date 2023/5/12 11:30 + */ +public class PointListener extends AbstraceListener { + //返回值用于回调 + @Override + protected String doEvent(PublishEvent event) { + return null; + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index aa40ca0c..72567273 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -14,11 +14,6 @@ import io.jsonwebtoken.lang.Assert; import org.apache.commons.lang3.StringUtils; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; -import org.nl.common.publish.BussEventMulticaster; -import org.nl.common.publish.PublishEvent; -import org.nl.common.publish.event.PointEvent; -import org.nl.common.publish.event.VechlieEvent; -import org.nl.common.publish.listener.PointListener; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -143,6 +138,6 @@ public class SchBasePointServiceImpl extends ServiceImpl fieldRelation; + private int bitType; +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/ST_CHANGE_TYPE.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/ST_CHANGE_TYPE.java deleted file mode 100644 index 4775c4a7..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/ST_CHANGE_TYPE.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.nl.wms.storage_manage; - -import lombok.AllArgsConstructor; -import lombok.Getter; - -/* - * @author ZZQ - * @Date 2023/5/10 11:41 - */ -@AllArgsConstructor -@Getter -public enum ST_CHANGE_TYPE { - IOSTORINV_IN("1","入库",""), - IOSTORINV_OUT("1","出库",""), - MOVEINV_IN("1","移库入库",""), - MOVEINV_OUT("1","移库出库",""), - MOVEORLESS_IN("1","损溢单入库",""), - MOVEORLESS_OUT("1","损溢单出库",""), - ; - private String code; - private String desc; - private String table; -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEvent.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEvent.java index c9f39c15..b8a7bac5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEvent.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEvent.java @@ -1,9 +1,10 @@ package org.nl.wms.storage_manage; import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import org.nl.common.publish.PublishEvent; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.nl.common.publish.event.PublishEvent; import java.math.BigDecimal; @@ -12,16 +13,17 @@ import java.math.BigDecimal; * @Date 2023/5/10 11:37 * 仓库物料事件 */ -@Builder +@SuperBuilder @AllArgsConstructor +@NoArgsConstructor @Data -public class StorEvent implements PublishEvent { +public class StorEvent extends PublishEvent { private String struct_id; private String material_id; private String pcsn; private String bill_code; - public ST_CHANGE_TYPE ST_CHANGE_TYPE; + public CHANGE_BILL_TYPE_ENUM ST_CHANGE_TYPE; private BigDecimal change_qty; private BigDecimal result_qty; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEventListener.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEventListener.java index 4ab89bc8..d7f893db 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEventListener.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/StorEventListener.java @@ -1,19 +1,12 @@ package org.nl.wms.storage_manage; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.common.publish.AbstraceListener; -import org.nl.common.utils.IdUtil; -import org.nl.common.utils.SecurityUtils; -import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow; -import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtIostordailyService; import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtStructattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtStructattr; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Date; - /* * @author ZZQ * @Date 2023/5/10 11:39 @@ -26,27 +19,8 @@ public class StorEventListener extends AbstraceListener { @Autowired IStIvtStructattrService structattrService; @Override - protected void doEvent(StorEvent event) { - StIvtStructivtflow flow = new StIvtStructivtflow(); - 基础数据封装: { - flow.setChange_id(IdUtil.getStringId()); - flow.setMaterial_id(event.getMaterial_id()); - flow.setPcsn(event.getPcsn()); - flow.setBill_code(event.getBill_code()); - flow.setBill_type_scode(event.ST_CHANGE_TYPE.getCode()); - flow.setChange_qty(event.getChange_qty()); - flow.setResult_qty(event.getResult_qty()); - flow.setChange_person_name(SecurityUtils.getCurrentNickName()); - flow.setChange_person_id(SecurityUtils.getCurrentUserId()); - flow.setChange_time(new Date()); - } - 参数数据封装: { - StIvtStructattr struct = structattrService.getOne(new QueryWrapper().eq("struct_id", event.getStruct_id())); - flow.setStruct_id(event.getStruct_id()); - flow.setStruct_name(struct.getStruct_name()); - flow.setStruct_code(struct.getStruct_code()); - flow.setStor_id(struct.getStor_id()); - } - StructivtflowService.save(flow); + protected String doEvent(StorEvent event) { + + return null; } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtBsrealstorattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtBsrealstorattrController.java deleted file mode 100644 index 49e77da2..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtBsrealstorattrController.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.nl.wms.storage_manage.basedata.controller.storage; - - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.nl.common.TableDataInfo; -import org.nl.common.anno.Log; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - *

- * 实物库属性表 前端控制器 - *

- * - * @author generator - * @since 2023-05-04 - */ -@RequestMapping("/api/stIvtBsrealstorattr") -@RestController -@RequiredArgsConstructor -@Api(tags = "实物库属性表") -@Slf4j -public class StIvtBsrealstorattrController { - - @Autowired - protected IStIvtBsrealstorattrService stIvtBsrealstorattrService; - - - @PostMapping("/queryStor") - @Log("查询仓库") - @ApiOperation("查询仓库") - public ResponseEntity queryStor() { - List list = stIvtBsrealstorattrService.list(new QueryWrapper().eq("is_used", true)); - return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); - } -} - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtSectattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtSectattrController.java deleted file mode 100644 index 943dc9e1..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtSectattrController.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.basedata.controller.storage; - - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 库区属性表 前端控制器 - *

- * - * @author generator - * @since 2023-05-04 - */ -@RestController -@RequestMapping("/stIvtSectattr") -public class StIvtSectattrController { - -} - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtStructattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtStructattrController.java deleted file mode 100644 index e51fa187..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/controller/storage/StIvtStructattrController.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.basedata.controller.storage; - - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - *

- * 仓位属性表 前端控制器 - *

- * - * @author generator - * @since 2023-05-04 - */ -@RestController -@RequestMapping("/stIvtStructattr") -public class StIvtStructattrController { - -} - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dao/StIvtStructivtflow.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dao/StIvtStructivtflow.java index 39b0c278..2029478f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dao/StIvtStructivtflow.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dao/StIvtStructivtflow.java @@ -45,27 +45,31 @@ public class StIvtStructivtflow implements Serializable { /** * 物料标识 */ - private String material_id; + private String material_code; + /** + * 物料规格 + */ + private String material_spec; + + /** + * 批次 + */ + private String pcsn; /** * 品质类型 */ private String quality_scode; - /** - * 库存等级 - */ - private String ivt_level; - /** * 是否可用 */ private Boolean is_active; /** - * 批次 + * 库存等级 */ - private String pcsn; + private String ivt_level; /** * 仓库标识 @@ -75,7 +79,7 @@ public class StIvtStructivtflow implements Serializable { /** * 单据类型 */ - private String bill_type_scode; + private String bill_type; /** * 单据标识 @@ -93,24 +97,24 @@ public class StIvtStructivtflow implements Serializable { private String bill_table; /** - * 变动类型 + * 变动类型:单据类型 */ private String change_type_scode; /** * 变动时间 */ - private Date change_time; + private Date create_time; /** * 变动人 */ - private String change_person_id; + private String create_id; /** * 变动人姓名 */ - private String change_person_name; + private String create_name; /** * 变动数 @@ -131,6 +135,10 @@ public class StIvtStructivtflow implements Serializable { * 车间标识 */ private String product_area; + /** + * 车间标识 + */ + private Boolean is_add; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dto/StIvtStructivtflowDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dto/StIvtStructivtflowDto.java new file mode 100644 index 00000000..fbda825c --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/dto/StIvtStructivtflowDto.java @@ -0,0 +1,79 @@ +package org.nl.wms.storage_manage.basedata.service.record.dto; + +import lombok.Builder; +import lombok.Data; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; + +import java.math.BigDecimal; + +/** + *

+ * 仓位库存变动记录表 + *

+ * + * @author generator + * @since 2023-05-10 + */ +@Data +@Builder +public class StIvtStructivtflowDto { + + /** + * 仓位编码 + */ + private String struct_code; + /** + * 物料 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 单据编号 + */ + private String bill_code; + + /** + * 单据对应业务表主表 + */ + private String bill_table; + + /** + * 变动类型:单据类型 + */ + private CHANGE_BILL_TYPE_ENUM change_type_scode; + + /** + * 变动数 + */ + private BigDecimal change_qty; + + /** + * 结存数 + */ + private BigDecimal result_qty; + /** + * 期初数 + */ + private BigDecimal start_qty; + + /** + * 数量计量单位标识 + */ + private String base_unit_name; + /** + * 载具编号 + */ + private String storagevehicle_code; + /** + * 当前任务编号 + */ + private String task_id; + + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/IStIvtStructivtflowService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/IStIvtStructivtflowService.java index 8a1780a5..7c56dbaf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/IStIvtStructivtflowService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/IStIvtStructivtflowService.java @@ -2,6 +2,7 @@ package org.nl.wms.storage_manage.basedata.service.record.service; import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; /** *

@@ -13,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IStIvtStructivtflowService extends IService { + void recordStructivtFlow(StIvtStructivtflowDto flowDto); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/impl/StIvtStructivtflowServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/impl/StIvtStructivtflowServiceImpl.java index f6a54627..8262c9f7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/impl/StIvtStructivtflowServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/record/service/impl/StIvtStructivtflowServiceImpl.java @@ -1,10 +1,23 @@ package org.nl.wms.storage_manage.basedata.service.record.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.basedata.service.record.dao.StIvtStructivtflow; import org.nl.wms.storage_manage.basedata.service.record.dao.mapper.StIvtStructivtflowBcpMapper; +import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; /** *

@@ -17,4 +30,51 @@ import org.springframework.stereotype.Service; @Service public class StIvtStructivtflowServiceImpl extends ServiceImpl implements IStIvtStructivtflowService { + @Autowired + private IStIvtStructattrService structattrService; + @Autowired + private IMdMeMaterialbaseService materialbaseService; + + @Override + @Transactional + public void recordStructivtFlow(StIvtStructivtflowDto flowDto) { + StIvtStructivtflow flow = new StIvtStructivtflow(); + StIvtStructattr struct_attr = structattrService.getOne(new QueryWrapper().eq("struct_code", flowDto.getStruct_code())); + flow.setChange_id(IdUtil.getStringId()); + 物料信息: { + MdMeMaterialbase material = materialbaseService.getOne(new QueryWrapper().eq("material_id", flowDto.getMaterial_id())); + flow.setMaterial_code(material.getMaterial_code()); + flow.setMaterial_spec(material.getMaterial_spec()); + flow.setPcsn(flowDto.getPcsn()); + } + 仓库信息:{ + flow.setStruct_code(struct_attr.getStruct_code()); + flow.setStruct_id(struct_attr.getStruct_id()); + flow.setStor_id(struct_attr.getStor_id()); + } + flow.setBill_code(flowDto.getBill_code()); + flow.setChange_type_scode(flowDto.getChange_type_scode().getCode()); + flow.setBill_table(flowDto.getBill_table()); + flow.setChange_qty(flowDto.getChange_qty()); + flow.setResult_qty(flowDto.getResult_qty()); + flow.setCreate_id(SecurityUtils.getCurrentUserId()); + flow.setCreate_name(SecurityUtils.getCurrentNickName()); + flow.setCreate_time(new Date()); + this.save(flow); + + struct_attr.setStoragevehicle_code(flowDto.getStoragevehicle_code()); + struct_attr.setInv_code(flowDto.getBill_code()); + struct_attr.setInv_type(flowDto.getChange_type_scode().getCode()); + //判断如果在3个状态之内,更新操作 + int tag = 1 << CHANGE_BILL_TYPE_ENUM.IMOVEINV_OUT_CONFIRM.getBitType() + | 1 << CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM.getBitType() + | 1 << CHANGE_BILL_TYPE_ENUM.MOVEINV_IN_CONFIRM.getBitType() + | 1 << CHANGE_BILL_TYPE_ENUM.CHECK_OUT.getBitType() + | 1 << CHANGE_BILL_TYPE_ENUM.IOSTORINV_OUT_CONFIRM.getBitType(); + if ((tag &~ 1 << flowDto.getChange_type_scode().getBitType()) != tag){ + struct_attr.setInv_code(""); + struct_attr.setInv_type(""); + } + structattrService.updateById(struct_attr); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtBsrealstorattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtBsrealstorattrService.java deleted file mode 100644 index 007db998..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtBsrealstorattrService.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; - -/** - *

- * 实物库属性表 服务类 - *

- * - * @author generator - * @since 2023-05-04 - */ -public interface IStIvtBsrealstorattrService extends IService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtSectattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtSectattrService.java deleted file mode 100644 index cb6c8671..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtSectattrService.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtSectattr; - -/** - *

- * 库区属性表 服务类 - *

- * - * @author generator - * @since 2023-05-04 - */ -public interface IStIvtSectattrService extends IService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtStructattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtStructattrService.java deleted file mode 100644 index 40a7cc7e..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/IStIvtStructattrService.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage; - -import com.baomidou.mybatisplus.extension.service.IService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtStructattr; - -/** - *

- * 仓位属性表 服务类 - *

- * - * @author generator - * @since 2023-05-04 - */ -public interface IStIvtStructattrService extends IService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.java deleted file mode 100644 index 93105790..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage.dao.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtSectattr; - -/** - *

- * 库区属性表 Mapper 接口 - *

- * - * @author generator - * @since 2023-05-04 - */ -public interface StIvtSectattrMapper extends BaseMapper { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.xml deleted file mode 100644 index 40ec2c48..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/dao/mapper/StIvtSectattrMapper.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtBsrealstorattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtBsrealstorattrServiceImpl.java deleted file mode 100644 index 5ca4fc79..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtBsrealstorattrServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; -import org.nl.wms.storage_manage.basedata.service.storage.dao.mapper.StIvtBsrealstorattrMapper; -import org.springframework.stereotype.Service; - -/** - *

- * 实物库属性表 服务实现类 - *

- * - * @author generator - * @since 2023-05-04 - */ -@Service -public class StIvtBsrealstorattrServiceImpl extends ServiceImpl implements IStIvtBsrealstorattrService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtSectattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtSectattrServiceImpl.java deleted file mode 100644 index 6dff7080..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtSectattrServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtSectattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtSectattr; -import org.nl.wms.storage_manage.basedata.service.storage.dao.mapper.StIvtSectattrMapper; -import org.springframework.stereotype.Service; - -/** - *

- * 库区属性表 服务实现类 - *

- * - * @author generator - * @since 2023-05-04 - */ -@Service -public class StIvtSectattrServiceImpl extends ServiceImpl implements IStIvtSectattrService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtStructattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtStructattrServiceImpl.java deleted file mode 100644 index 929959e1..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/basedata/service/storage/impl/StIvtStructattrServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.basedata.service.storage.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtStructattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtStructattr; -import org.nl.wms.storage_manage.basedata.service.storage.dao.mapper.StIvtStructattrMapper; -import org.springframework.stereotype.Service; - -/** - *

- * 仓位属性表 服务实现类 - *

- * - * @author generator - * @since 2023-05-04 - */ -@Service -public class StIvtStructattrServiceImpl extends ServiceImpl implements IStIvtStructattrService { - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index f85a4255..e76ab6c7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -1,6 +1,5 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -12,20 +11,16 @@ import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.utils.IdUtil; -import org.nl.common.utils.MapOf; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; -import org.nl.modules.wql.core.bean.WQLObject; -import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; -import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo; import org.nl.wms.storage_manage.IOSEnum; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpController.java index fa3d2d23..1e2a7cc8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/controller/iostorInv/StIvtIostorinvBcpController.java @@ -52,8 +52,7 @@ public class StIvtIostorinvBcpController { @Log("查询入库单据") @ApiOperation("查询入库单据") public ResponseEntity query(BcpIostorInvQuery query, PageQuery page) { - Page list = stIvtIostorinvBcpService.page(page.build(StIvtIostorinvBcp.class), query.build()); - return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); + return new ResponseEntity<>(stIvtIostorinvBcpService.queryDtl(query,page), HttpStatus.OK); } @PostMapping("/create") @@ -86,15 +85,6 @@ public class StIvtIostorinvBcpController { } - - @PostMapping("/queryStor") - @Log("查询仓库") - @ApiOperation("查询仓库") - public ResponseEntity queryStor() { - return new ResponseEntity<>(semiProductInService.queryStor(), HttpStatus.OK); - } - - @PostMapping("/commit") @Log("出入单提交") @ApiOperation("出入单提交") @@ -107,85 +97,25 @@ public class StIvtIostorinvBcpController { @Log("查询入库分配明细") @ApiOperation("查询入库分配明细") public ResponseEntity getIODtl(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(stIvtIostorinvBcpService.getInvDis(whereJson), HttpStatus.OK); + return new ResponseEntity<>(stIvtIostorinvBcpService.getIoDtl(whereJson.toJavaObject(BcpIostorInvQuery.class)), HttpStatus.OK); } - @PostMapping("/confirmvehicle") - @Log("组盘确认") - @ApiOperation("组盘确认") - public ResponseEntity confirmvehicle(@RequestBody JSONObject whereJson) { - semiProductInService.confirmvehicle(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PostMapping("/divStruct") - @Log("分配货位") - @ApiOperation("分配货位") - public ResponseEntity divStruct(@RequestBody JSONObject whereJson) { - semiProductInService.divStruct(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PostMapping("/unDivStruct") - @Log("取消分配货位") - @ApiOperation("取消分配货位") - public ResponseEntity unDivStruct(@RequestBody JSONObject whereJson) { - semiProductInService.unDivStruct(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PostMapping("/divPoint") - @Log("设置起点") - @ApiOperation("设置起点") - public ResponseEntity divPoint(@RequestBody JSONObject whereJson) { - semiProductInService.divPoint(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PostMapping("/delDis") - @Log("删除分配") - @ApiOperation("删除分配") - public ResponseEntity delDis(@RequestBody JSONObject whereJson) { - semiProductInService.delDis(whereJson); - return new ResponseEntity<>(HttpStatus.OK); - } - - @PostMapping("/queryBoxMater") - @Log("查询箱内子卷") - @ApiOperation("查询箱内子卷") - public ResponseEntity queryBoxMater(@RequestBody JSONArray whereJson) { - return new ResponseEntity<>(semiProductInService.queryBoxMater(whereJson), HttpStatus.OK); - } - - @PostMapping("/updateTask") - @Log("变更任务") - @ApiOperation("变更任务") - public ResponseEntity updateTask(@RequestBody Map whereJson) { - semiProductInService.updateTask(whereJson); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } @PostMapping("/confirm") @Log("完成单据") @ApiOperation("完成单据") - public ResponseEntity confirm(@RequestBody Map whereJson) { - semiProductInService.confirm(whereJson); + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + stIvtIostorinvBcpService.confirm(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - @PostMapping("/autoDis") - @Log("自动分配") - @ApiOperation("自动分配") - public ResponseEntity autoDis(@RequestBody JSONObject whereJson) { - semiProductInService.autoDis(whereJson); + @PostMapping("/confirmTask") + @Log("下发任务") + @ApiOperation("下发任务") + public ResponseEntity confirmTask(@RequestBody JSONObject whereJson) { + stIvtIostorinvBcpService.confirmTask(whereJson); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } - @PostMapping("/getDisTask") - @Log("获取明细任务") - @ApiOperation("获取明细任务") - public ResponseEntity getDisTask(@RequestBody JSONObject whereJson) { - return new ResponseEntity<>(semiProductInService.getDisTask(whereJson), HttpStatus.OK); - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java index ee4b6e46..face3a2d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpService.java @@ -1,8 +1,10 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv; import com.alibaba.fastjson.JSONObject; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery; import java.util.List; import java.util.Map; @@ -16,12 +18,29 @@ import java.util.Map; * @since 2023-05-10 */ public interface IStIvtIostorinvBcpService extends IService { + + + Object queryDtl(BcpIostorInvQuery query, PageQuery page); + + List getIoDtl(BcpIostorInvQuery query); /** * 新增 * @param form * @return */ - String create(JSONObject form); + void create(JSONObject form); + /** + * 完成 + * @param form + * @return + */ + String confirm(JSONObject form); + /** + * 下发单据 + * @param form + * @return + */ + String confirmTask(JSONObject form); /** * 修改单据 * @param form @@ -29,10 +48,4 @@ public interface IStIvtIostorinvBcpService extends IService { */ String updateBill(JSONObject form); - /** - * 获取分配明细 - * @param form - * @return - */ - List getInvDis(JSONObject form); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvdisBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvdisBcpService.java deleted file mode 100644 index 6f6d3f79..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvdisBcpService.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.nl.wms.storage_manage.semimanage.service.iostorInv; - -import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvdisBcp; -import com.baomidou.mybatisplus.extension.service.IService; - -import java.util.List; -import java.util.Map; - -/** - *

- * 出入库单分配表 服务类 - *

- * - * @author generator - * @since 2023-05-10 - */ -public interface IStIvtIostorinvdisBcpService extends IService { - /** - * 查询明细 - * @param query: - * iostorinv_id "1656252437415202816" - * @return - */ - List getIostorinvdis(Map query); -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvBcp.java index 676d48bf..71444510 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvBcp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvBcp.java @@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode; *

* * @author generator - * @since 2023-05-10 + * @since 2023-05-11 */ @Data @EqualsAndHashCode(callSuper = false) @@ -42,7 +42,6 @@ public class StIvtIostorinvBcp implements Serializable { /** * 业务类型 - * alter table st_ivt_iostorinv_bcp modify buss_type varchar(5) generated always as (bill_type) stored; */ private String buss_type; @@ -50,10 +49,8 @@ public class StIvtIostorinvBcp implements Serializable { * 单据类型 */ private String bill_type; - - /** - * 单据状态 + * 单据zhuangtai */ private String bill_status; @@ -62,6 +59,11 @@ public class StIvtIostorinvBcp implements Serializable { */ private Date biz_date; + /** + * 关联单据 + */ + private String base_bill_code; + /** * 车间标识 */ @@ -112,32 +114,45 @@ public class StIvtIostorinvBcp implements Serializable { */ private String struct_name; + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 品质类型 + */ + private String quality_scode; /** * 库存等级 */ private String ivt_level; + /** + * 是否可用 + */ + private Boolean is_active; /** - * 总数量 + * 数量 */ - private BigDecimal total_qty; - - /** - * 明细数 - */ - private Integer detail_count; + private BigDecimal plan_qty; /** * 数量计量单位标识 */ - private String qty_unit_id; + private String base_unit_id; /** * 数量计量单位名称 */ - private String qty_unit_name; + private String base_unit_name; /** * 创建人 @@ -169,6 +184,35 @@ public class StIvtIostorinvBcp implements Serializable { */ private Date update_time; + /** + * 执行状态 + */ + private String work_status; + + /** + * 任务标识 + */ + private String task_id; + + /** + * 存储载具标识 + */ + private String storagevehicle_id; + + /** + * 存储载具编码 + */ + private String storagevehicle_code; + + /** + * 存储载具类型 + */ + private String storagevehicle_type; + + /** + * 单重 + */ + private BigDecimal unit_weight; /** * 是否删除 @@ -179,6 +223,10 @@ public class StIvtIostorinvBcp implements Serializable { * 备注 */ private String remark; + /** + * 入库点 + */ + private String point_code; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvdisBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvdisBcp.java deleted file mode 100644 index c3dead2f..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/StIvtIostorinvdisBcp.java +++ /dev/null @@ -1,134 +0,0 @@ -package org.nl.wms.storage_manage.semimanage.service.iostorInv.dao; - -import java.math.BigDecimal; - -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import java.io.Serializable; -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - *

- * 出入库单分配表 - *

- * - * @author generator - * @since 2023-05-10 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@TableName("st_ivt_iostorinvdis_bcp") -public class StIvtIostorinvdisBcp implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 出入单分配标识 - */ - @TableId(value = "iostorinvdis_id") - private String iostorinvdis_id; - - /** - * 出入单标识 - */ - private String iostorinv_id; - - - /** - * 明细序号 - */ - private Integer seq_no; - - /** - * 关联基础单编号 - */ - private String base_bill_code; - - /** - * 区域编码 - */ - private String region_code; - - /** - * 区域名称 - */ - private String region_name; - - /** - * 点位标识 - */ - private String struct_id; - - /** - * 点位编码 - */ - private String struct_code; - - /** - * 点位名称 - */ - private String struct_name; - - /** - * 物料标识 - */ - private String material_id; - - /** - * 批次 - */ - private String pcsn; - - /** - * 品质类型 - */ - private String quality_scode; - - /** - * 执行状态 - */ - @Deprecated - private String work_status; - - /** - * 任务标识 - */ - private String task_id; - - /** - * 存储载具标识 - */ - private String storagevehicle_id; - - /** - * 存储载具编码 - */ - private String storagevehicle_code; - /** - * 单重 - */ - private BigDecimal unit_weight; - - /** - * 数量计量单位标识 - */ - private String base_unit_id; - - /** - * 数量计量单位名称 - */ - private String base_unit_name; - - /** - * 数量 - */ - private BigDecimal plan_qty; - - /** - * 出入点位标识 - */ - private String point_code; - - -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java index 38deab2c..daa0175a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvBcpMapper.java @@ -1,8 +1,13 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.common.anno.Datazhuazhua; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -14,5 +19,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ @Datazhuazhua public interface StIvtIostorinvBcpMapper extends BaseMapper { - + List getIostorinv(@Param("query") BcpIostorInvQuery query); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvdisBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvdisBcpMapper.java deleted file mode 100644 index 0e6dca95..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/StIvtIostorinvdisBcpMapper.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper; - -import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvdisBcp; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -import java.util.List; -import java.util.Map; - -/** - *

- * 出入库单分配表 Mapper 接口 - *

- * - * @author generator - * @since 2023-05-10 - */ -public interface StIvtIostorinvdisBcpMapper extends BaseMapper { - - List getIostorinvdis(Map query); -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml index e767b5a3..b9f88929 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvBcpMapper.xml @@ -1,5 +1,40 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisBcpMapper.xml deleted file mode 100644 index 2f571568..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisBcpMapper.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dto/BcpIostorInvQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dto/BcpIostorInvQuery.java index a5d971a6..e3dd5f4c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dto/BcpIostorInvQuery.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/dto/BcpIostorInvQuery.java @@ -4,7 +4,6 @@ import lombok.Data; import org.nl.common.domain.query.BaseQuery; import org.nl.common.domain.query.QParam; import org.nl.common.enums.QueryTEnum; -import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; /* @@ -17,6 +16,8 @@ public class BcpIostorInvQuery extends BaseQuery { private String stor_id; + private String iostorinv_id; + private String bill_status; private String bill_type; diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java index 274eb3be..6519398d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java @@ -3,28 +3,41 @@ package org.nl.wms.storage_manage.semimanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import io.jsonwebtoken.lang.Assert; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.storage_manage.IOSEnum; -import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService; -import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr; -import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvdisBcpService; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; +import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; +import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp; -import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvdisBcp; import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper.StIvtIostorinvBcpMapper; import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.dto.BcpIostorInvQuery; +import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService; +import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; 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.Date; import java.util.List; import java.util.Map; +import java.util.function.Consumer; /** *

@@ -38,27 +51,140 @@ import java.util.Map; public class StIvtIostorinvBcpServiceImpl extends ServiceImpl implements IStIvtIostorinvBcpService { @Autowired - IStIvtBsrealstorattrService storattrService; - + private IStIvtBsrealstorattrService storattrService; @Autowired - IStIvtIostorinvdisBcpService storinvdisBcpService; + private IStIvtStructivtBcpService structivtBcpService; + @Autowired + private IStIvtStructivtflowService structivtflowService; + @Autowired + private IStIvtStructattrService structattrService; + + + @Override + public Object queryDtl(BcpIostorInvQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage()+1, pageQuery.getSize()); + TableDataInfo build = TableDataInfo.build(this.getIoDtl(query)); + build.setTotalElements(page.getTotal()); + return build; + } + + @Override + public List getIoDtl(BcpIostorInvQuery query) { + return this.baseMapper.getIostorinv(query); + } @Override @Transactional - public String create(JSONObject form) { + public void create(JSONObject form) { Assert.notNull(form,"参数不能为空"); - StIvtIostorinvBcp mst = packageMstForm(form); - this.save(mst); - int i = 1; for (Object item : form.getJSONArray("tableData")) { - JSONObject row = (JSONObject) item; - StIvtIostorinvdisBcp dis = packageDisForm(mst, i, row); - storinvdisBcpService.save(dis); - i++; + StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); + mst.setIostorinv_id(IdUtil.getStringId()); + mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); + mst.setBiz_date(form.getDate("biz_date")); + mst.setBill_type(form.getString("bill_type")); + mst.setIo_type(IOSEnum.IO_TYPE.code("入库")); + mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + mst.setRemark(form.getString("remark")); + mst.setProduct_area(form.getString("product_code")); + mst.setPoint_code(form.getString("point_code")); + 仓库数据:{ + StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); + mst.setStor_id(stor.getStor_id()); + mst.setStor_code(stor.getStor_code()); + mst.setStor_name(stor.getStor_name()); + } + packageRow(mst, (JSONObject) item); + mst.setCreate_id(SecurityUtils.getCurrentUserId()); + mst.setCreate_name(SecurityUtils.getCurrentNickName()); + mst.setCreate_time(new Date()); + this.save(mst); } - return mst.getIostorinv_id(); } + private void packageRow(StIvtIostorinvBcp mst, JSONObject row) { + mst.setMaterial_id(row.getString("material_id")); + mst.setPcsn(StringUtils.isNotEmpty(row.getString("pcsn"))? row.getString("pcsn"): DateUtil.today()); + mst.setPlan_qty(row.getBigDecimal("plan_qty")); + mst.setQuality_scode(row.getString("quality_scode")); + mst.setBase_unit_id(row.getString("base_unit_id")); + mst.setBase_bill_code(row.getString("base_bill_code")); + mst.setBase_unit_name(row.getString("base_unit_name")); + mst.setUnit_weight(row.getBigDecimal("unit_weight")); + mst.setStoragevehicle_code(row.getString("storagevehicle_code")); + mst.setStoragevehicle_id(row.getString("storagevehicle_id")); + } + + @Override + @Transactional + public String confirm(JSONObject form) { + Assert.notNull(new Object[]{form,form.get("iostorinv_id")},"请求参数不能为空"); + StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id")); + checkParam(mst); + mst.setBill_status(IOSEnum.BILL_STATUS.code("完成")); + mst.setUpdate_time(new Date()); + mst.setUpdate_id(SecurityUtils.getCurrentUserId()); + mst.setUpdate_name(SecurityUtils.getCurrentNickName()); + this.updateById(mst); + structivtBcpService.updateCashByParam(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM,mst.getPlan_qty(),mst.getStruct_code()); + + structivtflowService.recordStructivtFlow( + StIvtStructivtflowDto.builder() + .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_CONFIRM).bill_table("st_ivt_iostorinv_bcp") + .material_id(mst.getMaterial_id()).pcsn(mst.getPcsn()) + .struct_code(mst.getStruct_code()).result_qty(structivtBcpService.getOne(new QueryWrapper().eq("struct_code", mst.getStruct_code())).getCanuse_qty()).change_qty(mst.getPlan_qty()) + .task_id(mst.getTask_id()) + .storagevehicle_code(mst.getStoragevehicle_code()) + .build() + ); + return null; + } + + @Override + public String confirmTask(JSONObject form) { + Assert.notNull(new Object[]{form,form.get("iostorinv_id")},"请求参数不能为空"); + StIvtIostorinvBcp mst = this.getById(form.getString("iostorinv_id")); + checkParam(mst); + //分配货位。下发任务,更新主单据状态。更新明细任务 + List struct_codes = structivtBcpService.allocationRules(1); + if (CollectionUtils.isEmpty(struct_codes)){ + throw new BadRequestException("无可分配货位"); + } + PointEvent event = PointEvent.builder() + .type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode()) + .point_code1(mst.getPoint_code()) + .point_code2(struct_codes.get(0).getStruct_code()) + .callback((Consumer) mst::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + mst.setBill_status(IOSEnum.BILL_STATUS.code("下发")); + mst.setUpdate_time(new Date()); + mst.setUpdate_id(SecurityUtils.getCurrentUserId()); + mst.setUpdate_name(SecurityUtils.getCurrentNickName()); + this.updateById(mst); + //更新仓位 + StIvtStructivtBcp struct = structivtBcpService.getOne(new QueryWrapper().eq("struct_code", mst.getStruct_code())); + //插入库存变动表 + structivtflowService.recordStructivtFlow( + StIvtStructivtflowDto.builder() + .bill_code(mst.getBill_code()).change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND).bill_table("st_ivt_iostorinv_bcp") + .material_id(mst.getMaterial_id()).pcsn(mst.getPcsn()) + .struct_code(mst.getStruct_code()).result_qty(struct.getCanuse_qty()).change_qty(mst.getPlan_qty()) + .task_id(mst.getTask_id()) + .storagevehicle_code(mst.getStoragevehicle_code()) + .build() + ); + return mst.getTask_id(); + } + + private void checkParam(StIvtIostorinvBcp mst) { + if (mst == null || mst.getIs_delete()==true){ + throw new BadRequestException("单据不存在"); + } + if (!IOSEnum.BILL_STATUS.code("生成").equals(mst.getBill_status())){ + throw new BadRequestException("单据"+ mst.getBill_code()+"状态不是生成状态"); + } + } @Override @Transactional @@ -68,66 +194,11 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl().eq("iostorinv_id",mst.getIostorinv_id())); - int i = 1; for (Object item : form.getJSONArray("tableData")) { - JSONObject row = (JSONObject) item; - StIvtIostorinvdisBcp dis = packageDisForm(mst, i, row); - storinvdisBcpService.save(dis); - i++; + packageRow(mst,(JSONObject)item); } + this.updateById(mst); return mst.getIostorinv_id(); } - @Override - public List getInvDis(JSONObject form) { - return storinvdisBcpService.getIostorinvdis(form); - } - - @NotNull - private StIvtIostorinvdisBcp packageDisForm(StIvtIostorinvBcp mst, int i, JSONObject row) { - StIvtIostorinvdisBcp dis = new StIvtIostorinvdisBcp(); - dis.setIostorinv_id(mst.getIostorinv_id()); - dis.setIostorinvdis_id(IdUtil.getStringId()); - dis.setMaterial_id(row.getString("material_id")); - - dis.setPcsn(StringUtils.isNotEmpty(row.getString("pcsn"))?row.getString("pcsn"): DateUtil.today()); - dis.setPlan_qty(row.getBigDecimal("plan_qty")); - dis.setQuality_scode(row.getString("quality_scode")); - dis.setBase_unit_id(row.getString("base_unit_id")); - dis.setBase_unit_name(row.getString("base_unit_name")); - dis.setBase_bill_code(row.getString("base_bill_code")); - dis.setPoint_code(row.getString("point_id")); - dis.setUnit_weight(row.getBigDecimal("unit_weight")); - dis.setStoragevehicle_code(row.getString("storagevehicle_code")); - dis.setStoragevehicle_id(row.getString("storagevehicle_id")); - dis.setSeq_no(i); - return dis; - } - - @NotNull - private StIvtIostorinvBcp packageMstForm(JSONObject form) { - StIvtIostorinvBcp mst = new StIvtIostorinvBcp(); - mst.setIostorinv_id(IdUtil.getStringId()); - mst.setBill_code(CodeUtil.getNewCode("IO_CODE")); - mst.setBiz_date(form.getDate("biz_date")); - mst.setBill_type(form.getString("bill_type")); - mst.setTotal_qty(form.getBigDecimal("total_qty")); - mst.setDetail_count(form.getJSONArray("tableData").size()); - mst.setBill_status(IOSEnum.BILL_STATUS.code("生成")); - mst.setIo_type(IOSEnum.IO_TYPE.code("入库")); - mst.setRemark(form.getString("remark")); - mst.setProduct_area(form.getString("product_code")); - 仓库数据:{ - StIvtBsrealstorattr stor = storattrService.getOne(new QueryWrapper().eq("stor_id", form.getString("stor_id"))); - mst.setStor_id(stor.getStor_id()); - mst.setStor_code(stor.getStor_code()); - mst.setStor_name(stor.getStor_name()); - } - mst.setCreate_id(SecurityUtils.getCurrentUserId()); - mst.setCreate_name(SecurityUtils.getCurrentNickName()); - mst.setCreate_time(new Date()); - return mst; - } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvdisBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvdisBcpServiceImpl.java deleted file mode 100644 index 31cb0037..00000000 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvdisBcpServiceImpl.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.nl.wms.storage_manage.semimanage.service.iostorInv.impl; - -import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvdisBcp; -import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.mapper.StIvtIostorinvdisBcpMapper; -import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvdisBcpService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - *

- * 出入库单分配表 服务实现类 - *

- * - * @author generator - * @since 2023-05-10 - */ -@Service -public class StIvtIostorinvdisBcpServiceImpl extends ServiceImpl implements IStIvtIostorinvdisBcpService { - - @Override - public List getIostorinvdis(Map query) { - if (query == null || (query.get("iostorinv_id") == null && query.get("bill_code") == null)){ - return new ArrayList<>(); - } - return baseMapper.getIostorinvdis(query); - } -} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java index 972e0322..b83ae20d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/IStIvtStructivtBcpService.java @@ -1,8 +1,12 @@ package org.nl.wms.storage_manage.semimanage.service.structIvt; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import com.baomidou.mybatisplus.extension.service.IService; +import java.math.BigDecimal; +import java.util.List; + /** *

* 仓位库存表 服务类 @@ -12,5 +16,9 @@ import com.baomidou.mybatisplus.extension.service.IService; * @since 2023-05-10 */ public interface IStIvtStructivtBcpService extends IService { + //货位分配规则 + List allocationRules(Integer num); + + void updateCashByParam(CHANGE_BILL_TYPE_ENUM event, BigDecimal plan_qty,String struct_code); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java index 4195ab7f..65e20adc 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/StIvtStructivtBcp.java @@ -22,11 +22,6 @@ public class StIvtStructivtBcp implements Serializable { private static final long serialVersionUID = 1L; - /** - * 库存记录标识 - */ - private String stockrecord_id; - /** * 仓位标识 */ @@ -70,7 +65,7 @@ public class StIvtStructivtBcp implements Serializable { /** * 库存数 */ - private BigDecimal ivt_qty; + private BigDecimal canuse_qty; /** * 计量单位标识 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java index 92c11904..e1764fca 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/StIvtStructivtBcpMapper.java @@ -1,8 +1,12 @@ package org.nl.wms.storage_manage.semimanage.service.structIvt.dao.mapper; +import org.apache.ibatis.annotations.Param; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; +import java.util.Map; + /** *

* 仓位库存表 Mapper 接口 @@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface StIvtStructivtBcpMapper extends BaseMapper { + int batchUpdateByParam(@Param("event") List event, @Param("struct_code")String struct_code); + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml index e28e1387..1db59a08 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/dao/mapper/xml/StIvtStructivtBcpMapper.xml @@ -2,4 +2,21 @@ + + update user_distribute set + + ${item.field} = ${item.field} + + + + + + + - + + + #{item.value,jdbcType=DECIMAL} + + where struct_code = #{struct_code} + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java index 9352bec2..322bb859 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/structIvt/impl/StIvtStructivtBcpServiceImpl.java @@ -1,11 +1,24 @@ package org.nl.wms.storage_manage.semimanage.service.structIvt.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang3.StringUtils; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; +import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; +import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.StIvtStructivtBcp; import org.nl.wms.storage_manage.semimanage.service.structIvt.dao.mapper.StIvtStructivtBcpMapper; import org.nl.wms.storage_manage.semimanage.service.structIvt.IStIvtStructivtBcpService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** *

* 仓位库存表 服务实现类 @@ -17,4 +30,32 @@ import org.springframework.stereotype.Service; @Service public class StIvtStructivtBcpServiceImpl extends ServiceImpl implements IStIvtStructivtBcpService { + @Autowired + private IStIvtStructattrService structattrService; + + @Override + public List allocationRules(Integer num) { + QueryWrapper query = new QueryWrapper() + .eq("is_active", true) + .isNull("material_id"); + Page page = this.page(new Page<>(0, 3), query); + List records = page.getRecords(); + return records; + } + + @Override + public void updateCashByParam(CHANGE_BILL_TYPE_ENUM event, BigDecimal plan_qty, String struct_code) { + if (!StringUtils.isEmpty(struct_code)){ + Map fieldRelation = event.getFieldRelation(); + ArrayList list = new ArrayList<>(); + for (Map.Entry entry : fieldRelation.entrySet()) { + Map map = new HashMap<>(); + map.put("field",entry.getKey()); + map.put("value",plan_qty); + map.put("add",entry.getValue()); + list.add(map); + } + this.baseMapper.batchUpdateByParam(list,struct_code); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/stivt.xls index cd6e3d61b2a48c0090db20fdc8e24967503f49ab..fc8218a14c3eddcef76d6341cffe540360c495b1 100644 GIT binary patch delta 45198 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 ZY#GpUAl85HW#QHu)`RChZ%icoe*x|5%s&7C delta 49239 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 diff --git a/mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/AddDialog.vue index 892d04b4..bb5a315d 100644 --- a/mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/semiproduct/semiProductIn/AddDialog.vue @@ -118,7 +118,7 @@ -

+
@@ -195,7 +195,7 @@ /> - +