领悦temp
This commit is contained in:
parent
ceb0ebb1f7
commit
9c055fe693
|
|
@ -1,6 +1,7 @@
|
|||
CREATE TABLE hrsa_ly_salary_report (
|
||||
id bigint NOT NULL,
|
||||
subcompany_id bigint NULL DEFAULT NULL,
|
||||
znxmlx varchar(255),
|
||||
salary_month datetime NOT NULL,
|
||||
ffgsqc varchar(255) ,
|
||||
fycdgsqc varchar(255) ,
|
||||
|
|
@ -43,6 +44,7 @@ CREATE TABLE hrsa_ly_social_report (
|
|||
id bigint NOT NULL,
|
||||
subcompany_id bigint NULL DEFAULT NULL,
|
||||
salary_month datetime NOT NULL ,
|
||||
znxmlx varchar(255) NULL DEFAULT NULL,
|
||||
gmgsqc varchar(255) NULL DEFAULT NULL,
|
||||
fycdgsqc varchar(255) NULL DEFAULT NULL,
|
||||
znxmmc varchar(255) NULL DEFAULT NULL ,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
package com.engine.salary.entity.ly.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName LyPzPreview
|
||||
* @date 2024/08/30 14:33
|
||||
* @description
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class LyPzPreview {
|
||||
|
||||
// 摘要
|
||||
private String zy;
|
||||
|
||||
// 会计科目
|
||||
private String kjkm;
|
||||
|
||||
// 借方金额
|
||||
private String jfValue;
|
||||
|
||||
// 贷方金额
|
||||
private String dfValue;
|
||||
|
||||
private String fzhsXmqs;
|
||||
|
||||
private String fzhsFwlb;
|
||||
|
||||
private String fzhsSllb;
|
||||
|
||||
private String fzhsKs;
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
package com.engine.salary.entity.ly.po;
|
||||
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName LyKjkmTest
|
||||
* @date 2024/08/27 14:01
|
||||
* @description 会计科目 临时
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class LyKjkmTest {
|
||||
|
||||
// 会计科目id
|
||||
private String kjkmId;
|
||||
|
||||
// 会计科目名称
|
||||
private String kjkmName;
|
||||
|
||||
// 会计科目方向
|
||||
private String kjkmDirection;
|
||||
|
||||
private String kjkmSalaryItem;
|
||||
|
||||
// 会计科目薪资项目公式
|
||||
private ExpressFormula kjkmSalaryItemFormula;
|
||||
}
|
||||
|
|
@ -30,6 +30,10 @@ public class LySalaryReportPO {
|
|||
|
||||
private Long subcompanyId;
|
||||
|
||||
// 职能项目类型, 是职能还是项目
|
||||
@Alias("职能项目类型")
|
||||
private String znxmlx;
|
||||
|
||||
/**
|
||||
* 发放公司全称
|
||||
*/
|
||||
|
|
@ -68,7 +72,7 @@ public class LySalaryReportPO {
|
|||
/**
|
||||
* 本月应发_季度/年度绩效
|
||||
*/
|
||||
@Alias("本月应发_季度/年度绩效")
|
||||
@Alias("本月应发_季度年度绩效")
|
||||
private String byyfJdndjx;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,6 +23,11 @@ public class LySocialReportPO {
|
|||
private Long id;
|
||||
|
||||
private Long subcompanyId;
|
||||
|
||||
/**
|
||||
* 职能项目类型
|
||||
*/
|
||||
private String znxmlx;
|
||||
/**
|
||||
* 薪资所属月
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
package com.engine.salary.entity.ly.po;
|
||||
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName UfKjkm
|
||||
* @date 2024/08/30 11:14
|
||||
* @description
|
||||
*/
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class UfKjkmPO {
|
||||
|
||||
private Integer fx;
|
||||
private String fzhs;
|
||||
private Integer id;
|
||||
private String kmbm;
|
||||
private String kmmc;
|
||||
private Integer pzlx;
|
||||
private String xzxm;
|
||||
|
||||
//主键id集合
|
||||
private Collection<Long> ids;
|
||||
|
||||
// 会计科目薪资项目公式
|
||||
private ExpressFormula kjkmSalaryItemFormula;
|
||||
|
||||
// 借贷金额
|
||||
private String jdje;
|
||||
}
|
||||
|
|
@ -10,8 +10,8 @@ import java.util.Arrays;
|
|||
*/
|
||||
public enum LyJDDirectionTypeEnum {
|
||||
|
||||
DEBIT(1, "借方", 0),
|
||||
CREDIT(2, "贷方", 0);
|
||||
DEBIT(0, "借方", 0),
|
||||
CREDIT(1, "贷方", 0);
|
||||
|
||||
private int value;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,12 +9,12 @@ import java.util.Arrays;
|
|||
* @description 领悦-凭证类型
|
||||
*/
|
||||
public enum LyPZTypeEnum {
|
||||
XZJTPZ(1, "薪资计提凭证", 0),
|
||||
XZFFPZ(2, "薪资发放凭证", 0),
|
||||
SBJTPZ(3, "社保计提凭证", 0),
|
||||
XZJTPZ(0, "薪资计提凭证", 0),
|
||||
XZFFPZ(3, "薪资发放凭证", 0),
|
||||
SBJTPZ(1, "社保计提凭证", 0),
|
||||
SBFFPZ(4, "社保发放凭证", 0),
|
||||
GJJJTPZ(5, "公积金计提凭证", 0),
|
||||
GJJFFPZ(6, "公积金发放凭证", 0);
|
||||
GJJJTPZ(2, "公积金计提凭证", 0),
|
||||
GJJFFPZ(5, "公积金发放凭证", 0);
|
||||
|
||||
private int value;
|
||||
|
||||
|
|
|
|||
|
|
@ -217,6 +217,9 @@
|
|||
<if test="subcompanyId != null">
|
||||
subcompany_id,
|
||||
</if>
|
||||
<if test="znxmlx != null">
|
||||
znxmlx,
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
salary_month,
|
||||
</if>
|
||||
|
|
@ -321,6 +324,9 @@
|
|||
<if test="subcompanyId != null" >
|
||||
#{subcompanyId},
|
||||
</if>
|
||||
<if test="znxmlx != null">
|
||||
#{znxmlx},
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
#{salaryMonth},
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -221,6 +221,9 @@
|
|||
<if test="subcompanyId != null">
|
||||
subcompany_id,
|
||||
</if>
|
||||
<if test="znxmlx != null">
|
||||
znxmlx,
|
||||
</if>
|
||||
<if test="salaryMonth != null">
|
||||
salary_month,
|
||||
</if>
|
||||
|
|
@ -328,6 +331,9 @@
|
|||
<if test="subcompanyId != null" >
|
||||
#{subcompanyId},
|
||||
</if>
|
||||
<if test="znxmlx != null" >
|
||||
#{znxmlx},
|
||||
</if>
|
||||
<if test="salaryMonth != null" >
|
||||
#{salaryMonth},
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.salary.mapper.ly;
|
||||
|
||||
import com.engine.salary.entity.ly.po.UfKjkmPO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName UfKjkmMapper
|
||||
* @date 2024/08/30 11:16
|
||||
* @description
|
||||
*/
|
||||
public interface UfKjkmMapper {
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<UfKjkmPO> listAll();
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<UfKjkmPO> listSome(UfKjkmPO ufKjkm);
|
||||
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
UfKjkmPO getById(Integer id);
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
<?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.UfKjkmMapper">
|
||||
<resultMap id="BaseResultMap" type="com.engine.salary.entity.ly.po.UfKjkmPO">
|
||||
|
||||
<result column="fx" property="fx" />
|
||||
<result column="fzhs" property="fzhs" />
|
||||
<result column="id" property="id" />
|
||||
<result column="kmbm" property="kmbm" />
|
||||
<result column="kmmc" property="kmmc" />
|
||||
<result column="pzlx" property="pzlx" />
|
||||
<result column="xzxm" property="xzxm" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
<sql id="baseColumns">
|
||||
t.fx
|
||||
, t.fzhs
|
||||
, t.id
|
||||
, t.kmbm
|
||||
, t.kmmc
|
||||
, t.pzlx
|
||||
, t.xzxm
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
<select id="listAll" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM uf_kjkm t
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 根据主键获取单条记录 -->
|
||||
<select id="getById" resultMap="BaseResultMap" parameterType="Integer">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM uf_kjkm t
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- 条件查询 -->
|
||||
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.ly.po.UfKjkmPO">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM uf_kjkm t
|
||||
WHERE 1 = 1
|
||||
<if test="fx != null">
|
||||
AND fx = #{fx}
|
||||
</if>
|
||||
<if test="fzhs != null">
|
||||
AND fzhs = #{fzhs}
|
||||
</if>
|
||||
<if test="kmbm != null">
|
||||
AND kmbm = #{kmbm}
|
||||
</if>
|
||||
<if test="kmmc != null">
|
||||
AND kmmc = #{kmmc}
|
||||
</if>
|
||||
<if test="pzlx != null">
|
||||
AND pzlx = #{pzlx}
|
||||
</if>
|
||||
<if test="xzxm != null">
|
||||
AND xzxm = #{xzxm}
|
||||
</if>
|
||||
<if test="ids != null and ids.size()>0">
|
||||
AND id IN
|
||||
<foreach collection="ids" open="(" item="id" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</if>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -2,6 +2,8 @@ package com.engine.salary.service;
|
|||
|
||||
import com.engine.salary.entity.ly.param.LyPZGenParam;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName LyPZService
|
||||
|
|
@ -10,5 +12,5 @@ import com.engine.salary.entity.ly.param.LyPZGenParam;
|
|||
*/
|
||||
public interface LyPZService {
|
||||
|
||||
void genPZ(LyPZGenParam queryParam);
|
||||
Map<String, Object> genPZ(LyPZGenParam queryParam);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,27 +1,31 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.ly.dto.LyPzPreview;
|
||||
import com.engine.salary.entity.ly.param.LyPZGenParam;
|
||||
import com.engine.salary.entity.ly.param.LySalaryReportQueryParam;
|
||||
import com.engine.salary.entity.ly.po.LyKjkmTest;
|
||||
import com.engine.salary.entity.ly.po.LySalaryReportPO;
|
||||
import com.engine.salary.entity.ly.po.LySocialReportPO;
|
||||
import com.engine.salary.entity.ly.po.UfKjkmPO;
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
||||
import com.engine.salary.enums.ly.LyJDDirectionTypeEnum;
|
||||
import com.engine.salary.enums.ly.LyPZTypeEnum;
|
||||
import com.engine.salary.enums.salaryformula.ReferenceTypeEnum;
|
||||
import com.engine.salary.formlua.entity.parameter.DataType;
|
||||
import com.engine.salary.formlua.entity.standard.ExcelResult;
|
||||
import com.engine.salary.mapper.ly.UfKjkmMapper;
|
||||
import com.engine.salary.service.FormulaRunService;
|
||||
import com.engine.salary.service.LyPZService;
|
||||
import com.engine.salary.service.LySalaryReportService;
|
||||
import com.engine.salary.service.LySocialReportService;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.engine.salary.util.page.PageInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import weaver.conn.RecordSet;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
|
|
@ -52,13 +56,17 @@ public class LyPZServiceImpl extends Service implements LyPZService {
|
|||
return ServiceUtil.getService(FormulaRunServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private UfKjkmMapper getUfKjkmMapper() {
|
||||
return MapperProxyFactory.getProxy(UfKjkmMapper.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void genPZ(LyPZGenParam queryParam) {
|
||||
public Map<String, Object> genPZ(LyPZGenParam queryParam) {
|
||||
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()).export(true).build());
|
||||
Map<String, Object> resultMap = getLySalaryReportService(user).listSalaryReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(queryParam.getFfgsqc()).export(true).build());
|
||||
List<LySalaryReportPO> dataList = ((PageInfo<LySalaryReportPO>)resultMap.get("data")).getList();
|
||||
// 将每一个结果转换成map的格式并作为变量存储
|
||||
for (LySalaryReportPO po : dataList) {
|
||||
|
|
@ -68,15 +76,18 @@ public class LyPZServiceImpl extends Service implements LyPZService {
|
|||
FormulaVar build = FormulaVar.builder()
|
||||
.fieldId(entry.getKey())
|
||||
.content(Util.null2String(entry.getValue()))
|
||||
.fieldType(DataType.STRING)
|
||||
.fieldType(DataType.NUMBER)
|
||||
.build();
|
||||
if(entry.getKey().equals("ffgsqc") || entry.getKey().equals("fycdgsqc") || entry.getKey().equals("znxmmc")) {
|
||||
build.setFieldType(DataType.STRING);
|
||||
}
|
||||
formulaVars.add(build);
|
||||
}
|
||||
formulaVarsList.add(formulaVars);
|
||||
}
|
||||
} else {
|
||||
// 是社保公积金凭证
|
||||
Map<String, Object> resultMap = getLySocialReportService(user).listSIReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).export(true).build());
|
||||
Map<String, Object> resultMap = getLySocialReportService(user).listSIReport(LySalaryReportQueryParam.builder().salaryMonth(queryParam.getSalaryMonth()).ffgsqc(queryParam.getFfgsqc()).export(true).build());
|
||||
List<LySocialReportPO> dataList = ((PageInfo<LySocialReportPO>)resultMap.get("data")).getList();
|
||||
// 将每一个结果转换成map的格式并作为变量存储
|
||||
for (LySocialReportPO po : dataList) {
|
||||
|
|
@ -86,47 +97,35 @@ public class LyPZServiceImpl extends Service implements LyPZService {
|
|||
FormulaVar build = FormulaVar.builder()
|
||||
.fieldId(entry.getKey())
|
||||
.content(Util.null2String(entry.getValue()))
|
||||
.fieldType(DataType.STRING)
|
||||
.fieldType(DataType.NUMBER)
|
||||
.build();
|
||||
if(entry.getKey().equals("ffgsqc") || entry.getKey().equals("fycdgsqc") || entry.getKey().equals("znxmmc")) {
|
||||
build.setFieldType(DataType.STRING);
|
||||
}
|
||||
formulaVars.add(build);
|
||||
}
|
||||
formulaVarsList.add(formulaVars);
|
||||
}
|
||||
}
|
||||
RecordSet rs = new RecordSet();
|
||||
|
||||
// 根据科目编码获取科会计科目全路径名称
|
||||
// 获取所有科目编码信息
|
||||
Map<String, String> kmbmInfoMap = new HashMap<>();
|
||||
rs.execute("select kmbm,kmmc from uf_lytest");
|
||||
while (rs.next()) {
|
||||
kmbmInfoMap.put(rs.getString("kmbm"), rs.getString("kmmc"));
|
||||
}
|
||||
String fullNameKmgm = getFullPathKjkm("1234", kmbmInfoMap);
|
||||
|
||||
// 查询这个凭证对应所需的会计科目
|
||||
rs.execute("select kmbm,kmmc,xzxm,fx from uf_lytest");
|
||||
List<LyKjkmTest> kjkmList = new ArrayList<>();
|
||||
while (rs.next()) {
|
||||
String xzxm = rs.getString("xzxm");
|
||||
// 获取当前凭证对应的所有会计科目信息
|
||||
List<UfKjkmPO> ufKjkmList = getUfKjkmMapper().listSome(UfKjkmPO.builder().pzlx(queryParam.getPzlx()).build());
|
||||
// 封装会计科目对应的公式
|
||||
for(UfKjkmPO kjkm: ufKjkmList) {
|
||||
ExpressFormula expressFormula = ExpressFormula.builder().name("t")
|
||||
.referenceType(ReferenceTypeEnum.FORMULA.getValue())
|
||||
.formula(xzxm)
|
||||
.formulaRunScript(xzxm)
|
||||
.formula(kjkm.getXzxm())
|
||||
.formulaRunScript(kjkm.getXzxm())
|
||||
.extendParam("{}")
|
||||
.build();
|
||||
kjkmList.add(LyKjkmTest.builder()
|
||||
.kjkmId(rs.getString("kmbm"))
|
||||
.kjkmName(rs.getString("kmmc"))
|
||||
.kjkmDirection(rs.getString("fx"))
|
||||
.kjkmSalaryItemFormula(expressFormula)
|
||||
.build());
|
||||
kjkm.setKjkmSalaryItemFormula(expressFormula);
|
||||
}
|
||||
|
||||
Map<String, BigDecimal> kjkmValueMap = new HashMap<>();
|
||||
for(List<FormulaVar> varList : formulaVarsList) {
|
||||
// 每一条记录都需要执行一遍公式并把结果相加
|
||||
for (LyKjkmTest kjkm : kjkmList) {
|
||||
for (UfKjkmPO kjkm : ufKjkmList) {
|
||||
// 给公式中的变量填入值
|
||||
ExcelResult result = new ExcelResult();
|
||||
try {
|
||||
|
|
@ -143,11 +142,37 @@ public class LyPZServiceImpl extends Service implements LyPZService {
|
|||
}
|
||||
String resultStr = result.getData() == null ? "0" : result.getData().toString();
|
||||
BigDecimal resultBigDecimal = NumberUtils.isCreatable(resultStr) ? new BigDecimal(resultStr) : BigDecimal.ZERO;
|
||||
kjkmValueMap.put(kjkm.getKjkmId(), kjkmValueMap.getOrDefault(kjkm.getKjkmId(), new BigDecimal(0)).add(resultBigDecimal));
|
||||
kjkmValueMap.put(kjkm.getKmbm(), kjkmValueMap.getOrDefault(kjkm.getKmbm(), new BigDecimal(0)).add(resultBigDecimal));
|
||||
}
|
||||
}
|
||||
|
||||
// 封装会计科目的摘要信息、会计科目信息、借贷金额薪资,过滤金额为0的会计科目
|
||||
List<LyPzPreview> lyPzPreviewList = new ArrayList<>();
|
||||
Map<String, String> kmbmInfoMap = new HashMap<>();
|
||||
List<UfKjkmPO> allKjkm = getUfKjkmMapper().listAll();
|
||||
allKjkm.forEach(po -> kmbmInfoMap.put(po.getKmbm(), po.getKmmc()));
|
||||
for (UfKjkmPO kjkm : ufKjkmList) {
|
||||
BigDecimal value = kjkmValueMap.getOrDefault(kjkm.getKmbm(), BigDecimal.ZERO);
|
||||
LyPzPreview build = LyPzPreview.builder()
|
||||
.zy("")
|
||||
.kjkm(getFullPathKjkm(kjkm.getKmbm(), kmbmInfoMap))
|
||||
.jfValue(kjkm.getFx().equals(LyJDDirectionTypeEnum.DEBIT.getValue()) ? "0.00" : value.toString())
|
||||
.dfValue(kjkm.getFx().equals(LyJDDirectionTypeEnum.CREDIT.getValue()) ? "0.00" : value.toString())
|
||||
.build();
|
||||
lyPzPreviewList.add(build);
|
||||
}
|
||||
List<WeaTableColumn> columns = new ArrayList<>();
|
||||
columns.add(new WeaTableColumn("100px", "摘要" , "zy"));
|
||||
columns.add(new WeaTableColumn("100px", "会计科目" , "kjkm"));
|
||||
columns.add(new WeaTableColumn("100px", "借方金额" , "jfValue"));
|
||||
columns.add(new WeaTableColumn("100px", "贷方金额" , "dfValue"));
|
||||
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("columns" , columns);
|
||||
resultMap.put("data", lyPzPreviewList);
|
||||
return resultMap;
|
||||
// 所有的结果都算好了,封装凭证预览
|
||||
System.out.println(kjkmValueMap);
|
||||
|
||||
|
||||
|
||||
// test 生成xml
|
||||
|
|
@ -200,19 +225,19 @@ public class LyPZServiceImpl extends Service implements LyPZService {
|
|||
int length = kmbm.length();
|
||||
if (length == 4) {
|
||||
// 是一级科目,不需要拼接
|
||||
return kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
return kmbm + "\\" + kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
} else if (length == 6) {
|
||||
// 是二级科目,先找一级科目
|
||||
String firstKjkmbm = kmbm.substring(0, 4);
|
||||
String firstKjkm = kmbmInfoMap.getOrDefault(firstKjkmbm, "");
|
||||
return firstKjkm + "/" + kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
return kmbm + "\\" + firstKjkm + "\\" + kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
} else if (length == 8) {
|
||||
// 是三级科目
|
||||
String firstKjkmbm = kmbm.substring(0, 4);
|
||||
String firstKjkm = kmbmInfoMap.getOrDefault(firstKjkmbm, "");
|
||||
String secondKjkmbm = kmbm.substring(0, 6);
|
||||
String secondKjkm = kmbmInfoMap.getOrDefault(secondKjkmbm, "");
|
||||
return firstKjkm + "/" + secondKjkm + "/" +kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
return kmbm + "\\" + firstKjkm + "\\" + secondKjkm + "\\" +kmbmInfoMap.getOrDefault(kmbm, "");
|
||||
} else {
|
||||
return "科目编码格式错误!";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -188,6 +188,11 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport
|
|||
|
||||
// 获取薪资项目id
|
||||
List<Long> salaryItemIds = new ArrayList<>();
|
||||
|
||||
// 是职能还是项目
|
||||
Long znxmlxItemId = getPropLongValue(baseBean, "lySalaryNCReport", "salary_znxmlx_item_id");
|
||||
salaryItemIds.add(znxmlxItemId);
|
||||
|
||||
// 发放公司全称
|
||||
Long ffgsqcItemId = getPropLongValue(baseBean, "lySalaryNCReport", "salary_ffgsqc_item_id");
|
||||
salaryItemIds.add(ffgsqcItemId);
|
||||
|
|
@ -258,7 +263,7 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport
|
|||
+ "-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, null);
|
||||
LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
|
||||
|
||||
// 排序 - 根据key排序
|
||||
LinkedHashMap<String, Map<String, Object>> sortedMap = new LinkedHashMap<>();
|
||||
|
|
@ -287,6 +292,7 @@ public class LySalaryReportServiceImpl extends Service implements LySalaryReport
|
|||
LySalaryReportPO build = LySalaryReportPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.salaryMonth(salaryMonthDate)
|
||||
.znxmlx(valueMap.getOrDefault(znxmlxItemId.toString(), "").toString())
|
||||
.subcompanyId(Long.valueOf(valueMap.getOrDefault("subcompanyId","0").toString()))
|
||||
.ffgsqc(ffgsqc)
|
||||
.fycdgsqc(fycdgsqc)
|
||||
|
|
|
|||
|
|
@ -182,6 +182,9 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
|
|||
|
||||
// 获取薪资项目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);
|
||||
|
|
@ -253,7 +256,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
|
|||
+ "-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, null);
|
||||
LinkedHashMap<String, Map<String, Object>> resultMap = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems, znxmlxItemId);
|
||||
|
||||
// 排序 - 根据key排序
|
||||
LinkedHashMap<String, Map<String, Object>> sortedMap = new LinkedHashMap<>();
|
||||
|
|
@ -274,6 +277,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
|
|||
.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)
|
||||
|
|
@ -390,7 +394,7 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
|
|||
private LinkedHashMap<String, Map<String, Object>> getSumResultByGroup(Map<String, List<Map<String, Object>>> groupBy,
|
||||
List<SalarySobItemPO> salarySobItemPOS,
|
||||
List<SalaryItemPO> numberItems,
|
||||
Long gmgsqcItemId) {
|
||||
Long znxmlxItemId) {
|
||||
LinkedHashMap<String, Map<String, Object>> result = new LinkedHashMap<>();
|
||||
// 本次薪资核算所用的薪资账套下的薪资项目
|
||||
Map<Long, SalarySobItemPO> salaryItemIdKeySalarySobItemPOMap = SalaryEntityUtil.convert2Map(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
|
||||
|
|
@ -412,10 +416,10 @@ public class LySocialReportServiceImpl extends Service implements LySocialReport
|
|||
itemSum.put("userName", CollectionUtils.isEmpty(value) ? "" : value.get(0).get("userName"));
|
||||
itemSum.put("employeeId", CollectionUtils.isEmpty(value) ? "" : value.get(0).get("employeeId"));
|
||||
itemSum.put("subcompanyId", CollectionUtils.isEmpty(value) ? "" : value.get(0).get("subcompanyId") == null ? "0" : value.get(0).get("subcompanyId"));
|
||||
if (gmgsqcItemId != null) {
|
||||
if (znxmlxItemId != null) {
|
||||
Map<String, Object> map = value.get(0);
|
||||
String rylb = map.get(gmgsqcItemId.toString()) == null ? "" : map.get(gmgsqcItemId.toString()).toString();
|
||||
itemSum.put(gmgsqcItemId.toString(), rylb);
|
||||
String znxmlx = map.get(znxmlxItemId.toString()) == null ? "" : map.get(znxmlxItemId.toString()).toString();
|
||||
itemSum.put(znxmlxItemId.toString(), znxmlx);
|
||||
}
|
||||
|
||||
result.put(entrySet.getKey(), itemSum);
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ public class LySalaryController {
|
|||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String genAndPreveiwPZ(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody LyPZGenParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<LyPZGenParam, String>(user).run(getLySalaryWrapper(user)::genPZ, param);
|
||||
return new ResponseResult<LyPZGenParam, Map<String, Object>>(user).run(getLySalaryWrapper(user)::genPZ, param);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------领悦生成凭证end--------------------------------------------
|
||||
|
|
|
|||
|
|
@ -120,8 +120,8 @@ public class LySalaryWrapper extends Service {
|
|||
return getLySocialReportService(user).exportSIReport(param);
|
||||
}
|
||||
|
||||
public void genPZ(LyPZGenParam queryParam) {
|
||||
getLyPZService(user).genPZ(queryParam);
|
||||
public Map<String, Object> genPZ(LyPZGenParam queryParam) {
|
||||
return getLyPZService(user).genPZ(queryParam);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue