自定义报表

This commit is contained in:
钱涛 2023-04-14 15:18:18 +08:00
parent abf255d03c
commit bc590b9ee8
6 changed files with 797 additions and 757 deletions

View File

@ -12,6 +12,7 @@ import com.engine.salary.report.enums.UnitTypeEnum;
import com.engine.salary.report.service.SalaryStatisticsItemService;
import com.engine.salary.util.SalaryAssert;
import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.db.MapperProxyFactory;
import dm.jdbc.util.IdGenerator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@ -27,14 +28,16 @@ import java.util.stream.Collectors;
public class SalaryStatisticsItemServiceImpl extends Service implements SalaryStatisticsItemService {
private SalaryStatisticsItemMapper salaryStatisticsItemMapper;
private SalaryStatisticsItemMapper getSalaryStatisticsItemMapper() {
return MapperProxyFactory.getProxy(SalaryStatisticsItemMapper.class);
}
@Override
public SalaryStatisticsItemPO getById(Long id) {
if (id == null) {
return null;
}
return salaryStatisticsItemMapper.getById(id);
return getSalaryStatisticsItemMapper().getById(id);
}
@Override
@ -42,7 +45,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
if (statisticsReportId == null) {
return null;
}
return salaryStatisticsItemMapper.listSome(SalaryStatisticsItemPO.builder().statReportId(statisticsReportId).build());
return getSalaryStatisticsItemMapper().listSome(SalaryStatisticsItemPO.builder().statReportId(statisticsReportId).build());
}
public List<SalaryStatisticsItemPO> listByIds(Collection<Long> ids) {
@ -51,7 +54,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
return new ArrayList<>();
}
return salaryStatisticsItemMapper.listSome(SalaryStatisticsItemPO.builder().ids(ids).build());
return getSalaryStatisticsItemMapper().listSome(SalaryStatisticsItemPO.builder().ids(ids).build());
}
@Override
@ -59,7 +62,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
SalaryAssert.notEmpty(ids, SalaryI18nUtil.getI18nLabel(152638, "id不可为空"));
List<SalaryStatisticsItemPO> list = this.listByIds(ids);
if (CollectionUtils.isNotEmpty(list)) {
salaryStatisticsItemMapper.deleteByIds(ids);
getSalaryStatisticsItemMapper().deleteByIds(ids);
// list.forEach(po -> {
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
// loggerContext.setTargetId(String.valueOf(po.getId()));
@ -117,7 +120,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
.updateTime(now)
.tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY)
.build();
salaryStatisticsItemMapper.insertIgnoreNull(subTableItemPO);
getSalaryStatisticsItemMapper().insertIgnoreNull(subTableItemPO);
// 记录操作日志
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();
@ -145,7 +148,7 @@ public class SalaryStatisticsItemServiceImpl extends Service implements SalarySt
itemPO.setMedianRule(Objects.nonNull(saveParam.getMedianRule()) ? JSON.toJSONString(saveParam.getMedianRule()) : "");
}
salaryStatisticsItemMapper.updateIgnoreNull(itemPO);
getSalaryStatisticsItemMapper().updateIgnoreNull(itemPO);
// 记录操作日志
// LoggerContext<SubTablePO> loggerContext = new LoggerContext<>();

View File

@ -1,5 +1,6 @@
package com.engine.salary.report.service.impl;
import com.engine.core.impl.Service;
import com.engine.salary.report.service.SubTableExportService;
/**
@ -8,7 +9,7 @@ import com.engine.salary.report.service.SubTableExportService;
* @CreateDate: 2022/11/9
* @Version: v1.0
*/
public class SubTableExportServiceImpl implements SubTableExportService {
public class SubTableExportServiceImpl extends Service implements SubTableExportService {
// private Logger logger = LoggerFactory.getLogger(this.getClass());
//

View File

@ -1,6 +1,7 @@
package com.engine.salary.report.wrapper;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.report.entity.bo.SalaryStatisticsReportBO;
@ -15,6 +16,10 @@ import com.engine.salary.report.service.SalaryStatisticsDimensionService;
import com.engine.salary.report.service.SalaryStatisticsItemService;
import com.engine.salary.report.service.SalaryStatisticsReportService;
import com.engine.salary.report.service.SubTableExportService;
import com.engine.salary.report.service.impl.SalaryStatisticsDimensionServiceImpl;
import com.engine.salary.report.service.impl.SalaryStatisticsItemServiceImpl;
import com.engine.salary.report.service.impl.SalaryStatisticsReportServiceImpl;
import com.engine.salary.report.service.impl.SubTableExportServiceImpl;
import com.engine.salary.util.JsonUtil;
import com.engine.salary.util.SalaryEntityUtil;
import com.engine.salary.util.SalaryI18nUtil;
@ -22,6 +27,7 @@ import com.engine.salary.util.page.PageInfo;
import com.google.common.collect.Maps;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import weaver.hrm.User;
import java.util.*;
import java.util.stream.Collectors;
@ -36,14 +42,21 @@ public class SalaryStatisticsReportWrapper extends Service {
private static final String conditionId = "salaryStatisticsReportSearchCondition";
private SalaryStatisticsReportService getSalaryStatisticsReportService(User user) {
return ServiceUtil.getService(SalaryStatisticsReportServiceImpl.class, user);
}
private SalaryStatisticsReportService salaryStatisticsReportService;
private SalaryStatisticsItemService getSalaryStatisticsItemService(User user) {
return ServiceUtil.getService(SalaryStatisticsItemServiceImpl.class, user);
}
private SalaryStatisticsItemService salaryStatisticsItemService;
private SalaryStatisticsDimensionService salaryStatisticsDimensionService;
private SubTableExportService subTableExportService;
private SalaryStatisticsDimensionService getSalaryStatisticsDimensionService(User user) {
return ServiceUtil.getService(SalaryStatisticsDimensionServiceImpl.class, user);
}
private SubTableExportService getSubTableExportService(User user) {
return ServiceUtil.getService(SubTableExportServiceImpl.class, user);
}
/**
* 报表列表
@ -53,13 +66,13 @@ public class SalaryStatisticsReportWrapper extends Service {
*/
public List<Map<String, Object>> list(SalaryStatisticsReportQueryParam queryParam) {
// 初始化
salaryStatisticsDimensionService.init((long)user.getUID());
getSalaryStatisticsDimensionService(user).init((long)user.getUID());
List<SalaryStatisticsReportPO> reportList = salaryStatisticsReportService.list();
List<SalaryStatisticsReportPO> reportList = getSalaryStatisticsReportService(user).list();
if (StringUtils.isNotEmpty(queryParam.getReportName())) {
reportList = reportList.stream().filter(rp -> rp.getReportName().contains(queryParam.getReportName())).collect(Collectors.toList());
}
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensionList = this.salaryStatisticsDimensionService.listAll();
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensionList = this.getSalaryStatisticsDimensionService(user).listAll();
Map<String, String> salaryStatisticsDimensionMap = SalaryEntityUtil.convert2Map(salaryStatisticsDimensionList, k -> k.getId().toString(), SalaryStatisticsDimensionPO::getDimName);
List<Map<String, Object>> result = new ArrayList<>();
reportList.forEach(po -> {
@ -84,11 +97,11 @@ public class SalaryStatisticsReportWrapper extends Service {
*/
public SalaryStatisticsReportPO getFrom(Long id) {
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensions = salaryStatisticsDimensionService.listAll();
List<SalaryStatisticsDimensionPO> salaryStatisticsDimensions = getSalaryStatisticsDimensionService(user).listAll();
String placeholder = SalaryI18nUtil.getI18nLabel(85987, "请输入");
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(id);
SalaryStatisticsReportPO po = this.getSalaryStatisticsReportService(user).getById(id);
if (po == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
}
@ -103,7 +116,7 @@ public class SalaryStatisticsReportWrapper extends Service {
* @return
*/
public String save(SalaryStatisticsReportSaveParam saveParam) {
return salaryStatisticsReportService.save(saveParam);
return getSalaryStatisticsReportService(user).save(saveParam);
}
/**
@ -114,12 +127,12 @@ public class SalaryStatisticsReportWrapper extends Service {
* @return
*/
public Map<String, Object> delete(Collection<Long> ids) {
return salaryStatisticsReportService.delete(ids);
return getSalaryStatisticsReportService(user).delete(ids);
}
public String saveSearchCondition(SalaryStatisticsSearchConditionSaveParam param) {
return this.salaryStatisticsReportService.saveSearchCondition(param);
return this.getSalaryStatisticsReportService(user).saveSearchCondition(param);
}
/**
@ -133,21 +146,21 @@ public class SalaryStatisticsReportWrapper extends Service {
if (param.getId() == null || param.getDimensionId() == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
}
SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId());
SalaryStatisticsDimensionPO dimension = getSalaryStatisticsDimensionService(user).getById(param.getDimensionId());
if (dimension == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161300, "统计维度不存在"));
}
// weaTable对象
Map<String, Object> weaTable= new HashMap<>();
// 查询报表配置
SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId());
SalaryStatisticsReportPO po = this.getSalaryStatisticsReportService(user).getById(param.getId());
if (po == null) {
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
}
// 查询自定义统计项目
List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId());
List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.getSalaryStatisticsItemService(user).listByStatisticsReportId(po.getId());
// 列表data
PageInfo<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList);
PageInfo<Map<String, Object>> page = this.getSalaryStatisticsReportService(user).buildReportRecords(dimension, param, po, salaryStatisticsItemList);
// 组装合计
Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList,(long)user.getUID());
@ -176,18 +189,18 @@ public class SalaryStatisticsReportWrapper extends Service {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(84026, "参数错误"));
// }
//
// SalaryStatisticsReportPO po = this.salaryStatisticsReportService.getById(param.getId());
// SalaryStatisticsReportPO po = this.getSalaryStatisticsReportService(user).getById(param.getId());
// if (po == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161845, "薪酬统计报表不存在"));
// }
// SalaryStatisticsDimensionPO dimension = salaryStatisticsDimensionService.getById(param.getDimensionId());
// SalaryStatisticsDimensionPO dimension = getSalaryStatisticsDimensionService(user).getById(param.getDimensionId());
// if (dimension == null) {
// throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(161300, "统计维度不存在"));
// }
// // 查询自定义统计项目
// List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.salaryStatisticsItemService.listByStatisticsReportId(po.getId());
// List<SalaryStatisticsItemPO> salaryStatisticsItemList = this.getSalaryStatisticsItemService(user).listByStatisticsReportId(po.getId());
// // 列表data
// Page<Map<String, Object>> page = this.salaryStatisticsReportService.buildReportRecords(dimension, param, po, salaryStatisticsItemList);
// Page<Map<String, Object>> page = this.getSalaryStatisticsReportService(user).buildReportRecords(dimension, param, po, salaryStatisticsItemList);
// // 组装合计
// Map<String, Object> countResultMap = SalaryStatisticsReportBO.buildTotal(page, salaryStatisticsItemList);
// if (CollectionUtils.isNotEmpty(page.getRecords()) && MapUtils.isNotEmpty(countResultMap)) {
@ -202,7 +215,7 @@ public class SalaryStatisticsReportWrapper extends Service {
// // 组装导出参数
// ExportCommonParam exportParam = SalaryStatisticsReportBO.buildExportParam(dimension.getDimName(), weaTableColumns, records);
// exportParam.setSheetName(SalaryI18nUtil.getI18nLabel(179263, "薪酬统计报表") + "-" + exportParam.getDimensionName());
// return subTableExportService.exportCommon(exportParam, UserContext.getCurrentUser(), TenantContext.get());
// return getSubTableExportService(user).exportCommon(exportParam, UserContext.getCurrentUser(), TenantContext.get());
return null;
}
}

View File

@ -46,6 +46,8 @@ public interface SalaryEmployeeService {
*/
List<DataCollectionEmployee> getEmployeeByIdsAll(List<Long> ids);
List<DataCollectionEmployee> listByIds(List<Long> ids);
/**
* 获取人员信息
* @param employeeId

View File

@ -100,6 +100,11 @@ public class SalaryEmployeeServiceImpl extends Service implements SalaryEmployee
return employBiz.getEmployeeByIdsAll(ids);
}
@Override
public List<DataCollectionEmployee> listByIds(List<Long> ids) {
return employBiz.getEmployeeByIdsAll(ids);
}
@Override
public DataCollectionEmployee getEmployeeById(Long employeeId) {
return employBiz.getEmployeeById(employeeId);