From be1475a5da13ea6595046bbf85554f05344b3d7c Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 12 Dec 2023 14:37:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BA=93=E5=AD=98=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=80=BB=E5=BA=93=E5=BA=93?= =?UTF-8?q?=E5=AD=98=EF=BC=8C=E4=B8=8A=E7=BA=A7=E5=BA=93=E5=AD=98=EF=BC=8C?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E5=BA=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/InvWarehouseController.java | 2 +- .../inout/IoCodeTempController.java | 7 ++++++- .../controller/inout/IoOrderController.java | 9 +++++++-- .../inout/IoOrderDetailBizController.java | 8 +++++++- .../controller/inv/InvProductController.java | 10 +++++++++- .../glxp/api/dao/auth/InvWarehouseDao.java | 2 -- .../basic/BasicBussinessTypeEntity.java | 6 ++++++ .../req/basic/BussinessTypeSaveRequest.java | 5 ++++- .../req/basic/FilterBussinessTypeRequest.java | 5 ++++- .../api/req/inout/FilterOrderRequest.java | 5 ++++- .../res/basic/BasicBussinessTypeResponse.java | 5 +++++ .../api/service/auth/InvWarehouseService.java | 3 +++ .../auth/impl/InvWarehouseServiceImpl.java | 20 ++++++++++++++++++- .../api/service/inout/IoAddInoutService.java | 8 ++++++-- .../inout/impl/IoOrderServiceImpl.java | 2 +- .../inv/impl/InvProductDetailService.java | 4 ++-- src/main/resources/application-dev.yml | 4 ++-- src/main/resources/schemas/schema_v2.4.sql | 1 + 18 files changed, 87 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java index b254a0a9f..942c34f5f 100644 --- a/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java +++ b/src/main/java/com/glxp/api/controller/auth/InvWarehouseController.java @@ -162,7 +162,7 @@ public class InvWarehouseController extends BaseController { preInList.stream().anyMatch(preIn -> !preIn.getCode().equals(invWarehouseEntity.getCode())) ).collect(Collectors.toList()); resultList.addAll(preInList); - return ResultVOUtils.success(list); + return ResultVOUtils.success(resultList); } return ResultVOUtils.success(list); } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 9f48c3fa7..b77cdc80a 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -803,9 +803,14 @@ public class IoCodeTempController extends BaseController { public BaseResponse checkInv(BasicBussinessTypeEntity bussinessTypeEntity, IoCodeTempEntity codeTempEntity, boolean isEdit) { if (bussinessTypeEntity.isVailInv() && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + String outInvCode = codeTempEntity.getInvCode(); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findNoInvTypeInv(bussinessTypeEntity.getDeptNoInvType(), outInvCode); + if (invWarehouseEntity != null) { + outInvCode = invWarehouseEntity.getCode(); + } int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { - count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null); + count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index aa5da54bd..0b8fdf7ea 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -1269,9 +1269,14 @@ public class IoOrderController extends BaseController { public BaseResponse checkInv(IoOrderDetailBizEntity bizEntity, IoOrderEntity orderEntity) { - + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + String outInvCode = orderEntity.getInvCode(); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findNoInvTypeInv(bussinessTypeEntity.getDeptNoInvType(), outInvCode); + if (invWarehouseEntity != null) { + outInvCode = invWarehouseEntity.getCode(); + } int count = 0; - count = invProductDetailService.vailStockCount(bizEntity.getBindRlFk(), bizEntity.getBatchNo(), bizEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), null); + count = invProductDetailService.vailStockCount(bizEntity.getBindRlFk(), bizEntity.getBatchNo(), bizEntity.getSupId(), null, outInvCode, null); if (count <= 0) { if (count == -1) { return ResultVOUtils.error(500, "该产品未入库"); diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java index 4c38c28ee..b7394d7dc 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailBizController.java @@ -241,8 +241,14 @@ public class IoOrderDetailBizController extends BaseController { IoOrderEntity orderEntity = orderService.findByBillNo(orderDetailBizEntity.getOrderIdFk()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (bussinessTypeEntity.getCheckWebNew() == 4 && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { - Integer count = invProductDetailService.vailStockCount(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), null); + String outInvCode = orderEntity.getInvCode(); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findNoInvTypeInv(bussinessTypeEntity.getDeptNoInvType(), outInvCode); + if (invWarehouseEntity != null) { + outInvCode = invWarehouseEntity.getCode(); + } + + Integer count = invProductDetailService.vailStockCount(orderDetailBizEntity.getBindRlFk(), orderDetailBizEntity.getBatchNo(), orderDetailBizEntity.getSupId(), null, outInvCode, null); count = IntUtil.value(count) - orderDetailBizEntity.getCount(); if (count <= 0) { diff --git a/src/main/java/com/glxp/api/controller/inv/InvProductController.java b/src/main/java/com/glxp/api/controller/inv/InvProductController.java index 0598fcb3a..a4243f43d 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvProductController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvProductController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.inv; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.service.inv.impl.InvProductDetailService; import com.glxp.api.service.inv.impl.InvProductService; import org.springframework.beans.BeanUtils; @@ -309,7 +310,14 @@ public class InvProductController extends BaseController { BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(codeTempEntity.getAction()); int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { - count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null); + + + String outInvCode = codeTempEntity.getInvCode(); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findNoInvTypeInv(bussinessTypeEntity.getDeptNoInvType(), outInvCode); + if (invWarehouseEntity != null) { + outInvCode = invWarehouseEntity.getCode(); + } + count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), null, outInvCode, null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), codeTempEntity.getWarehouseCode()); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_CODE) { diff --git a/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java b/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java index 35732695a..372b57795 100644 --- a/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java +++ b/src/main/java/com/glxp/api/dao/auth/InvWarehouseDao.java @@ -25,8 +25,6 @@ public interface InvWarehouseDao extends BaseMapperPlus invSubWarehouseEntities); boolean deleteByParentCode(@Param("code") String code); diff --git a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java index 489ff9e50..133761326 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -453,5 +453,11 @@ public class BasicBussinessTypeEntity { @TableField(value = "inPreInBack") private Integer inPreInBack; + /** + * 科室库存出库模式 0:有库存;1:上级仓库出库;2:总库出库模式 + */ + @TableField(value = "deptNoInvType") + private Integer deptNoInvType; + } diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index d03cfa373..169235879 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -309,5 +309,8 @@ public class BussinessTypeSaveRequest { private Boolean advancePreIn; private int spaceOut; private Integer inPreInBack; - + /** + * 科室无存库模式 0:有库存;1:无库存 + */ + private Integer deptNoInvType; } diff --git a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java index 1a7f06d63..ae6e5908c 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -125,7 +125,10 @@ public class FilterBussinessTypeRequest extends ListPageRequest { private String deptCode; private Integer inPreInBack; - + /** + * 科室无存库模式 0:有库存;1:无库存 + */ + private Integer deptNoInvType; /** * 出入库明细类型 */ diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 4a85e90ea..aa6399c16 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -205,6 +205,9 @@ public class FilterOrderRequest extends ListPageRequest { private List inOrders; private String keyWord; - + /** + * 科室无存库模式 0:有库存;1:无库存 + */ + private Integer deptNoInvType; private Integer inPreInBack; } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index 0dc83bdcb..087f2b112 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -184,4 +184,9 @@ public class BasicBussinessTypeResponse { private Integer editType; private Integer inPreInBack; + + /** + * 科室无存库模式 0:有库存;1:无库存 + */ + private Integer deptNoInvType; } diff --git a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java index 4f06d9991..74c38218d 100644 --- a/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java +++ b/src/main/java/com/glxp/api/service/auth/InvWarehouseService.java @@ -103,4 +103,7 @@ public interface InvWarehouseService extends IService { List selectLowWarehouseAll(String pCode); + InvWarehouseEntity findNoInvTypeInv(Integer noInvType, String invCode); + + } diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java index 10c06083c..d650fcb04 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvWarehouseServiceImpl.java @@ -17,6 +17,7 @@ import com.glxp.api.req.thrsys.FilterBasicThirdSysRequest; import com.glxp.api.res.auth.InvSubWarehouseResponse; import com.glxp.api.res.auth.InvWarehouseThirdSysResponse; import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.util.IntUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -148,7 +149,7 @@ public class InvWarehouseServiceImpl extends ServiceImpl0; + return invWarehouseDao.updateById(invWarehouseEntity) > 0; } @Override @@ -286,4 +287,21 @@ public class InvWarehouseServiceImpl extends ServiceImpl selectLowWarehouseAll(String pCode) { return invWarehouseDao.selectLowWarehouseAll(pCode); } + + @Override + public InvWarehouseEntity findNoInvTypeInv(Integer noInvType, String invCode) { + InvWarehouseEntity invWarehouseEntity = findByInvSubByCode(invCode); + + if (IntUtil.value(noInvType) == 1) { + if (StrUtil.isEmpty(invWarehouseEntity.getParentCode())) + return invWarehouseEntity; + else return findByInvSubByCode(invWarehouseEntity.getParentCode()); + } else { + while (StrUtil.isNotEmpty(invWarehouseEntity.getParentCode())) { + invWarehouseEntity = invWarehouseDao.selectOne( + new QueryWrapper().eq("code", invWarehouseEntity.getParentCode()).last("limit 1")); + } + } + return invWarehouseEntity; + } } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 9c099a957..b0d44c360 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -945,10 +945,15 @@ public class IoAddInoutService { } else { //校验普通库存 if (bussinessTypeEntity.isVailInv() && bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + String outInvCode = orderEntity.getInvCode(); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findNoInvTypeInv(bussinessTypeEntity.getDeptNoInvType(), outInvCode); + if (invWarehouseEntity != null) { + outInvCode = invWarehouseEntity.getCode(); + } for (IoOrderDetailBizEntity orderDetailCodeEntity : orderDetailBizEntities) { int count = 0; if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_NULL) { - count = invProductDetailService.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), null); + count = invProductDetailService.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), null, outInvCode, null); } else if (bussinessTypeEntity.getSpaceOut() == ConstantStatus.SPACE_OUT_SET) { count = invProductDetailService.vailStockCount(orderDetailCodeEntity.getBindRlFk(), orderDetailCodeEntity.getBatchNo(), orderDetailCodeEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode(), orderEntity.getCurSpaceCode()); } @@ -958,7 +963,6 @@ public class IoAddInoutService { } } } - return null; } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index bff7cf7ed..190e4f038 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -760,7 +760,7 @@ public class IoOrderServiceImpl implements IoOrderService { } if (filterOrderRequest.getInPreInBack() != null) { bussinessTypeEntities = bussinessTypeEntities.stream() - .filter(item -> item.getInPreInBack().equals(filterOrderRequest.getInPreInBack())) + .filter(item -> IntUtil.value(item.getInPreInBack()) == filterOrderRequest.getInPreInBack()) .collect(Collectors.toList()); } actions = bussinessTypeEntities.stream().map(BasicBussinessTypeEntity::getAction).collect(Collectors.toList()); diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailService.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailService.java index a6fc23a26..42b2b7318 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailService.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailService.java @@ -105,7 +105,7 @@ public class InvProductDetailService extends ServiceImpl selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { return invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) - .isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(supId != null,"supId", supId).eq(deptCode != null, "deptCode", deptCode).eq(invCode != null, "invCode", invCode)); + .isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(supId != null, "supId", supId).eq(deptCode != null, "deptCode", deptCode).eq(invCode != null, "invCode", invCode)); } @@ -186,7 +186,7 @@ public class InvProductDetailService extends ServiceImpl datas = invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) - .eq(StrUtil.isNotEmpty(supId), "supId", supId).eq("deptCode", deptCode).eq("invCode", invCode) + .eq(StrUtil.isNotEmpty(supId), "supId", supId).eq(StrUtil.isNotEmpty(deptCode), "deptCode", deptCode).eq("invCode", invCode) .eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode) .and(StrUtil.isEmpty(batchNo), i -> i.isNull("batchNo").or().eq("batchNo", "")) ); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 6e1953e6f..b2df4abe2 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,7 +4,7 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_ct?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms_pt?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root password: 123456 hikari: @@ -15,7 +15,7 @@ spring: redis: database: 8 - host: 127.0.0.19991 + host: 127.0.0.1 port: 6379 # password: 123456 timeout: 300 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index 6481ee33c..83f0a0867 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -83,6 +83,7 @@ VALUES (1, 'udi_wms_new', '3.0.6', 306, 'UDI扫码终端', '2023-10-30 18:42:24' CALL Pro_Temp_ColumnWork('basic_product_category', 'deptCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('basic_product_category', 'invCode', 'varchar(255)', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'inPreInBack', 'tinyint', 1); +CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'deptNoInvType', 'tinyint', 1); INSERT ignore INTO sys_param_config(`id`, `parentId`, `paramName`, `paramKey`, `paramValue`, `paramStatus`,