提交人:邹江涛

提交时间:2025年12月18日
提交内容:主数据定时推送浪潮系统(增加推送条件和推送时间以及推送日志定制化选择)
This commit is contained in:
root 2025-12-18 11:03:58 +08:00
parent e7235232d3
commit 51fcdf8d0c
3 changed files with 17 additions and 146 deletions

View File

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

View File

@ -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("已推送,请至对接第三方系统记录日志查询推送结果");
}
}

View File

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