瀏覽代碼

商旅同步

wanghaiwu 1 月之前
父節點
當前提交
6d941aa825

+ 3 - 1
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/business/DiDiTripDailyVehicleBillCusInvoke.java

@@ -23,7 +23,9 @@ import java.util.HashMap;
 import java.util.Map;
 
 /**
- * 滴滴用车申请
+ * 滴滴用车申请,全复制的7.0.1的标准源码后改造
+ * @author wanghaiwu_kd
+ * @date 2025/06/16
  */
 public class DiDiTripDailyVehicleBillCusInvoke extends DiDiTripDailyVehicleBillInvoke {
     private static final Log logger = LogFactory.getLog(DiDiTripDailyVehicleBillCusInvoke.class);

+ 29 - 6
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/business/DiDiTripOrgCusInvoke.java

@@ -6,6 +6,7 @@ import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.resource.ResManager;
 import kd.bos.logging.Log;
 import kd.bos.logging.LogFactory;
+import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.fi.er.business.trip.model.TripSyncDataMappingModel;
@@ -22,7 +23,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
- * 滴滴-同步组织
+ * 滴滴-同步组织,全复制的7.0.8的标准源码后改造
  * @author wanghaiwu_kd
  * @date 2025/06/16
  */
@@ -68,7 +69,7 @@ public class DiDiTripOrgCusInvoke extends AbstractOrgInvoke<Set<JSONObject>> {
             String access_token = DiDiServiceUtil.getCacheToken(new Date());
             logger.info("Line 76 access_token{}", access_token);
             if (access_token == null) {
-                this.tripSyncLogParam.setMessage(ResManager.loadKDString("商旅集成,获取滴滴token为空,请检查配置。", "DiDiTripOrgInvoke_1", "fi-er-business", new Object[0]));
+                this.tripSyncLogParam.setMessage(ResManager.loadKDString("商旅集成,获取滴滴Token为空,请检查配置。", "DiDiTripOrgInvoke_1", "fi-er-business", new Object[0]));
                 this.tripSyncLogParam.setStatus("B");
                 return null;
             } else {
@@ -86,7 +87,6 @@ public class DiDiTripOrgCusInvoke extends AbstractOrgInvoke<Set<JSONObject>> {
                 Arrays.stream(orgDOs).forEach((orgDO) -> {
                     String name = orgDO.getString("fullname");
                     String out_budget_id = String.valueOf(orgDO.getLong("org.id"));
-                    String parent_id = String.valueOf(orgDO.getLong("parent.id"));
 
                     HashMap<String, Object> signMap = new HashMap();
                     signMap.put("client_id", client_id);
@@ -99,8 +99,9 @@ public class DiDiTripOrgCusInvoke extends AbstractOrgInvoke<Set<JSONObject>> {
                     signMap.put("name", name);
                     signMap.put("out_budget_id", String.valueOf(out_budget_id));
 
-                    //二开,增加上级同步
-                    signMap.put("parent_id", String.valueOf(parent_id));
+                    //二开,增加上级同步,获取上级组织ID映射的DiDi组织ID
+                    String parentId_DiDi = getDiDiOrgId(orgDO.getLong("parent.id"));
+                    signMap.put("parent_id", String.valueOf(parentId_DiDi));
 
                     String signKey = (String)supplierMap.get("reservedfield1");
                     String addDeptSign = DiDiServiceUtil.genSign(signMap, signKey);
@@ -144,7 +145,7 @@ public class DiDiTripOrgCusInvoke extends AbstractOrgInvoke<Set<JSONObject>> {
                 String url = "";
                 switch (syncKey) {
                     case "add":
-                        url = (String) ExternalConstants.DIDIURLMAP.get("BudgetCenterAddKey");
+                        url = (String)ExternalConstants.DIDIURLMAP.get("BudgetCenterAddKey");
                         break;
                     case "edit":
                         url = (String)ExternalConstants.DIDIURLMAP.get("BudgetCenterEditKey");
@@ -177,4 +178,26 @@ public class DiDiTripOrgCusInvoke extends AbstractOrgInvoke<Set<JSONObject>> {
             return code;
         }
     }
+
+    /**
+     * 根据星瀚组织ID查询映射的DiDi组织ID
+     * @param orgId
+     * @return
+     */
+    private String getDiDiOrgId(Long orgId){
+        String didiOrgId = "";
+
+        if(orgId > 0L){
+            QFilter qFilter = new QFilter("server", QCP.equals, "DIDI");
+            qFilter.and(new QFilter("datatype", QCP.equals, "bos_org"));
+            qFilter.and(new QFilter("innerdataid", QCP.equals, orgId));
+
+            DynamicObject mappingInfo = BusinessDataServiceHelper.loadSingle("er_tripsync_datamapping", qFilter.toArray());
+            if(mappingInfo != null){
+                didiOrgId = mappingInfo.getString("outdataid");
+            }
+        }
+
+        return didiOrgId;
+    }
 }

+ 1 - 1
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/business/DiDiTripUserCusInvoke.java

@@ -49,7 +49,7 @@ import kd.hrmp.hrpi.business.infrastructure.utils.QFilterUtil;
 import org.apache.commons.lang3.StringUtils;
 
 /**
- * 滴滴人员同步
+ * 滴滴人员同步,全复制的7.0.8的标准源码后改造
  * @author wanghaiwu_kd
  * @date 2025/06/05
  */

+ 3 - 1
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/business/DtgTripCusPlugin.java

@@ -12,7 +12,9 @@ import kd.hrmp.hrpi.business.infrastructure.utils.QFilterUtil;
 import java.util.Map;
 
 /**
- * 商旅字段映射,同程人员同步
+ * 商旅字段映射插件,同程人员同步,获取职等
+ * @author wanghaiwu_kd
+ * @date 2025/06/17
  */
 public class DtgTripCusPlugin {
     private static final Log logger = LogFactory.getLog(DtgTripCusPlugin.class);