Browse Source

滴滴出差申请

wanghaiwu 2 weeks ago
parent
commit
b37a92dfbe

+ 43 - 28
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/business/DiDiTripReqBillCusInvoke.java

@@ -5,6 +5,16 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.google.common.collect.Lists;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
 import kd.bos.context.RequestContext;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.dataentity.entity.DynamicObjectCollection;
@@ -19,7 +29,11 @@ import kd.bos.util.CollectionUtils;
 import kd.fi.er.business.servicehelper.HttpRetryServiceHelper;
 import kd.fi.er.business.trip.exception.TripSyncLogParam;
 import kd.fi.er.business.trip.exception.TripSyncLogUtils;
-import kd.fi.er.business.trip.model.*;
+import kd.fi.er.business.trip.model.DailyVehicleBillModel;
+import kd.fi.er.business.trip.model.JourneyModel;
+import kd.fi.er.business.trip.model.MulwaytoModel;
+import kd.fi.er.business.trip.model.TripReqbillModel;
+import kd.fi.er.business.trip.model.TripSyncDataMappingModel;
 import kd.fi.er.business.trip.service.function.AbstractTripReqBillInvoke;
 import kd.fi.er.business.trip.supplier.Supplier;
 import kd.fi.er.business.trip.supplier.didi.systemexternal.DiDiServiceUtil;
@@ -30,12 +44,11 @@ import kd.fi.er.business.trip.util.TripSyncConfigUtil;
 import kd.fi.er.business.trip.util.TripSyncDataMappingUtil;
 import kd.fi.er.common.ExternalConstants;
 import org.apache.commons.lang.StringUtils;
-import java.util.*;
-import java.util.stream.Collectors;
 
 /**
- * 未启用
- * 滴滴-同步出差申请
+ * 滴滴-出差申请,全复制的7.0.8的标准源码后改造
+ * @author wanghaiwu_kd
+ * @date 2025/06/16
  */
 public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObject> {
     private static final Log logger = LogFactory.getLog(DiDiTripReqBillCusInvoke.class);
@@ -110,10 +123,10 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                 signMap.put("approval_type", approval_type);
                 signMap.put("reason", reason.trim());
                 JSONObject travelDetailInfo = this.converTravelDetailInfo(reqbill);
-                signMap.put("travel_detail", gbEncoding(travelDetailInfo.toString()));
+                signMap.put("travel_detail", travelDetailInfo.toString());
                 signMap.put("timestamp", timestamp);
                 JSONArray companions = this.setCompanions(reqbill);
-                signMap.put("passenger_list", gbEncoding(companions.toString()));
+                signMap.put("passenger_list", companions.toString());
                 JSONObject tripReqObj = new JSONObject();
                 if (updateFlag) {
                     QFilter updateFilter = new QFilter("server", "=", this.supplier());
@@ -259,9 +272,9 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
 
     private JSONArray getTrips(JSONArray trips, List<JourneyModel> tripentryList, Map<String, Object> paramMap) {
         int dtrip_to_citys = TripSyncConfigUtil.getIntValue("dtrip_to_citys", 0);
-        JSONObject tripObj;
+
         if (dtrip_to_citys == 1) {
-            tripObj = new JSONObject();
+            JSONObject tripObj = new JSONObject();
             if (tripentryList == null || tripentryList.size() == 0) {
                 logger.info("商旅集成,滴滴出差申请单,tripentryList为空");
                 return trips;
@@ -272,12 +285,12 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
             tripObj.put("departure_city_id", TripCityUtil.getDiDiCityId(tripentry.getFromCityID()).get(tripentry.getFromCityID()));
             tripObj.put("start_date", paramMap.get("start_date"));
             tripObj.put("end_date", paramMap.get("end_date"));
-            tripObj.put("trip_type", "0");
+            tripObj.put("trip_type", "1,2");
             tripObj.put("to_citys", this.getToCitys(tripentryList));
             trips.add(tripObj);
         } else {
             for(int i = 0; i < tripentryList.size(); ++i) {
-                tripObj = new JSONObject();
+                JSONObject tripObj = new JSONObject();
                 JourneyModel tripentry = (JourneyModel)tripentryList.get(i);
                 tripObj.put("departure_city_id", TripCityUtil.getDiDiCityId(tripentry.getFromCityID()).get(tripentry.getFromCityID()));
                 tripObj.put("destination_city_id", TripCityUtil.getDiDiCityId(tripentry.getToCityID()).get(tripentry.getToCityID()));
@@ -285,19 +298,19 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                 tripObj.put("destination_city", tripentry.getToCity());
                 tripObj.put("start_date", TripCommonUtil.date2TimeStamp(tripentry.getStartDate(), "yyyy-MM-dd"));
                 tripObj.put("end_date", TripCommonUtil.date2TimeStamp(tripentry.getEndDate(), "yyyy-MM-dd"));
-                tripObj.put("trip_type", "0");
+                tripObj.put("trip_type", "1,2");
                 trips.add(tripObj);
             }
 
             if (!trips.getJSONObject(0).getString("departure_city").equals(trips.getJSONObject(trips.size() - 1).getString("destination_city"))) {
-                tripObj = new JSONObject();
+                JSONObject tripObj = new JSONObject();
                 tripObj.put("departure_city_id", trips.getJSONObject(trips.size() - 1).getString("destination_city_id"));
                 tripObj.put("destination_city_id", trips.getJSONObject(0).getString("departure_city_id"));
                 tripObj.put("departure_city", trips.getJSONObject(trips.size() - 1).getString("destination_city"));
                 tripObj.put("destination_city", trips.getJSONObject(0).getString("departure_city"));
                 tripObj.put("start_date", trips.getJSONObject(trips.size() - 1).getString("end_date"));
                 tripObj.put("end_date", trips.getJSONObject(trips.size() - 1).getString("end_date"));
-                tripObj.put("trip_type", "0");
+                tripObj.put("trip_type", "1,2");
                 trips.add(tripObj);
             }
         }
@@ -329,7 +342,11 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                             JSONObject jsonObject = new JSONObject();
                             jsonObject.put("id", city.getLong("didicityid"));
                             jsonObject.put("name", admindivisionid.getString("name"));
-                            to_citys.add(jsonObject);
+
+                            //二开,增加判断,商旅城市中【滴滴城市id】有值的才推送
+                            if(city.get("didicityid") != null && city.getLong("didicityid") > 0L) {
+                                to_citys.add(jsonObject);
+                            }
                         }
                     }
 
@@ -411,7 +428,7 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
             switch ((String)this.getParams().get("syncStatus")) {
                 case "1":
                 case "3":
-                    url = (String) ExternalConstants.DIDIURLMAP.get("approvalAddKey");
+                    url = (String)ExternalConstants.DIDIURLMAP.get("approvalAddKey");
                     break;
                 case "2":
                     url = (String)ExternalConstants.DIDIURLMAP.get("approvalCancelKey");
@@ -424,8 +441,7 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
             JSONObject resultJsonObject = JSONObject.parseObject(result);
             List dataMappingList = new ArrayList();
             if (resultJsonObject != null && (resultJsonObject.getIntValue("errno") == 0 || resultJsonObject.getIntValue("errno") == 50506)) {
-                String outdataid;
-                if (resultJsonObject.getIntValue("errno") == 50506) {
+                 if (resultJsonObject.getIntValue("errno") == 50506) {
                     logger.info("didi update api");
                     String errmsg = resultJsonObject.getString("errmsg");
                     if (null == errmsg) {
@@ -438,11 +454,11 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                             return "300";
                         } else {
                             StringBuilder sb = new StringBuilder();
-                            char[] var24 = errmsg.toCharArray();
-                            int var26 = var24.length;
+                            char[] var23 = errmsg.toCharArray();
+                            int var25 = var23.length;
 
-                            for(int var12 = 0; var12 < var26; ++var12) {
-                                char c = var24[var12];
+                            for(int var12 = 0; var12 < var25; ++var12) {
+                                char c = var23[var12];
                                 if (Character.isDigit(c)) {
                                     sb.append(c);
                                 }
@@ -450,7 +466,7 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
 
                             this.dealData(jsonStr);
                             TripSyncDataMappingModel TripSyncDataMappingObj = new TripSyncDataMappingModel("er_tripreq", this.supplier());
-                            outdataid = sb.toString();
+                            String outdataid = sb.toString();
                             JSONObject reqJson = JSONObject.parseObject(jsonStr);
                             String out_approval_id = reqJson.getString("out_approval_id");
                             TripSyncDataMappingObj.setNumber(out_approval_id);
@@ -462,8 +478,7 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                             TripSyncLogParam updateTripSyncLogParam = new TripSyncLogParam(RequestContext.get().getTraceId(), this.supplier(), this.function());
                             String updateUrl = (String)ExternalConstants.DIDIURLMAP.get("approvalUpdateKey");
                             updateTripSyncLogParam.setRequestdata(updateValue);
-                            Object billId = this.getParams().get("billId");
-                            updateTripSyncLogParam.setBillno(String.valueOf(billId));
+                            updateTripSyncLogParam.setBillno(out_approval_id);
                             updateTripSyncLogParam.setRequesturl(updateUrl);
                             String updateResult = HttpRetryServiceHelper.PostData(updateUrl, updateJsonStr);
                             updateTripSyncLogParam.setResponsedata(updateResult);
@@ -484,9 +499,9 @@ public class DiDiTripReqBillCusInvoke extends AbstractTripReqBillInvoke<JSONObje
                         this.dealData(jsonStr);
                         TripSyncDataMappingModel TripSyncDataMappingObj = new TripSyncDataMappingModel("er_tripreq", this.supplier());
                         JSONObject data = JSON.parseObject(JSON.toJSONString(resultJsonObject.get("data")));
-                        outdataid = data.getString("approval_id");
-                        outdataid = JSON.parseObject(JSON.toJSONString(value)).getString("out_approval_id");
-                        TripSyncDataMappingObj.setNumber(outdataid);
+                        String outdataid = data.getString("approval_id");
+                        String billNo = JSON.parseObject(JSON.toJSONString(value)).getString("out_approval_id");
+                        TripSyncDataMappingObj.setNumber(billNo);
                         TripSyncDataMappingObj.setOutdataid(Long.parseLong(outdataid));
                         dataMappingList.add(TripSyncDataMappingObj);
                     }