From b89df39a1e57b582e4bf14773fba46f6d0710f05 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Tue, 21 Oct 2025 14:24:36 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=8A=A5=E5=8D=95=E8=B5=A0=E9=80=81?= =?UTF-8?q?=E6=8F=90=E8=B4=A7=E5=88=97=E8=A1=A8=E5=90=88=E5=B9=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE,=E5=90=8E=E5=8F=B0=E5=85=85=E5=80=BC=E6=8F=90?= =?UTF-8?q?=E8=B4=A7=E5=8D=A1=E4=BA=A7=E5=93=81=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/manage/AcPickController.java | 2 +- .../AcDeclarationGiftConfigMapper.xml | 202 +++++++++--------- .../mapper/activity/pick/AcPickMapper.xml | 2 +- .../java/com/hzs/third/job/ActivityJob.java | 2 + 4 files changed, 102 insertions(+), 106 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/manage/AcPickController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/manage/AcPickController.java index 389ede58..771b9380 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/manage/AcPickController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/pick/controller/manage/AcPickController.java @@ -91,7 +91,7 @@ public class AcPickController extends BaseController { acPickQueryVO.setPickTypeVal(EPickType.getEnumByValue(acPickQueryVO.getPickType()).getLabel()); - if (EPickType.PICK_PRODUCT.getValue() == acPickExt.getPickType()) { + if (EPickType.PICK_PRODUCT.getValue() == acPickExt.getPickType() || EPickType.DECLARATION_GIFT.getValue() == acPickExt.getPickType()) { // 提货产品 acPickQueryVO.setDetailList(Collections.singletonList(AcPickQueryDetailVO.builder() .productName(acPickExt.getProductName()) diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml index 6c841216..a8d03145 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftConfigMapper.xml @@ -31,117 +31,111 @@ PK_COUNTRY, PK_ID, PK_BASE_ID, REGISTER_AUTHORITY, PK_PRODUCT, SPECS_NAME, SPECS_NAME_ID, QUANTITY, LEVEL - - DECLARE v_error_count NUMBER := 0; - BEGIN - BEGIN - MERGE INTO AC_PICK tgt USING ( - SELECT - adgr.PK_ID AS SRC_ID, - so.PK_CREATOR AS PK_MEMBER, - 32 AS PICK_TYPE, - adgc.PK_ID AS PK_BASE_CONFIG, - adgd.PK_PRODUCT AS PK_DATA_ID, - adgd.SPECS_NAME AS SPECS_NAME, - adgd.SPECS_NAME_ID AS SPECS_NAME_ID, - adgd.QUANTITY AS USABLE_QUANTITY, - bp.COVER AS PICK_COVER, - 0 AS IS_FREE_MAIL, - 0 AS DEL_FLAG, - adgd.QUANTITY AS BASE_QUANTITY, - adgr.PK_BASE_ID AS PK_BASE_ID, - SYSDATE AS CREATION_TIME, - 100000000 AS PK_CREATOR, - #{pkCountry} AS PK_COUNTRY - FROM - AC_DECLARATION_GIFT_RECORD adgr - LEFT JOIN AC_DECLARATION_GIFT_CONFIG adgc ON adgr.PK_RULE_ID = adgc.PK_ID - LEFT JOIN AC_DECLARATION_GIFT_DETAIL adgd ON adgc.PK_ID = adgd.PK_RULE_ID - LEFT JOIN BD_PRODUCT bp ON adgd.PK_PRODUCT = bp.PK_ID - LEFT JOIN BD_PRODUCT_EXTEND bpe ON bp.PK_ID = bpe.PK_PRODUCT - LEFT JOIN SA_ORDER so ON adgr.ORDER_CODE = so.ORDER_CODE - WHERE - adgr.SYNC_STATUS = 0 - OR adgr.SYNC_STATUS = 2 - ) src ON ( + DECLARE + v_error_count NUMBER := 0; + BEGIN + BEGIN + MERGE INTO AC_PICK tgt + USING (SELECT adgr.PK_BASE_ID, + so.PK_CREATOR AS PK_MEMBER, + 32 AS PICK_TYPE, + adgd.PK_PRODUCT AS PK_DATA_ID, + adgd.SPECS_NAME, + adgd.SPECS_NAME_ID, + SUM(adgd.QUANTITY) AS USABLE_QUANTITY, + bp.COVER AS PICK_COVER, + 0 AS IS_FREE_MAIL, + 0 AS DEL_FLAG, + SUM(adgd.QUANTITY) AS BASE_QUANTITY, + SYSDATE AS CREATION_TIME, + 100000000 AS PK_CREATOR, + #{pkCountry} AS PK_COUNTRY + FROM AC_DECLARATION_GIFT_RECORD adgr + LEFT JOIN AC_DECLARATION_GIFT_CONFIG adgc ON adgr.PK_RULE_ID = adgc.PK_ID + LEFT JOIN AC_DECLARATION_GIFT_DETAIL adgd ON adgc.PK_ID = adgd.PK_RULE_ID + LEFT JOIN BD_PRODUCT bp ON adgd.PK_PRODUCT = bp.PK_ID + LEFT JOIN BD_PRODUCT_EXTEND bpe ON bp.PK_ID = bpe.PK_PRODUCT + LEFT JOIN SA_ORDER so ON adgr.ORDER_CODE = so.ORDER_CODE + WHERE adgr.SYNC_STATUS IN (0, 2) + GROUP BY adgr.PK_BASE_ID, + so.PK_CREATOR, + adgd.PK_PRODUCT, + adgd.SPECS_NAME, + adgd.SPECS_NAME_ID, + bp.COVER) src + ON ( tgt.PICK_TYPE = src.PICK_TYPE - AND tgt.PK_BASE_CONFIG = src.PK_BASE_CONFIG AND tgt.PK_DATA_ID = src.PK_DATA_ID AND tgt.SPECS_NAME = src.SPECS_NAME AND tgt.SPECS_NAME_ID = src.SPECS_NAME_ID AND tgt.PK_BASE_ID = src.PK_BASE_ID AND tgt.DEL_FLAG = src.DEL_FLAG ) - WHEN MATCHED THEN - UPDATE - SET tgt.USABLE_QUANTITY = tgt.USABLE_QUANTITY + src.USABLE_QUANTITY, - tgt.MODIFIED_TIME = SYSDATE, - tgt.PK_MODIFIED = src.PK_CREATOR - WHEN NOT MATCHED THEN - INSERT ( - PK_ID, - PK_MEMBER, - PICK_TYPE, - PK_BASE_CONFIG, - PK_DATA_ID, - SPECS_NAME, - SPECS_NAME_ID, - USABLE_QUANTITY, - PICK_COVER, - IS_FREE_MAIL, - DEL_FLAG, - BASE_QUANTITY, - PK_BASE_ID, - CREATION_TIME, - PK_CREATOR, - PK_COUNTRY - ) - VALUES - ( - AC_PICK_SEQ.NEXTVAL, - src.PK_MEMBER, - src.PICK_TYPE, - src.PK_BASE_CONFIG, - src.PK_DATA_ID, - src.SPECS_NAME, - src.SPECS_NAME_ID, - src.USABLE_QUANTITY, - src.PICK_COVER, - src.IS_FREE_MAIL, - src.DEL_FLAG, - src.BASE_QUANTITY, - src.PK_BASE_ID, - src.CREATION_TIME, - 100000000, - src.PK_COUNTRY - ); - UPDATE AC_DECLARATION_GIFT_RECORD - SET SYNC_STATUS = 1 - WHERE - SYNC_STATUS = 0 - OR SYNC_STATUS = 2; - EXCEPTION - WHEN OTHERS THEN - v_error_count := SQL % ROWCOUNT; - UPDATE AC_DECLARATION_GIFT_RECORD - SET SYNC_STATUS = 2 - WHERE - SYNC_STATUS = 0 - OR SYNC_STATUS = 2; - END; - INSERT INTO AC_PICK_LOG (PK_ID, PK_PICK, PK_USER, QUANTITY, PK_COUNTRY) SELECT - AC_PICK_LOG_SEQ.NEXTVAL, - p.PK_ID, - p.PK_CREATOR, - p.USABLE_QUANTITY, - p.PK_COUNTRY - FROM - AC_PICK p - WHERE - TRUNC(p.CREATION_TIME) = TRUNC(SYSDATE) - OR TRUNC(p.MODIFIED_TIME) = TRUNC(SYSDATE); - COMMIT; - END; + WHEN MATCHED THEN + UPDATE SET + tgt.USABLE_QUANTITY = tgt.USABLE_QUANTITY + src.USABLE_QUANTITY, + tgt.MODIFIED_TIME = SYSDATE, + tgt.PK_MODIFIED = src.PK_CREATOR + WHEN NOT MATCHED THEN + INSERT ( + PK_ID, + PK_MEMBER, + PICK_TYPE, + PK_BASE_CONFIG, + PK_DATA_ID, + SPECS_NAME, + SPECS_NAME_ID, + USABLE_QUANTITY, + PICK_COVER, + IS_FREE_MAIL, + DEL_FLAG, + BASE_QUANTITY, + PK_BASE_ID, + CREATION_TIME, + PK_CREATOR, + PK_COUNTRY + ) + VALUES (AC_PICK_SEQ.NEXTVAL, + src.PK_MEMBER, + src.PICK_TYPE, + 0, + src.PK_DATA_ID, + src.SPECS_NAME, + src.SPECS_NAME_ID, + src.USABLE_QUANTITY, + src.PICK_COVER, + src.IS_FREE_MAIL, + src.DEL_FLAG, + src.BASE_QUANTITY, + src.PK_BASE_ID, + src.CREATION_TIME, + src.PK_CREATOR, + src.PK_COUNTRY); + + UPDATE AC_DECLARATION_GIFT_RECORD + SET SYNC_STATUS = 1 + WHERE SYNC_STATUS IN (0, 2); + + EXCEPTION + WHEN OTHERS THEN + v_error_count := SQL%ROWCOUNT; + UPDATE AC_DECLARATION_GIFT_RECORD + SET SYNC_STATUS = 2 + WHERE SYNC_STATUS IN (0, 2); + END; + + INSERT INTO AC_PICK_LOG (PK_ID, PK_PICK, PK_USER, QUANTITY, PK_COUNTRY) + SELECT AC_PICK_LOG_SEQ.NEXTVAL, + p.PK_ID, + p.PK_CREATOR, + p.USABLE_QUANTITY, + p.PK_COUNTRY + FROM AC_PICK p + WHERE TRUNC(p.CREATION_TIME) = TRUNC(SYSDATE) + OR TRUNC(p.MODIFIED_TIME) = TRUNC(SYSDATE); + + COMMIT; + END;