diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 3203ab37f..ce4d9cca7 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -263,7 +263,7 @@ public class BasicBussinessTypeController extends BaseController { BindingResult bindingResult) { if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { List result = new ArrayList<>(); - List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + List bussinessTypeEntities = basicBussinessTypeService.findByVueTypeAndType(bussinessTypeFilterRequest); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getInvCode()) || StrUtil.isNotEmpty(bussinessTypeFilterRequest.getCode())) { //过滤是否是当前仓库底下单据类型 FilterBussinessTypeRequest tempRequest = new FilterBussinessTypeRequest(); @@ -319,7 +319,7 @@ public class BasicBussinessTypeController extends BaseController { List reList = new ArrayList<>(); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { List result = new ArrayList<>(); - List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + List bussinessTypeEntities = basicBussinessTypeService.findByVueTypeAndType(bussinessTypeFilterRequest); if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getInvCode()) || StrUtil.isNotEmpty(bussinessTypeFilterRequest.getCode())) { //过滤是否是当前仓库底下单据类型 FilterBussinessTypeRequest tempRequest = new FilterBussinessTypeRequest(); diff --git a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java index df7b9813c..fcb412e17 100644 --- a/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java +++ b/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java @@ -416,33 +416,17 @@ public class IoCollectOrderController extends BaseController { @PostMapping("/udiwms/basic/collect/order/vailFinish") public BaseResponse vailOrderFinish(@RequestBody CollectOrderRequest collectOrderRequest) { - if (StrUtil.isEmpty(collectOrderRequest.getBillNo())) return ResultVOUtils.error(500, "单据号不能为空!"); CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest(); collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo()); List collectOrderBizResponses = collectOrderService.combieOrderDetail(collectOrderBizRequest); - // 全部自动赋码 boolean isAllTag = collectOrderBizResponses.stream() .allMatch(obj -> obj.getAutoTagStatus() == 2); +// StrUtil.isNotEmpty(obj.getFinishUdiCode()) || boolean isAllTag2 = collectOrderBizResponses.stream() .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); - if (isAllTag || isAllTag2){ - return ResultVOUtils.success(true); - } - //如果有一条自动赋码的 - boolean isAllTag3 = collectOrderBizResponses.stream() - .anyMatch(obj -> obj.getAutoTagStatus() == 2); - if (isAllTag3){ - //过滤掉自动赋码的 - boolean isAllTag4 = collectOrderBizResponses.stream() - .filter(obj -> obj.getAutoTagStatus() != 2) - .allMatch(obj -> IntUtil.value(obj.getScanActCount()) >= IntUtil.value(obj.getCount())); - if (isAllTag4){ - return ResultVOUtils.success(true); - } - } - return ResultVOUtils.success(false); + return ResultVOUtils.success(isAllTag || isAllTag2); } 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 e45d8e513..c5bb48c3c 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicBussinessTypeEntity.java @@ -522,6 +522,10 @@ public class BasicBussinessTypeEntity { @TableField(value = "codeCheck") private Integer codeCheck; + + @TableField(value = "productType") + private Integer productType; + /** * 是否流通单据类型 */ 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 0ce110322..e440e1a9d 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -342,4 +342,11 @@ public class BussinessTypeSaveRequest { private Integer codeCheck; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + @TableField(value = "productType") + private Integer productType; + + } 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 cd7f141cd..656518b96 100644 --- a/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java +++ b/src/main/java/com/glxp/api/req/basic/FilterBussinessTypeRequest.java @@ -143,4 +143,9 @@ public class FilterBussinessTypeRequest extends ListPageRequest { */ private Boolean vailInvBatchNo; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + private Integer productType; + } 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 ddd7feb26..e70318f0c 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -223,4 +223,10 @@ public class BasicBussinessTypeResponse { @TableField(value = "codeCheck") private Integer codeCheck; + /** + * 单据类型, 1:器械单据,2:药品单据 + */ + @TableField(value = "productType") + private Integer productType; + } diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java index f3bc13965..e2c8e6926 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBussinessTypeService.java @@ -122,4 +122,6 @@ public interface IBasicBussinessTypeService extends IService selectbyNotAction(List list); List findByLastTime(Date lastUpdateTime); + + List findByVueTypeAndType(FilterBussinessTypeRequest bussinessTypeFilterRequest); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 68f8bcc51..d93aaff2c 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -392,4 +392,162 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl findByLastTime(Date lastUpdateTime) { return basicBussinessTypeDao.selectList(new QueryWrapper().gt("updateTime", lastUpdateTime)); } + + @Override + public List findByVueTypeAndType(FilterBussinessTypeRequest bussinessTypeFilterRequest) { + List bussinessTypeEntities = null; + + switch (bussinessTypeFilterRequest.getVueType()) { + case Constant.ORDER_ACTION_NOR_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 1) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + + case Constant.ORDER_ACTION_PRE_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 3) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + case Constant.ORDER_ACTION_PREIN_DETAIL: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("actionType", 2) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("inStock", true).eq("enable", true)); + break; + case Constant.ORDER_ACTION_SUP_DELIVERY: + //允许送货单直接入库变更库存,则不判断送货单是否入库 + String deliveryInstock = systemParamConfigService.selectValueByParamKey("deliveryInstock"); + if (StrUtil.isNotEmpty(deliveryInstock) && deliveryInstock.equals("1")) { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .gt("spUse", 1).eq("enable", true)); + } else { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .gt("spUse", 1).eq("inStock", false).eq("enable", true)); + } + + break; + + /** + * 出入库类型为入库 + * 往来单位类型为供应商 + * 更改库存为否 + * 供应商使用权限为增删改查 + * 库存方式为入账 + * 单据状态待审核 + * + * or + * + * 出入库类型为入库 + * 往来单位类型为供应商 + * 是否更改库存为是 + * 库存方式为入账 + * 单据状态已审核 + */ + case Constant.ORDER_ACTION_SUP_INVOICE: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .gt("spUse", 0).eq("actionType", 1).eq("enable", true)); + break; + + + case Constant.ORDER_ACTION_SUP_DELAUDIT: //供应商审核送货单 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("mainAction", ConstantType.TYPE_PUT).eq("corpType", ConstantStatus.CORP_TYPE_OUT) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .gt("spUse", 1).eq("enable", true)); + break; + + case Constant.ORDER_ACTION_SUP_INOUT: //供应商查询出入库单 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType())); + break; + case Constant.ORDER_ACTION_SUP_PREIN: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2) + .eq("inStock", true) + .eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()) + .eq("mainAction", ConstantType.TYPE_PUT)); + break; + case Constant.ORDER_ACTION_WAIT_CHECK: //待校验 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.eq("checkWebNew", 3) + .or().eq("checkPdaUn", 3) + .or().eq("checkPdaEd", 3) + .or().eq("checkUdims", 3) + .or().eq("checkPc", 3) + .or().eq("checkSp", 3) + .or().eq("checkChange", 3) + .or().eq("checkBalance", 3) + .or().eq("checkCopy", 3) + ) + ); + break; + case Constant.ORDER_ACTION_WAIT_DEAL: //待配货/拣货页面 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.in("checkWebNew", 1, 2) + .or().in("checkPdaUn", 1, 2) + .or().in("checkPdaEd", 1, 2) + .or().in("checkUdims", 1, 2) + .or().in("checkPc", 1, 2) + .or().in("checkSp", 1, 2) + .or().in("checkChange", 1, 2) + .or().in("checkBalance", 1, 2) + .or().in("checkCopy", 1, 2) + ) + ); + break; + case Constant.ORDER_THIRD_STOCK: //内部码 + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).eq(bussinessTypeFilterRequest.getProductType() != null, "productType", bussinessTypeFilterRequest.getProductType()).and( + webNew -> webNew.in("checkWebNew", 1, 2, 3) + .or().in("checkPdaUn", 1, 2, 3) + .or().in("checkPdaEd", 1, 2, 3) + .or().in("checkUdims", 1, 2, 3) + .or().in("checkPc", 1, 2, 3) + .or().in("checkSp", 1, 2, 3) + .or().in("checkChange", 1, 2, 3) + .or().in("checkBalance", 1, 2, 3) + .or().in("checkCopy", 1, 2, 3) + ) + ); + break; + case Constant.ORDER_THIRD_UPLOAD: + + List thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list(); + List actions = new ArrayList<>(); + thrOrderUploadBustypesEntities.forEach(item -> + { + actions.add(item.getAction()); + }); + if (CollUtil.isNotEmpty(actions)) { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper().in("action", actions)); + } + break; + + //科室拆零预出库界面 + case Constant.ORDER_ACTION_SPLIT: + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper() + .eq("enable", true).and( + webNew -> webNew.in("action", "SC72197936495755", "SC72249388338364") + ) + ); + break; + default: + break; + } + + return bussinessTypeEntities; + } } diff --git a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml index b3c6d2a75..5a45506d7 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicBussinessTypeDao.xml @@ -39,6 +39,9 @@ AND bu.busType = #{busType} + + AND bu.productType = #{productType} + AND bu.preIn = #{preIn} @@ -213,6 +216,9 @@ AND basic_bussiness_type.enable = #{enable} + + AND basic_bussiness_type.productType = #{productType} + AND basic_bussiness_type.spUse > 0 @@ -263,6 +269,9 @@ AND basic_bussiness_type.enable = #{enable} + + AND basic_bussiness_type.productType = #{productType} + AND basic_bussiness_type.spUse > 0 diff --git a/src/main/resources/schemas/schema_v2.4.sql b/src/main/resources/schemas/schema_v2.4.sql index ae0d0015a..e665bc460 100644 --- a/src/main/resources/schemas/schema_v2.4.sql +++ b/src/main/resources/schemas/schema_v2.4.sql @@ -4545,3 +4545,8 @@ CREATE TABLE IF NOT EXISTS `anncmnt_product` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + + +CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'productType', + ' tinyint NULL DEFAULT NULL COMMENT ''单据类型; 1:器械单据 2:药品单据''', + 1);