From 6119e933d59fa2bebeb4d3d45ae31ac12cfdf169 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 21 Feb 2025 16:50:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E6=82=A6=20=E5=87=AD=E8=AF=81?= =?UTF-8?q?=E4=BA=8C=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/ly/param/LyPZGenParam.java | 16 + .../ly/param/LySalaryReportQueryParam.java | 16 + .../engine/salary/entity/ly/po/UfGjjInfo.java | 57 ++ .../engine/salary/entity/ly/po/UfSbInfo.java | 98 +++ .../salary/entity/taxdeclaration/bo/test.java | 22 + .../salary/enums/ly/LyPushStatusEnum.java | 10 +- .../salary/mapper/ly/UfSbgjjMapper.java | 21 + .../engine/salary/mapper/ly/UfSbgjjMapper.xml | 129 ++++ .../salary/service/LyFundReportService.java | 2 +- .../engine/salary/service/LyPZService.java | 2 + .../salary/service/LySalaryReportService.java | 2 +- .../salary/service/LySocialReportService.java | 2 +- .../service/impl/LyFundReportServiceImpl.java | 351 +++++++---- .../salary/service/impl/LyPZServiceImpl.java | 53 +- .../impl/LySalaryReportServiceImpl.java | 58 +- .../impl/LySocialReportServiceImpl.java | 559 +++++++++++++----- .../engine/salary/util/SalaryEnumUtil.java | 1 - .../engine/salary/util/SalaryTokenUtil.java | 5 +- .../engine/salary/web/LySalaryController.java | 6 +- .../salary/wrapper/LySalaryWrapper.java | 6 +- 20 files changed, 1123 insertions(+), 293 deletions(-) create mode 100644 src/com/engine/salary/entity/ly/po/UfGjjInfo.java create mode 100644 src/com/engine/salary/entity/ly/po/UfSbInfo.java create mode 100644 src/com/engine/salary/entity/taxdeclaration/bo/test.java create mode 100644 src/com/engine/salary/mapper/ly/UfSbgjjMapper.java create mode 100644 src/com/engine/salary/mapper/ly/UfSbgjjMapper.xml diff --git a/src/com/engine/salary/entity/ly/param/LyPZGenParam.java b/src/com/engine/salary/entity/ly/param/LyPZGenParam.java index f34e89f8a..111237188 100644 --- a/src/com/engine/salary/entity/ly/param/LyPZGenParam.java +++ b/src/com/engine/salary/entity/ly/param/LyPZGenParam.java @@ -38,4 +38,20 @@ public class LyPZGenParam { * temp 1=薪资、2、社保 */ private Integer pzlx; + + + /** + * 费用承担公司全称 + */ + private List fycdgsqc; + + /** + * 计提状态 + */ + private List jtStatus; + + /** + * 发放状态 + */ + private List ffStatus; } diff --git a/src/com/engine/salary/entity/ly/param/LySalaryReportQueryParam.java b/src/com/engine/salary/entity/ly/param/LySalaryReportQueryParam.java index e32138c3d..b28118a79 100644 --- a/src/com/engine/salary/entity/ly/param/LySalaryReportQueryParam.java +++ b/src/com/engine/salary/entity/ly/param/LySalaryReportQueryParam.java @@ -35,5 +35,21 @@ public class LySalaryReportQueryParam extends BaseQueryParam { */ private List ffgsqc; + + /** + * 费用承担公司全称 + */ + private List fycdgsqc; + + /** + * 计提状态 + */ + private List jtStatus; + + /** + * 发放状态 + */ + private List ffStatus; + private boolean export; } diff --git a/src/com/engine/salary/entity/ly/po/UfGjjInfo.java b/src/com/engine/salary/entity/ly/po/UfGjjInfo.java new file mode 100644 index 000000000..9dd5e589d --- /dev/null +++ b/src/com/engine/salary/entity/ly/po/UfGjjInfo.java @@ -0,0 +1,57 @@ +package com.engine.salary.entity.ly.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @ClassName LyFundReportPO + * @date 2025/02/18 15:03 + * @description 公积金建模数据 + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UfGjjInfo { + private Long id; + + // 分部 + private Long fb; + + // 员工 + private Long yg; + + // 公积金购买公司名称 + private String fycdgsqc; + + // 公积金承担公司名称 + private String gjjcdgsmc; + + // 职能项目类别 + private String znxmlb; + + // 职能/项目名称 + private String znxmmc; + + // 费用所属期(格式2024-01) + private String fyszq; + + // 公积金个人部分 + private Double gjjgrjn; + // 公积金个人部分 补扣补缴 + private Double gjjgrbkbj; + + // 公积金单位缴纳 + private Double gjjdwjn; + // 公积金单位缴纳 补扣补缴 + private Double gjjdwbkbj; + + // 服务费 + private Double fuwufi; + + // 挂靠个人应该转回金额 + private Double gkgrygzhje; +} diff --git a/src/com/engine/salary/entity/ly/po/UfSbInfo.java b/src/com/engine/salary/entity/ly/po/UfSbInfo.java new file mode 100644 index 000000000..ab500dfb9 --- /dev/null +++ b/src/com/engine/salary/entity/ly/po/UfSbInfo.java @@ -0,0 +1,98 @@ +package com.engine.salary.entity.ly.po; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @ClassName LyFundReportPO + * @date 2025/02/18 15:03 + * @description 社保建模数据 + */ +@Builder +@Data +@NoArgsConstructor +@AllArgsConstructor +public class UfSbInfo { + private Long id; + + // 分部 + private Integer fb; + + // 员工 + private Long yg; + + // 社保购买公司名称 + private String gmgsqc; + + // 社保承担公司名称 + private String sbcdgsmc; + + // 职能项目类别 + private String znxmlb; + + // 职能/项目名称 + private String znxmmc; + + // 费用所属期(格式2024-01) + private String fyszq; + + // 养老 公司部分 + private Double ylbxdwjn1; + // 养老 公司部分 补扣补缴 + private Double ylbxdwbkbj; + // 养老 个人部分 + private Double ylbxgrjn1; + // 养老 个人部分 补扣补缴 + private Double ylbxgrbkbj1; + + // 医疗 公司部分 + private Double ylbxdwjn; + // 医疗 公司部分 补扣补缴 + private Double ylbxdwbkbj1; + // 医疗 个人部分 + private Double ylbxgrjn; + // 医疗 个人部分 补扣补缴 + private Double ylbxgrbkbj; + + // 失业 公司部分 + private Double sybxdwjn; + // 失业 公司部分 补扣补缴 + private Double sybxdwbkbj; + // 失业 个人部分 + private Double sybxgrjn; + // 失业 个人部分 补扣补缴 + private Double sybxgrbkbj; + + // 生育 公司部分 + private Double sybxdwjn1; + // 生育 公司部分 补扣补缴 + private Double sybxdwbkbj1; + + + // 工伤 公司部分 + private Double gsbxdwjn; + // 工伤 公司部分 补扣补缴 + private Double gsbxdwbkbj; + + // 补充医疗及其他 公司部分 + private Double dbylbx; + + // 社保公司部分合计 + private Double sbdwjnhj; + // 社保公司部分 补扣补缴合计 + private Double sbdwbkbjhj; + + // 社保个人部分合计 + private Double sbgrjnhj; + // 社保个人部分 补扣补缴合计 + private Double sbgrbkbkbj; + + // 服务费 + private Double fuwufi; + + // 挂靠个人应该转回金额 + private Double gkgrygzhje; +} diff --git a/src/com/engine/salary/entity/taxdeclaration/bo/test.java b/src/com/engine/salary/entity/taxdeclaration/bo/test.java new file mode 100644 index 000000000..00fa1157b --- /dev/null +++ b/src/com/engine/salary/entity/taxdeclaration/bo/test.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.taxdeclaration.bo; + +import java.util.ArrayList; + +/** + * @author Harryxzy + * @ClassName test + * @date 2025/02/20 18:24 + * @description + */ +public class test { + + public static void main(String[] args) { + + ArrayList resultList = new ArrayList<>(); + resultList.add(null); + resultList.add(null); + resultList.add(null); + Object o = resultList.stream().findFirst().orElse(""); + System.out.println(o); + } +} diff --git a/src/com/engine/salary/enums/ly/LyPushStatusEnum.java b/src/com/engine/salary/enums/ly/LyPushStatusEnum.java index 4db3b0177..fd1d08059 100644 --- a/src/com/engine/salary/enums/ly/LyPushStatusEnum.java +++ b/src/com/engine/salary/enums/ly/LyPushStatusEnum.java @@ -1,5 +1,7 @@ package com.engine.salary.enums.ly; +import com.engine.salary.enums.BaseEnum; + import java.util.Arrays; /** @@ -8,7 +10,7 @@ import java.util.Arrays; * @date 2024/08/27 17:54 * @description 领悦 - 推送状态类型 */ -public enum LyPushStatusEnum { +public enum LyPushStatusEnum implements BaseEnum { WAIT(0, "未推送", 0), SUCCESS(1, "推送成功", 0), @@ -18,7 +20,7 @@ public enum LyPushStatusEnum { private String defaultLabel; - private int labelId; + private Integer labelId; LyPushStatusEnum(int value, String defaultLabel, int labelId) { this.value = value; @@ -26,7 +28,7 @@ public enum LyPushStatusEnum { this.labelId = labelId; } - public int getValue() { + public Integer getValue() { return value; } @@ -34,7 +36,7 @@ public enum LyPushStatusEnum { return defaultLabel; } - public int getLabelId() { + public Integer getLabelId() { return labelId; } diff --git a/src/com/engine/salary/mapper/ly/UfSbgjjMapper.java b/src/com/engine/salary/mapper/ly/UfSbgjjMapper.java new file mode 100644 index 000000000..f4264f70d --- /dev/null +++ b/src/com/engine/salary/mapper/ly/UfSbgjjMapper.java @@ -0,0 +1,21 @@ +package com.engine.salary.mapper.ly; + +import com.engine.salary.entity.ly.po.UfGjjInfo; +import com.engine.salary.entity.ly.po.UfSbInfo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author Harryxzy + * @ClassName UfSbgjjMapper + * @date 2025/02/18 14:58 + * @description + */ +public interface UfSbgjjMapper { + + + List listSbInfoByFyssq(@Param("fyssq")String fyssq); + + List listGjjInfoByFyssq(@Param("fyssq") String fyssq); +} diff --git a/src/com/engine/salary/mapper/ly/UfSbgjjMapper.xml b/src/com/engine/salary/mapper/ly/UfSbgjjMapper.xml new file mode 100644 index 000000000..5308c942e --- /dev/null +++ b/src/com/engine/salary/mapper/ly/UfSbgjjMapper.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t.dbylbx + , t.fb + , t.fuwufi + , t.fyszq + , t.gkgrygzhje + , t.gmgsqc + , t.gsbxdwbkbj + , t.gsbxdwjn + , t.id + , t.sbcdgsmc + , t.sbdwbkbjhj + , t.sbdwjnhj + , t.sbgrbkbkbj + , t.sbgrjnhj + , t.sybxdwbkbj + , t.sybxdwbkbj1 + , t.sybxdwjn + , t.sybxdwjn1 + , t.sybxgrbkbj + , t.sybxgrjn + , t.yg + , t.ylbxdwbkbj + , t.ylbxdwbkbj1 + , t.ylbxdwjn + , t.ylbxdwjn1 + , t.ylbxgrbkbj + , t.ylbxgrbkbj1 + , t.ylbxgrjn + , t.ylbxgrjn1 + , t.znxmlb + , t.znxmmc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + t.fuwufi + , t.fb + , t.fycdgsqc + , t.fyszq + , t.gjjcdgsmc + , t.gjjdwbkbj + , t.gjjdwjn + , t.gjjgrbkbj + , t.gjjgrjn + , t.gkgrygzhje + , t.id + , t.yg + , t.znxmlb + , t.znxmmc + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/service/LyFundReportService.java b/src/com/engine/salary/service/LyFundReportService.java index ad88ac648..498a70b3a 100644 --- a/src/com/engine/salary/service/LyFundReportService.java +++ b/src/com/engine/salary/service/LyFundReportService.java @@ -108,7 +108,7 @@ public interface LyFundReportService { * @param queryParam * @return */ - List> fundReportGmgsList(LySalaryReportQueryParam queryParam); + Map fundReportGmgsList(LySalaryReportQueryParam queryParam); void deleteAllFundReport(LySalaryReportQueryParam queryParam); } diff --git a/src/com/engine/salary/service/LyPZService.java b/src/com/engine/salary/service/LyPZService.java index 2a8d74d3c..cd9407eb2 100644 --- a/src/com/engine/salary/service/LyPZService.java +++ b/src/com/engine/salary/service/LyPZService.java @@ -25,6 +25,8 @@ public interface LyPZService { */ Map genPZ(LyPZGenParam queryParam); + Map listAllFrzt(); + /** * 辅助核算浏览框 * diff --git a/src/com/engine/salary/service/LySalaryReportService.java b/src/com/engine/salary/service/LySalaryReportService.java index 668728030..bbf7e9ed0 100644 --- a/src/com/engine/salary/service/LySalaryReportService.java +++ b/src/com/engine/salary/service/LySalaryReportService.java @@ -80,7 +80,7 @@ public interface LySalaryReportService { */ Map listSalaryReport(LySalaryReportQueryParam param); - List> salaryReportFfgsList(LySalaryReportQueryParam param); + Map salaryReportFfgsList(LySalaryReportQueryParam param); /** * 根据id删除报表数据 diff --git a/src/com/engine/salary/service/LySocialReportService.java b/src/com/engine/salary/service/LySocialReportService.java index 1d2975538..a3f6aaded 100644 --- a/src/com/engine/salary/service/LySocialReportService.java +++ b/src/com/engine/salary/service/LySocialReportService.java @@ -108,7 +108,7 @@ public interface LySocialReportService { * @param queryParam * @return */ - List> sIReportGmgsList(LySalaryReportQueryParam queryParam); + Map sIReportGmgsList(LySalaryReportQueryParam queryParam); void deleteAllSIReport(LySalaryReportQueryParam param); diff --git a/src/com/engine/salary/service/impl/LyFundReportServiceImpl.java b/src/com/engine/salary/service/impl/LyFundReportServiceImpl.java index 27cf444c5..07b0e19ed 100644 --- a/src/com/engine/salary/service/impl/LyFundReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/LyFundReportServiceImpl.java @@ -2,14 +2,13 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.common.LocalDateRange; import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.ly.param.LySalaryReportQueryParam; import com.engine.salary.entity.ly.po.LyFundReportPO; +import com.engine.salary.entity.ly.po.UfGjjInfo; import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; -import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; @@ -17,10 +16,10 @@ import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.ly.LyPushStatusEnum; -import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.ly.LyFundReportMapper; +import com.engine.salary.mapper.ly.UfSbgjjMapper; import com.engine.salary.service.*; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; @@ -36,6 +35,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.general.BaseBean; +import weaver.general.Util; import weaver.hrm.User; import java.math.BigDecimal; @@ -83,6 +83,14 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ return ServiceUtil.getService(LySalaryReportServiceImpl.class, user); } + private UfSbgjjMapper getLyUfSbgjjMapper() { + return MapperProxyFactory.getProxy(UfSbgjjMapper.class); + } + + private LyPZService getLyPZService(User user) { + return ServiceUtil.getService(LyPZServiceImpl.class, user); + } + @Override public List listAll() { return getLyFundReportMapper().listAll(); @@ -148,108 +156,210 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ if (CollectionUtils.isNotEmpty(lyFundReportPOS)) { throw new SalaryRunTimeException("本薪资所属月已生成公积金汇总报表,无法生成公积金汇总报表数据"); } - BaseBean baseBean = new BaseBean(); - // 获取薪资核算结果 - List salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build()); - // 过滤账套及状态 - // List salarySobIds = Arrays.stream(baseBean.getPropValue("lySalaryNCReport", "salary_sob_ids").split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); - // salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> salarySobIds.contains(record.getSalarySobId()) && record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); - salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); + // 获取建模中社保数据 + List gjjInfoList = listUfGjjInfoBySalaryMonth(salaryMonthDate); + if (CollectionUtils.isNotEmpty(gjjInfoList)) { + Map> resultGroup = SalaryEntityUtil.group2Map(gjjInfoList, gjjInfo -> Util.null2String(gjjInfo.getFycdgsqc()) + + "-split" + Util.null2String(gjjInfo.getGjjcdgsmc()) + + "-split" + Util.null2String(gjjInfo.getZnxmmc())); + // 排序 - 根据key排序 + LinkedHashMap> sortedMap = new LinkedHashMap<>(); + resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); + + // 获取所有法人主体信息 + Map frztMap = getLyPZService(user).listAllFrzt(); + Date now = new Date(); + sortedMap.forEach((key, valueList) -> { + String[] split = key.split("-split"); + String gmgsqc = split.length > 0 ? split[0] : ""; + String fycdgsqc = split.length > 1 ? split[1] : ""; + String znxmmc = split.length > 2 ? split[2] : ""; + Long subcompanyId = CollectionUtils.isEmpty(valueList) ? 0L : valueList.get(0).getFb() == null ? 0L : Long.valueOf(valueList.get(0).getFb()); + String znxmlxStr = CollectionUtils.isEmpty(valueList) ? "" : valueList.get(0).getZnxmlb() == null ? "" : valueList.get(0).getZnxmlb(); + + LyFundReportPO build = LyFundReportPO.builder() + .id(IdGenerator.generate()) + .subcompanyId(subcompanyId) + .ftempNum(CollectionUtils.isEmpty(valueList) ? 0 : valueList.size()) + .salaryMonth(salaryMonthDate) + .znxmlx(znxmlxStr) + .gmgsqc(frztMap.getOrDefault(gmgsqc, "")) + .fycdgsqc(frztMap.getOrDefault(fycdgsqc, "")) + .znxmmc(znxmmc) + .gjjjtpzFlag(0) + .gjjffpzFlag(0) + .creator(Long.valueOf(user.getUID())) + .createTime(now) + .updateTime(now) + .deleteType(0) + .build(); + + // 公积金公司部分 + BigDecimal gjjgsSum = valueList.stream() + .map(UfGjjInfo::getGjjdwjn) + .filter(gjjgs -> gjjgs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal gjjgsbkbjSum = valueList.stream() + .map(UfGjjInfo::getGjjdwbkbj) + .filter(gjjbkbjgs -> gjjbkbjgs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setGjjGsbf(gjjgsSum.add(gjjgsbkbjSum).toPlainString()); + + // 公积金个人部分 + BigDecimal gjjgrSum = valueList.stream() + .map(UfGjjInfo::getGjjgrjn) + .filter(gjjgr -> gjjgr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal gjjgrbkbjSum = valueList.stream() + .map(UfGjjInfo::getGjjgrbkbj) + .filter(gjjgr -> gjjgr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setGjjGrbf(gjjgrSum.add(gjjgrbkbjSum).toPlainString()); + + // 公积金合计 + build.setGjjGjjhj(gjjgsSum.add(gjjgsbkbjSum).add(gjjgrSum).add(gjjgrbkbjSum).toPlainString()); - if (CollectionUtils.isNotEmpty(salaryAcctRecordList)) { - List salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList()); - // 获取薪资核算人员 - List salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); - if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) { - String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ","); - // 获取薪资项目id - List salaryItemIds = new ArrayList<>(); - // 职能项目类型 - Long znxmlxItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_znxmlx_item_id"); - salaryItemIds.add(znxmlxItemId); - // 购买公司全称 - Long gmgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gmgsqc_item_id"); - salaryItemIds.add(gmgsqcItemId); - // 费用承担公司全称 - Long fycdgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_fycdgsqc_item_id"); - salaryItemIds.add(fycdgsqcItemId); - // 职能/项目名称 - Long znxmmcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_znxmmc_item_id"); - salaryItemIds.add(znxmmcItemId); - // 公积金-公司部分 - Long gjjgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_gsbf_item_id"); - salaryItemIds.add(gjjgsbfItemId); - // 公积金-个人部分 - Long gjjgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_grbf_item_id"); - salaryItemIds.add(gjjgrbfItemId); - // 公积金-公积金合计 - Long gjjgjjhjItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_gjjhj_item_id"); - salaryItemIds.add(gjjgjjhjItemId); // 服务费 - Long fwfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_fwf_item_id"); - salaryItemIds.add(fwfItemId); + BigDecimal fwfSum = valueList.stream() + .map(UfGjjInfo::getFuwufi) + .filter(fwf -> fwf != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setFwf(fwfSum.toPlainString()); - List salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds); - salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); - List salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - // 获取薪资核算结果 - List acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds); - List salarySobEmpFields = new ArrayList<>(); - salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build()); - List> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false); - // - Map>> resultGroup = SalaryEntityUtil.group2Map(resultMapList, map -> (map.get(gmgsqcItemId.toString()) == null ? " " : map.get(gmgsqcItemId.toString()).toString()) - + "-split" + (map.get(fycdgsqcItemId.toString()) == null ? " " : map.get(fycdgsqcItemId.toString()).toString()) - + "-split" + (map.get(znxmmcItemId.toString()) == null ? " " : map.get(znxmmcItemId.toString()).toString())); - List numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList()); - LinkedHashMap> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId); - - // 排序 - 根据key排序 - LinkedHashMap> sortedMap = new LinkedHashMap<>(); - resultMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); - resultMap = sortedMap; - Date now = new Date(); - resultMap.forEach((key,valueMap) -> { - String[] split = key.split("-split"); - String gmgsqc = split.length > 0 ? split[0] : ""; - String fycdgsqc = split.length > 1 ? split[1] : ""; - String znxmmc = split.length > 2 ? split[2] : ""; - valueMap.put("gmgsqc", gmgsqc); - valueMap.put("fycdgsqc",fycdgsqc); - valueMap.put("znxmmc",znxmmc); - - LyFundReportPO build = LyFundReportPO.builder() - .id(IdGenerator.generate()) - .subcompanyId(Long.valueOf(valueMap.getOrDefault("subcompanyId","0").toString())) - .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) - .salaryMonth(salaryMonthDate) - .znxmlx(valueMap.getOrDefault(znxmlxItemId.toString(), "").toString()) - .gmgsqc(gmgsqc) - .fycdgsqc(fycdgsqc) - .znxmmc(znxmmc) - .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) - .gjjGsbf(valueMap.getOrDefault(gjjgsbfItemId.toString(), "0").toString()) - .gjjGrbf(valueMap.getOrDefault(gjjgrbfItemId.toString(), "0").toString()) - .gjjGjjhj(valueMap.getOrDefault(gjjgjjhjItemId.toString(), "0").toString()) - .fwf(valueMap.getOrDefault(fwfItemId.toString(), "0").toString()) - .gkgrygzhje("") - .dataSorce(dataSourceStr) - .gjjjtpzFlag(0) - .gjjffpzFlag(0) - .creator(Long.valueOf(user.getUID())) - .createTime(now) - .updateTime(now) - .deleteType(0) - .build(); - getLyFundReportMapper().insertIgnoreNull(build); - }); - } + // 挂靠个人应该转回金额 + BigDecimal gkgrygzhjeSum = valueList.stream() + .map(UfGjjInfo::getGkgrygzhje) + .filter(gkgrygzhje -> gkgrygzhje != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setGkgrygzhje(gkgrygzhjeSum.toPlainString()); + getLyFundReportMapper().insertIgnoreNull(build); + }); } + + // BaseBean baseBean = new BaseBean(); + // + // // 获取薪资核算结果 + // List salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build()); + // // 过滤账套及状态 + // // List salarySobIds = Arrays.stream(baseBean.getPropValue("lySalaryNCReport", "salary_sob_ids").split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); + // // salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> salarySobIds.contains(record.getSalarySobId()) && record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); + // salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); + // + // if (CollectionUtils.isNotEmpty(salaryAcctRecordList)) { + // List salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList()); + // // 获取薪资核算人员 + // List salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); + // if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) { + // String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ","); + // // 获取薪资项目id + // List salaryItemIds = new ArrayList<>(); + // // 职能项目类型 + // Long znxmlxItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_znxmlx_item_id"); + // salaryItemIds.add(znxmlxItemId); + // // 购买公司全称 + // Long gmgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gmgsqc_item_id"); + // salaryItemIds.add(gmgsqcItemId); + // // 费用承担公司全称 + // Long fycdgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_fycdgsqc_item_id"); + // salaryItemIds.add(fycdgsqcItemId); + // // 职能/项目名称 + // Long znxmmcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_znxmmc_item_id"); + // salaryItemIds.add(znxmmcItemId); + // // 公积金-公司部分 + // Long gjjgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_gsbf_item_id"); + // salaryItemIds.add(gjjgsbfItemId); + // // 公积金-个人部分 + // Long gjjgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_grbf_item_id"); + // salaryItemIds.add(gjjgrbfItemId); + // // 公积金-公积金合计 + // Long gjjgjjhjItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_gjj_gjjhj_item_id"); + // salaryItemIds.add(gjjgjjhjItemId); + // // 服务费 + // Long fwfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "fund_fwf_item_id"); + // salaryItemIds.add(fwfItemId); + // + // List salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds); + // salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + // List salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + // // 获取薪资核算结果 + // List acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds); + // List salarySobEmpFields = new ArrayList<>(); + // salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build()); + // List> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false); + // // + // Map>> resultGroup = SalaryEntityUtil.group2Map(resultMapList, map -> (map.get(gmgsqcItemId.toString()) == null ? " " : map.get(gmgsqcItemId.toString()).toString()) + // + "-split" + (map.get(fycdgsqcItemId.toString()) == null ? " " : map.get(fycdgsqcItemId.toString()).toString()) + // + "-split" + (map.get(znxmmcItemId.toString()) == null ? " " : map.get(znxmmcItemId.toString()).toString())); + // List numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList()); + // LinkedHashMap> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId); + // + // // 排序 - 根据key排序 + // LinkedHashMap> sortedMap = new LinkedHashMap<>(); + // resultMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); + // resultMap = sortedMap; + // Date now = new Date(); + // resultMap.forEach((key,valueMap) -> { + // String[] split = key.split("-split"); + // String gmgsqc = split.length > 0 ? split[0] : ""; + // String fycdgsqc = split.length > 1 ? split[1] : ""; + // String znxmmc = split.length > 2 ? split[2] : ""; + // valueMap.put("gmgsqc", gmgsqc); + // valueMap.put("fycdgsqc",fycdgsqc); + // valueMap.put("znxmmc",znxmmc); + // + // LyFundReportPO build = LyFundReportPO.builder() + // .id(IdGenerator.generate()) + // .subcompanyId(Long.valueOf(valueMap.getOrDefault("subcompanyId","0").toString())) + // .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) + // .salaryMonth(salaryMonthDate) + // .znxmlx(valueMap.getOrDefault(znxmlxItemId.toString(), "").toString()) + // .gmgsqc(gmgsqc) + // .fycdgsqc(fycdgsqc) + // .znxmmc(znxmmc) + // .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) + // .gjjGsbf(valueMap.getOrDefault(gjjgsbfItemId.toString(), "0").toString()) + // .gjjGrbf(valueMap.getOrDefault(gjjgrbfItemId.toString(), "0").toString()) + // .gjjGjjhj(valueMap.getOrDefault(gjjgjjhjItemId.toString(), "0").toString()) + // .fwf(valueMap.getOrDefault(fwfItemId.toString(), "0").toString()) + // .gkgrygzhje("") + // .dataSorce(dataSourceStr) + // .gjjjtpzFlag(0) + // .gjjffpzFlag(0) + // .creator(Long.valueOf(user.getUID())) + // .createTime(now) + // .updateTime(now) + // .deleteType(0) + // .build(); + // getLyFundReportMapper().insertIgnoreNull(build); + // }); + // } + // } + } + + /** + * 获取建模公积金信息 + * @param salaryMonth + * @return + */ + private List listUfGjjInfoBySalaryMonth(Date salaryMonth) { + if (salaryMonth == null) { + return new ArrayList(); + } + String fyssq = SalaryDateUtil.getFormatYearMonth(salaryMonth); + return getLyUfSbgjjMapper().listGjjInfoByFyssq(fyssq); + } + List> buildData4LyReport(List salaryItemList, List salaryAcctEmployeeList, List salarySobEmpFields, List salaryAcctResult, boolean dynamicEmpInfo) { List empIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList()); List employeeList = getSalaryEmployeeService(user).listByIds(empIds); @@ -388,6 +498,17 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ List canManageFrztByUid = getLySalaryReportService(user).getCanManageFrztByUid(user); lyFundReportPOS = lyFundReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getGmgsqc())).collect(Collectors.toList()); } + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getFycdgsqc().contains(lyFundReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getJtStatus().contains(lyFundReportPO.getGjjjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getFfStatus().contains(lyFundReportPO.getGjjffpzFlag())).collect(Collectors.toList()); + } PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); if (param.isExport()) { // 是导出 @@ -455,6 +576,19 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ List canManageFrztByUid = getLySalaryReportService(user).getCanManageFrztByUid(user); lyFundReportPOS = lyFundReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getGmgsqc())).collect(Collectors.toList()); } + + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getFycdgsqc().contains(lyFundReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getJtStatus().contains(lyFundReportPO.getGjjjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lyFundReportPOS = lyFundReportPOS.stream().filter(lyFundReportPO -> param.getFfStatus().contains(lyFundReportPO.getGjjffpzFlag())).collect(Collectors.toList()); + } + return buildSumData(lyFundReportPOS); } @@ -580,7 +714,7 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ } @Override - public List> fundReportGmgsList(LySalaryReportQueryParam param) { + public Map fundReportGmgsList(LySalaryReportQueryParam param) { if (StringUtils.isBlank(param.getSalaryMonth())) { throw new SalaryRunTimeException("薪资所属月参数不能为空"); } @@ -592,9 +726,9 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ // 获取本月是否已有报表数据 List lyFundReportPOS = listBySalaryMonth(salaryMonthDate); - if (CollectionUtils.isNotEmpty(param.getFfgsqc())) { - lyFundReportPOS = lyFundReportPOS.stream().filter(lySalaryReportPO -> param.getFfgsqc().contains(lySalaryReportPO.getGmgsqc())).collect(Collectors.toList()); - } + // if (CollectionUtils.isNotEmpty(param.getFfgsqc())) { + // lyFundReportPOS = lyFundReportPOS.stream().filter(lySalaryReportPO -> param.getFfgsqc().contains(lySalaryReportPO.getGmgsqc())).collect(Collectors.toList()); + // } // 分权 // 是否是薪酬总管理员 boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); @@ -604,7 +738,7 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ } // 获取所有能够管理的发放公司 - return lyFundReportPOS.stream() + List> gmgs = lyFundReportPOS.stream() .map(LyFundReportPO::getGmgsqc) .distinct() .filter(m -> StringUtils.isNotBlank(m)) @@ -614,5 +748,20 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ map.put("content", m); return map; }).collect(Collectors.toList()); + // 获取对应的费用承担公司 + List> fycdgsList = lyFundReportPOS.stream() + .map(LyFundReportPO::getFycdgsqc) + .distinct() + .filter(fycdgs -> StringUtils.isNotBlank(fycdgs)) + .map(fycdgs -> { + Map map = new HashMap<>(2); + map.put("id", fycdgs); + map.put("content", fycdgs); + return map; + }).collect(Collectors.toList()); + Map resultMap = new HashMap<>(); + resultMap.put("gmgs", gmgs); + resultMap.put("fycdgs", fycdgsList); + return resultMap; } } diff --git a/src/com/engine/salary/service/impl/LyPZServiceImpl.java b/src/com/engine/salary/service/impl/LyPZServiceImpl.java index 75b084cb6..8a3ea0ee6 100644 --- a/src/com/engine/salary/service/impl/LyPZServiceImpl.java +++ b/src/com/engine/salary/service/impl/LyPZServiceImpl.java @@ -368,6 +368,23 @@ public class LyPZServiceImpl extends Service implements LyPZService { return resultList; } + /** + * 查询所有法人主体信息 + * + * @return + */ + public Map listAllFrzt() { + RecordSet rs = new RecordSet(); + Map resultMap = new HashMap<>(); + rs.execute("select id,frzt from uf_frzt "); + while (rs.next()) { + String frzt = rs.getString("frzt"); + String id = rs.getString("id"); + resultMap.put(id, frzt); + } + return resultMap; + } + /** * 根据凭证编码获取浏览框 * @param fzhsBmList @@ -407,7 +424,10 @@ public class LyPZServiceImpl extends Service implements LyPZService { private void verifyCanGen(LyPZGenParam queryParam, List reportDataIds) { Date salaryMonth = SalaryDateUtil.dateStrToLocalYearMonth(queryParam.getSalaryMonth()); // 根据薪资所属月和凭证类型查询凭证 - List lyVoucherPOS = getLyVoucherMapper().listSome(LyVoucherPO.builder().salaryMonth(salaryMonth).pzlx(queryParam.getPzlx()).ffgsqc(queryParam.getFfgsqc()).build()); + List lyVoucherPOS = getLyVoucherMapper().listSome(LyVoucherPO.builder().salaryMonth(salaryMonth) + .pzlx(queryParam.getPzlx()) + .ffgsqc(queryParam.getFfgsqc()) + .build()); lyVoucherPOS = lyVoucherPOS.stream().filter(po -> po.getStatus().equals(LyPushStatusEnum.SUCCESS.getValue())).collect(Collectors.toList()); List dataIds = lyVoucherPOS.stream() .map(po -> po.getDataSource().split(",")) @@ -460,7 +480,13 @@ public class LyPZServiceImpl extends Service implements LyPZService { List> formulaVarsList = new ArrayList<>(); if (queryParam.getPzlx().equals(LyPZTypeEnum.XZFFPZ.getValue()) || queryParam.getPzlx().equals(LyPZTypeEnum.XZJTPZ.getValue())) { // 是工资单凭证 - Map resultMap = getLySalaryReportService(user).listSalaryReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build()); + Map resultMap = getLySalaryReportService(user).listSalaryReport(LySalaryReportQueryParam.builder() + .salaryMonth(queryParam.getSalaryMonth()) + .ffgsqc(Collections.singletonList(queryParam.getFfgsqc())) + .fycdgsqc(queryParam.getFycdgsqc()) + .jtStatus(queryParam.getJtStatus()) + .ffStatus(queryParam.getFfStatus()) + .export(true).build()); List dataList = ((PageInfo)resultMap.get("data")).getList(); // 将每一个结果转换成map的格式并作为变量存储 for (LySalaryReportPO po : dataList) { @@ -482,7 +508,13 @@ public class LyPZServiceImpl extends Service implements LyPZService { } } else if (queryParam.getPzlx().equals(LyPZTypeEnum.SBJTPZ.getValue()) || queryParam.getPzlx().equals(LyPZTypeEnum.SBFFPZ.getValue())) { // 是社保凭证 - Map resultMap = getLySocialReportService(user).listSIReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build()); + Map resultMap = getLySocialReportService(user).listSIReport(LySalaryReportQueryParam.builder() + .salaryMonth(queryParam.getSalaryMonth()) + .ffgsqc(Collections.singletonList(queryParam.getFfgsqc())) + .fycdgsqc(queryParam.getFycdgsqc()) + .jtStatus(queryParam.getJtStatus()) + .ffStatus(queryParam.getFfStatus()) + .export(true).build()); List dataList = ((PageInfo)resultMap.get("data")).getList(); // 将每一个结果转换成map的格式并作为变量存储 for (LySocialReportPO po : dataList) { @@ -504,7 +536,14 @@ public class LyPZServiceImpl extends Service implements LyPZService { } } else if (queryParam.getPzlx().equals(LyPZTypeEnum.GJJJTPZ.getValue()) || queryParam.getPzlx().equals(LyPZTypeEnum.GJJFFPZ.getValue())) { // 是公积金凭证 - Map resultMap = getLyFundReportService(user).listFundReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build()); + Map resultMap = getLyFundReportService(user).listFundReport(LySalaryReportQueryParam.builder() + .salaryMonth(queryParam.getSalaryMonth()) + .ffgsqc(Collections.singletonList(queryParam.getFfgsqc())) + .export(true) + .fycdgsqc(queryParam.getFycdgsqc()) + .jtStatus(queryParam.getJtStatus()) + .ffStatus(queryParam.getFfStatus()) + .build()); List dataList = ((PageInfo)resultMap.get("data")).getList(); // 将每一个结果转换成map的格式并作为变量存储 for (LyFundReportPO po : dataList) { @@ -1207,8 +1246,8 @@ public class LyPZServiceImpl extends Service implements LyPZService { @Override public void deleteHistoryVoucher(Long voucherId) { // 判断是否是薪酬总管理员 - boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); - if (isChief) { + // boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); + // if (isChief) { LyVoucherPO voucherPO = getLyVoucherMapper().getById(voucherId); getLyVoucherMapper().delete(LyVoucherPO.builder().id(voucherId).build()); getLyVoucherDetailMapper().deleteByVoucherId(voucherId); @@ -1257,6 +1296,6 @@ public class LyPZServiceImpl extends Service implements LyPZService { }); } } - } + // } } } diff --git a/src/com/engine/salary/service/impl/LySalaryReportServiceImpl.java b/src/com/engine/salary/service/impl/LySalaryReportServiceImpl.java index 025449e4c..81612190d 100644 --- a/src/com/engine/salary/service/impl/LySalaryReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/LySalaryReportServiceImpl.java @@ -483,6 +483,17 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport if (CollectionUtils.isNotEmpty(param.getFfgsqc())) { lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getFfgsqc().contains(lySalaryReportPO.getFfgsqc())).collect(Collectors.toList()); } + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getFycdgsqc().contains(lySalaryReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getJtStatus().contains(lySalaryReportPO.getXzjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getFfStatus().contains(lySalaryReportPO.getXzffpzFlag())).collect(Collectors.toList()); + } PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); if (param.isExport()) { // 是导出 @@ -546,7 +557,7 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport } @Override - public List> salaryReportFfgsList(LySalaryReportQueryParam param) { + public Map salaryReportFfgsList(LySalaryReportQueryParam param) { if (StringUtils.isBlank(param.getSalaryMonth())) { throw new SalaryRunTimeException("薪资所属月参数不能为空"); } @@ -567,7 +578,7 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport lySalaryReportPOS = lySalaryReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getFfgsqc())).collect(Collectors.toList()); } // 获取所有能够管理的发放公司 - return lySalaryReportPOS.stream() + List> ffgsList = lySalaryReportPOS.stream() .map(LySalaryReportPO::getFfgsqc) .distinct() .filter(ffgsqc -> StringUtils.isNotBlank(ffgsqc)) @@ -576,7 +587,23 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport map.put("id", ffgsqc); map.put("content", ffgsqc); return map; - }).collect(Collectors.toList()); + }).collect(Collectors.toList()); + + // 获取对应的费用承担公司 + List> fycdgsList = lySalaryReportPOS.stream() + .map(LySalaryReportPO::getFycdgsqc) + .distinct() + .filter(fycdgs -> StringUtils.isNotBlank(fycdgs)) + .map(fycdgs -> { + Map map = new HashMap<>(2); + map.put("id", fycdgs); + map.put("content", fycdgs); + return map; + }).collect(Collectors.toList()); + Map resultMap = new HashMap<>(); + resultMap.put("ffgs", ffgsList); + resultMap.put("fycdgs", fycdgsList); + return resultMap; } @Override @@ -584,14 +611,12 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport if (CollectionUtils.isEmpty(salaryReportIds)) { return; } - // List lySalaryReportPOS = getLySalaryReportMapper().listSome(LySalaryReportPO.builder().ids(salaryReportIds).build()); - // List canNotDeleteList = lySalaryReportPOS.stream().filter(report -> report.getXzjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getXzffpzFlag().equals(NumberUtils.INTEGER_ONE) - // || report.getSbjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getSbffpzFlag().equals(NumberUtils.INTEGER_ONE) - // || report.getGjjjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getGjjffpzFlag().equals(NumberUtils.INTEGER_ONE)).collect(Collectors.toList()); - // - // if (CollectionUtils.isNotEmpty(canNotDeleteList)) { - // throw new SalaryRunTimeException("当前所选记录中,已生成凭证数据,请联系系统管理员删除相关数据"); - // } + List lySalaryReportPOS = getLySalaryReportMapper().listSome(LySalaryReportPO.builder().ids(salaryReportIds).build()); + List canNotDeleteList = lySalaryReportPOS.stream().filter(report -> report.getXzjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getXzffpzFlag().equals(NumberUtils.INTEGER_ONE)).collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(canNotDeleteList)) { + throw new SalaryRunTimeException("当前所选记录中,已生成凭证数据,请联系系统管理员删除相关数据"); + } deleteByIds(salaryReportIds); } @@ -630,6 +655,17 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport List canManageFrztByUid = getCanManageFrztByUid(user); lySalaryReportPOS = lySalaryReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getFfgsqc())).collect(Collectors.toList()); } + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getFycdgsqc().contains(lySalaryReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getJtStatus().contains(lySalaryReportPO.getXzjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lySalaryReportPOS = lySalaryReportPOS.stream().filter(lySalaryReportPO -> param.getFfStatus().contains(lySalaryReportPO.getXzffpzFlag())).collect(Collectors.toList()); + } return buildSumData(lySalaryReportPOS); } diff --git a/src/com/engine/salary/service/impl/LySocialReportServiceImpl.java b/src/com/engine/salary/service/impl/LySocialReportServiceImpl.java index dd91e78a2..a7667abd9 100644 --- a/src/com/engine/salary/service/impl/LySocialReportServiceImpl.java +++ b/src/com/engine/salary/service/impl/LySocialReportServiceImpl.java @@ -2,14 +2,13 @@ package com.engine.salary.service.impl; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; -import com.engine.salary.common.LocalDateRange; import com.engine.salary.component.WeaTableColumnGroup; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.ly.param.LySalaryReportQueryParam; import com.engine.salary.entity.ly.po.LySocialReportPO; +import com.engine.salary.entity.ly.po.UfSbInfo; import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO; import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO; -import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO; @@ -17,10 +16,10 @@ import com.engine.salary.entity.salarysob.po.SalarySobItemPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.ly.LyPushStatusEnum; -import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum; import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.ly.LySocialReportMapper; +import com.engine.salary.mapper.ly.UfSbgjjMapper; import com.engine.salary.service.*; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryEntityUtil; @@ -36,6 +35,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.general.BaseBean; +import weaver.general.Util; import weaver.hrm.User; import java.math.BigDecimal; @@ -54,6 +54,10 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport return MapperProxyFactory.getProxy(LySocialReportMapper.class); } + private UfSbgjjMapper getLyUfSbgjjMapper() { + return MapperProxyFactory.getProxy(UfSbgjjMapper.class); + } + private LySalaryReportService getLySalaryReportService(User user) { return ServiceUtil.getService(LySalaryReportServiceImpl.class, user); } @@ -82,6 +86,10 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport return ServiceUtil.getService(TaxAgentServiceImpl.class, user); } + private LyPZService getLyPZService(User user) { + return ServiceUtil.getService(LyPZServiceImpl.class, user); + } + /** * 查询所有记录 * @@ -165,158 +173,357 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport if (CollectionUtils.isNotEmpty(lySocialReportPOS)) { throw new SalaryRunTimeException("本薪资所属月已生成社保汇总报表,无法生成社保汇总报表数据"); } - BaseBean baseBean = new BaseBean(); - // 获取薪资核算结果 - List salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build()); - // 过滤账套及状态 - // List salarySobIds = Arrays.stream(baseBean.getPropValue("lySalaryNCReport", "salary_sob_ids").split(",")).filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); - // salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> salarySobIds.contains(record.getSalarySobId()) && record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); - salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); + // 获取建模中社保数据 + List sbInfoList = listUfSbInfoBySalaryMonth(salaryMonthDate); + if (CollectionUtils.isNotEmpty(sbInfoList)) { + Map> resultGroup = SalaryEntityUtil.group2Map(sbInfoList, sbInfo -> Util.null2String(sbInfo.getGmgsqc()) + + "-split" + Util.null2String(sbInfo.getSbcdgsmc()) + + "-split" + Util.null2String(sbInfo.getZnxmmc())); + // 排序 - 根据key排序 + LinkedHashMap> sortedMap = new LinkedHashMap<>(); + resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); - if (CollectionUtils.isNotEmpty(salaryAcctRecordList)) { - List salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList()); - // 获取薪资核算人员 - List salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); - if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) { - String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ","); + // 获取所有法人主体信息 + Map frztMap = getLyPZService(user).listAllFrzt(); + Date now = new Date(); + sortedMap.forEach((key, valueList) -> { + String[] split = key.split("-split"); + String gmgsqc = split.length > 0 ? split[0] : ""; + String fycdgsqc = split.length > 1 ? split[1] : ""; + String znxmmc = split.length > 2 ? split[2] : ""; + Long subcompanyId = CollectionUtils.isEmpty(valueList) ? 0L : valueList.get(0).getFb() == null ? 0L : Long.valueOf(valueList.get(0).getFb()); + String znxmlxStr = CollectionUtils.isEmpty(valueList) ? "" : valueList.get(0).getZnxmlb() == null ? "" : valueList.get(0).getZnxmlb(); + + LySocialReportPO build = LySocialReportPO.builder() + .id(IdGenerator.generate()) + .subcompanyId(subcompanyId) + .ftempNum(CollectionUtils.isEmpty(valueList) ? 0 : valueList.size()) + .salaryMonth(salaryMonthDate) + .znxmlx(znxmlxStr) + .gmgsqc(frztMap.getOrDefault(gmgsqc, "")) + .fycdgsqc(frztMap.getOrDefault(fycdgsqc, "")) + .znxmmc(znxmmc) + .xzjtpzFlag(0) + .xzffpzFlag(0) + .sbjtpzFlag(0) + .sbffpzFlag(0) + .gjjjtpzFlag(0) + .gjjffpzFlag(0) + .creator(Long.valueOf(user.getUID())) + .createTime(now) + .updateTime(now) + .deleteType(0) + .build(); + + // 养老公司 + BigDecimal ylgsSum = valueList.stream() + .map(UfSbInfo::getYlbxdwjn1) + .filter(ylgs -> ylgs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal ylgsbkbjSum = valueList.stream() + .map(UfSbInfo::getYlbxdwbkbj) + .filter(ylgs -> ylgs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setYlGsbf(ylgsSum.add(ylgsbkbjSum).toPlainString()); + + // 养老个人 + BigDecimal ylgrSum = valueList.stream() + .map(UfSbInfo::getYlbxgrjn1) + .filter(ylgr -> ylgr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal ylgrbkbjSum = valueList.stream() + .map(UfSbInfo::getYlbxgrbkbj1) + .filter(ylgr -> ylgr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setYlGrbf(ylgrSum.add(ylgrbkbjSum).toPlainString()); + + + // 医疗公司 + BigDecimal yiliaogsSum = valueList.stream() + .map(UfSbInfo::getYlbxdwjn) + .filter(yiliaogs -> yiliaogs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal yiliaogsbkbjSum = valueList.stream() + .map(UfSbInfo::getYlbxdwbkbj1) + .filter(yiliaogs -> yiliaogs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setYiliaoGsbf(yiliaogsSum.add(yiliaogsbkbjSum).toPlainString()); + + // 医疗个人 + BigDecimal yiliaogrSum = valueList.stream() + .map(UfSbInfo::getYlbxgrjn) + .filter(yiliaogr -> yiliaogr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal yiliaogrbkbjSum = valueList.stream() + .map(UfSbInfo::getYlbxgrbkbj) + .filter(yiliaogr -> yiliaogr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setYiliaoGrbf(yiliaogrSum.add(yiliaogrbkbjSum).toPlainString()); + + // 失业公司 + BigDecimal sygsSum = valueList.stream() + .map(UfSbInfo::getSybxdwjn) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sygsbkbjSum = valueList.stream() + .map(UfSbInfo::getSybxdwbkbj) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setSyGsbf(sygsSum.add(sygsbkbjSum).toPlainString()); + + // 失业个人 + BigDecimal sygrSum = valueList.stream() + .map(UfSbInfo::getSybxgrjn) + .filter(sygr -> sygr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sygrbkbjSum = valueList.stream() + .map(UfSbInfo::getSybxgrbkbj) + .filter(sygr -> sygr != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setSyGrbf(sygrSum.add(sygrbkbjSum).toPlainString()); + + // 生育公司 + BigDecimal shengygsSum = valueList.stream() + .map(UfSbInfo::getSybxdwjn1) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal shengygsbkbjSum = valueList.stream() + .map(UfSbInfo::getSybxdwbkbj1) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setShengyGsbf(shengygsSum.add(shengygsbkbjSum).toPlainString()); + + // 工伤公司 + BigDecimal gsgsSum = valueList.stream() + .map(UfSbInfo::getGsbxdwjn) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal gsgsbkbjSum = valueList.stream() + .map(UfSbInfo::getGsbxdwbkbj) + .filter(sygs -> sygs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setGsGsbf(gsgsSum.add(gsgsbkbjSum).toPlainString()); + + // 补充医疗及其他 公司部分 + BigDecimal bcylgsSum = valueList.stream() + .map(UfSbInfo::getDbylbx) + .filter(bcylgs -> bcylgs != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setBcyljqtGsbf(bcylgsSum.toPlainString()); + + // 社保公司部分合计 + BigDecimal sbdwjnhjSum = valueList.stream() + .map(UfSbInfo::getSbdwjnhj) + .filter(sbdwjnhj -> sbdwjnhj != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sbdwjnbkbjhjSum = valueList.stream() + .map(UfSbInfo::getSbdwbkbjhj) + .filter(sbdwjnhj -> sbdwjnhj != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setSbGsbf(sbdwjnhjSum.add(sbdwjnbkbjhjSum).toPlainString()); + + // 社保个人部分合计 + BigDecimal sbgrjnhjSum = valueList.stream() + .map(UfSbInfo::getSbgrjnhj) + .filter(sbgrjnhj -> sbgrjnhj != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sbgrjnbkbjhjSum = valueList.stream() + .map(UfSbInfo::getSbgrbkbkbj) + .filter(sbgrjnhj -> sbgrjnhj != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setSbGrbf(sbgrjnhjSum.add(sbgrjnbkbjhjSum).toPlainString()); + build.setSbSbhj(sbdwjnhjSum.add(sbdwjnbkbjhjSum).add(sbgrjnhjSum).add(sbgrjnbkbjhjSum).toPlainString()); - // 获取薪资项目id - List salaryItemIds = new ArrayList<>(); - // 职能项目类型 - Long znxmlxItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_znxmlx_item_id"); - salaryItemIds.add(znxmlxItemId); - // 购买公司全称 - Long gmgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gmgsqc_item_id"); - salaryItemIds.add(gmgsqcItemId); - // 费用承担公司全称 - Long fycdgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_fycdgsqc_item_id"); - salaryItemIds.add(fycdgsqcItemId); - // 职能/项目名称 - Long znxmmcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_znxmmc_item_id"); - salaryItemIds.add(znxmmcItemId); - // 养老-公司部分 - Long ylgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yl_gsbf_item_id"); - salaryItemIds.add(ylgsbfItemId); - // 养老-个人部分 - Long ylgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yl_grbf_item_id"); - salaryItemIds.add(ylgrbfItemId); - // 医疗-公司部分 - Long yiliaogsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yiliao_gsbf_item_id"); - salaryItemIds.add(yiliaogsbfItemId); - // 医疗-个人部分 - Long yiliaogrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yiliao_grbf_item_id"); - salaryItemIds.add(yiliaogrbfItemId); - // 失业-公司部分 - Long sygsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sy_gsbf_item_id"); - salaryItemIds.add(sygsbfItemId); - // 失业-个人部分 - Long sygrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sy_grbf_item_id"); - salaryItemIds.add(sygrbfItemId); - // 生育-公司部分 - Long shengygsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_shengy_gsbf_item_id"); - salaryItemIds.add(shengygsbfItemId); - // 工伤-公司部分 - Long gsgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gs_gsbf_item_id"); - salaryItemIds.add(gsgsbfItemId); - // 补充医疗及其他-公司部分 - Long bcyljqtgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_bcyljqt_gsbf_item_id"); - salaryItemIds.add(bcyljqtgsbfItemId); - // 社保-公司部分 - Long sbgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_gsbf_item_id"); - salaryItemIds.add(sbgsbfItemId); - // 社保-个人部分 - Long sbgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_grbf_item_id"); - salaryItemIds.add(sbgrbfItemId); - // 社保-社保合计 - Long sbsbhjItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_sbhj_item_id"); - salaryItemIds.add(sbsbhjItemId); - // // 公积金-公司部分 - // Long gjjgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gjj_gsbf_item_id"); - // salaryItemIds.add(gjjgsbfItemId); - // // 公积金-个人部分 - // Long gjjgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gjj_grbf_item_id"); - // salaryItemIds.add(gjjgrbfItemId); - // // 公积金-公积金合计 - // Long gjjgjjhjItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gjj_gjjhj_item_id"); - // salaryItemIds.add(gjjgjjhjItemId); // 服务费 - Long fwfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_fwf_item_id"); - salaryItemIds.add(fwfItemId); + BigDecimal fwfSum = valueList.stream() + .map(UfSbInfo::getFuwufi) + .filter(fwf -> fwf != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setFwf(fwfSum.toPlainString()); - List salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds); - salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); - List salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - // 获取薪资核算结果 - List acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds); - List salarySobEmpFields = new ArrayList<>(); - salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build()); - List> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false); - // - Map>> resultGroup = SalaryEntityUtil.group2Map(resultMapList, map -> (map.get(gmgsqcItemId.toString()) == null ? " " : map.get(gmgsqcItemId.toString()).toString()) - + "-split" + (map.get(fycdgsqcItemId.toString()) == null ? " " : map.get(fycdgsqcItemId.toString()).toString()) - + "-split" + (map.get(znxmmcItemId.toString()) == null ? " " : map.get(znxmmcItemId.toString()).toString())); - List numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList()); - LinkedHashMap> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId); - - // 排序 - 根据key排序 - LinkedHashMap> sortedMap = new LinkedHashMap<>(); - resultMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); - resultMap = sortedMap; - Date now = new Date(); - resultMap.forEach((key,valueMap) -> { - String[] split = key.split("-split"); - String gmgsqc = split.length > 0 ? split[0] : ""; - String fycdgsqc = split.length > 1 ? split[1] : ""; - String znxmmc = split.length > 2 ? split[2] : ""; - valueMap.put("gmgsqc", gmgsqc); - valueMap.put("fycdgsqc",fycdgsqc); - valueMap.put("znxmmc",znxmmc); - - LySocialReportPO build = LySocialReportPO.builder() - .id(IdGenerator.generate()) - .subcompanyId(Long.valueOf(valueMap.getOrDefault("subcompanyId","0").toString())) - .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) - .salaryMonth(salaryMonthDate) - .znxmlx(valueMap.getOrDefault(znxmlxItemId.toString(), "").toString()) - // .gmgsqc(valueMap.getOrDefault(gmgsqcItemId.toString(), "").toString()) - .gmgsqc(gmgsqc) - .fycdgsqc(fycdgsqc) - .znxmmc(znxmmc) - .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) - .ylGsbf(valueMap.getOrDefault(ylgsbfItemId.toString(), "0").toString()) - .ylGrbf(valueMap.getOrDefault(ylgrbfItemId.toString(), "0").toString()) - .yiliaoGsbf(valueMap.getOrDefault(yiliaogsbfItemId.toString(), "0").toString()) - .yiliaoGrbf(valueMap.getOrDefault(yiliaogrbfItemId.toString(), "0").toString()) - .syGsbf(valueMap.getOrDefault(sygsbfItemId.toString(), "0").toString()) - .syGrbf(valueMap.getOrDefault(sygrbfItemId.toString(), "0").toString()) - .shengyGsbf(valueMap.getOrDefault(shengygsbfItemId.toString(), "0").toString()) - .gsGsbf(valueMap.getOrDefault(gsgsbfItemId.toString(), "0").toString()) - .bcyljqtGsbf(valueMap.getOrDefault(bcyljqtgsbfItemId.toString(), "0").toString()) - .sbGsbf(valueMap.getOrDefault(sbgsbfItemId.toString(), "0").toString()) - .sbGrbf(valueMap.getOrDefault(sbgrbfItemId.toString(), "0").toString()) - .sbSbhj(valueMap.getOrDefault(sbsbhjItemId.toString(), "0").toString()) - // .gjjGsbf(valueMap.getOrDefault(gjjgsbfItemId.toString(), "0").toString()) - // .gjjGrbf(valueMap.getOrDefault(gjjgrbfItemId.toString(), "0").toString()) - // .gjjGjjhj(valueMap.getOrDefault(gjjgjjhjItemId.toString(), "0").toString()) - .fwf(valueMap.getOrDefault(fwfItemId.toString(), "0").toString()) - .gkgrygzhje("") - .dataSorce(dataSourceStr) - .xzjtpzFlag(0) - .xzffpzFlag(0) - .sbjtpzFlag(0) - .sbffpzFlag(0) - .gjjjtpzFlag(0) - .gjjffpzFlag(0) - .creator(Long.valueOf(user.getUID())) - .createTime(now) - .updateTime(now) - .deleteType(0) - .build(); - getLySocialReportMapper().insertIgnoreNull(build); - }); - } + // 挂靠个人应该转回金额 + BigDecimal gkgrygzhjeSum = valueList.stream() + .map(UfSbInfo::getGkgrygzhje) + .filter(gkgrygzhje -> gkgrygzhje != null) + .map(BigDecimal::new) + .reduce(BigDecimal.ZERO, BigDecimal::add); + build.setGkgrygzhje(gkgrygzhjeSum.toPlainString()); + getLySocialReportMapper().insertIgnoreNull(build); + }); } + + // // 获取薪资核算结果 + // List salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build()); + // salaryAcctRecordList = salaryAcctRecordList.stream().filter(record -> record.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).collect(Collectors.toList()); + // + // if (CollectionUtils.isNotEmpty(salaryAcctRecordList)) { + // List salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList()); + // // 获取薪资核算人员 + // List salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); + // if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) { + // String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ","); + // + // // 获取薪资项目id + // List salaryItemIds = new ArrayList<>(); + // // 职能项目类型 + // Long znxmlxItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_znxmlx_item_id"); + // salaryItemIds.add(znxmlxItemId); + // // 购买公司全称 + // Long gmgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gmgsqc_item_id"); + // salaryItemIds.add(gmgsqcItemId); + // // 费用承担公司全称 + // Long fycdgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_fycdgsqc_item_id"); + // salaryItemIds.add(fycdgsqcItemId); + // // 职能/项目名称 + // Long znxmmcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_znxmmc_item_id"); + // salaryItemIds.add(znxmmcItemId); + // // 养老-公司部分 + // Long ylgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yl_gsbf_item_id"); + // salaryItemIds.add(ylgsbfItemId); + // // 养老-个人部分 + // Long ylgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yl_grbf_item_id"); + // salaryItemIds.add(ylgrbfItemId); + // // 医疗-公司部分 + // Long yiliaogsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yiliao_gsbf_item_id"); + // salaryItemIds.add(yiliaogsbfItemId); + // // 医疗-个人部分 + // Long yiliaogrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_yiliao_grbf_item_id"); + // salaryItemIds.add(yiliaogrbfItemId); + // // 失业-公司部分 + // Long sygsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sy_gsbf_item_id"); + // salaryItemIds.add(sygsbfItemId); + // // 失业-个人部分 + // Long sygrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sy_grbf_item_id"); + // salaryItemIds.add(sygrbfItemId); + // // 生育-公司部分 + // Long shengygsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_shengy_gsbf_item_id"); + // salaryItemIds.add(shengygsbfItemId); + // // 工伤-公司部分 + // Long gsgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_gs_gsbf_item_id"); + // salaryItemIds.add(gsgsbfItemId); + // // 补充医疗及其他-公司部分 + // Long bcyljqtgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_bcyljqt_gsbf_item_id"); + // salaryItemIds.add(bcyljqtgsbfItemId); + // // 社保-公司部分 + // Long sbgsbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_gsbf_item_id"); + // salaryItemIds.add(sbgsbfItemId); + // // 社保-个人部分 + // Long sbgrbfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_grbf_item_id"); + // salaryItemIds.add(sbgrbfItemId); + // // 社保-社保合计 + // Long sbsbhjItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_sb_sbhj_item_id"); + // salaryItemIds.add(sbsbhjItemId); + // // 服务费 + // Long fwfItemId = getPropLongValue(baseBean, "lySalaryNCReport", "social_fwf_item_id"); + // salaryItemIds.add(fwfItemId); + // + // List salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds); + // salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + // List salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + // // 获取薪资核算结果 + // List acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds); + // List salarySobEmpFields = new ArrayList<>(); + // salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build()); + // List> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false); + // // + // Map>> resultGroup = SalaryEntityUtil.group2Map(resultMapList, map -> (map.get(gmgsqcItemId.toString()) == null ? " " : map.get(gmgsqcItemId.toString()).toString()) + // + "-split" + (map.get(fycdgsqcItemId.toString()) == null ? " " : map.get(fycdgsqcItemId.toString()).toString()) + // + "-split" + (map.get(znxmmcItemId.toString()) == null ? " " : map.get(znxmmcItemId.toString()).toString())); + // List numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList()); + // LinkedHashMap> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId); + // + // // 排序 - 根据key排序 + // LinkedHashMap> sortedMap = new LinkedHashMap<>(); + // resultMap.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue())); + // resultMap = sortedMap; + // Date now = new Date(); + // resultMap.forEach((key,valueMap) -> { + // String[] split = key.split("-split"); + // String gmgsqc = split.length > 0 ? split[0] : ""; + // String fycdgsqc = split.length > 1 ? split[1] : ""; + // String znxmmc = split.length > 2 ? split[2] : ""; + // valueMap.put("gmgsqc", gmgsqc); + // valueMap.put("fycdgsqc",fycdgsqc); + // valueMap.put("znxmmc",znxmmc); + // + // LySocialReportPO build = LySocialReportPO.builder() + // .id(IdGenerator.generate()) + // .subcompanyId(Long.valueOf(valueMap.getOrDefault("subcompanyId","0").toString())) + // .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) + // .salaryMonth(salaryMonthDate) + // .znxmlx(valueMap.getOrDefault(znxmlxItemId.toString(), "").toString()) + // // .gmgsqc(valueMap.getOrDefault(gmgsqcItemId.toString(), "").toString()) + // .gmgsqc(gmgsqc) + // .fycdgsqc(fycdgsqc) + // .znxmmc(znxmmc) + // .ftempNum(Integer.valueOf(valueMap.getOrDefault("empNums", "0").toString())) + // .ylGsbf(valueMap.getOrDefault(ylgsbfItemId.toString(), "0").toString()) + // .ylGrbf(valueMap.getOrDefault(ylgrbfItemId.toString(), "0").toString()) + // .yiliaoGsbf(valueMap.getOrDefault(yiliaogsbfItemId.toString(), "0").toString()) + // .yiliaoGrbf(valueMap.getOrDefault(yiliaogrbfItemId.toString(), "0").toString()) + // .syGsbf(valueMap.getOrDefault(sygsbfItemId.toString(), "0").toString()) + // .syGrbf(valueMap.getOrDefault(sygrbfItemId.toString(), "0").toString()) + // .shengyGsbf(valueMap.getOrDefault(shengygsbfItemId.toString(), "0").toString()) + // .gsGsbf(valueMap.getOrDefault(gsgsbfItemId.toString(), "0").toString()) + // .bcyljqtGsbf(valueMap.getOrDefault(bcyljqtgsbfItemId.toString(), "0").toString()) + // .sbGsbf(valueMap.getOrDefault(sbgsbfItemId.toString(), "0").toString()) + // .sbGrbf(valueMap.getOrDefault(sbgrbfItemId.toString(), "0").toString()) + // .sbSbhj(valueMap.getOrDefault(sbsbhjItemId.toString(), "0").toString()) + // .fwf(valueMap.getOrDefault(fwfItemId.toString(), "0").toString()) + // .gkgrygzhje("") + // .dataSorce(dataSourceStr) + // .xzjtpzFlag(0) + // .xzffpzFlag(0) + // .sbjtpzFlag(0) + // .sbffpzFlag(0) + // .gjjjtpzFlag(0) + // .gjjffpzFlag(0) + // .creator(Long.valueOf(user.getUID())) + // .createTime(now) + // .updateTime(now) + // .deleteType(0) + // .build(); + // getLySocialReportMapper().insertIgnoreNull(build); + // }); + // } + // } + } + + + /** + * 获取建模社保信息 + * @param salaryMonth + * @return + */ + private List listUfSbInfoBySalaryMonth(Date salaryMonth) { + if (salaryMonth == null) { + return new ArrayList(); + } + String fyssq = SalaryDateUtil.getFormatYearMonth(salaryMonth); + return getLyUfSbgjjMapper().listSbInfoByFyssq(fyssq); } List> buildData4LyReport(List salaryItemList, List salaryAcctEmployeeList, List salarySobEmpFields, List salaryAcctResult, boolean dynamicEmpInfo) { @@ -457,6 +664,17 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport List canManageFrztByUid = getLySalaryReportService(user).getCanManageFrztByUid(user); lySocialReportPOS = lySocialReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getGmgsqc())).collect(Collectors.toList()); } + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getFycdgsqc().contains(lySocialReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getJtStatus().contains(lySocialReportPO.getSbjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getFfStatus().contains(lySocialReportPO.getSbffpzFlag())).collect(Collectors.toList()); + } PageInfo pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); if (param.isExport()) { // 是导出 @@ -563,6 +781,17 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport List canManageFrztByUid = getLySalaryReportService(user).getCanManageFrztByUid(user); lySocialReportPOS = lySocialReportPOS.stream().filter(po -> canManageFrztByUid.contains(po.getGmgsqc())).collect(Collectors.toList()); } + // 费用承担公司 + if (CollectionUtils.isNotEmpty(param.getFycdgsqc())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getFycdgsqc().contains(lySocialReportPO.getFycdgsqc())).collect(Collectors.toList()); + } + // 根据状态过滤 + if (CollectionUtils.isNotEmpty(param.getJtStatus())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getJtStatus().contains(lySocialReportPO.getSbjtpzFlag())).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(param.getFfStatus())) { + lySocialReportPOS = lySocialReportPOS.stream().filter(lySocialReportPO -> param.getFfStatus().contains(lySocialReportPO.getSbffpzFlag())).collect(Collectors.toList()); + } return buildSumData(lySocialReportPOS); } @@ -635,9 +864,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport return; } List lySocialReportPOS = getLySocialReportMapper().listSome(LySocialReportPO.builder().ids(siReportIds).build()); - List canNotDeleteList = lySocialReportPOS.stream().filter(report -> report.getXzjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getXzffpzFlag().equals(NumberUtils.INTEGER_ONE) - || report.getSbjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getSbffpzFlag().equals(NumberUtils.INTEGER_ONE) - || report.getGjjjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getGjjffpzFlag().equals(NumberUtils.INTEGER_ONE)).collect(Collectors.toList()); + List canNotDeleteList = lySocialReportPOS.stream().filter(report -> report.getSbjtpzFlag().equals(NumberUtils.INTEGER_ONE) || report.getSbffpzFlag().equals(NumberUtils.INTEGER_ONE)).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(canNotDeleteList)) { throw new SalaryRunTimeException("当前所选记录中,已生成凭证数据,请联系系统管理员删除相关数据"); @@ -745,7 +972,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport } @Override - public List> sIReportGmgsList(LySalaryReportQueryParam param) { + public Map sIReportGmgsList(LySalaryReportQueryParam param) { if (StringUtils.isBlank(param.getSalaryMonth())) { throw new SalaryRunTimeException("薪资所属月参数不能为空"); } @@ -757,9 +984,9 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport // 获取本月是否已有报表数据 List lySocialReportPOS = listBySalaryMonth(salaryMonthDate); - if (CollectionUtils.isNotEmpty(param.getFfgsqc())) { - lySocialReportPOS = lySocialReportPOS.stream().filter(lySalaryReportPO -> param.getFfgsqc().contains(lySalaryReportPO.getGmgsqc())).collect(Collectors.toList()); - } + // if (CollectionUtils.isNotEmpty(param.getFfgsqc())) { + // lySocialReportPOS = lySocialReportPOS.stream().filter(lySalaryReportPO -> param.getFfgsqc().contains(lySalaryReportPO.getGmgsqc())).collect(Collectors.toList()); + // } // 分权 // 是否是薪酬总管理员 boolean isChief = getTaxAgentService(user).isChief((long) user.getUID()); @@ -769,7 +996,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport } // 获取所有能够管理的发放公司 - return lySocialReportPOS.stream() + List> gmgs = lySocialReportPOS.stream() .map(LySocialReportPO::getGmgsqc) .distinct() .filter(m -> StringUtils.isNotBlank(m)) @@ -778,6 +1005,22 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport map.put("id", String.valueOf(m)); map.put("content", m); return map; - }).collect(Collectors.toList()); + }).collect(Collectors.toList()); + + // 获取对应的费用承担公司 + List> fycdgsList = lySocialReportPOS.stream() + .map(LySocialReportPO::getFycdgsqc) + .distinct() + .filter(fycdgs -> StringUtils.isNotBlank(fycdgs)) + .map(fycdgs -> { + Map map = new HashMap<>(2); + map.put("id", fycdgs); + map.put("content", fycdgs); + return map; + }).collect(Collectors.toList()); + Map resultMap = new HashMap<>(); + resultMap.put("gmgs", gmgs); + resultMap.put("fycdgs", fycdgsList); + return resultMap; } } diff --git a/src/com/engine/salary/util/SalaryEnumUtil.java b/src/com/engine/salary/util/SalaryEnumUtil.java index 5e1eb1954..89e2ea8a8 100644 --- a/src/com/engine/salary/util/SalaryEnumUtil.java +++ b/src/com/engine/salary/util/SalaryEnumUtil.java @@ -97,7 +97,6 @@ public class SalaryEnumUtil { hashMap.put("defaultLabel", enumMessage.getDefaultLabel()); hashMap.put("labelId", enumMessage.getLabelId()); keyValueList.add(hashMap); - } return keyValueList; diff --git a/src/com/engine/salary/util/SalaryTokenUtil.java b/src/com/engine/salary/util/SalaryTokenUtil.java index 653a0a821..c233032d1 100644 --- a/src/com/engine/salary/util/SalaryTokenUtil.java +++ b/src/com/engine/salary/util/SalaryTokenUtil.java @@ -82,9 +82,10 @@ public class SalaryTokenUtil { String uid = ""; if (StringUtils.isNotBlank(param.getSalaryCode())) { uid = AESEncryptUtil.decrypt4SalaryBill(param.getSalaryCode()); - } else { - uid = param.getRecipient(); } + // else { + // uid = param.getRecipient(); + // } Map heads = new HashMap<>(); if (StringUtils.isBlank(uid)) { return heads; diff --git a/src/com/engine/salary/web/LySalaryController.java b/src/com/engine/salary/web/LySalaryController.java index 76664cacf..4dec893cb 100644 --- a/src/com/engine/salary/web/LySalaryController.java +++ b/src/com/engine/salary/web/LySalaryController.java @@ -105,7 +105,7 @@ public class LySalaryController { @Produces(MediaType.APPLICATION_JSON) public String salaryReportFfgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>>(user).run(getLySalaryWrapper(user)::salaryReportFfgsList, param); + return new ResponseResult>(user).run(getLySalaryWrapper(user)::salaryReportFfgsList, param); } /** @@ -238,7 +238,7 @@ public class LySalaryController { @Produces(MediaType.APPLICATION_JSON) public String sIReportGmgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>>(user).run(getLySalaryWrapper(user)::sIReportGmgsList, param); + return new ResponseResult>(user).run(getLySalaryWrapper(user)::sIReportGmgsList, param); } /** @@ -365,7 +365,7 @@ public class LySalaryController { @Produces(MediaType.APPLICATION_JSON) public String fundReportGmgsList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LySalaryReportQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>>(user).run(getLySalaryWrapper(user)::fundReportGmgsList, param); + return new ResponseResult>(user).run(getLySalaryWrapper(user)::fundReportGmgsList, param); } /** diff --git a/src/com/engine/salary/wrapper/LySalaryWrapper.java b/src/com/engine/salary/wrapper/LySalaryWrapper.java index 7dfdb190a..80d983f96 100644 --- a/src/com/engine/salary/wrapper/LySalaryWrapper.java +++ b/src/com/engine/salary/wrapper/LySalaryWrapper.java @@ -61,7 +61,7 @@ public class LySalaryWrapper extends Service { return getLySalaryReportService(user).listSalaryReport(param); } - public List> salaryReportFfgsList(LySalaryReportQueryParam param) { + public Map salaryReportFfgsList(LySalaryReportQueryParam param) { return getLySalaryReportService(user).salaryReportFfgsList(param); } @@ -198,7 +198,7 @@ public class LySalaryWrapper extends Service { getLyPZService(user).deleteHistoryVoucher(voucherId); } - public List> sIReportGmgsList(LySalaryReportQueryParam queryParam) { + public Map sIReportGmgsList(LySalaryReportQueryParam queryParam) { return getLySocialReportService(user).sIReportGmgsList(queryParam); } @@ -249,7 +249,7 @@ public class LySalaryWrapper extends Service { return getLyFundReportService(user).exportFundReport(param); } - public List> fundReportGmgsList(LySalaryReportQueryParam queryParam) { + public Map fundReportGmgsList(LySalaryReportQueryParam queryParam) { return getLyFundReportService(user).fundReportGmgsList(queryParam); }