领悦 凭证二开

This commit is contained in:
Harryxzy 2025-02-21 16:50:16 +08:00
parent 35551d09a5
commit 6119e933d5
20 changed files with 1123 additions and 293 deletions

View File

@ -38,4 +38,20 @@ public class LyPZGenParam {
* temp 1=薪资2社保
*/
private Integer pzlx;
/**
* 费用承担公司全称
*/
private List<String> fycdgsqc;
/**
* 计提状态
*/
private List<Integer> jtStatus;
/**
* 发放状态
*/
private List<Integer> ffStatus;
}

View File

@ -35,5 +35,21 @@ public class LySalaryReportQueryParam extends BaseQueryParam {
*/
private List<String> ffgsqc;
/**
* 费用承担公司全称
*/
private List<String> fycdgsqc;
/**
* 计提状态
*/
private List<Integer> jtStatus;
/**
* 发放状态
*/
private List<Integer> ffStatus;
private boolean export;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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<Object> resultList = new ArrayList<>();
resultList.add(null);
resultList.add(null);
resultList.add(null);
Object o = resultList.stream().findFirst().orElse("");
System.out.println(o);
}
}

View File

@ -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<Integer> {
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;
}

View File

@ -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<UfSbInfo> listSbInfoByFyssq(@Param("fyssq")String fyssq);
List<UfGjjInfo> listGjjInfoByFyssq(@Param("fyssq") String fyssq);
}

View File

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.ly.UfSbgjjMapper">
<!-- 社保 -->
<resultMap id="SbBaseResultMap" type="com.engine.salary.entity.ly.po.UfSbInfo">
<result column="dbylbx" property="dbylbx" />
<result column="fb" property="fb" />
<result column="fuwufi" property="fuwufi" />
<result column="fyszq" property="fyszq" />
<result column="gkgrygzhje" property="gkgrygzhje" />
<result column="gmgsqc" property="gmgsqc" />
<result column="gsbxdwbkbj" property="gsbxdwbkbj" />
<result column="gsbxdwjn" property="gsbxdwjn" />
<result column="id" property="id" />
<result column="sbcdgsmc" property="sbcdgsmc" />
<result column="sbdwbkbjhj" property="sbdwbkbjhj" />
<result column="sbdwjnhj" property="sbdwjnhj" />
<result column="sbgrbkbkbj" property="sbgrbkbkbj" />
<result column="sbgrjnhj" property="sbgrjnhj" />
<result column="sybxdwbkbj" property="sybxdwbkbj" />
<result column="sybxdwbkbj1" property="sybxdwbkbj1" />
<result column="sybxdwjn" property="sybxdwjn" />
<result column="sybxdwjn1" property="sybxdwjn1" />
<result column="sybxgrbkbj" property="sybxgrbkbj" />
<result column="sybxgrjn" property="sybxgrjn" />
<result column="yg" property="yg" />
<result column="ylbxdwbkbj" property="ylbxdwbkbj" />
<result column="ylbxdwbkbj1" property="ylbxdwbkbj1" />
<result column="ylbxdwjn" property="ylbxdwjn" />
<result column="ylbxdwjn1" property="ylbxdwjn1" />
<result column="ylbxgrbkbj" property="ylbxgrbkbj" />
<result column="ylbxgrbkbj1" property="ylbxgrbkbj1" />
<result column="ylbxgrjn" property="ylbxgrjn" />
<result column="ylbxgrjn1" property="ylbxgrjn1" />
<result column="znxmlb" property="znxmlb" />
<result column="znxmmc" property="znxmmc" />
</resultMap>
<!-- 表字段 -->
<sql id="sbBaseColumns">
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
</sql>
<!-- 查询全部 -->
<select id="listSbInfoByFyssq" resultMap="SbBaseResultMap">
SELECT
<include refid="sbBaseColumns" />
FROM uf_sbgjj t
WHERE fyszq = #{fyssq}
</select>
<!-- 公积金 -->
<resultMap id="GjjBaseResultMap" type="com.engine.salary.entity.ly.po.UfGjjInfo">
<result column="fuwufi" property="fuwufi" />
<result column="fb" property="fb" />
<result column="fycdgsqc" property="fycdgsqc" />
<result column="fyszq" property="fyszq" />
<result column="gjjcdgsmc" property="gjjcdgsmc" />
<result column="gjjdwbkbj" property="gjjdwbkbj" />
<result column="gjjdwjn" property="gjjdwjn" />
<result column="gjjgrbkbj" property="gjjgrbkbj" />
<result column="gjjgrjn" property="gjjgrjn" />
<result column="gkgrygzhje" property="gkgrygzhje" />
<result column="id" property="id" />
<result column="yg" property="yg" />
<result column="znxmlb" property="znxmlb" />
<result column="znxmmc" property="znxmmc" />
</resultMap>
<!-- 表字段 -->
<sql id="gjjBaseColumns">
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
</sql>
<!-- 查询全部 -->
<select id="listGjjInfoByFyssq" resultMap="GjjBaseResultMap">
SELECT
<include refid="gjjBaseColumns" />
FROM uf_sbgjj t
WHERE fyszq = #{fyssq}
</select>
</mapper>

View File

@ -108,7 +108,7 @@ public interface LyFundReportService {
* @param queryParam
* @return
*/
List<Map<String, Object>> fundReportGmgsList(LySalaryReportQueryParam queryParam);
Map<String, Object> fundReportGmgsList(LySalaryReportQueryParam queryParam);
void deleteAllFundReport(LySalaryReportQueryParam queryParam);
}

View File

@ -25,6 +25,8 @@ public interface LyPZService {
*/
Map<String, Object> genPZ(LyPZGenParam queryParam);
Map<String, String> listAllFrzt();
/**
* 辅助核算浏览框
*

View File

@ -80,7 +80,7 @@ public interface LySalaryReportService {
*/
Map<String, Object> listSalaryReport(LySalaryReportQueryParam param);
List<Map<String, Object>> salaryReportFfgsList(LySalaryReportQueryParam param);
Map<String, Object> salaryReportFfgsList(LySalaryReportQueryParam param);
/**
* 根据id删除报表数据

View File

@ -108,7 +108,7 @@ public interface LySocialReportService {
* @param queryParam
* @return
*/
List<Map<String, Object>> sIReportGmgsList(LySalaryReportQueryParam queryParam);
Map<String, Object> sIReportGmgsList(LySalaryReportQueryParam queryParam);
void deleteAllSIReport(LySalaryReportQueryParam param);

View File

@ -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<LyFundReportPO> 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<SalaryAcctRecordPO> salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build());
// 过滤账套及状态
// List<Long> 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<UfGjjInfo> gjjInfoList = listUfGjjInfoBySalaryMonth(salaryMonthDate);
if (CollectionUtils.isNotEmpty(gjjInfoList)) {
Map<String, List<UfGjjInfo>> resultGroup = SalaryEntityUtil.group2Map(gjjInfoList, gjjInfo -> Util.null2String(gjjInfo.getFycdgsqc())
+ "-split" + Util.null2String(gjjInfo.getGjjcdgsmc())
+ "-split" + Util.null2String(gjjInfo.getZnxmmc()));
// 排序 - 根据key排序
LinkedHashMap<String, List<UfGjjInfo>> sortedMap = new LinkedHashMap<>();
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
// 获取所有法人主体信息
Map<String, String> 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<Long> salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList());
// 获取薪资核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds);
if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) {
String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ",");
// 获取薪资项目id
List<Long> 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<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds);
salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
List<Long> salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
// 获取薪资核算结果
List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
List<SalarySobEmpFieldPO> salarySobEmpFields = new ArrayList<>();
salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build());
List<Map<String, Object>> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false);
//
Map<String, List<Map<String, Object>>> 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<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
// 排序 - 根据key排序
LinkedHashMap<String, Map<String, Object>> 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<SalaryAcctRecordPO> salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build());
// // 过滤账套及状态
// // List<Long> 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<Long> salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList());
// // 获取薪资核算人员
// List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds);
// if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) {
// String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ",");
// // 获取薪资项目id
// List<Long> 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<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds);
// salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
// List<Long> salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
// // 获取薪资核算结果
// List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
// List<SalarySobEmpFieldPO> salarySobEmpFields = new ArrayList<>();
// salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build());
// List<Map<String, Object>> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false);
// //
// Map<String, List<Map<String, Object>>> 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<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
// LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
//
// // 排序 - 根据key排序
// LinkedHashMap<String, Map<String, Object>> 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<UfGjjInfo> listUfGjjInfoBySalaryMonth(Date salaryMonth) {
if (salaryMonth == null) {
return new ArrayList<UfGjjInfo>();
}
String fyssq = SalaryDateUtil.getFormatYearMonth(salaryMonth);
return getLyUfSbgjjMapper().listGjjInfoByFyssq(fyssq);
}
List<Map<String, Object>> buildData4LyReport(List<SalaryItemPO> salaryItemList, List<SalaryAcctEmployeePO> salaryAcctEmployeeList, List<SalarySobEmpFieldPO> salarySobEmpFields, List<SalaryAcctResultPO> salaryAcctResult, boolean dynamicEmpInfo) {
List<Long> empIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getEmployeeId).distinct().collect(Collectors.toList());
List<DataCollectionEmployee> employeeList = getSalaryEmployeeService(user).listByIds(empIds);
@ -388,6 +498,17 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ
List<String> 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<LyFundReportPO> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
if (param.isExport()) {
// 是导出
@ -455,6 +576,19 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ
List<String> 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<Map<String, Object>> fundReportGmgsList(LySalaryReportQueryParam param) {
public Map<String, Object> fundReportGmgsList(LySalaryReportQueryParam param) {
if (StringUtils.isBlank(param.getSalaryMonth())) {
throw new SalaryRunTimeException("薪资所属月参数不能为空");
}
@ -592,9 +726,9 @@ public class LyFundReportServiceImpl extends Service implements LyFundReportServ
// 获取本月是否已有报表数据
List<LyFundReportPO> 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<Map<String, Object>> 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<Map<String, Object>> fycdgsList = lyFundReportPOS.stream()
.map(LyFundReportPO::getFycdgsqc)
.distinct()
.filter(fycdgs -> StringUtils.isNotBlank(fycdgs))
.map(fycdgs -> {
Map<String, Object> map = new HashMap<>(2);
map.put("id", fycdgs);
map.put("content", fycdgs);
return map;
}).collect(Collectors.toList());
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("gmgs", gmgs);
resultMap.put("fycdgs", fycdgsList);
return resultMap;
}
}

View File

@ -368,6 +368,23 @@ public class LyPZServiceImpl extends Service implements LyPZService {
return resultList;
}
/**
* 查询所有法人主体信息
*
* @return
*/
public Map<String, String> listAllFrzt() {
RecordSet rs = new RecordSet();
Map<String, String> 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<Long> reportDataIds) {
Date salaryMonth = SalaryDateUtil.dateStrToLocalYearMonth(queryParam.getSalaryMonth());
// 根据薪资所属月和凭证类型查询凭证
List<LyVoucherPO> lyVoucherPOS = getLyVoucherMapper().listSome(LyVoucherPO.builder().salaryMonth(salaryMonth).pzlx(queryParam.getPzlx()).ffgsqc(queryParam.getFfgsqc()).build());
List<LyVoucherPO> 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<Long> dataIds = lyVoucherPOS.stream()
.map(po -> po.getDataSource().split(","))
@ -460,7 +480,13 @@ public class LyPZServiceImpl extends Service implements LyPZService {
List<List<FormulaVar>> formulaVarsList = new ArrayList<>();
if (queryParam.getPzlx().equals(LyPZTypeEnum.XZFFPZ.getValue()) || queryParam.getPzlx().equals(LyPZTypeEnum.XZJTPZ.getValue())) {
// 是工资单凭证
Map<String, Object> resultMap = getLySalaryReportService(user).listSalaryReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build());
Map<String, Object> 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<LySalaryReportPO> dataList = ((PageInfo<LySalaryReportPO>)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<String, Object> resultMap = getLySocialReportService(user).listSIReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build());
Map<String, Object> 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<LySocialReportPO> dataList = ((PageInfo<LySocialReportPO>)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<String, Object> resultMap = getLyFundReportService(user).listFundReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(Collections.singletonList(queryParam.getFfgsqc())).export(true).build());
Map<String, Object> 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<LyFundReportPO> dataList = ((PageInfo<LyFundReportPO>)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 {
});
}
}
}
// }
}
}

View File

@ -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<LySalaryReportPO> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
if (param.isExport()) {
// 是导出
@ -546,7 +557,7 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport
}
@Override
public List<Map<String, Object>> salaryReportFfgsList(LySalaryReportQueryParam param) {
public Map<String, Object> 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<Map<String, Object>> 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<Map<String, Object>> fycdgsList = lySalaryReportPOS.stream()
.map(LySalaryReportPO::getFycdgsqc)
.distinct()
.filter(fycdgs -> StringUtils.isNotBlank(fycdgs))
.map(fycdgs -> {
Map<String, Object> map = new HashMap<>(2);
map.put("id", fycdgs);
map.put("content", fycdgs);
return map;
}).collect(Collectors.toList());
Map<String, Object> 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<LySalaryReportPO> lySalaryReportPOS = getLySalaryReportMapper().listSome(LySalaryReportPO.builder().ids(salaryReportIds).build());
// List<LySalaryReportPO> 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<LySalaryReportPO> lySalaryReportPOS = getLySalaryReportMapper().listSome(LySalaryReportPO.builder().ids(salaryReportIds).build());
List<LySalaryReportPO> 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<String> 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);
}

View File

@ -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<SalaryAcctRecordPO> salaryAcctRecordList = getSalaryAcctRecordService(user).listBySalaryMonth(LocalDateRange.builder().fromDate(salaryMonthDate).endDate(salaryMonthDate).build());
// 过滤账套及状态
// List<Long> 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<UfSbInfo> sbInfoList = listUfSbInfoBySalaryMonth(salaryMonthDate);
if (CollectionUtils.isNotEmpty(sbInfoList)) {
Map<String, List<UfSbInfo>> resultGroup = SalaryEntityUtil.group2Map(sbInfoList, sbInfo -> Util.null2String(sbInfo.getGmgsqc())
+ "-split" + Util.null2String(sbInfo.getSbcdgsmc())
+ "-split" + Util.null2String(sbInfo.getZnxmmc()));
// 排序 - 根据key排序
LinkedHashMap<String, List<UfSbInfo>> sortedMap = new LinkedHashMap<>();
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedMap.put(x.getKey(), x.getValue()));
if (CollectionUtils.isNotEmpty(salaryAcctRecordList)) {
List<Long> salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList());
// 获取薪资核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds);
if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) {
String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ",");
// 获取所有法人主体信息
Map<String, String> 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<Long> 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<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds);
salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
List<Long> salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
// 获取薪资核算结果
List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
List<SalarySobEmpFieldPO> salarySobEmpFields = new ArrayList<>();
salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build());
List<Map<String, Object>> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false);
//
Map<String, List<Map<String, Object>>> 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<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
// 排序 - 根据key排序
LinkedHashMap<String, Map<String, Object>> 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<SalaryAcctRecordPO> 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<Long> salaryAcctRecordIds = salaryAcctRecordList.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList());
// // 获取薪资核算人员
// List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds);
// if (CollectionUtils.isNotEmpty(salaryAcctEmployeePOList)) {
// String dataSourceStr = StringUtils.join(salaryAcctRecordIds, ",");
//
// // 获取薪资项目id
// List<Long> 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<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds);
// salaryItemIds = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList());
// List<Long> salaryAcctEmpIds = salaryAcctEmployeePOList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
// // 获取薪资核算结果
// List<SalaryAcctResultPO> acctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
// List<SalarySobEmpFieldPO> salarySobEmpFields = new ArrayList<>();
// salarySobEmpFields.add(SalarySobEmpFieldPO.builder().fieldCode("subcompanyId").build());
// List<Map<String, Object>> resultMapList = buildData4LyReport(salaryItemList, salaryAcctEmployeePOList, salarySobEmpFields, acctResultList, false);
// //
// Map<String, List<Map<String, Object>>> 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<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
// LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
//
// // 排序 - 根据key排序
// LinkedHashMap<String, Map<String, Object>> 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<UfSbInfo> listUfSbInfoBySalaryMonth(Date salaryMonth) {
if (salaryMonth == null) {
return new ArrayList<UfSbInfo>();
}
String fyssq = SalaryDateUtil.getFormatYearMonth(salaryMonth);
return getLyUfSbgjjMapper().listSbInfoByFyssq(fyssq);
}
List<Map<String, Object>> buildData4LyReport(List<SalaryItemPO> salaryItemList, List<SalaryAcctEmployeePO> salaryAcctEmployeeList, List<SalarySobEmpFieldPO> salarySobEmpFields, List<SalaryAcctResultPO> salaryAcctResult, boolean dynamicEmpInfo) {
@ -457,6 +664,17 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
List<String> 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<LySocialReportPO> pageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize());
if (param.isExport()) {
// 是导出
@ -563,6 +781,17 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
List<String> 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<LySocialReportPO> lySocialReportPOS = getLySocialReportMapper().listSome(LySocialReportPO.builder().ids(siReportIds).build());
List<LySocialReportPO> 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<LySocialReportPO> 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<Map<String, Object>> sIReportGmgsList(LySalaryReportQueryParam param) {
public Map<String, Object> sIReportGmgsList(LySalaryReportQueryParam param) {
if (StringUtils.isBlank(param.getSalaryMonth())) {
throw new SalaryRunTimeException("薪资所属月参数不能为空");
}
@ -757,9 +984,9 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
// 获取本月是否已有报表数据
List<LySocialReportPO> 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<Map<String, Object>> 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<Map<String, Object>> fycdgsList = lySocialReportPOS.stream()
.map(LySocialReportPO::getFycdgsqc)
.distinct()
.filter(fycdgs -> StringUtils.isNotBlank(fycdgs))
.map(fycdgs -> {
Map<String, Object> map = new HashMap<>(2);
map.put("id", fycdgs);
map.put("content", fycdgs);
return map;
}).collect(Collectors.toList());
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("gmgs", gmgs);
resultMap.put("fycdgs", fycdgsList);
return resultMap;
}
}

View File

@ -97,7 +97,6 @@ public class SalaryEnumUtil {
hashMap.put("defaultLabel", enumMessage.getDefaultLabel());
hashMap.put("labelId", enumMessage.getLabelId());
keyValueList.add(hashMap);
}
return keyValueList;

View File

@ -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<String, String> heads = new HashMap<>();
if (StringUtils.isBlank(uid)) {
return heads;

View File

@ -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<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::salaryReportFfgsList, param);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(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<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::sIReportGmgsList, param);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(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<LySalaryReportQueryParam, List<Map<String, Object>>>(user).run(getLySalaryWrapper(user)::fundReportGmgsList, param);
return new ResponseResult<LySalaryReportQueryParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::fundReportGmgsList, param);
}
/**

View File

@ -61,7 +61,7 @@ public class LySalaryWrapper extends Service {
return getLySalaryReportService(user).listSalaryReport(param);
}
public List<Map<String, Object>> salaryReportFfgsList(LySalaryReportQueryParam param) {
public Map<String, Object> salaryReportFfgsList(LySalaryReportQueryParam param) {
return getLySalaryReportService(user).salaryReportFfgsList(param);
}
@ -198,7 +198,7 @@ public class LySalaryWrapper extends Service {
getLyPZService(user).deleteHistoryVoucher(voucherId);
}
public List<Map<String, Object>> sIReportGmgsList(LySalaryReportQueryParam queryParam) {
public Map<String, Object> sIReportGmgsList(LySalaryReportQueryParam queryParam) {
return getLySocialReportService(user).sIReportGmgsList(queryParam);
}
@ -249,7 +249,7 @@ public class LySalaryWrapper extends Service {
return getLyFundReportService(user).exportFundReport(param);
}
public List<Map<String, Object>> fundReportGmgsList(LySalaryReportQueryParam queryParam) {
public Map<String, Object> fundReportGmgsList(LySalaryReportQueryParam queryParam) {
return getLyFundReportService(user).fundReportGmgsList(queryParam);
}