提交人:陈绍鑫

日期:2025/11/18 13:30
内容:计划编制报表
This commit is contained in:
陈绍鑫 2025-11-18 13:35:20 +08:00
parent 7152952fa6
commit 6404c02c54
1 changed files with 27 additions and 7 deletions

View File

@ -64,27 +64,41 @@ public class PlanReportPlugin extends AbstractReportListDataPlugin {
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
List<QFilter> 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<String, Date> dangyue = getMonthStartAndEnd(date);
Date date1 = getnextMonth(date);
//获取上月日期范围
//获取月日期范围
Map<String, Date> 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<String, String> zdm, Map<String, Date> dateMap) {
private StringBuilder getsql(long id, Map<String, String> zdm, Map<String, Date> 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");