From 25348c43a405c68de1ac4d73439761b5572c41c3 Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Sun, 13 Mar 2022 10:08:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=BA=E9=87=8F=E8=87=AA=E5=8A=A8=E8=A1=A5?= =?UTF-8?q?=E5=8D=95=EF=BC=8C=E5=8D=95=E6=8D=AE=E5=88=86=E4=BB=93=E5=BA=93?= =?UTF-8?q?=EF=BC=8C=E5=88=86=E7=94=A8=E6=88=B7=EF=BC=8C=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=A1=A5=E5=85=85=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sale/admin/constant/ConstantStatus.java | 1 + .../sale/admin/entity/inout/OrderEntity.java | 5 ++ .../admin/entity/inout/StockOrderEntity.java | 4 + .../admin/req/inout/OrderFilterRequest.java | 5 ++ .../req/inout/StockOrderFilterRequest.java | 2 + .../req/inout/StockOrderQueryRequest.java | 2 + .../service/inout/impl/OrderServiceImpl.java | 2 +- .../admin/thread/InvProductsTrService.java | 80 ++++++++++++++----- .../admin/thread/IoTransInoutService.java | 1 + .../mybatis/mapper/inout/OrderDao.xml | 47 ++++++++++- .../mybatis/mapper/inout/StockOrderDao.xml | 26 ++++-- scripts/vue-admin.sql | 32 ++++++-- 12 files changed, 167 insertions(+), 40 deletions(-) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java b/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java index 83705dd..73c31cb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/constant/ConstantStatus.java @@ -101,6 +101,7 @@ public class ConstantStatus { public static final int ORDER_CHANGE_NORMAL_ADV_IN = 2; //补寄售转入 public static final int ORDER_CHANGE_ADVANCE_IN = 3; //补寄售入库 public static final int ORDER_CHANGE_ADVANCE_OUT = 4; //补寄售出库 + public static final int ORDER_CHANGE_INNOR_NORMAL_IN = 5; //补调拨入库 } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java index adf5bee..ba3baeb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/OrderEntity.java @@ -37,5 +37,10 @@ public class OrderEntity { //补单单号 private String supplementNo; + private String ullageSupNo; + private Integer createUser; + private Integer reviewUser; + + private boolean isError; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java index 43b8aff..527a78f 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/inout/StockOrderEntity.java @@ -31,4 +31,8 @@ public class StockOrderEntity { //补单单号 private String supplementNo; + + private Integer createUser; + private Integer reviewUser; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/OrderFilterRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/OrderFilterRequest.java index 1168a8b..8d87a7d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/OrderFilterRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/OrderFilterRequest.java @@ -24,4 +24,9 @@ public class OrderFilterRequest extends ListPageRequest { private String customerId; private String fromCorpId; private String orderId;//业务单据ID,手持终端上传上来的 + + private String ullageSupNo; + private Integer createUser; + private Integer reviewUser; + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderFilterRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderFilterRequest.java index ddff7b6..afa4317 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderFilterRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderFilterRequest.java @@ -30,4 +30,6 @@ public class StockOrderFilterRequest extends ListPageRequest { private String orderIdFk; private BigDecimal totalPrice; private String locStorageCode; + private Integer createUser; + private Integer reviewUser; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderQueryRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderQueryRequest.java index e066850..bd55390 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderQueryRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/inout/StockOrderQueryRequest.java @@ -7,4 +7,6 @@ import lombok.Data; public class StockOrderQueryRequest extends ListPageRequest { private String thirdOrderFk; private String billNo; + private Integer createUser; + private Integer reviewUser; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java index 53f8a0b..5d41192 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/OrderServiceImpl.java @@ -204,7 +204,7 @@ public class OrderServiceImpl implements OrderService { supplementOrder.setSupplementNo(order.getId()); supplementOrder.setId(supplementOrderNo); //修改状态 - supplementOrder.setStatus(1); //设置状态为等待处理 + supplementOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); //设置状态为补录单据 supplementOrder.setExportStatus(0); //设置导出状态为未导出 supplementOrder.setContrastStatus(0);//设置erp校验状态为未校验 supplementOrder.setReceiveStatus(0); //设置验收状态为未验收 diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/InvProductsTrService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/InvProductsTrService.java index ca45309..4a31942 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/InvProductsTrService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/InvProductsTrService.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.thread; +import cn.hutool.core.util.StrUtil; import com.glxp.sale.admin.constant.Constant; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.ConstantType; @@ -210,13 +211,33 @@ public class InvProductsTrService { //普通出库补单-- //补采购入库或寄售转入单 public void addUseOutOrder(OrderEntity orderEntity, List invProductDetailEntities, List bussinessChangeTypeEntities) { - + BussinessChangeTypeEntity advChangeTypeEntity = null; + BussinessChangeTypeEntity norChangeTypeEntity = null; + BussinessChangeTypeEntity outChangeTypeEntity = null; + BussinessChangeTypeEntity innorChangeTypeEntity = null; + for (BussinessChangeTypeEntity bussinessChangeTypeEntity : bussinessChangeTypeEntities) { + if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_ADV_IN) { + advChangeTypeEntity = bussinessChangeTypeEntity; + } else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_IN) { + outChangeTypeEntity = bussinessChangeTypeEntity; + } else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_INNOR_NORMAL_IN) { + innorChangeTypeEntity = bussinessChangeTypeEntity; + } + } List warehouseEntities = codesService.findByReceiptId(orderEntity.getId()); List inList = new ArrayList<>(); List preiInList = new ArrayList<>(); for (WarehouseEntity warehouseEntity : warehouseEntities) { + /** + * 如果出库单据需要缺量自动补录入库单据? + * if(出库单据的当前仓库为1级库,仓库等级=1) + * {可能需要补录的入库单据有两种:《供应商入库》《寄售转入库》} + * else(仓库等级>1) + * {可能需要补录的入库单据有一种:《调拨入库》} + */ + InvWarehouseEntity locWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode()); - if (isAdavnce(warehouseEntity)) {//补寄售转入 + if (locWarehouseEntity.getLevel() == 1 && isAdavnce(warehouseEntity)) {//补寄售转入 //获取普通出入库结余数量 int actCount = getActCount(warehouseEntity); @@ -231,7 +252,21 @@ public class InvProductsTrService { } else { count = warehouseEntity.getCount(); } - InvWarehouseEntity invWarehouseEntity = invWarehouseService.findDefault(true, true); + /** + * 《寄售转入库》往来单位: + * 单据类型的当前仓库(如果当前仓库有设置,则判断该当前仓库是否为1级库并且仓库类型=寄售,如果没设置,那么往来单位自动为默认寄售仓库),当前仓库:出库单据的当前仓库 + */ + BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(advChangeTypeEntity.getScAction()); + InvWarehouseEntity invWarehouseEntity; + if (!StrUtil.isEmpty(bussinessTypeEntity.getStorageCode())) { + invWarehouseEntity = invWarehouseService.selectByCode(bussinessTypeEntity.getStorageCode()); + if (!invWarehouseEntity.getAdvanceType() || invWarehouseEntity.getLevel() > 1) { + //todo 补单失败,当前仓库设置错误 + orderEntity.setRemark("该补录单,单据类型" + bussinessTypeEntity.getName() + "当前仓库设置错误,无法补单"); + orderEntity.setError(true); + } + } else + invWarehouseEntity = invWarehouseService.findDefault(true, true); int invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), invWarehouseEntity.getCode()); if (invCount <= 0) { invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getCode()); @@ -267,20 +302,23 @@ public class InvProductsTrService { count = warehouseEntity.getCount(); } - //获取当前仓库 - InvWarehouseEntity invWarehouseEntity = invWarehouseService.selectByCode(warehouseEntity.getLocStorageCode()); int invCount = 0; - if (invWarehouseEntity.getPcode() != null && !invWarehouseEntity.getPcode().equals("0")) { - //上级仓库 - - InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(invWarehouseEntity.getPcode()); + if (locWarehouseEntity.getLevel() > 1) {//补调拨入库 + /** + * 调拨入库》往来单位:出库单据的当前仓库的父级仓库,当前仓库:出库单据的当前仓库; + */ + InvWarehouseEntity pInWarehouseEntity = invWarehouseService.selectByCode(locWarehouseEntity.getPcode()); warehouseEntity.setFromCorp(pInWarehouseEntity.getName()); warehouseEntity.setFromCorpId(pInWarehouseEntity.getCode()); - invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), invWarehouseEntity.getPcode()); + invCount = getCountByOrder(null, warehouseEntity.getCode(), warehouseEntity.getSupId(), locWarehouseEntity.getPcode()); if (invCount <= 0) { - invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), invWarehouseEntity.getPcode()); + invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), locWarehouseEntity.getPcode()); } - } else { + norChangeTypeEntity = innorChangeTypeEntity; + } else { //补供应商入库 + /** + * 供应商入库》往来单位:根据产品指定的供应商,当前仓库:出库单据的当前仓库; + */ //供应商 warehouseEntity.setFromCorpId(warehouseEntity.getSupId()); BasicUnitMaintainEntity basicUnitMaintainEntity = basicUnitMaintainService.selectByErpId(warehouseEntity.getSupId()); @@ -289,6 +327,7 @@ public class InvProductsTrService { if (invCount <= 0) { invCount = getCountByOrder(null, code, warehouseEntity.getSupId(), null); } + norChangeTypeEntity = outChangeTypeEntity; } if (invCount > 0) { if (count > invCount) { @@ -306,15 +345,7 @@ public class InvProductsTrService { } } - BussinessChangeTypeEntity advChangeTypeEntity = null; - BussinessChangeTypeEntity norChangeTypeEntity = null; - for (BussinessChangeTypeEntity bussinessChangeTypeEntity : bussinessChangeTypeEntities) { - if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_ADV_IN) { - advChangeTypeEntity = bussinessChangeTypeEntity; - } else if (bussinessChangeTypeEntity.getChangeType() == ConstantStatus.ORDER_CHANGE_NORMAL_IN) { - norChangeTypeEntity = bussinessChangeTypeEntity; - } - } + if (inList.size() > 0) { List temps = filterMapCodes(inList); buildInOrder(norChangeTypeEntity, temps, orderEntity); //3.生成采购入库流转单据 @@ -779,7 +810,12 @@ public class InvProductsTrService { outOrder.setActDate(DateUtil.getBeforeDay(outOrder.getActDate(), bussinessChangeTypeEntity.getBeforeTime())); outOrder.setAction(bussinessChangeTypeEntity.getScAction()); outOrder.setMainAction(ConstantType.TYPE_PUT); - outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN); + if (orderEntity.isError()) { + outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_FAIL); + } else { + outOrder.setContrastStatus(ConstantStatus.ORDER_CHECK_UN); + } + outOrder.setRemark(orderEntity.getRemark()); outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); outOrder.setFromCorp(temps.get(0).getFromCorp()); outOrder.setFromCorpId(temps.get(0).getFromCorpId()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/IoTransInoutService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/IoTransInoutService.java index 9d61527..4c2a99e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/IoTransInoutService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/IoTransInoutService.java @@ -126,6 +126,7 @@ public class IoTransInoutService { orderSaveRequest.setCorpOrderId(warehouseEntity.getCorpOrderId()); orderSaveRequest.setFromCorpId(warehouseEntity.getFromCorpId()); orderSaveRequest.setReceiveStatus(0); + orderSaveRequest.setLocStorageCode(warehouseEntity.getLocStorageCode()); orderSaveRequest.setMainAction(warehouseEntity.getMainAction()); orderSaveRequest.setFromCorp(warehouseEntity.getFromCorp()); orderSaveRequest.setFromType(ConstantStatus.FROM_WEBNEW); diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml index 8d84709..53cdada 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/OrderDao.xml @@ -32,7 +32,8 @@ insert INTO io_order(id, action, corpOrderId, actDate, fromCorpId, actor, mainAction, fromCorp, status, remark, exportStatus, fromType, contrastStatus, signStatus, - receiveStatus, erpFk, stockCheckFk, customerId, supId, exportFilePath,locStorageCode,supplementNo) + receiveStatus, erpFk, stockCheckFk, customerId, supId, + exportFilePath, locStorageCode, supplementNo, ullageSupNo, createUser, reviewUser) values (#{id}, #{action}, #{corpOrderId}, @@ -50,7 +51,8 @@ #{receiveStatus}, #{erpFk}, #{stockCheckFk}, - #{customerId}, #{supId}, #{exportFilePath},#{locStorageCode},#{supplementNo}) + #{customerId}, #{supId}, #{exportFilePath}, #{locStorageCode}, #{supplementNo} + , #{ullageSupNo}, #{createUser}, #{reviewUser}) UPDATE io_order @@ -77,7 +79,9 @@ invWarehouseCode=#{invWarehouseCode}, locStorageCode=#{locStorageCode}, supplementNo=#{supplementNo}, - + ullageSupNo=#{ullageSupNo}, + createUser=#{createUser}, + reviewUser=#{reviewUser}, WHERE id = #{id} @@ -189,6 +193,15 @@ and customerId =#{customerId} + + and createUser =#{createUser} + + + and reviewUser =#{reviewUser} + + + and ullageSupNo =#{ullageSupNo} + ORDER BY actDate DESC @@ -244,6 +257,15 @@ and customerId =#{customerId} + + and createUser =#{createUser} + + + and reviewUser =#{reviewUser} + + + and ullageSupNo =#{ullageSupNo} + ORDER BY actDate DESC @@ -293,7 +315,15 @@ - + + and createUser =#{createUser} + + + and reviewUser =#{reviewUser} + + + and ullageSupNo =#{ullageSupNo} + @@ -317,6 +347,15 @@ and `fromCorpId` =#{fromCorpId} + + and createUser =#{createUser} + + + and reviewUser =#{reviewUser} + + + and ullageSupNo =#{ullageSupNo} + limit 1 diff --git a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml index 3d9d93a..f7534a2 100644 --- a/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/inout/StockOrderDao.xml @@ -24,7 +24,8 @@ parameterType="com.glxp.sale.admin.entity.inout.StockOrderEntity"> insert INTO stock_order(id, billNo, billdate, corpId, corpName, billType, billFlag, thirdSysFk, status, statusInfo, type, sourceType, - printStatus, unitIdFk, customerId, thirdOrderFk, orderIdFk, totalPrice, locStorageCode,supplementNo) + printStatus, unitIdFk, customerId, thirdOrderFk, orderIdFk, + totalPrice, locStorageCode, supplementNo, createUser, reviewUser) values (#{id}, #{billNo}, #{billdate}, @@ -38,7 +39,7 @@ #{type}, #{sourceType}, #{printStatus}, #{unitIdFk}, #{customerId}, #{thirdOrderFk}, #{orderIdFk}, #{totalPrice}, - #{locStorageCode},#{supplementNo}) + #{locStorageCode}, #{supplementNo}, #{createUser}, #{reviewUser}) UPDATE stock_order @@ -62,7 +63,8 @@ totalPrice=#{totalPrice}, locStorageCode=#{locStorageCode}, supplementNo=#{supplementNo}, - + createUser=#{createUser}, + reviewUser=#{reviewUser}, WHERE id = #{id} @@ -150,6 +152,12 @@ and locStorageCode = #{locStorageCode} + + and createUser = #{createUser} + + + and reviewUser = #{reviewUser} + = DATE_FORMAT(#{startTime}, '%Y-%m-%d') ]]> @@ -188,7 +196,12 @@ and orderIdFk =#{orderIdFk} - + + and createUser = #{createUser} + + + and reviewUser = #{reviewUser} + limit 1 @@ -219,6 +232,9 @@ \ No newline at end of file diff --git a/scripts/vue-admin.sql b/scripts/vue-admin.sql index b0acf7d..7889f20 100644 --- a/scripts/vue-admin.sql +++ b/scripts/vue-admin.sql @@ -1,10 +1,26 @@ +create table auth_license +( + id varchar(36) not null, + appid varchar(36) not null, + name varchar(100), + api_key varchar(64), + secret_key varchar(2000), + create_date datetime, + constraint pk_auth_license primary key (id) +); + + +alter table io_order add ( +ullageSupNo VARCHAR(128) NULL DEFAULT NULL COMMENT '缺量补单单号', +createUser int NULL DEFAULT NULL COMMENT '创建用户ID', +reviewUser int NULL DEFAULT NULL COMMENT '审核用户ID' +); + + +alter table stock_order add ( +createUser int NULL DEFAULT NULL COMMENT '创建用户ID', +reviewUser int NULL DEFAULT NULL COMMENT '审核用户ID' +); + -create table auth_license ( id varchar(36) not null, - appid varchar(36) not null, - name varchar(100), - api_key varchar(64), - secret_key varchar(2000), - create_date datetime, -constraint pk_auth_license primary key (id) -); \ No newline at end of file