Merge remote-tracking branch 'origin/main' into main

# Conflicts:
#	sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/ShareOPPlugin.java
This commit is contained in:
陈绍鑫 2026-01-19 17:17:50 +08:00
commit 4f54c65a08
6 changed files with 66 additions and 42 deletions

View File

@ -14,6 +14,7 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import shkd.sys.sys.mservice.ApiService;
import shkd.sys.sys.utils.EmptyUtil;
import java.text.ParseException;
@ -67,8 +68,9 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
dzhdqFilter = dzhdqFilter.and(new QFilter("org.shkd_sfjcgx", QCP.equals, true));
dzhdqFilter = dzhdqFilter.and(new QFilter("paymentidentify.number", QCP.equals, "FKBS01"));
dzhdqFilter = dzhdqFilter.and(new QFilter("billstatus", QCP.in, Arrays.asList("A")));
dzhdqFilter = dzhdqFilter.and(new QFilter("shkd_businessname", QCP.equals, ""));
} else if (shkd_djlxbm.equals("付款状态推送")) {//付款处理
dzhdqFilter=new QFilter("shkd_lctszt", QCP.equals, "1");//浪潮推送状态推送成功
dzhdqFilter=new QFilter("shkd_lctszt", QCP.equals, "1").or(new QFilter("shkd_lctszt", QCP.equals, "3"));//浪潮推送状态推送成功
dzhdqFilter = dzhdqFilter.and(new QFilter("org.shkd_sfjcgx", QCP.equals, true));
dzhdqFilter = dzhdqFilter.and(new QFilter("billstatus", QCP.in, Arrays.asList("D")));
}else {
@ -78,7 +80,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
//自定义过滤条件
String shkd_zdygltj = shkd_apimapping.getString("shkd_zdygltj");
if (!shkd.sys.sys.utils.EmptyUtil.isEmpty(shkd_zdygltj)) {
if (!EmptyUtil.isEmpty(shkd_zdygltj)) {
QFilter zdyqFilter = null;
try {
zdyqFilter = getqFilter(shkd_zdygltj);

View File

@ -62,12 +62,21 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P
String shkd_businessname = businessname.toString();
if (("共享系统".equals(shkd_businessname) || "XK".equals(shkd_businessname)) && (("A".equals(billstatus) || "B".equals(billstatus) || "C".equals(billstatus)))) {
if ("共享系统".equals(shkd_businessname)) {
List<DynamicObject> dynamicObjects = new ArrayList<>();
String pushResult = ApiService.paymentSlipsJson(dynamicObject, "BIPRE", dynamicObjects, null);
logger.info("result信息{}", pushResult);
if (pushResult.contains("成功")) {
boolean outcome = whetherToInterruptTheProcess(dynamicObject.getPkValue().toString());
if (outcome) {
boolean outcome;
// 判断单据是否在流程中 如果不在流程中返回true
boolean inProcess = WorkflowServiceHelper.inProcess(dynamicObject.getPkValue().toString());
if (inProcess) {
outcome = true;
}else {
outcome = whetherToInterruptTheProcess(dynamicObject.getPkValue().toString());
}
if (outcome) {
List<DynamicObject> dynamicObjects = new ArrayList<>();
String pushResult = ApiService.paymentSlipsJson(dynamicObject, "BIPRE", dynamicObjects, null);
logger.info("result信息{}", pushResult);
if (pushResult.contains("成功")) {
if ("B".equals(billstatus) || "C".equals(billstatus)) {
dynamicObject.set("billstatus", "A");
}
@ -76,21 +85,23 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P
this.getView().showSuccessNotification("打回成功");
logger.info("单据:{}打回成功", billno);
list.refresh();
} else {
this.getView().showTipNotification("来源系统为BIP或星空且单据状态为提交或审核才允许打回");
logger.info("单据:{}打回失败失败原因来源系统为BIP或星空且单据状态为提交或审核才允许打回", billno);
String returnResults = extractMessageFromResult(pushResult);
if (!returnResults.isEmpty()) {
this.getView().showTipNotification("打回失败失败原因BIP单据" + returnResults);
} else {
this.getView().showTipNotification("打回失败,请找业务老师处理");
}
}
} else {
String returnResults = extractMessageFromResult(pushResult);
if (!returnResults.isEmpty()) {
this.getView().showTipNotification("打回失败失败原因BIP单据" + returnResults);
} else {
this.getView().showTipNotification("打回失败,请找业务老师处理");
}
this.getView().showTipNotification("流程中断失败,请找业务老师处理");
logger.info("单据:{}流程中断失败", billno);
}
}
} else {
this.getView().showTipNotification("流程中断失败,请找业务老师处理");
this.getView().showTipNotification("来源系统为BIP或星空且单据状态为提交或审核才允许打回");
logger.info("单据:{}打回失败失败原因来源系统为BIP或星空且单据状态为提交或审核才允许打回", billno);
}
} else {
this.getView().showTipNotification("来源系统为BIP或星空且单据状态为提交或审核才允许打回");

View File

@ -17,7 +17,6 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import shkd.sys.sys.mservice.ApiService;
import shkd.sys.sys.utils.EmptyUtil;
import java.util.*;
@ -50,7 +49,6 @@ public class ShareOPPlugin extends AbstractOperationServicePlugIn {
e.addValidator(new AbstractValidator() {
@Override
public void validate() {
String operateKey = this.getOperateKey();
ExtendedDataEntity[] dataEntities = this.getDataEntities();
QFilter qFilter = new QFilter("shkd_djlxbm", QCP.equals, "查询付款单在共享系统是否存在");
DynamicObject shkd_apimappingid = BusinessDataServiceHelper.loadSingle("shkd_apimapping", "id", qFilter.toArray());
@ -77,12 +75,13 @@ public class ShareOPPlugin extends AbstractOperationServicePlugIn {
try {
otherIsJsonRS = JSONObject.parseObject(res);
} catch (Exception e) {
this.addMessage(dataEntity,"单据" + dynamicObject.getString("billno") + "返回res转换json出错" + res, ErrorLevel.Error);
this.addMessage(dataEntity,"单据" + dynamicObject.getString("billno") + "接口返回res转换json出错" + res, ErrorLevel.Error);
continue;
}
String flag = otherIsJsonRS.getString("flag");
if (resError(flag)) {//失败
String msg = otherIsJsonRS.getString("msg");
this.addMessage(dataEntity,"单据" + dynamicObject.getString("billno") + "接口返回接收失败原因:" + msg, ErrorLevel.Error);
this.addMessage(dataEntity,"单据" + dynamicObject.getString("billno") + "返回接收失败原因:" + msg, ErrorLevel.Error);
continue;
} else {

View File

@ -390,11 +390,11 @@ public class InterestBearingRptListPlugin extends AbstractReportListDataPlugin {
String selYearNcAmt = "(SELECT s1.fdrawamount-sum(isnull(s3.fexdrawamount,0))\n" +
"FROM t_cfm_loanbill s1 \n" +
"INNER JOIN t_cfm_loanbill_e s2 ON s1.fid = s2.FID \n" +
"INNER JOIN t_cfm_loanbill_rp_entry s3 ON s1.fid = s3.FID \n" +
"LEFT JOIN t_cfm_loanbill_rp_entry s3 ON s1.fid = s3.FID and to_char(s3.fexrepaymentdate,'yyyy') < '"+year+"'\n" +
"WHERE (s2.floantype = 'loan' OR s2.floantype = 'sl' OR s2.floantype = 'bond') \n" +
"AND (s1.fdrawtype = 'drawed' OR s1.fdrawtype = 'partpayment') \n" +
"AND t1.FBILLNO = s1.FBILLNO \n" +
"and to_char(s3.fexrepaymentdate,'yyyy') < '"+year+"' and to_char(s2.fstartintdate,'yyyy') < '"+year+"'\n" +
"AND to_char(s2.fstartintdate,'yyyy') < '"+year+"'\n" +
"GROUP BY s1.fdrawamount)";
//年度新增金额

View File

@ -51,25 +51,29 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
private static final String DANGYUE_SELECT = "fbillno," +
"fstartdate_yyyyMM as dangyueqijian," +
"fbankcateid as fbankcateid1," +
"fopuserid as fopuserid1," +
"fopusertype as fopusertype1," +
"total_fdetailext17 as shkd_dyxd," +
"total_fdetailext18 as shkd_dyxzrz," +
"total_fdetailext20 as shkd_dyyjcljrzwye";
private static final String XIAYUE_SELECT = "" +
"fstartdate_yyyyMM as xiayueqijian," +
"fbankcateid as fbankcateid," +
"fopuserid as fopuserid," +
"fopusertype as fopusertype," +
"total_fdetailext17 as shkd_xyxd," +
"total_fdetailext18 as shkd_xyxzrz," +
"total_fdetailext20 as shkd_xyyjcljrzwye";
private static final String GDZCBJ_DANGYUE_SELECT = "" +
"fbankcateid as fbankcateid2," +
"fopuserid as fopuserid2," +
"fopusertype as fopusertype2," +
"total_tqhk as shkd_dytqhk," +
"total_dqhk as shkd_dydqhk";
private static final String GDZCBJ_XIAYUE_SELECT = "" +
"fbankcateid as fbankcateid3," +
"fopuserid as fopuserid3," +
"fopusertype as fopusertype3," +
"total_tqhk as shkd_xytqhk," +
"total_dqhk as shkd_xydqhk";
@ -129,20 +133,21 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
String[] mergedFieldNames = mergedList.toArray(new String[0]);
JoinDataSet join = dangyueres.join(xiayueyueres, JoinType.FULL);
DataSet finish = join.on("fbankcateid1", "fbankcateid").select(mergedFieldNames).finish();
finish=finish.addField("(case when fbankcateid1!=null and fbankcateid1!=' ' then fbankcateid1 else fbankcateid end)","shkd_jrjg");
DataSet finish = join.on("fopuserid1", "fopuserid").select(mergedFieldNames).finish();
finish=finish.addField("(case when fopuserid1!=null and fopuserid1!=0 then fopuserid1 else fopuserid end)","shkd_dsfmc");
finish=finish.addField("(case when fopusertype1!=null and fopusertype!=' ' then fopusertype1 else fopusertype end)","shkd_dsflx");
DataSet dataSet_sum = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),
"SELECT\n" +
""+zdm.get("金融机构")+" AS bankcate,\n" +
""+zdm.get("对手方名称")+" AS bankcate,\n" +
"SUM("+zdm.get("存量金融债务余额")+") AS shkd_cljrzwye,\n" +
"SUM("+zdm.get("有效授信(流贷)")+") AS shkd_yxsx\n" +
"FROM\n" +
"t_fpm_reportdatadetail\n" +
"WHERE\n" +
"fid = "+id+"\n" +
"GROUP BY "+zdm.get("金融机构")+" ");//财务云
"GROUP BY "+zdm.get("对手方名称")+" ");//财务云
JoinDataSet join1 = finish.join(dataSet_sum, JoinType.LEFT);
finish = join1.on("shkd_jrjg", "bankcate").select(finish.getRowMeta().getFieldNames(),new String[]{"shkd_cljrzwye", "shkd_yxsx"}).finish();
finish = join1.on("shkd_dsfmc", "bankcate").select(finish.getRowMeta().getFieldNames(),new String[]{"shkd_cljrzwye", "shkd_yxsx"}).finish();
//获取刚兑支出-本金
QFilter qFilter1 = new QFilter("name", QCP.equals, "刚兑支出-本金");
@ -154,15 +159,17 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
DataSet gdzcbjdangyueres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), gdzcbjdangyuesqlBuilder.toString());//财务云
gdzcbjdangyueres= gdzcbjdangyueres.select(GDZCBJ_DANGYUE_SELECT);
JoinDataSet join2 = finish.join(gdzcbjdangyueres, JoinType.FULL);
finish = join2.on("shkd_jrjg", "fbankcateid2").select(finish.getRowMeta().getFieldNames(),new String[]{"fbankcateid2","shkd_dytqhk", "shkd_dydqhk"}).finish();
finish=finish.updateField("shkd_jrjg","(case when shkd_jrjg!=null and shkd_jrjg!=' ' then shkd_jrjg else fbankcateid2 end)");
finish = join2.on("shkd_dsfmc", "fopuserid2").select(finish.getRowMeta().getFieldNames(),new String[]{"fopuserid2","fopusertype2","shkd_dytqhk", "shkd_dydqhk"}).finish();
finish=finish.updateField("shkd_dsfmc","(case when shkd_dsfmc!=null and shkd_dsfmc!=0 then shkd_dsfmc else fopuserid2 end)");
finish=finish.updateField("shkd_dsflx","(case when shkd_dsflx!=null and shkd_dsflx!=' ' then shkd_dsflx else fopusertype2 end)");
StringBuilder gdzcbjxiayuesqlBuilder=getgdzcbjsql(gdzcbjid,zdm,xiayueyue,shkd_km);
DataSet gdzcbjxiayueres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), gdzcbjxiayuesqlBuilder.toString());//财务云
gdzcbjxiayueres= gdzcbjxiayueres.select(GDZCBJ_XIAYUE_SELECT);
JoinDataSet join3 = finish.join(gdzcbjxiayueres, JoinType.FULL);
finish = join3.on("shkd_jrjg", "fbankcateid3").select(finish.getRowMeta().getFieldNames(),new String[]{"fbankcateid3","shkd_xytqhk", "shkd_xydqhk"}).finish();
finish=finish.updateField("shkd_jrjg","(case when shkd_jrjg!=null and shkd_jrjg!=' ' then shkd_jrjg else fbankcateid3 end)");
finish = join3.on("shkd_dsfmc", "fopuserid3").select(finish.getRowMeta().getFieldNames(),new String[]{"fopuserid3","fopusertype3","shkd_xytqhk", "shkd_xydqhk"}).finish();
finish=finish.updateField("shkd_dsfmc","(case when shkd_dsfmc!=null and shkd_dsfmc!=0 then shkd_dsfmc else fopuserid3 end)");
finish=finish.updateField("shkd_dsflx","(case when shkd_dsflx!=null and shkd_dsflx!=' ' then shkd_dsflx else fopusertype3 end)");
}else {
finish=finish.addField("0","shkd_dytqhk");
finish=finish.addField("0","shkd_dydqhk");
@ -193,7 +200,8 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
"SELECT\n" +
"t1.fbillno as fbillno,\n" +
" DATE_FORMAT(t4.fstartdate, '%Y%m') AS fstartdate_yyyyMM, -- 按照年月分组\n" +
" t2."+zdm.get("金融机构")+" as fbankcateid, -- 金融机构\n" +
" t2."+zdm.get("对手方类型")+" as fopusertype, -- 对手方类型\n" +
" t2."+zdm.get("对手方名称")+" as fopuserid, -- 对手方名称\n" +
" SUM(CASE WHEN t2."+zdm.get("归还性质")+" = '提前还款' THEN t3."+zdm.get("计划金额")+" ELSE 0 END) AS total_tqhk, --提前还款总和\n" +
" SUM(CASE WHEN t2."+zdm.get("归还性质")+" = '到期还款' THEN t3."+zdm.get("计划金额")+" ELSE 0 END) AS total_dqhk --到期还款总和\n" +
"FROM\n" +
@ -205,10 +213,11 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
" t1.fid = "+id+" AND\n" +
" t4.fstartdate>='"+start+"' AND\n" +
" t4.fstartdate<='"+end+"' AND\n" +
" t2."+zdm.get("金融机构")+" IS NOT NULL AND t2."+zdm.get("金融机构")+"!=' ' \n");
" t2."+zdm.get("对手方名称")+" IS NOT NULL AND t2."+zdm.get("对手方名称")+"!=0 \n");
sqlBuilder.append("GROUP BY\n" +
" DATE_FORMAT(t4.fstartdate, '%Y%m'), -- 直接在 GROUP BY 中使用原始表达式\n" +
" t2."+zdm.get("金融机构")+", -- 按照金融机构分组\n" +
" t2."+zdm.get("对手方类型")+", -- 按照对手方类型分组\n" +
" t2."+zdm.get("对手方名称")+", -- 按照对手方名称分组\n" +
" t1.fbillno");
return sqlBuilder;
}
@ -224,7 +233,8 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
"SELECT\n" +
"t1.fbillno as fbillno,\n" +
" DATE_FORMAT(t4.fstartdate, '%Y%m') AS fstartdate_yyyyMM, -- 按照年月分组\n" +
" t2."+zdm.get("金融机构")+" as fbankcateid, -- 金融机构\n" +
" t2."+zdm.get("对手方类型")+" as fopusertype, -- 对手方类型\n" +
" t2."+zdm.get("对手方名称")+" as fopuserid, -- 对手方名称\n" +
" SUM(t2."+zdm.get("提前还款")+") AS total_fdetailext15, -- 提前还款总和\n" +
" SUM(t2."+zdm.get("到期还款")+") AS total_fdetailext16, -- 到期还款总和\n" +
" SUM(t2."+zdm.get("续贷")+") AS total_fdetailext17, -- 续贷总和\n" +
@ -239,7 +249,7 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
" t1.fid = "+id+" AND\n" +
" t4.fstartdate>='"+start+"' AND\n" +
" t4.fstartdate<='"+end+"' AND\n" +
" t2."+zdm.get("金融机构")+" IS NOT NULL AND t2."+zdm.get("金融机构")+"!=' ' \n");
" t2."+zdm.get("对手方名称")+" <>0 \n");
if (shkd_km != null) {
sqlBuilder.append(" AND t3.fsubjectmemid = "+shkd_km.getLong("id")+" \n");
@ -247,7 +257,8 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
sqlBuilder.append("GROUP BY\n" +
" DATE_FORMAT(t4.fstartdate, '%Y%m'), -- 直接在 GROUP BY 中使用原始表达式\n" +
" t2."+zdm.get("金融机构")+", -- 按照金融机构分组\n" +
" t2."+zdm.get("对手方类型")+", -- 按照对手方类型分组\n" +
" t2."+zdm.get("对手方名称")+", -- 按照对手方名称分组\n" +
" t1.fbillno");
return sqlBuilder;
}

View File

@ -67,8 +67,9 @@ public class SharePushTaskPlugin extends AbstractTask {
dzhdqFilter = dzhdqFilter.and(new QFilter("org.shkd_sfjcgx", QCP.equals, true));
dzhdqFilter = dzhdqFilter.and(new QFilter("paymentidentify.number", QCP.equals, "FKBS01"));
dzhdqFilter = dzhdqFilter.and(new QFilter("billstatus", QCP.in, Arrays.asList("A")));
dzhdqFilter = dzhdqFilter.and(new QFilter("shkd_businessname", QCP.equals, ""));
} else if (shkd_djlxbm.equals("付款状态推送")) {//付款处理
dzhdqFilter=new QFilter("shkd_lctszt", QCP.equals, "1");//浪潮推送状态推送成功
dzhdqFilter=new QFilter("shkd_lctszt", QCP.equals, "1").or(new QFilter("shkd_lctszt", QCP.equals, "3"));//浪潮推送状态推送成功
dzhdqFilter = dzhdqFilter.and(new QFilter("org.shkd_sfjcgx", QCP.equals, true));
dzhdqFilter = dzhdqFilter.and(new QFilter("billstatus", QCP.in, Arrays.asList("D")));
} else {