Ver código fonte

基础信息修复

CRK 1 dia atrás
pai
commit
1aacfeb3ba

+ 32 - 32
mjava-wlh3tok3/src/main/java/com/malk/schedule/InventorySyncTask.java

@@ -203,10 +203,10 @@ public class InventorySyncTask {
     /**
      * 每30分钟全量同步一次金蝶库存汇总到氚云分仓库存表
      */
-//    @Scheduled(cron = "0 0/30 * * * ?")
-//    public void syncKingdeeInventorySumToH3yun() {
-//        executeKingdeeInventorySync();
-//    }
+    @Scheduled(cron = "0 0/30 * * * ?")
+    public void syncKingdeeInventorySumToH3yun() {
+        executeKingdeeInventorySync();
+    }
 
     /**
      * 每60分钟全量同步一次金蝶银行行名行号到氚云表
@@ -216,32 +216,32 @@ public class InventorySyncTask {
 //        executeKingdeeBankSync();
 //    }
 
-//    private void executeKingdeeInventorySync() {
-//        log.info("开始执行金蝶库存汇总同步任务");
-//        try {
-//            Map<String, Object> result = syncService.syncKingdeeInventorySumToH3yun();
-//            log.info("金蝶库存汇总同步完成, result: {}", JSONObject.toJSONString(result));
-//        } catch (Exception e) {
-//            log.error("执行金蝶库存汇总同步任务异常", e);
-//        }
-//    }
-//
-//    /**
-//     * 应用启动完成后立即执行一次金蝶银行行名行号同步
-//     */
-//    @EventListener(ApplicationReadyEvent.class)
-//    public void runBankSyncOnStartup() {
-//        log.info("应用启动完成,立即执行一次金蝶银行行名行号同步任务");
-//        executeKingdeeBankSync();
-//    }
-//
-//    private void executeKingdeeBankSync() {
-//        log.info("开始执行金蝶银行行名行号同步任务");
-//        try {
-//            Map<String, Object> result = syncService.syncKingdeeBankListToH3yun();
-//            log.info("金蝶银行行名行号同步完成, result: {}", JSONObject.toJSONString(result));
-//        } catch (Exception e) {
-//            log.error("执行金蝶银行行名行号同步任务异常", e);
-//        }
-//    }
+    private void executeKingdeeInventorySync() {
+        log.info("开始执行金蝶库存汇总同步任务");
+        try {
+            Map<String, Object> result = syncService.syncKingdeeInventorySumToH3yun();
+            log.info("金蝶库存汇总同步完成, result: {}", JSONObject.toJSONString(result));
+        } catch (Exception e) {
+            log.error("执行金蝶库存汇总同步任务异常", e);
+        }
+    }
+
+    /**
+     * 应用启动完成后立即执行一次金蝶银行行名行号同步
+     */
+    @EventListener(ApplicationReadyEvent.class)
+    public void runBankSyncOnStartup() {
+        log.info("应用启动完成,立即执行一次金蝶银行行名行号同步任务");
+        executeKingdeeBankSync();
+    }
+
+    private void executeKingdeeBankSync() {
+        log.info("开始执行金蝶银行行名行号同步任务");
+        try {
+            Map<String, Object> result = syncService.syncKingdeeBankListToH3yun();
+            log.info("金蝶银行行名行号同步完成, result: {}", JSONObject.toJSONString(result));
+        } catch (Exception e) {
+            log.error("执行金蝶银行行名行号同步任务异常", e);
+        }
+    }
 }

+ 19 - 3
mjava-wlh3tok3/src/main/java/com/malk/service/h3yun/H3yunService.java

@@ -819,6 +819,15 @@ public class H3yunService {
             formData.put("F0000055", biztype.getString("name")); // 业务类型
         }
 
+
+//币别
+        JSONObject currency = webhookData.getJSONObject("currency");
+        String currencynumber = currency != null ? currency.getString("number") : null;
+        String currencyid = this.getObjectIdByFieldValue("D293655f08d8524a8254d35b3681ea527ce2c59", "F0000001", currencynumber);
+        formData.put("F0000068", currencyid);
+
+
+
         // 5. 明细行数据
         JSONArray billentry = webhookData.getJSONArray("billentry");
         List<Map<String, Object>> detailList = new ArrayList<>();
@@ -844,9 +853,10 @@ public class H3yunService {
                 String srcbillnumber = entry.getString("srcbillnumber");
                 if (srcbillnumber != null && !srcbillnumber.isEmpty()) {
                     detail.put("F0000059", this.getObjectIdByFieldValue("D293655sv9ijeqmiakgclnrk7cwq", "SeqNo", srcbillnumber));
-                    detail.put("F0000063", srcbillnumber);
-                }
 
+                }
+                detail.put("F0000063", entry.getString("al95_1"));//明细-原始单号
+                detail.put("F0000064", entry.getString("al95_"));//明细-订单号
                 // 5.3 数量
                 Double qty = entry.getDouble("qty");
                 detail.put("F0000031", qty != null ? qty : 0);
@@ -866,7 +876,13 @@ public class H3yunService {
                     String warehouseNumber = warehouse.getString("number");
                     detail.put("F0000060", this.getObjectIdByFieldValue("D293655scvrhqr64jemxdkqk6gf", "SeqNo", warehouseNumber));
                 }
-
+                //税率
+                JSONObject taxrateid = entry.getJSONObject("taxrateid");
+                String taxrateidnumber = taxrateid != null ? taxrateid.getString("number") : null;
+                String taxrateidid = this.getObjectIdByFieldValue("D293655sl91vt6h8d0qg1heqw5aq", "F0000001", taxrateidnumber);
+                detail.put("F0000065", taxrateidid);
+                detail.put("F0000066", entry.getDouble("priceandtax"));//含税单价
+                detail.put("F0000067", entry.getDouble("curamountandtax"));//含税金额
                 detailList.add(detail);
             }
         }

+ 38 - 5
mjava-wlh3tok3/src/main/java/com/malk/service/sync/SyncService.java

@@ -17,6 +17,8 @@ import org.springframework.stereotype.Service;
 import cn.hutool.core.util.StrUtil;
 
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -1841,6 +1843,7 @@ public class SyncService {
         receiveNotice.put("billstatus", "C");//单据状态
         receiveNotice.put("biztime", formatDate(bizData.getString("F0000024"))); // 业务日期
         receiveNotice.put("bookdate", formatDate(bizData.getString("F0000040"))); // 记账日期
+        receiveNotice.put("auditdate", LocalDateTime.now().plusSeconds(10).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); // 审核日期(当前时间)
         receiveNotice.put("exchangerate", "1");//汇率
         receiveNotice.put("istax", "true");//含税
         receiveNotice.put("exratedate", new SimpleDateFormat("yyyy-MM-dd").format(new Date())); // 汇率日期(取今天)
@@ -2292,6 +2295,7 @@ public class SyncService {
         returnRequest.put("org_number", h3yunService.getFieldValueById(
                 "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000018"), "F0000002")); // 销售组织.编码
 
+        returnRequest.put("istax", true);//含税
         returnRequest.put("biztype_number", "2101"); //业务类型.编码  物料类销售退货-2101
         returnRequest.put("settlecurrency_number", h3yunService.getFieldValueById(
                 "D293655f08d8524a8254d35b3681ea527ce2c59", bizData.getString("F0000025"), "F0000001")); // 结算币别.货币代码
@@ -2335,10 +2339,27 @@ public class SyncService {
                         "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000049"), "F0000002")); // 库存组织.编码
                 entry.put("entrysettleorg_number", h3yunService.getFieldValueById(
                         "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000049"), "F0000002")); // 结算组织.编码
-
-                entry.put("al95_", entryData.getString("F0000069"));//物料明细.明细-订单号
                 entry.put("al95_1", entryData.getString("F0000068"));
                 ;//物料明细.明细-原始单号
+                entry.put("al95_", entryData.getString("F0000069"));//物料明细.明细-订单号
+
+
+                entry.put("entrysettleorg_number", h3yunService.getFieldValueById(
+                        "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000049"), "F0000002")); // 结算组织.编码
+                entry.put("entrysettleorg_number", h3yunService.getFieldValueById(
+                        "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000049"), "F0000002")); // 结算组织.编码
+                entry.put("entrysettleorg_number", h3yunService.getFieldValueById(
+                        "D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000049"), "F0000002")); // 结算组织.编码
+
+                //  entry.put("price", entryData.getDouble("F0000062"));//
+                entry.put("priceandtax", entryData.getDouble("F0000071"));//
+//税率
+                entry.put("taxrateid_number", h3yunService.getFieldValueById(
+                        "D293655sl91vt6h8d0qg1heqw5aq", entryData.getString("F0000070"), "F0000001"));//税率
+
+
+                entry.put("warehouse_number", h3yunService.getFieldValueById(
+                        "D293655scvrhqr64jemxdkqk6gf", entryData.getString("F0000062"), "SeqNo"));//仓库
 
 
                 //退货申请单关联销售出库单
@@ -2359,6 +2380,8 @@ public class SyncService {
                 entry.put("mainbillnumber", ida);
                 entry.put("mainbillentryid", h3yunService.getFieldValueById(
                         "D293655suomjudbplkoxrgs42dqj", bizData.getString("F0000058"), "F0000053"));//物料明细.来源单据编号
+
+
                 List<Map<String, Object>> lkList = new ArrayList<>();
                 Map<String, Object> lkEntry = new LinkedHashMap<>();
                 lkEntry.put("billentry_lk_stableid", "602924300688717826");
@@ -2883,6 +2906,13 @@ public class SyncService {
                         "D29365523b214414c2b4e50b9bdca110a9a5951", bizData.getString("F0000060"), "K3id"));//销售订单主表ID
                 entry.put("e_corebillentryid", id);//销售订单应付行明细ID
 
+                entry.put("mainbillentity", "sm_salorder");
+                entry.put("mainbillid", h3yunService.getFieldValueById(
+                        "D29365523b214414c2b4e50b9bdca110a9a5951", bizData.getString("F0000060"), "K3id"));
+                entry.put("mainbillentryid", id);
+                entry.put("mainbillnumber", h3yunService.getFieldValueById(
+                        "D29365523b214414c2b4e50b9bdca110a9a5951", bizData.getString("F0000060"), "SeqNo"));//物料明细.来源单据编号
+
                 List<Map<String, Object>> lkList = new ArrayList<>();
                 Map<String, Object> lkEntry = new LinkedHashMap<>();
                 lkEntry.put("entry_lk_stableid", "602924332909361152");
@@ -2916,6 +2946,9 @@ public class SyncService {
         // 头部信息
         invoiceApply.put("billno", bizData.getString("SeqNo")); // 单据编号
         invoiceApply.put("trdbillno", bizData.getString("SeqNo"));//第三方业务编码(防止重复新增,每次新增需要传入唯一值)
+         invoiceApply.put("istax", true);//含税
+
+
         invoiceApply.put("billtype_number", "arfin_standard_BT_S");//单据类型.编码(arfin_borrowar_BT_S-应收款项调整、arfin_other_BT_S-其他应收、arfin_project_BT_S-项目应收、arfin_salefee_BT_S-销售费用应收、arfin_sersal_BT_S-服务销售应收、arfin_standard_BT_S-标准销售应收、arfin_transfer_BT_S-资产调拨应收)
         invoiceApply.put("org_number", h3yunService.getFieldValueById("D29365537feb4e5e8644b21b7fd938dd322dab3", bizData.getString("F0000003"), "F0000002")); // 结算组织.编码
         invoiceApply.put("bizdate", formatDate(bizData.getString("F0000005"))); // 业务日期
@@ -2962,12 +2995,12 @@ public class SyncService {
                 Map<String, Object> entry = new LinkedHashMap<>();
 
                 entry.put("e_quantity", entryData.getDouble("F0000022")); // 数量
-                entry.put("e_unitprice", entryData.getDouble("F0000027")); // 单价
-                // entry.put("e_unitprice", entryData.getDouble("F0000027")); // 含税单价
+               entry.put("e_taxunitprice", entryData.getDouble("F0000027")); //  含税单价
+                //      entry.put("e_unitprice", entryData.getDouble("F0000027")); // 含税单价
                 entry.put("e_amount", entryData.getDouble("F0000028")); // 金额
                 entry.put("e_discountmode", "NULL"); // 明细.折扣方式 PERCENT:折扣率(%), PERUNIT:单位折扣额, NULL:无, TOTAL:固定折扣额
 
-
+                entry.put("taxrateid_number", h3yunService.getFieldValueById("D293655sl91vt6h8d0qg1heqw5aq", entryData.getString("F0000033"), "F0000001"));
                 entry.put("e_material_number", entryData.getString("F0000026")); // 物料编码