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 d419355..54ba607 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 @@ -64,27 +64,41 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin { public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable { List listQFilter = ReportUtils.getListQFilter(reportQueryParam); Date date = new Date(); - + DynamicObject shkd_qj=null; + DynamicObject shkd_km=null; for (QFilter filter : listQFilter) { if (filter.getProperty().contains("shkd_date")) { date= (Date) filter.getValue(); + } else if (filter.getProperty().contains("shkd_qj")) { + shkd_qj= (DynamicObject) filter.getValue(); + }else if (filter.getProperty().contains("shkd_km")) { + shkd_km= (DynamicObject) filter.getValue(); } } + + if (shkd_qj!=null){ + DynamicObject Period = BusinessDataServiceHelper.loadSingle(shkd_qj.getPkValue(), "fpm_member"); + date=Period.getDate("startdate"); + } //获取当月日期范围 Map dangyue = getMonthStartAndEnd(date); Date date1 = getnextMonth(date); - //获取上月日期范围 + //获取下月日期范围 Map xiayueyue = getMonthStartAndEnd(date1); //获取计划编制里的融资计划 QFilter qFilter = new QFilter("name", QCP.equals, "融资计划"); + qFilter=qFilter.and(new QFilter("reportperiod",QCP.equals,shkd_qj.getLong("id"))); DynamicObject fpm_report = BusinessDataServiceHelper.loadSingle("fpm_report", qFilter.toArray()); + if (fpm_report==null){ + return DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"),"select NULL AS res ");//财务云; + } long id = fpm_report.getLong("id"); - StringBuilder dangyuesqlBuilder=getsql(id,zdm,dangyue); + StringBuilder dangyuesqlBuilder=getsql(id,zdm,dangyue,shkd_km); DataSet dangyueres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), dangyuesqlBuilder.toString());//财务云 dangyueres= dangyueres.select(DANGYUE_SELECT); - StringBuilder xiayueyuesqlBuilder=getsql(id,zdm,xiayueyue); + StringBuilder xiayueyuesqlBuilder=getsql(id,zdm,xiayueyue,shkd_km); DataSet xiayueyueres = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), xiayueyuesqlBuilder.toString());//财务云 xiayueyueres= xiayueyueres.select(XIAYUE_SELECT); @@ -113,7 +127,8 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin { return finish; } - private StringBuilder getsql(long id, Map zdm, Map dateMap) { + + private StringBuilder getsql(long id, Map zdm, Map dateMap,DynamicObject shkd_km) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String start = sdf.format(dateMap.get("start")); String end = sdf.format(dateMap.get("end")); @@ -140,8 +155,13 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin { " t1.fid = "+id+" AND\n" + " t4.fstartdate>='"+start+"' AND\n" + " t4.fstartdate<='"+end+"' AND\n" + - " t2.fbankcateid <> 0\n" + - "GROUP BY\n" + + " t2.fbankcateid <> 0 \n"); + + if (shkd_km != null) { + sqlBuilder.append(" AND t3.fsubjectmemid = "+shkd_km.getLong("id")+" \n"); + } + + sqlBuilder.append("GROUP BY\n" + " DATE_FORMAT(t4.fstartdate, '%Y%m'), -- 直接在 GROUP BY 中使用原始表达式\n" + " t2.fbankcateid, -- 按照金融机构分组\n" + " t1.fbillno");