From ad7d1f5580a22deb00d3b0b4a7b2566ed78f11bb Mon Sep 17 00:00:00 2001 From: YXY <932687738@qq.com> Date: Wed, 18 Oct 2023 17:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E8=B4=A7=E5=8D=95=E7=9B=91=E5=90=AC?= =?UTF-8?q?=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/enums/CjtCallBackOperateEnum.java | 11 ++ .../cjt/SaleDeliverySyncCallBackOperate.java | 135 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/cjt/SaleDeliverySyncCallBackOperate.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CjtCallBackOperateEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/CjtCallBackOperateEnum.java index a7bd3f4..329d309 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/CjtCallBackOperateEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/CjtCallBackOperateEnum.java @@ -9,6 +9,17 @@ public enum CjtCallBackOperateEnum { /** * */ + PURCHASE_ARRIVAL_ORDER_CREATE("PuArrival_Create", "新增进货单",AppType.SYNC_CJT_PURCHASE_ARRIVAL_ORDER_DATA_TO_MULTI_TABLE.getCode()), + PURCHASE_ARRIVAL_ORDER_UPDATE("PuArrival_Update", "修改进货单",AppType.SYNC_CJT_PURCHASE_ARRIVAL_ORDER_DATA_TO_MULTI_TABLE.getCode()), + PURCHASE_ARRIVAL_ORDER_DELETE("PuArrival_Delete", "删除进货单",AppType.SYNC_CJT_PURCHASE_ARRIVAL_ORDER_DATA_TO_MULTI_TABLE.getCode()), + + PURCHASE_ORDER_CREATE("PurchaseOrder_Create", "新增采购订单",AppType.SYNC_CJT_PURCHASE_ORDER_DATA_TO_MULTI_TABLE.getCode()), + PURCHASE_ORDER_UPDATE("PurchaseOrder_Update", "修改采购订单",AppType.SYNC_CJT_PURCHASE_ORDER_DATA_TO_MULTI_TABLE.getCode()), + PURCHASE_ORDER_DELETE("PurchaseOrder_Delete", "删除采购订单",AppType.SYNC_CJT_PURCHASE_ORDER_DATA_TO_MULTI_TABLE.getCode()), + + SALE_DELIVERY_CREATE("SaleDelivery_Create", "新增销货单",AppType.SYNC_CJT_SALE_DELIVERY_DATA_TO_MULTI_TABLE.getCode()), + SALE_DELIVERY_UPDATE("SaleDelivery_Create", "修改销货单",AppType.SYNC_CJT_SALE_DELIVERY_DATA_TO_MULTI_TABLE.getCode()), + SALE_DELIVERY_DELETE("SaleDelivery_Create", "删除销货单",AppType.SYNC_CJT_SALE_DELIVERY_DATA_TO_MULTI_TABLE.getCode()), SALE_DISPATCH_CREATE("SaleDispatchVoucher_Create", "新增销售出库单",AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.getCode()), SALE_DISPATCH_UPDATE("SaleDispatchVoucher_Update", "修改销售出库单",AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.getCode()), SALE_DISPATCH_DELETE("SaleDispatchVoucher_Delete", "删除销售出库单",AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.getCode()), diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/cjt/SaleDeliverySyncCallBackOperate.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/cjt/SaleDeliverySyncCallBackOperate.java new file mode 100644 index 0000000..5ee5f41 --- /dev/null +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/cjt/SaleDeliverySyncCallBackOperate.java @@ -0,0 +1,135 @@ +package com.ruoyi.flyingbook.strategy.cjt; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.enums.CjtAccountEnum; +import com.ruoyi.common.enums.CjtCallBackOperateEnum; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.flyingbook.domain.edi.CJTEdiCallbackRequestVo; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * 销货单 + * + * @author yuxiangyong + * @create 2023-07-17 21:21 + */ +@Component("saleDeliverySyncCallBackOperate") +public class SaleDeliverySyncCallBackOperate extends CJTOperateCallBackAbstract { + @Override + protected void syncRecord(CJTEdiCallbackRequestVo req, JSONObject returnBody) { + CjtCallBackOperateEnum msgTypeEnum = req.getMsgTypeEnum(); + switch (msgTypeEnum) { + case SALE_DELIVERY_CREATE: + addRecord(req, returnBody); + break; + case SALE_DELIVERY_UPDATE: + updateRecord(req,returnBody); + break; + case SALE_DELIVERY_DELETE: + deleteRecord(req); + break; + default: + break; + } + } + + + @Override + protected String buildUniqueKey(String toTableId, JSONObject header, JSONObject detail,CjtAccountEnum cjtAccountEnum) { + StringBuilder sb = new StringBuilder(); + if (cjtAccountEnum.getCode().equals(CjtAccountEnum.TWO.getCode())){ + sb.append(header.get("Code")).append("_"); + sb.append(detail.get("SaleOrderCode")).append("_"); + JSONObject inventory = detail.getJSONObject("Inventory"); + if (inventory == null) { + sb.append("null").append("_"); + } else { + sb.append(inventory.get("Code")).append("_"); + } + sb.append(detail.get("Quantity")).append("_"); + sb.append(header.get("Memo")).append("_"); + sb.append(detail.get("DetailMemo")); + }else { + sb.append(header.get("Code")).append("_"); + JSONObject inventory = detail.getJSONObject("Inventory"); + if (inventory == null) { + sb.append("null").append("_"); + } else { + sb.append(inventory.get("Code")).append("_"); + } + sb.append(detail.get("Quantity")).append("_"); + sb.append(detail.get("DetailMemo")); + } + return sb.toString(); + } + + + @Override + protected Map buildLarkBody(JSONObject header, JSONObject detail, CjtAccountEnum cjtAccountEnum) { + Map body = new HashMap<>(); + body.put("单据编号", header.getString("Code")); + JSONObject customer = header.getJSONObject("Customer"); + if (customer != null){ + body.put("客户", customer.getString("Name")); + } + JSONObject businessType = header.getJSONObject("BusinessType"); + if (businessType != null){ + body.put("业务类型", businessType.getString("Name")); + } + body.put("创建时间", System.currentTimeMillis()); + body.put("审核时间", DateUtils.str2long(header.getString("AuditedDate"), DateUtils.YYYY_MM_DD)); + body.put("单据日期", DateUtils.str2long(header.getString("VoucherDate"), DateUtils.YYYY_MM_DD)); + body.put("销售订单号", detail.getString("SaleOrderCode")); + + JSONObject inventory = detail.getJSONObject("Inventory"); + if (inventory != null){ + body.put("存货编码", inventory.getString("Code")); + body.put("存货", inventory.getString("Name")); + body.put("规格型号", inventory.getString("Specification")); + } + body.put("钢板面", getSpecialKey(detail, "pubuserdefnvc1")); + + JSONObject unit = detail.getJSONObject("Unit"); + if (unit != null){ + body.put("销售单位", unit.getString("Name")); + } + body.put("数量", detail.getDoubleValue("Quantity")); + body.put("金额", detail.getDoubleValue("OrigDiscountAmount")); + body.put("备注1", header.getString("Memo")); + body.put("明细备注", detail.getString("DetailMemo")); + switch (cjtAccountEnum) { + case ONE: + break; + case TWO: + JSONObject warehouse = detail.getJSONObject("Warehouse"); + if (warehouse != null){ + body.put("仓库", warehouse.getString("Name")); + } + break; + } + return body; + } + + @Override + protected String getRequestUrl() { + return REQUEST_ROOT_PATH + "/tplus/api/v2/SaleDeliveryOpenApi/GetVoucherDTO"; + } + + @Override + protected String getMethodUrl() { + return REQUEST_ROOT_PATH + "/tplus/api/v2/SaleDeliveryOpenApi/FindVoucherList"; + } + + @Override + protected String getDetailName() { + return "SaleDeliveryDetails"; + } + + + + + +}