parent
d9215951b7
commit
ad832da4f0
|
|
@ -22,6 +22,8 @@ import kd.bos.servicehelper.operation.SaveServiceHelper;
|
|||
import kd.sdk.plugin.Plugin;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
|
||||
import static shkd.sys.sys.mservice.ApiService.pushLCMasterData;
|
||||
|
|
@ -45,7 +47,7 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
|
||||
DynamicObject[] apiMapping = BusinessDataServiceHelper.load("shkd_apimapping", "id,billno," +
|
||||
"shkd_name,shkd_sourcenumber,shkd_domainname,shkd_appkey,shkd_appsecret,shkd_token,shkd_getfield,shkd_url,shkd_bodytype," +
|
||||
"shkd_sourcebill,shkd_targetsystem,shkd_submiturl,shkd_banktype,shkd_startdate,shkd_orgs,shkd_djlxbm," +
|
||||
"shkd_sourcebill,shkd_targetsystem,shkd_submiturl,shkd_banktype,shkd_startdate,shkd_orgs,shkd_djlxbm,shkd_tsfs,shkd_cxfw," +
|
||||
"shkd_heade,shkd_heade.shkd_headcsm,shkd_heade.shkd_headzdlx,shkd_heade.shkd_headcsz,shkd_heade.shkd_headmssm," +
|
||||
"shkd_mapping,shkd_mapping.shkd_jsonzdm,shkd_mapping.shkd_djzdms,shkd_mapping.shkd_mrz,shkd_mapping.shkd_ms",
|
||||
new QFilter("shkd_djlxbm", QCP.equals, billMark).toArray());
|
||||
|
|
@ -54,7 +56,12 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
logger.info("未找到符合条件的推送配置!shkd_djlxbm = " + billMark);
|
||||
return;
|
||||
}
|
||||
|
||||
// 推送方式
|
||||
String shkdTsfs = apiMapping[0].getString("shkd_tsfs");
|
||||
// 查询范围(N天前)
|
||||
int shkdCxfw = apiMapping[0].getInt("shkd_cxfw");
|
||||
// 获取具体时间
|
||||
String calculateTheDate = calculateTheDate(shkdCxfw);
|
||||
// 推送单据类型
|
||||
String sourceBill = apiMapping[0].getDynamicObject("shkd_sourcebill").getString("number");
|
||||
// 推送单据编码
|
||||
|
|
@ -87,100 +94,106 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
Date modifytime;
|
||||
switch (billMark.toString()) {
|
||||
case "MDMBankType_1":// 银行类别 → (推送可用,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime");
|
||||
modifytime = billObject.getDate("modifytime");
|
||||
if (shkdPushlcdatetime == null || modifytime.after(shkdPushlcdatetime)) {
|
||||
case "MDMSettlementWay":// 结算方式
|
||||
case "MDMPJLX":// 票据类型
|
||||
case "MDMZJJHXM":// 资金计划项目
|
||||
case "MDMBankType_2"://金融机构类别
|
||||
case "MDMBanks_2":// 合作金融机构
|
||||
case "MDMZJYT":// 资金用途
|
||||
case "MDMXJZH":// 现金账户
|
||||
case "MDMJRCPLX":// 金融产品类型
|
||||
case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
||||
if ("初始推送".equals(shkdTsfs)) {
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "MDMBanks_1":// 银行 → (推送启用和不疑似过期,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("isoverdue", QCP.equals, "N")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
|
||||
if ("新增修改推送".equals(shkdTsfs)) {
|
||||
//查询客户且修改时间在查询范围内的数据
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime");
|
||||
String enable = billObject.getString("enable");
|
||||
if (shkdPushlcdatetimeObj == null && "1".equals(enable)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
|
||||
if (shkdPushlcdatetimeObj != null) {
|
||||
//获取推送浪潮时间
|
||||
shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime");
|
||||
//获取修改时间
|
||||
modifytime = billObject.getDate("modifytime");
|
||||
if (modifytime.after(shkdPushlcdatetime)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "MDMBFBANKACCOUNTS":// 银行账户 → (账户状态正常,推送浪潮时间为空,修改时间大于推送浪潮时间数据)
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
case "MDMNBZH":// 内部账户
|
||||
if ("初始推送".equals(shkdTsfs)) {
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "MDMSettlementWay":// 结算方式
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
|
||||
if ("新增修改推送".equals(shkdTsfs)) {
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime");
|
||||
String acctstatus = billObject.getString("acctstatus");
|
||||
if (shkdPushlcdatetimeObj == null && "normal".equals(acctstatus)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
|
||||
if (shkdPushlcdatetimeObj != null) {
|
||||
//获取推送浪潮时间
|
||||
shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime");
|
||||
//获取修改时间
|
||||
modifytime = billObject.getDate("modifytime");
|
||||
if (modifytime.after(shkdPushlcdatetime)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "MDMZQMC":// 债券信息
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("billstatus", QCP.equals, "C")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
if ("初始推送".equals(shkdTsfs)) {
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("billstatus", QCP.equals, "C")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "MDMPJLX":// 票据类型
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMZJJHXM":// 资金计划项目
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMBankType_2"://金融机构类别
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMBanks_2":// 合作金融机构
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMZJYT":// 资金用途
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMXJZH":// 现金账户
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMNBZH":// 内部账户
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("acctstatus", QCP.equals, "normal")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
break;
|
||||
case "MDMJRCPLX":// 金融产品类型
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("enable", QCP.equals, "1")
|
||||
.and("shkd_pushlcdatetime", QCP.is_null, true).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
|
||||
if ("新增修改推送".equals(shkdTsfs)) {
|
||||
sourceBills = BusinessDataServiceHelper.load(sourceBill, getfield, new QFilter("modifytime", QCP.large_equals, calculateTheDate).toArray());
|
||||
for (DynamicObject billObject : sourceBills) {
|
||||
Object shkdPushlcdatetimeObj = billObject.get("shkd_pushlcdatetime");
|
||||
String acctstatus = billObject.getString("billstatus");
|
||||
if (shkdPushlcdatetimeObj == null && "C".equals(acctstatus)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
|
||||
if (shkdPushlcdatetimeObj != null) {
|
||||
//获取推送浪潮时间
|
||||
shkdPushlcdatetime = billObject.getDate("shkd_pushlcdatetime");
|
||||
//获取修改时间
|
||||
modifytime = billObject.getDate("modifytime");
|
||||
if (modifytime.after(shkdPushlcdatetime)) {
|
||||
universalApproach(resultMap, headMap, bodyMap, fieldList, shkd_mapping, billObject, shkd_url, billTypeCode, apiMapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -300,6 +313,18 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
} 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 if ("BILLSTATUS".equals(shkd_djzdms)) {
|
||||
String value = billObject.getString("billstatus");
|
||||
String key = "";
|
||||
switch (value) {
|
||||
case "A"://暂存
|
||||
key = "0";
|
||||
break;
|
||||
case "C"://审核
|
||||
key = "1";
|
||||
break;
|
||||
}
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), key);
|
||||
} else {
|
||||
bodyMap.put(dynamicObject.getString("shkd_jsonzdm"), billObject.getString(shkd_djzdms));
|
||||
}
|
||||
|
|
@ -321,17 +346,36 @@ public class PushLcTaskPlugin extends AbstractTask implements Plugin {
|
|||
String statusResult = data.getString("status");
|
||||
|
||||
if ("success".equals(statusResult)) {
|
||||
Date date = new Date();
|
||||
resultMap.put("shkd_issuccess", true);
|
||||
billObject.set("shkd_ispushlc", true);
|
||||
billObject.set("shkd_pushlcdatetime", new Date());
|
||||
billObject.set("shkd_pushlcdatetime", date);
|
||||
billObject.set("modifytime", date);
|
||||
SaveServiceHelper.save(new DynamicObject[]{billObject});
|
||||
} else {
|
||||
resultMap.put("shkd_issuccess", false);
|
||||
saveThePushLog(resultMap);
|
||||
}
|
||||
}else {
|
||||
} else {
|
||||
resultMap.put("shkd_issuccess", false);
|
||||
saveThePushLog(resultMap);
|
||||
}
|
||||
}
|
||||
|
||||
saveThePushLog(resultMap);
|
||||
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);
|
||||
/*Date date;
|
||||
try {
|
||||
date = com.kingdee.bos.qing.util.DateUtils.stringToDate(formattedDate, "yyyy-MM-dd");
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return date;*/
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue