提交人:邹江涛
提交时间:2025年12月18日 提交内容:主数据定时推送浪潮系统(增加推送条件和推送时间以及推送日志定制化选择)
This commit is contained in:
parent
e7235232d3
commit
51fcdf8d0c
|
|
@ -62,6 +62,8 @@ import java.nio.file.Path;
|
|||
import java.nio.file.Paths;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -1634,4 +1636,14 @@ public class ApiService {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String calculateTheDate(int days) {
|
||||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 获取当前日期的前两天
|
||||
LocalDate twoDaysAgo = currentDate.minusDays(days);
|
||||
// 格式化日期为 "yyyy-MM-dd"
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
return twoDaysAgo.format(formatter);
|
||||
}
|
||||
}
|
||||
|
|
@ -498,6 +498,9 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
|||
} else {
|
||||
billTypeCode = djlxbm;
|
||||
}
|
||||
// 记录日志选项()
|
||||
String shkdJrrzxx = dataEntity.getString("shkd_jrrzxx");
|
||||
resultMap.put("logOption", shkdJrrzxx);
|
||||
|
||||
DynamicObjectCollection shkd_heade = dataEntity.getDynamicObjectCollection("shkd_heade");
|
||||
for (DynamicObject dynamicObject : shkd_heade) {
|
||||
|
|
@ -518,142 +521,9 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
|||
this.getView().showTipNotification("未找到符合条件的数据");
|
||||
return;
|
||||
}
|
||||
|
||||
DynamicObjectCollection shkd_mapping = dataEntity.getDynamicObjectCollection("shkd_mapping");
|
||||
for (DynamicObject dynamicObject : shkd_mapping) {
|
||||
fieldList.add(dynamicObject.getString("shkd_jsonzdm"));
|
||||
String shkd_djzdms = dynamicObject.getString("shkd_djzdms");
|
||||
if ("".equals(shkd_djzdms)) {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), dynamicObject.getString("shkd_mrz"));
|
||||
} else if (shkd_djzdms.contains(".")) {
|
||||
//拆分.前面的字符串和后面的字符串
|
||||
String[] split = shkd_djzdms.split("\\.");
|
||||
DynamicObject split0 = billObject.getDynamicObject(split[0]);
|
||||
if (split0 == null) {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "");
|
||||
} else {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), split0.get(split[1]).toString());
|
||||
}
|
||||
} else if ("YHLB".equals(shkd_djzdms)) {//银行 → 银行类别
|
||||
String name = billObject.getString("name");
|
||||
String number = billObject.getString("number");
|
||||
DynamicObject bankCate = BankCateHelper.findBankCate(name, number);
|
||||
if (bankCate == null) {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "");
|
||||
} else {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), bankCate.get("name"));
|
||||
}
|
||||
|
||||
} else if ("JSFSLB".equals(shkd_djzdms)) {
|
||||
// 获取XXX字段值,这里获取到的是value,而不是key
|
||||
String value = billObject.getString("settlementtype");
|
||||
MainEntityType dataEntityType = (MainEntityType) billObject.getDataEntityType();
|
||||
// 获取所有实体字段集合
|
||||
DataEntityPropertyCollection properties = dataEntityType.getProperties();
|
||||
// 获取所有字段数据模型
|
||||
ComboProp comboUnitProp = (ComboProp) properties.get("settlementtype");
|
||||
// 根据下拉列表的value获取到key
|
||||
String key = comboUnitProp.getItemByName(value);
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key);
|
||||
} else if ("ZHXZ".equals(shkd_djzdms)) {//账户查询 → 账户性质
|
||||
String value = billObject.getString("acctstyle");
|
||||
String key = "";
|
||||
switch (value) {
|
||||
case "basic"://基本存款户
|
||||
key = "001";
|
||||
break;
|
||||
case "normal"://一般存款户
|
||||
key = "002";
|
||||
break;
|
||||
case "temp"://临时存款户
|
||||
key = "003";
|
||||
break;
|
||||
case "spcl"://专用存款户
|
||||
key = "004";
|
||||
break;
|
||||
case "fgn_curr"://其他存款户
|
||||
key = "005";
|
||||
break;
|
||||
case "D06"://保证金账户
|
||||
key = "006";
|
||||
break;
|
||||
}
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key);
|
||||
} else if ("ZHZT".equals(shkd_djzdms)) {//账户查询 → 账户状态
|
||||
String value = billObject.getString("acctstatus");
|
||||
String key = "";
|
||||
switch (value) {
|
||||
case "normal"://正常
|
||||
key = "2";
|
||||
break;
|
||||
case "closed"://已销户
|
||||
key = "4";
|
||||
break;
|
||||
}
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key);
|
||||
} else if ("ZLKTZT".equals(shkd_djzdms)) {//账户查询 → 开通直连状态
|
||||
String value = billObject.getString("acctstatus");
|
||||
String key = "";
|
||||
switch (value) {
|
||||
case "normal"://正常
|
||||
key = "2";
|
||||
break;
|
||||
case "closed"://已销户
|
||||
key = "4";
|
||||
break;
|
||||
}
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key);
|
||||
} else if ("JNJW".equals(shkd_djzdms)) {//账户查询 → 境内境外
|
||||
DynamicObject bank = billObject.getDynamicObject("bank");
|
||||
DynamicObject country = bank.getDynamicObject("country");
|
||||
String name = country.getString("name");
|
||||
if ("中国".equals(name)) {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "1");
|
||||
} else {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), "2");
|
||||
}
|
||||
} else if ("OPENDATE".equals(shkd_djzdms)) {//现金账户 → 开户日期
|
||||
Date date = billObject.getDate("opendate");//转化为2020-10-10格式
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), DateUtils.formatDate(date, "yyyy-MM-dd"));
|
||||
} else if ("OPEN_DATE".equals(shkd_djzdms)) {//现金账户 → 开户日期
|
||||
Date date = billObject.getDate("open_date");//转化为2020-10-10格式
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), DateUtils.formatDate(date, "yyyy-MM-dd"));
|
||||
} else {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), billObject.getString(shkd_djzdms));
|
||||
}
|
||||
}
|
||||
|
||||
ResponseEntity<String> stringResponseEntity = pushLCMasterData(shkd_url, billTypeCode, headMap, bodyMap, fieldList, resultMap);
|
||||
String result = stringResponseEntity.getBody();
|
||||
|
||||
resultMap.put("shkd_calldescription", dataEntity.getString("shkd_name"));
|
||||
resultMap.put("shkd_requesturl", shkd_url);
|
||||
resultMap.put("shkd_response", result);
|
||||
resultMap.put("shkd_thirdpartysys", "浪潮");
|
||||
|
||||
JSONObject jsonObject = JSON.parseObject(result);
|
||||
String status = jsonObject.getString("status");
|
||||
if ("success".equals(status)) {
|
||||
JSONArray dataresult = jsonObject.getJSONArray("dataresult");
|
||||
JSONObject data = dataresult.getJSONObject(0);
|
||||
String statusResult = data.getString("status");
|
||||
|
||||
if ("success".equals(statusResult)) {
|
||||
resultMap.put("shkd_issuccess", true);
|
||||
billObject.set("shkd_ispushlc", true);
|
||||
billObject.set("shkd_pushlcdatetime", new Date());
|
||||
SaveServiceHelper.save(new DynamicObject[]{billObject});
|
||||
this.getView().showSuccessNotification("推送成功!" + result);
|
||||
} else {
|
||||
resultMap.put("shkd_issuccess", false);
|
||||
this.getView().showTipNotification("推送失败!" + result);
|
||||
}
|
||||
}else {
|
||||
resultMap.put("shkd_issuccess", false);
|
||||
this.getView().showTipNotification("推送失败!" + result);
|
||||
}
|
||||
|
||||
saveThePushLog(resultMap);
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, dataEntity);
|
||||
this.getView().showTipNotification("已推送,请至对接第三方系统记录日志查询推送结果");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -185,19 +185,8 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private String calculateTheDate(int days) {
|
||||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 获取当前日期的前两天
|
||||
LocalDate twoDaysAgo = currentDate.minusDays(days);
|
||||
// 格式化日期为 "yyyy-MM-dd"
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
return twoDaysAgo.format(formatter);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue