|
@@ -1,6 +1,8 @@
|
|
|
package nckd.jxccl.sit.hcsi.rptdata;
|
|
package nckd.jxccl.sit.hcsi.rptdata;
|
|
|
|
|
|
|
|
import kd.bos.algo.DataSet;
|
|
import kd.bos.algo.DataSet;
|
|
|
|
|
+import kd.bos.algo.GroupbyDataSet;
|
|
|
|
|
+import kd.bos.algo.JoinDataSet;
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.entity.report.AbstractReportListDataPlugin;
|
|
import kd.bos.entity.report.AbstractReportListDataPlugin;
|
|
@@ -51,14 +53,25 @@ public class DetailCompareReportDataPlugin extends AbstractReportListDataPlugin
|
|
|
List<Long> taskIds = taskCols.stream().map(obj -> obj.getLong("id")).collect(Collectors.toList());
|
|
List<Long> taskIds = taskCols.stream().map(obj -> obj.getLong("id")).collect(Collectors.toList());
|
|
|
// 根据计算任务Id+险种获取到计算结果明细数据
|
|
// 根据计算任务Id+险种获取到计算结果明细数据
|
|
|
DataSet calPersonDataSet = queryCalPersonDetail(reportQueryParam, taskIds);
|
|
DataSet calPersonDataSet = queryCalPersonDetail(reportQueryParam, taskIds);
|
|
|
- // 按照个人和单位分组汇总 type = 1为个人,type = 2为单位
|
|
|
|
|
|
|
+ // 按照个人和单位分组汇总 type = 1为个人,type = 2为单位,这里仅为系统内数据
|
|
|
|
|
+ DataSet groupDataSet = groupCalPersonDetail(calPersonDataSet);
|
|
|
|
|
+ // 再关联外部数据导入
|
|
|
|
|
+ DataSet outsidePersonDetail = ReportUtils.queryOutsidePersonDetail(reportQueryParam);
|
|
|
|
|
+ // 按照个人和单位分组汇总 type = 1为个人,type = 2为单位,这里仅为系统内数据
|
|
|
|
|
+ DataSet groupDataSetOut = groupCalPersonDetailOut(outsidePersonDetail);
|
|
|
|
|
|
|
|
- return null;
|
|
|
|
|
|
|
+ // 再join
|
|
|
|
|
+ String[] leftFields = new String[]{"welfarepayer", "welfaretypeid", "empnumber", "empname", "empidcard", "type", "personSysValue", "companySysValue"};
|
|
|
|
|
+ String[] rightFields = new String[]{"personOutValue", "companyOutValue"};
|
|
|
|
|
+ DataSet finalDataSet = groupDataSet.join(groupDataSetOut).on("welfarepayer", "welfarepayer").on("welfaretypeid", "welfaretypeid").
|
|
|
|
|
+ on("empnumber", "empnumber").on("empname", "empname").
|
|
|
|
|
+ on("empidcard", "empidcard").select(leftFields, rightFields).finish();
|
|
|
|
|
+ return finalDataSet;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public DataSet queryDataSet(ReportQueryParam reportQueryParam, QFilter filter, String entityName, String selectFields) {
|
|
public DataSet queryDataSet(ReportQueryParam reportQueryParam, QFilter filter, String entityName, String selectFields) {
|
|
|
HRBaseServiceHelper helper = new HRBaseServiceHelper(entityName);
|
|
HRBaseServiceHelper helper = new HRBaseServiceHelper(entityName);
|
|
|
- DataSet dataSet = helper.queryDataSet("AttendanceRateReportQuery-Sbsent", selectFields, new QFilter[]{filter});
|
|
|
|
|
|
|
+ DataSet dataSet = helper.queryDataSet("AttendanceRateReportQuery-Absent", selectFields, new QFilter[]{filter});
|
|
|
return dataSet;
|
|
return dataSet;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -83,13 +96,39 @@ public class DetailCompareReportDataPlugin extends AbstractReportListDataPlugin
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 分组汇总人员明细
|
|
* 分组汇总人员明细
|
|
|
- *
|
|
|
|
|
* @param calPersonDataSet
|
|
* @param calPersonDataSet
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public DataSet groupCalPersonDetail (DataSet calPersonDataSet) {
|
|
public DataSet groupCalPersonDetail (DataSet calPersonDataSet) {
|
|
|
- //calPersonDataSet.groupBy(new String[]{"welfarepayer","welfaretypeid","empnumber","empname","empidcard","type"}).sum
|
|
|
|
|
- return calPersonDataSet;
|
|
|
|
|
|
|
+ calPersonDataSet.groupBy(new String[]{"welfarepayer","welfaretypeid","empnumber","empname","empidcard","type"}).sum("value");
|
|
|
|
|
+ DataSet dataSet1 = calPersonDataSet.copy();
|
|
|
|
|
+ DataSet dataSet2 = calPersonDataSet.copy();
|
|
|
|
|
+
|
|
|
|
|
+ // 按照类型分组汇总
|
|
|
|
|
+ DataSet sumSet1 = dataSet1.filter("type = '1'").groupBy(new String[]{"welfarepayer", "welfaretypeid", "empnumber", "empname", "empidcard", "type"}).sum("value").finish();
|
|
|
|
|
+ DataSet sumSet2 = dataSet2.filter("type = '2'").groupBy(new String[]{"welfarepayer","welfaretypeid","empnumber","empname","empidcard","type"}).sum("value").finish();
|
|
|
|
|
+
|
|
|
|
|
+ // join
|
|
|
|
|
+ JoinDataSet joinDataSet = sumSet1.join(sumSet2).on("welfarepayer", "welfarepayer").on("welfaretypeid", "welfaretypeid").on("empnumber", "empnumber").on("empname", "empname").on("empidcard", "empidcard");
|
|
|
|
|
+ DataSet dataSet = joinDataSet.select(new String[]{"welfarepayer", "welfaretypeid", "empnumber", "empname", "empidcard", "type", "value as personSysValue"}, new String[]{"value as companySysValue"}).finish();
|
|
|
|
|
+
|
|
|
|
|
+ return dataSet;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public DataSet groupCalPersonDetailOut (DataSet calPersonDataSet) {
|
|
|
|
|
+ calPersonDataSet.groupBy(new String[]{"welfarepayer","welfaretypeid","empnumber","empname","empidcard","type"}).sum("value");
|
|
|
|
|
+ DataSet dataSet1 = calPersonDataSet.copy();
|
|
|
|
|
+ DataSet dataSet2 = calPersonDataSet.copy();
|
|
|
|
|
+
|
|
|
|
|
+ // 按照类型分组汇总
|
|
|
|
|
+ DataSet sumSet1 = dataSet1.filter("type = '1'").groupBy(new String[]{"welfarepayer", "welfaretypeid", "empnumber", "empname", "empidcard", "type"}).sum("value").finish();
|
|
|
|
|
+ DataSet sumSet2 = dataSet2.filter("type = '2'").groupBy(new String[]{"welfarepayer","welfaretypeid","empnumber","empname","empidcard","type"}).sum("value").finish();
|
|
|
|
|
+
|
|
|
|
|
+ // join
|
|
|
|
|
+ JoinDataSet joinDataSet = sumSet1.join(sumSet2).on("welfarepayer", "welfarepayer").on("welfaretypeid", "welfaretypeid").on("empnumber", "empnumber").on("empname", "empname").on("empidcard", "empidcard");
|
|
|
|
|
+ DataSet dataSet = joinDataSet.select(new String[]{"welfarepayer", "welfaretypeid", "empnumber", "empname", "empidcard", "type", "value as personOutValue"}, new String[]{"value as companyOutValue"}).finish();
|
|
|
|
|
+
|
|
|
|
|
+ return dataSet;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|