|
@@ -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);
|
|
|
}
|