提交内容:整体代码更新

备注:整体代码更新(电子回单、附件/银行收付处理推送BIP调整代码)
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-03-11 16:44:21 +08:00
parent a724305b40
commit 409bc1bddc
5 changed files with 131 additions and 35 deletions

View File

@ -387,7 +387,7 @@ public class ApiService {
hashMap.put("id", jsonObject.getJSONArray("data").get(0).toString());
hashMap.put("receiptno", dynamic.getString("billno"));
String attachmentRequestBody = getAttachmentRequestBody(hashMap);
String pushResult = pushBill(token, "https://biptestctny.invest.com.cn:8002/iuap-api-auth//yonbip/ctm/bank/tran/update", attachmentRequestBody);
String pushResult = pushBill(token, "https://10.1.9.43/iuap-api-auth//yonbip/ctm/bank/tran/update", attachmentRequestBody);
logger.info("电子回单查询 → BIP推送附件接口 → 请求返回结果:\n{}", pushResult);
result = "推送 → 电子回单和附件 → 成功";
} else {

View File

@ -1,7 +1,11 @@
package shkd.sys.sys.mservice;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.tmc.fpm.business.dataproc.save.ReportDataSDKService;
import kd.bos.login.actions.SerializationUtils;
import kd.tmc.fpm.business.dataproc.save.domain.ReportDataBatchSaveObject;
import kd.tmc.fpm.business.dataproc.save.domain.ReportDataBatchSaveParam;
import kd.tmc.fpm.business.dataproc.save.ReportDataSaveObject;
import kd.tmc.fpm.business.domain.service.FpmOperateResult;
@ -10,11 +14,13 @@ import java.util.ArrayList;
import java.util.List;
/**
* @Description
* @Description 资金计划写入服务
* @Author Tao
* @Date 2025/2/24
*/
public class FundingPlanService {
private static final Log logger = LogFactory.getLog(FundingPlanService.class);
public static String writeData() {
/**
* private @ApiParam("报表数据Id") Long reportId;
@ -42,37 +48,64 @@ public class FundingPlanService {
*/
// 1. 构造请求参数
// ReportDataBatchSaveParam reportDataBatchSaveParam = new ReportDataBatchSaveParam();
// reportDataBatchSaveParam.setSystemCode();// 体系code
// reportDataBatchSaveParam.setTemplateCode();// 模板code
// reportDataBatchSaveParam.setReportPeriodCode();// 编报期间code
// reportDataBatchSaveParam.setReportOrgCode();// 编报主体code
//
// ReportDataBatchSaveObject reportDataBatchSaveObject = new ReportDataBatchSaveObject();
//
// reportDataBatchSaveParam.setBatchSaveData();
ReportDataSaveObject requestObject = new ReportDataSaveObject();
// 报表数据Id
// requestObject.setReportId();
requestObject.setReportId(2102457524581052484L);// 计划编制编码91510100MA7FY7GT7R-20241210-0003
// 报表数据reportDataId
// requestObject.setReportDataId();
// 体系ID 必填
requestObject.setSystemId(2078206889971156992L);// 川投计划填报
// 模板ID
requestObject.setTemplateId(2081110508173265920L);// 月度计划测试
// requestObject.setTemplateId(2081110508173265920L);// 月度计划测试
// 模板名称
requestObject.setTemplateName("月度计划测试");// 月度计划测试
// requestObject.setTemplateName("月度计划测试");// 月度计划测试
// 编报期间ID
requestObject.setReportPeriodId(2097273299254902785L);// 2025年02
requestObject.setReportPeriodId(2102457312651262977L);// 2025年03
// 编报主体ID
requestObject.setReportOrgId(2092147481843336244L); // 四川川投能源有限公司
requestObject.setReportOrgId(2086389183361843203L); // 四川川投能源股份有限公司
// 编报主体
List<Long> objects = new ArrayList<>();
objects.add(2092147481843336244L);
objects.add(2086389183361843203L);
requestObject.setReportOrgIds(objects);
// 币种ID
requestObject.setCurrencyId(2078206890407364608L);// 人民币
// 计划科目ID
requestObject.setSubjectId(1323045941204225024L);// 计划科目销售商品提供劳务收到的现金
requestObject.setSubjectId(2078208875504338947L);// 计划科目销售商品提供劳务收到的现金
// 公司ID
// requestObject.setCompanyId();
// 结算方式ID
// requestObject.setSettleTypeId();
// 主维度数据分录期间ID
requestObject.setEntryPeriodId(2097273390665565188L);// 2025年2月01周
requestObject.setEntryPeriodId(2102457312676428801L);// 2025年3月01周
// 度量值列表
// requestObject.setMetricMembers();
ReportDataSaveObject.MetricMember metricMember = new ReportDataSaveObject.MetricMember();
// metricMember.setId(2078206891380443136L);// id
// metricMember.setNumber("M001");// 编码
// metricMember.setName("计划参考值");// 名称
// metricMember.setMetrictype("Metric");// 类型
// metricMember.setPlanAmt(new BigDecimal(1000));// 计划数
metricMember.setId(2078206891380442112L);// id
metricMember.setNumber("M002");// 编码
metricMember.setName("计划额度");// 名称
metricMember.setMetrictype("Metric");// 类型
metricMember.setPlanAmt(new BigDecimal(1000));// 计划数
List<ReportDataSaveObject.MetricMember> metricMemberArrayList = new ArrayList<>();
metricMemberArrayList.add(metricMember);
requestObject.setMetricMembers(metricMemberArrayList);
// 上报计划额度
requestObject.setReportPlanAmt(new BigDecimal(1000));
// 原始计划额度(核定额度)
@ -95,9 +128,10 @@ public class FundingPlanService {
String qParam = SerializationUtils.serializeToBase64(requestObject);
// 3. 调用SDK接口
ReportDataSDKService reportDataSDKService = new ReportDataSDKService();
String result = reportDataSDKService.batchSaveReportData(qParam);
String result = reportDataSDKService.saveReportData(qParam);
// 4. 反序列化响应结果
FpmOperateResult<Void> responseObject = SerializationUtils.deSerializeFromBase64(result);
logger.info("是否成功:{}\n消息列表{}\n警告消息列表{}", responseObject.isSuccess(), responseObject.getMessageList(), responseObject.getWarnMessage());
return responseObject.getSuccessMessage();
}

View File

@ -235,9 +235,10 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
// 银企交易明细查询
case "bei_transdetail_cas":
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
"id,billno,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
"id,bizdate,billno,detailid,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
"shkd_businessnumber,shkd_businessid,shkd_businessname"
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
, new QFilter("billno", QCP.equals, billNumber).toArray());
billObject = objects3[0];
logger.info("获取银企交易明细查询推送对象 → billObject{}", billObject);
@ -245,9 +246,9 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
// 电子回单查询
case "bei_elecreceipt":
DynamicObject[] objects4 = BusinessDataServiceHelper.load("bei_elecreceipt",
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbankname,description,company,oppbanknumber," +
"detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid,uploadfilename," +
"shkd_businessnumber,shkd_businessid,shkd_businessname,filepath"
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company," +
"oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno"
, new QFilter("billno", QCP.equals, billNumber).toArray());
billObject = objects4[0];
logger.info("获取银企交易明细查询推送对象 → billObject{}", billObject);

View File

@ -3,9 +3,12 @@ package shkd.sys.sys.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.form.control.Toolbar;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.logging.Log;
import kd.bos.logging.LogFactory;
import kd.sdk.plugin.Plugin;
import shkd.sys.sys.mservice.ApiService;
import shkd.sys.sys.mservice.FundingPlanService;
import shkd.sys.sys.mservice.PlanningService;
import java.util.EventObject;
@ -13,6 +16,7 @@ import java.util.EventObject;
* 单据界面插件
*/
public class ApiTestBillPlugin extends AbstractBillPlugIn implements Plugin {
private static final Log logger = LogFactory.getLog(ApiTestBillPlugin.class);
@Override
public void registerListener(EventObject e) {
// super.registerListener(e);
@ -46,7 +50,7 @@ public class ApiTestBillPlugin extends AbstractBillPlugIn implements Plugin {
if ("shkd_funds".equals(key)) {
// JSONObject jsonObject = BIPService.paymentSlipsJson();
// this.getView().showTipNotification(jsonObject.toJSONString());
String result = FundingPlanService.writeData();
String result = PlanningService.writeData();
this.getView().showSuccessNotification(result);
}
}

View File

@ -1,6 +1,10 @@
package shkd.sys.sys.plugin.task;
import com.kingdee.bos.qing.util.DateUtils;
import java.time.YearMonth;
import java.time.ZoneId;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
@ -121,15 +125,39 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
// .and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
DynamicObject[] objects3 = BusinessDataServiceHelper.load("bei_transdetail_cas",
"id,bizdate,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
"id,bizdate,billno,detailid,oppbank,oppunit,accountbank,description,company,oppbanknumber," +
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
, new QFilter("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
Arrays.stream(objects3).forEach(dynamicObject -> {
DynamicObject companys = dynamicObject.getDynamicObject("company");
if ("SIG1040100、SIG1090000、SIG000101135、SIG1041000、SIG1040802、SIG1040804、SIG1040803、SIG1040801、SIG1040400".contains(companys.getString("number"))) {
if (("SIG1040100、" +
"SIG1040901、" +
"SIG1040201、" +
"SIG1090000、" +
"SIG1040700、" +
"SIG000101135、" +
"SIG1040600、" +
"SIG1040300、" +
"SIG000100079、" +
"SIG000003001、" +
"SIG1041000、" +
"SIG1040802、" +
"SIG000101558、" +
"SIG1040808、" +
"SIG1040804、" +
"SIG1040803、" +
"SIG1040801、" +
"SIG1040400、" +
"SIG104010101、" +
"SIG104010102、" +
"SIG1040202、" +
"SIG1040203、" +
"SIG1040204、" +
"SIG1040902").contains(companys.getString("number"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
}
});
@ -141,25 +169,40 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
*/
case "bei_elecreceipt":
DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt",
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbankname,description,company," +
"oppbanknumber,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description,company," +
"oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno"
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
ArrayList<DynamicObject> elecreceiptCollection = new ArrayList<>();
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
DynamicObject[] objects = BusinessDataServiceHelper.load("bei_transdetail_cas",
"id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbankname,description,company," +
"oppbanknumber,detaildatetime,accountbank,amount,use,debitamount,creditamount,detailid," +
"uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname,filepath,receiptno",
new QFilter("receiptno", QCP.equals, dynamicObject.getString("receiptno")).
and(new QFilter("shkd_pushstatus", QCP.equals, "已推送")).
and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
if (objects.length > 0) {
elecreceiptCollection.add(dynamicObject);
DynamicObject companys = dynamicObject.getDynamicObject("company");
if (("SIG1040100、" +
"SIG1040901、" +
"SIG1040201、" +
"SIG1090000、" +
"SIG1040700、" +
"SIG000101135、" +
"SIG1040600、" +
"SIG1040300、" +
"SIG000100079、" +
"SIG000003001、" +
"SIG1041000、" +
"SIG1040802、" +
"SIG000101558、" +
"SIG1040808、" +
"SIG1040804、" +
"SIG1040803、" +
"SIG1040801、" +
"SIG1040400、" +
"SIG104010101、" +
"SIG104010102、" +
"SIG1040202、" +
"SIG1040203、" +
"SIG1040204、" +
"SIG1040902").contains(companys.getString("number"))) {
ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
}
});
elecreceiptCollection.forEach(dynamicObject -> ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null));
SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0]));
break;
default:
@ -187,4 +230,18 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
}
return date;
}
private static Date getFirstDayOfMonth() {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 获取当前年份和月份
YearMonth yearMonth = YearMonth.from(currentDate);
// 获取当前月份的第一天
LocalDate firstDayOfMonth = yearMonth.atDay(1);
// 将LocalDate转换为Date
return Date.from(firstDayOfMonth.atStartOfDay(ZoneId.systemDefault()).toInstant());
}
}