diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java index 11f950e..c23ee7b 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java @@ -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); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java index 5755732..702d326 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java @@ -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 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 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或星空)且单据状态为(提交或审核)才允许打回"); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/ShareOPPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/ShareOPPlugin.java index 81f3cdc..7d7ba6d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/ShareOPPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/operation/ShareOPPlugin.java @@ -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 { diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java index ac09307..cecdb5a 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/InterestBearingRptListPlugin.java @@ -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)"; //年度新增金额 diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/PlanReportPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/PlanReportPlugin.java index 944b421..cd406a1 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/PlanReportPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/report/PlanReportPlugin.java @@ -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; } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java index 557cd07..f31ad51 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java @@ -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 {