提交内容:定时任务

备注:定时推送单据至BIP
提交人:邹江涛
This commit is contained in:
zoujiangtao 2024-12-10 16:23:53 +08:00
parent e751d21ba0
commit 8d7f58194d
1 changed files with 25 additions and 11 deletions

View File

@ -6,6 +6,8 @@ import com.kingdee.bos.qing.util.DateUtils;
import kd.bos.context.RequestContext; import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.exception.KDException; import kd.bos.exception.KDException;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.schedule.executor.AbstractTask; import kd.bos.schedule.executor.AbstractTask;
@ -13,6 +15,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import shkd.sys.sys.mservice.ApiService; import shkd.sys.sys.mservice.ApiService;
import shkd.sys.sys.plugin.form.ApiMappingBillPlugin;
import java.text.ParseException; import java.text.ParseException;
import java.time.LocalDate; import java.time.LocalDate;
@ -23,6 +26,7 @@ import java.util.*;
* 后台任务插件 * 后台任务插件
*/ */
public class PushTaskPlugin extends AbstractTask implements Plugin { public class PushTaskPlugin extends AbstractTask implements Plugin {
private static final Log logger = LogFactory.getLog(PushTaskPlugin.class);
@Override @Override
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
@ -39,11 +43,13 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
Date date; Date date;
try { try {
date = DateUtils.stringToDate(formattedDate,"yyyy-MM-dd"); date = DateUtils.stringToDate(formattedDate, "yyyy-MM-dd");
} catch (ParseException e) { } catch (ParseException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
String billName = null;
List<DynamicObject> dynamicObjects = new ArrayList<>(); List<DynamicObject> dynamicObjects = new ArrayList<>();
if (billMark != null) { if (billMark != null) {
switch (billMark.toString()) { switch (billMark.toString()) {
@ -55,6 +61,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname" "shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname"
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); , new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
dynamicObjects = Arrays.asList(objects1); dynamicObjects = Arrays.asList(objects1);
billName = "付款处理";
break; break;
// 收款处理 // 收款处理
case "cas_recbill": case "cas_recbill":
@ -64,8 +71,9 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
"shkd_businessnumber,shkd_businessid,shkd_businessname" "shkd_businessnumber,shkd_businessid,shkd_businessname"
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); , new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
dynamicObjects = Arrays.asList(objects2); dynamicObjects = Arrays.asList(objects2);
billName = "收款处理";
break; break;
// 企交易明细查询 // 行收付处理
case "bei_transdetail_cas": case "bei_transdetail_cas":
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas", DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
"id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," + "id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
@ -73,6 +81,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
"shkd_businessnumber,shkd_businessid,shkd_businessname" "shkd_businessnumber,shkd_businessid,shkd_businessname"
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray()); , new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
dynamicObjects = Arrays.asList(objects3); dynamicObjects = Arrays.asList(objects3);
billName = "银行收付处理";
break; break;
default: default:
return; return;
@ -80,17 +89,22 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
} }
List<DynamicObject> objects = new ArrayList<>(); List<DynamicObject> objects = new ArrayList<>();
String finalBillName = billName;
dynamicObjects.forEach(dynamicObject -> { dynamicObjects.forEach(dynamicObject -> {
String responseBody = ApiService.paymentSlipsJson(dynamicObject, "BIP"); String responseBody = ApiService.paymentSlipsJson(dynamicObject, "BIP");
JSONObject jsonObject = JSON.parseObject(responseBody); if (!responseBody.contains("失败")) {
JSONObject data = jsonObject.getJSONObject("data"); JSONObject jsonObject = JSON.parseObject(responseBody);
String code = data.getString("code"); JSONObject data = jsonObject.getJSONObject("data");
String id = data.getString("id"); String code = data.getString("code");
dynamicObject.set("shkd_businessnumber", code); String id = data.getString("id");
dynamicObject.set("shkd_businessid", id); dynamicObject.set("shkd_businessnumber", code);
dynamicObject.set("shkd_businessname", "BIP"); dynamicObject.set("shkd_businessid", id);
dynamicObject.set("shkd_pushstatus", "已推送"); dynamicObject.set("shkd_businessname", "BIP");
objects.add(dynamicObject); dynamicObject.set("shkd_pushstatus", "已推送");
objects.add(dynamicObject);
} else {
logger.info("推送 → {} → 失败,失败单据编号:{}", finalBillName, dynamicObject.getString("billno"));
}
}); });
SaveServiceHelper.save(objects.toArray(new DynamicObject[0])); SaveServiceHelper.save(objects.toArray(new DynamicObject[0]));
} }