领悦 凭证二开
This commit is contained in:
parent
35551d09a5
commit
6119e933d5
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ public interface LyPZService {
|
|||
*/
|
||||
Map<String, Object> genPZ(LyPZGenParam queryParam);
|
||||
|
||||
Map<String, String> listAllFrzt();
|
||||
|
||||
/**
|
||||
* 辅助核算浏览框
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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删除报表数据
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
|||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@ public class SalaryEnumUtil {
|
|||
hashMap.put("defaultLabel", enumMessage.getDefaultLabel());
|
||||
hashMap.put("labelId", enumMessage.getLabelId());
|
||||
keyValueList.add(hashMap);
|
||||
|
||||
}
|
||||
return keyValueList;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue