diff --git a/src/com/engine/salary/report/service/SalaryStatisticsReportService.java b/src/com/engine/salary/report/service/SalaryStatisticsReportService.java index 4355552cb..069793ecf 100644 --- a/src/com/engine/salary/report/service/SalaryStatisticsReportService.java +++ b/src/com/engine/salary/report/service/SalaryStatisticsReportService.java @@ -70,6 +70,13 @@ public interface SalaryStatisticsReportService { */ Map delete(Collection ids ); + /** + * 复制 + * @param id + */ + void duplicate(Long id); + + /** * 保存统计范围 * @@ -106,5 +113,4 @@ public interface SalaryStatisticsReportService { */ void removeReportCache(); - } diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 553bc1227..14e342ca3 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -338,6 +338,34 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary return resultMap; } + @Override + public void duplicate(Long id) { + long uid = user.getUID(); + Date now = new Date(); + + SalaryStatisticsReportPO po = getById(id); + SalaryAssert.notNull(po, SalaryI18nUtil.getI18nLabel(152563, "报表不存在")); + + po.setId(IdGenerator.generate()); + po.setCreator(uid); + po.setCreateTime(now); + po.setUpdateTime(now); + po.setReportName(po.getReportName()+"_copy"); + + getSalaryStatisticsReportMapper().insertIgnoreNull(po); + + List itemPOS = getSalaryStatisticsItemService(user).listByStatisticsReportId(id); + List itemList = itemPOS.stream().map(item -> { + item.setId(IdGenerator.generate()); + item.setStatReportId(po.getId()); + item.setCreator(uid); + item.setCreateTime(now); + item.setUpdateTime(now); + return item; + }).collect(Collectors.toList()); + getSalaryStatisticsItemService(user).saveOrUpdateBatch(itemList); + } + @Override public PageInfo> buildReportRecords(SalaryStatisticsDimensionPO dimension, SalaryStatisticsReportDataQueryParam param, List salaryStatisticsItemList) { Map checkMap = SalaryStatisticsReportBO.checkLoad(salaryStatisticsItemList); diff --git a/src/com/engine/salary/report/web/SalaryStatisticsReportController.java b/src/com/engine/salary/report/web/SalaryStatisticsReportController.java index 010547fab..4ab48ee54 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsReportController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsReportController.java @@ -95,6 +95,20 @@ public class SalaryStatisticsReportController { return new ResponseResult, Map>(user).run(getSalaryStatisticsReportWrapper(user)::delete, ids); } + /** + * 复制薪酬统计报表 + * + * @param id + * @return + */ + @GET + @Path("/duplicate") + @Produces(MediaType.APPLICATION_JSON) + public String duplicate(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryStatisticsReportWrapper(user)::duplicate, id); + } + /** * 获取薪酬统计报表查询条件 * diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 954df95fd..67ac15781 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -212,6 +212,16 @@ public class SalaryStatisticsReportWrapper extends Service { return getSalaryStatisticsReportService(user).delete(ids); } + /** + * 复制薪资账套 + * @param id + */ + public void duplicate(Long id) { + if (id == null) { + throw new SalaryRunTimeException("id为空"); + } + getSalaryStatisticsReportService(user).duplicate(id); + } /** * 获取统计条件 @@ -470,8 +480,9 @@ public class SalaryStatisticsReportWrapper extends Service { /** * 权限校验 + * * @param isShared 是否是被分享的报表 - * @param po 报表po + * @param po 报表po */ private void sharedReportCheck(boolean isShared, SalaryStatisticsReportPO po) { if (isShared) {