薪资核算结果编辑导入 记录
This commit is contained in:
parent
eaaf6359af
commit
4ff15ca651
|
|
@ -0,0 +1,40 @@
|
|||
package com.engine.salary.entity.salaryacct.bo;
|
||||
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum;
|
||||
import dm.jdbc.util.IdGenerator;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 16:54
|
||||
* @description
|
||||
*/
|
||||
public class SalaryAcctResultLogBO {
|
||||
|
||||
public static List<SalaryAcctResultLogPO> buildSalaryAcctResultLog(List<SalaryAcctResultPO> salaryAcctResultList, Long uid, SalaryAcctResultDataSourceEnum datasource){
|
||||
Date now = new Date();
|
||||
List<SalaryAcctResultLogPO> needInsertList = new ArrayList<>();
|
||||
salaryAcctResultList.stream().forEach(PO -> {
|
||||
needInsertList.add(SalaryAcctResultLogPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
.datasource(datasource.getValue())
|
||||
.salaryAcctRecordId(PO.getSalaryAcctRecordId())
|
||||
.salaryAcctResultId(PO.getId())
|
||||
.salaryAcctEmpId(PO.getSalaryAcctEmpId())
|
||||
.salaryItemId(PO.getSalaryItemId())
|
||||
.employeeId(PO.getEmployeeId())
|
||||
.operator(uid)
|
||||
.operateTime(now)
|
||||
.deleteType(NumberUtils.INTEGER_ZERO)
|
||||
.updateTime(now)
|
||||
.build());
|
||||
});
|
||||
return needInsertList;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
package com.engine.salary.entity.salaryacct.param;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 15:14
|
||||
* @description 薪资核算结果来源
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SalaryAcctResultLogQueryParam {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 数据来源:1:手动编辑、2:导入
|
||||
*/
|
||||
private Integer datasource;
|
||||
|
||||
/**
|
||||
* 薪资核算记录id
|
||||
*/
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
/**
|
||||
* 薪资核算结果id
|
||||
*/
|
||||
private Long salaryAcctResultId;
|
||||
|
||||
/**
|
||||
* 薪资核算人员id
|
||||
*/
|
||||
private Long salaryAcctEmpId;
|
||||
|
||||
|
||||
/**
|
||||
* 薪资项目id
|
||||
*/
|
||||
private Long salaryItemId;
|
||||
|
||||
/**
|
||||
* 人员id
|
||||
*/
|
||||
private Long employeeId;
|
||||
|
||||
/**
|
||||
* 操作人
|
||||
*/
|
||||
private Long operator;
|
||||
|
||||
|
||||
/**
|
||||
* 操作时间
|
||||
*/
|
||||
private Date operateTime;
|
||||
|
||||
/**
|
||||
* 是否已删除。0:未删除、1:已删除
|
||||
*/
|
||||
private Integer deleteType;
|
||||
}
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
package com.engine.salary.entity.salaryacct.po;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 15:14
|
||||
* @description 薪资核算结果来源
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SalaryAcctResultLogPO {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 数据来源:1:手动编辑、2:导入
|
||||
*/
|
||||
private Integer datasource;
|
||||
|
||||
/**
|
||||
* 薪资核算记录id
|
||||
*/
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
/**
|
||||
* 薪资核算结果id
|
||||
*/
|
||||
private Long salaryAcctResultId;
|
||||
|
||||
/**
|
||||
* 薪资核算人员id
|
||||
*/
|
||||
private Long salaryAcctEmpId;
|
||||
|
||||
|
||||
/**
|
||||
* 薪资项目id
|
||||
*/
|
||||
private Long salaryItemId;
|
||||
|
||||
/**
|
||||
* 人员id
|
||||
*/
|
||||
private Long employeeId;
|
||||
|
||||
/**
|
||||
* 操作人
|
||||
*/
|
||||
private Long operator;
|
||||
|
||||
|
||||
/**
|
||||
* 操作时间
|
||||
*/
|
||||
private Date operateTime;
|
||||
|
||||
/**
|
||||
* 是否已删除。0:未删除、1:已删除
|
||||
*/
|
||||
private Integer deleteType;
|
||||
|
||||
private Date updateTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package com.engine.salary.enums.salaryaccounting;
|
||||
|
||||
import com.engine.salary.enums.BaseEnum;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 薪资核算结果的数据来源
|
||||
* <p>Copyright: Copyright (c) 2022</p>
|
||||
* <p>Company: 泛微软件</p>
|
||||
*
|
||||
* @author qiantao
|
||||
* @version 1.0
|
||||
**/
|
||||
public enum SalaryAcctResultDataSourceEnum implements BaseEnum<Integer> {
|
||||
|
||||
EDIT(1, "手动编辑", 91870),
|
||||
IMPORT(2, "导入", 91862)
|
||||
;
|
||||
|
||||
private int value;
|
||||
|
||||
private String defaultLabel;
|
||||
|
||||
private int labelId;
|
||||
|
||||
SalaryAcctResultDataSourceEnum(int value, String defaultLabel, int labelId) {
|
||||
this.value = value;
|
||||
this.defaultLabel = defaultLabel;
|
||||
this.labelId = labelId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getLabelId() {
|
||||
return labelId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultLabel() {
|
||||
return defaultLabel;
|
||||
}
|
||||
|
||||
public static SalaryAcctResultDataSourceEnum parseByValue(Integer value) {
|
||||
for (SalaryAcctResultDataSourceEnum SalaryAcctResultDataSourceEnum : SalaryAcctResultDataSourceEnum.values()) {
|
||||
if (Objects.equals(SalaryAcctResultDataSourceEnum.getValue(), value)) {
|
||||
return SalaryAcctResultDataSourceEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
package com.engine.salary.mapper.salaryacct;
|
||||
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctResultLogQueryParam;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 15:21
|
||||
* @description
|
||||
*/
|
||||
public interface SalaryAcctResultLogMapper {
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<SalaryAcctResultLogPO> listAll();
|
||||
|
||||
/**
|
||||
* 条件查询
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<SalaryAcctResultLogPO> listSome(SalaryAcctResultLogQueryParam queryParam);
|
||||
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
SalaryAcctResultLogPO getById(Long id);
|
||||
|
||||
/**
|
||||
* 新增,忽略null字段
|
||||
*
|
||||
* @param salaryAcctResultLog 新增的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int insertIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 修改,修改所有字段
|
||||
*
|
||||
* @param salaryAcctResultLog 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int update(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 修改,忽略null字段
|
||||
*
|
||||
* @param salaryAcctResultLog 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int updateIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 删除记录
|
||||
*
|
||||
* @param salaryAcctResultLog 待删除的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int delete(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
void batchInsert(List<SalaryAcctResultLogPO> SalaryAcctResultLogList);
|
||||
|
||||
/**
|
||||
* 根据薪资核算人员删除数据,除了已经锁定的值
|
||||
* @param salaryAcctEmployeeIds
|
||||
* @param lockSalaryItemIds
|
||||
*/
|
||||
void deleteBySalaryAcctEmpIdExceptItemIds(@Param("salaryAcctEmployeeIds") Collection<Long> salaryAcctEmployeeIds,
|
||||
@Param("exceptItems") Collection<Long> lockSalaryItemIds, @Param("updateTime") Date updateTime);
|
||||
}
|
||||
|
|
@ -0,0 +1,306 @@
|
|||
<?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.salaryacct.SalaryAcctResultLogMapper">
|
||||
<resultMap id="BaseResultMap" type="com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO">
|
||||
<result column="datasource" property="datasource" />
|
||||
<result column="delete_type" property="deleteType" />
|
||||
<result column="employee_id" property="employeeId" />
|
||||
<result column="id" property="id" />
|
||||
<result column="operate_time" property="operateTime" />
|
||||
<result column="operator" property="operator" />
|
||||
<result column="salary_acct_emp_id" property="salaryAcctEmpId" />
|
||||
<result column="salary_acct_record_id" property="salaryAcctRecordId" />
|
||||
<result column="salary_acct_result_id" property="salaryAcctResultId" />
|
||||
<result column="salary_item_id" property="salaryItemId" />
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
<sql id="baseColumns">
|
||||
t.datasource
|
||||
, t.delete_type
|
||||
, t.employee_id
|
||||
, t.id
|
||||
, t.operate_time
|
||||
, t.operator
|
||||
, t.salary_acct_emp_id
|
||||
, t.salary_acct_record_id
|
||||
, t.salary_acct_result_id
|
||||
, t.salary_item_id
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
<select id="listAll" resultMap="BaseResultMap">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM hrsa_salary_acct_result_log t
|
||||
WHERE delete_type = 0
|
||||
</select>
|
||||
|
||||
<!-- 根据主键获取单条记录 -->
|
||||
<select id="getById" resultMap="BaseResultMap" parameterType="Long">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM hrsa_salary_acct_result_log t
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</select>
|
||||
|
||||
<!-- 条件查询 -->
|
||||
<select id="listSome" resultMap="BaseResultMap" parameterType="com.engine.salary.entity.salaryacct.param.SalaryAcctResultLogQueryParam">
|
||||
SELECT
|
||||
<include refid="baseColumns" />
|
||||
FROM hrsa_salary_acct_result_log t
|
||||
WHERE delete_type = 0
|
||||
<if test="datasource != null">
|
||||
AND datasource = #{datasource}
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
AND delete_type = #{deleteType}
|
||||
</if>
|
||||
<if test="employeeId != null">
|
||||
AND employee_id = #{employeeId}
|
||||
</if>
|
||||
<if test="id != null">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
<if test="operateTime != null">
|
||||
AND operate_time = #{operateTime}
|
||||
</if>
|
||||
<if test="operator != null">
|
||||
AND operator = #{operator}
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null">
|
||||
AND salary_acct_emp_id = #{salaryAcctEmpId}
|
||||
</if>
|
||||
<if test="salaryAcctRecordId != null">
|
||||
AND salary_acct_record_id = #{salaryAcctRecordId}
|
||||
</if>
|
||||
<if test="salaryAcctResultId != null">
|
||||
AND salary_acct_result_id = #{salaryAcctResultId}
|
||||
</if>
|
||||
<if test="salaryItemId != null">
|
||||
AND salary_item_id = #{salaryItemId}
|
||||
</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>
|
||||
|
||||
|
||||
<!-- 插入不为NULL的字段 -->
|
||||
<insert id="insertIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO">
|
||||
INSERT INTO hrsa_salary_acct_result_log
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
|
||||
<if test="datasource != null">
|
||||
datasource,
|
||||
</if>
|
||||
<if test="deleteType != null">
|
||||
delete_type,
|
||||
</if>
|
||||
<if test="employeeId != null">
|
||||
employee_id,
|
||||
</if>
|
||||
<if test="id != null">
|
||||
id,
|
||||
</if>
|
||||
<if test="operateTime != null">
|
||||
operate_time,
|
||||
</if>
|
||||
<if test="operator != null">
|
||||
operator,
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null">
|
||||
salary_acct_emp_id,
|
||||
</if>
|
||||
<if test="salaryAcctRecordId != null">
|
||||
salary_acct_record_id,
|
||||
</if>
|
||||
<if test="salaryAcctResultId != null">
|
||||
salary_acct_result_id,
|
||||
</if>
|
||||
<if test="salaryItemId != null">
|
||||
salary_item_id,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="datasource != null" >
|
||||
#{datasource},
|
||||
</if>
|
||||
<if test="deleteType != null" >
|
||||
#{deleteType},
|
||||
</if>
|
||||
<if test="employeeId != null" >
|
||||
#{employeeId},
|
||||
</if>
|
||||
<if test="id != null" >
|
||||
#{id},
|
||||
</if>
|
||||
<if test="operateTime != null" >
|
||||
#{operateTime},
|
||||
</if>
|
||||
<if test="operator != null" >
|
||||
#{operator},
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null" >
|
||||
#{salaryAcctEmpId},
|
||||
</if>
|
||||
<if test="salaryAcctRecordId != null" >
|
||||
#{salaryAcctRecordId},
|
||||
</if>
|
||||
<if test="salaryAcctResultId != null" >
|
||||
#{salaryAcctResultId},
|
||||
</if>
|
||||
<if test="salaryItemId != null" >
|
||||
#{salaryItemId},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<insert id="batchInsert">
|
||||
INSERT INTO hrsa_salary_acct_result_log(id, datasource, salary_acct_record_id, salary_acct_result_id, salary_acct_emp_id,
|
||||
salary_item_id, employee_id, operator, operate_time, delete_type, update_time)
|
||||
VALUES
|
||||
<foreach collection="collection" separator="," item="item">
|
||||
(
|
||||
#{item.id},
|
||||
#{item.datasource},
|
||||
#{item.salaryAcctRecordId},
|
||||
#{item.salaryAcctResultId},
|
||||
#{item.salaryAcctEmpId},
|
||||
#{item.salaryItemId},
|
||||
#{item.employeeId},
|
||||
#{item.operator},
|
||||
#{item.operateTime},
|
||||
#{item.deleteType},
|
||||
#{item.updateTime}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="oracle">
|
||||
INSERT INTO hrsa_salary_acct_result_log(id, datasource, salary_acct_record_id, salary_acct_result_id, salary_acct_emp_id,
|
||||
salary_item_id, employee_id, operator, operate_time, delete_type, update_time)
|
||||
<foreach collection="collection" separator="union all" item="item">
|
||||
select
|
||||
#{item.id,jdbcType=DOUBLE},
|
||||
#{item.datasource,jdbcType=INTEGER},
|
||||
#{item.salaryAcctRecordId,jdbcType=DOUBLE},
|
||||
#{item.salaryAcctResultId,jdbcType=DOUBLE},
|
||||
#{item.salaryAcctEmpId,jdbcType=DOUBLE},
|
||||
#{item.salaryItemId,jdbcType=DOUBLE},
|
||||
#{item.employeeId,jdbcType=DOUBLE},
|
||||
#{item.operator,jdbcType=,jdbcType=DOUBLE},
|
||||
#{item.operateTime,jdbcType=DATE},
|
||||
#{item.deleteType,jdbcType=INTEGER},
|
||||
#{item.updateTime,jdbcType=DATE}
|
||||
from dual
|
||||
</foreach>
|
||||
</insert>
|
||||
<insert id="batchInsert" databaseId="sqlserver">
|
||||
<foreach collection="collection" separator=";" item="item">
|
||||
INSERT INTO hrsa_salary_acct_result_log(id, datasource, salary_acct_record_id, salary_acct_result_id, salary_acct_emp_id,
|
||||
salary_item_id, employee_id, operator, operate_time, delete_type, update_time)
|
||||
VALUES
|
||||
(
|
||||
#{item.id},
|
||||
#{item.datasource},
|
||||
#{item.salaryAcctRecordId},
|
||||
#{item.salaryAcctResultId},
|
||||
#{item.salaryAcctEmpId},
|
||||
#{item.salaryItemId},
|
||||
#{item.employeeId},
|
||||
#{item.operator},
|
||||
#{item.operateTime},
|
||||
#{item.deleteType},
|
||||
#{item.updateTime}
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!-- 更新,更新全部字段 -->
|
||||
<update id="update" parameterType="com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO">
|
||||
UPDATE hrsa_salary_acct_result_log
|
||||
<set>
|
||||
datasource=#{datasource},
|
||||
delete_type=#{deleteType},
|
||||
employee_id=#{employeeId},
|
||||
operate_time=#{operateTime},
|
||||
operator=#{operator},
|
||||
salary_acct_emp_id=#{salaryAcctEmpId},
|
||||
salary_acct_record_id=#{salaryAcctRecordId},
|
||||
salary_acct_result_id=#{salaryAcctResultId},
|
||||
salary_item_id=#{salaryItemId},
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 更新不为NULL的字段 -->
|
||||
<update id="updateIgnoreNull" parameterType="com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO">
|
||||
UPDATE hrsa_salary_acct_result_log
|
||||
<set>
|
||||
<if test="datasource != null" >
|
||||
datasource=#{datasource},
|
||||
</if>
|
||||
<if test="deleteType != null" >
|
||||
delete_type=#{deleteType},
|
||||
</if>
|
||||
<if test="employeeId != null" >
|
||||
employee_id=#{employeeId},
|
||||
</if>
|
||||
<if test="operateTime != null" >
|
||||
operate_time=#{operateTime},
|
||||
</if>
|
||||
<if test="operator != null" >
|
||||
operator=#{operator},
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null" >
|
||||
salary_acct_emp_id=#{salaryAcctEmpId},
|
||||
</if>
|
||||
<if test="salaryAcctRecordId != null" >
|
||||
salary_acct_record_id=#{salaryAcctRecordId},
|
||||
</if>
|
||||
<if test="salaryAcctResultId != null" >
|
||||
salary_acct_result_id=#{salaryAcctResultId},
|
||||
</if>
|
||||
<if test="salaryItemId != null" >
|
||||
salary_item_id=#{salaryItemId},
|
||||
</if>
|
||||
</set>
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<!-- 根据主键删除记录 -->
|
||||
<update id="delete" parameterType="com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO">
|
||||
UPDATE hrsa_salary_acct_result_log
|
||||
SET delete_type=1
|
||||
WHERE id = #{id} AND delete_type = 0
|
||||
</update>
|
||||
|
||||
|
||||
<update id="deleteBySalaryAcctEmpIdExceptItemIds">
|
||||
UPDATE hrsa_salary_acct_result_log
|
||||
SET delete_type=1, update_time = #{updateTime}
|
||||
WHERE delete_type = 0
|
||||
<if test="salaryAcctEmployeeIds != null and salaryAcctEmployeeIds.size()>0">
|
||||
AND salary_acct_emp_id IN
|
||||
<foreach collection="salaryAcctEmployeeIds" open="(" item="acctEmpId" separator="," close=")">
|
||||
#{acctEmpId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
<if test="exceptItems != null and exceptItems.size()>0">
|
||||
AND salary_item_id NOT IN
|
||||
<foreach collection="exceptItems" open="(" item="itemId" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
package com.engine.salary.service;
|
||||
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 15:27
|
||||
* @description 薪资核算结果数据来源
|
||||
*/
|
||||
public interface SalaryAcctResultLogService {
|
||||
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @return 返回集合,没有返回空List
|
||||
*/
|
||||
List<SalaryAcctResultLogPO> listAll();
|
||||
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 返回记录,没有返回null
|
||||
*/
|
||||
SalaryAcctResultLogPO getById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 新增,忽略null字段
|
||||
*
|
||||
* @param salaryAcctResultLog 新增的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int insertIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 修改,修改所有字段
|
||||
*
|
||||
* @param salaryAcctResultLog 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int update(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 修改,忽略null字段
|
||||
*
|
||||
* @param salaryAcctResultLog 修改的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int updateIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
/**
|
||||
* 删除记录
|
||||
*
|
||||
* @param salaryAcctResultLog 待删除的记录
|
||||
* @return 返回影响行数
|
||||
*/
|
||||
int delete(SalaryAcctResultLogPO salaryAcctResultLog);
|
||||
|
||||
void batchInsert(List<SalaryAcctResultLogPO> salaryAcctResultLogList);
|
||||
|
||||
/**
|
||||
* 根据薪资核算人员删除数据,除了已经锁定的值
|
||||
* @param salaryAcctEmployeeIds
|
||||
* @param lockSalaryItemIds
|
||||
*/
|
||||
void deleteBySalaryAcctEmpIdExceptItemIds(Collection<Long> salaryAcctEmployeeIds, Collection<Long> lockSalaryItemIds);
|
||||
}
|
||||
|
|
@ -11,14 +11,12 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
|||
import com.engine.salary.entity.report.po.SalaryAcctResultReportPO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctEmployeeBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultLogBO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAccEmployeeListDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctImportFieldDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryComparisonResultListDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.*;
|
||||
import com.engine.salary.entity.salaryacct.po.ExcelAcctResultPO;
|
||||
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.salaryacct.po.*;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO;
|
||||
|
|
@ -28,6 +26,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
|||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import com.engine.salary.enums.UserStatusEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.sys.SalarySysConfMapper;
|
||||
import com.engine.salary.service.*;
|
||||
|
|
@ -136,6 +135,10 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctResultLogService getSalaryAcctResultLogService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctResultLogServiceImpl.class, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public XSSFWorkbook exportSalaryAcctEmployee(SalaryAcctEmployeeQueryParam queryParam) {
|
||||
ValidUtil.doValidator(queryParam);
|
||||
|
|
@ -1014,6 +1017,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// 处理导入薪资项的回算值
|
||||
handleOriginResultValue(deleteResults, salaryAcctResults);
|
||||
getSalaryAcctResultService(user).batchSave(salaryAcctResults);
|
||||
// 存储薪资核算结果数据来源日志
|
||||
new Thread() {
|
||||
public void run() {
|
||||
handleSalaryAcctResultLog(salaryAcctResults);
|
||||
}
|
||||
}.start();
|
||||
//报表
|
||||
getSalaryAcctReportService(user).batchSave(salaryAcctReports);
|
||||
}
|
||||
|
|
@ -1035,6 +1044,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
return apidatas;
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储薪资核算结果数据来源日志
|
||||
* @param salaryAcctResults
|
||||
*/
|
||||
private void handleSalaryAcctResultLog(List<SalaryAcctResultPO> salaryAcctResults) {
|
||||
Set<Long> salaryAcctEmpIds = salaryAcctResults.stream().map(SalaryAcctResultPO::getSalaryAcctEmpId).collect(Collectors.toSet());
|
||||
Set<Long> salaryItemIds = salaryAcctResults.stream().map(SalaryAcctResultPO::getSalaryItemId).collect(Collectors.toSet());
|
||||
// 查询导入的薪资核算结果
|
||||
List<SalaryAcctResultPO> salaryAcctResultList = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, salaryItemIds);
|
||||
Long uid = Long.valueOf(user.getUID());
|
||||
List<SalaryAcctResultLogPO> needInsertList = SalaryAcctResultLogBO.buildSalaryAcctResultLog(salaryAcctResultList, uid, SalaryAcctResultDataSourceEnum.IMPORT);
|
||||
if(CollectionUtils.isNotEmpty(needInsertList)){
|
||||
getSalaryAcctResultLogService(user).batchInsert(needInsertList);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description
|
||||
* @return void
|
||||
|
|
|
|||
|
|
@ -0,0 +1,66 @@
|
|||
package com.engine.salary.service.impl;
|
||||
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctResultLogPO;
|
||||
import com.engine.salary.mapper.salaryacct.SalaryAcctResultLogMapper;
|
||||
import com.engine.salary.service.SalaryAcctResultLogService;
|
||||
import com.engine.salary.util.db.MapperProxyFactory;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @date 2023/05/12 15:29
|
||||
* @description
|
||||
*/
|
||||
public class SalaryAcctResultLogServiceImpl extends Service implements SalaryAcctResultLogService {
|
||||
|
||||
private SalaryAcctResultLogMapper getSalaryAcctResultLogMapper() {
|
||||
return MapperProxyFactory.getProxy(SalaryAcctResultLogMapper.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctResultLogPO> listAll() {
|
||||
return getSalaryAcctResultLogMapper().listAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalaryAcctResultLogPO getById(Long id) {
|
||||
return getSalaryAcctResultLogMapper().getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog) {
|
||||
return getSalaryAcctResultLogMapper().insertIgnoreNull(salaryAcctResultLog);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int update(SalaryAcctResultLogPO salaryAcctResultLog) {
|
||||
return getSalaryAcctResultLogMapper().update(salaryAcctResultLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateIgnoreNull(SalaryAcctResultLogPO salaryAcctResultLog) {
|
||||
return getSalaryAcctResultLogMapper().updateIgnoreNull(salaryAcctResultLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete(SalaryAcctResultLogPO salaryAcctResultLog) {
|
||||
return getSalaryAcctResultLogMapper().delete(salaryAcctResultLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchInsert(List<SalaryAcctResultLogPO> salaryAcctResultLogList) {
|
||||
List<List<SalaryAcctResultLogPO>> partition = Lists.partition(salaryAcctResultLogList, 50);
|
||||
partition.forEach(getSalaryAcctResultLogMapper()::batchInsert);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteBySalaryAcctEmpIdExceptItemIds(Collection<Long> salaryAcctEmployeeIds, Collection<Long> lockSalaryItemIds) {
|
||||
getSalaryAcctResultLogMapper().deleteBySalaryAcctEmpIdExceptItemIds(salaryAcctEmployeeIds,lockSalaryItemIds, new Date());
|
||||
}
|
||||
}
|
||||
|
|
@ -9,19 +9,13 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
|||
import com.engine.salary.entity.datacollection.dto.AttendQuoteFieldListDTO;
|
||||
import com.engine.salary.entity.report.bo.SalaryAcctResultReportBO;
|
||||
import com.engine.salary.entity.report.po.SalaryAcctResultReportPO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculateBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctCalculatePriorityBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctFormulaBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO;
|
||||
import com.engine.salary.entity.salaryacct.bo.*;
|
||||
import com.engine.salary.entity.salaryacct.dto.ConsolidatedTaxDetailDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctProgressDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultDetailDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctResultListColumnDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.*;
|
||||
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.salaryacct.po.SalaryAcctResultTempPO;
|
||||
import com.engine.salary.entity.salaryacct.po.*;
|
||||
import com.engine.salary.entity.salaryformula.ExpressFormula;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.*;
|
||||
|
|
@ -30,6 +24,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
|||
import com.engine.salary.enums.SalaryValueTypeEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum;
|
||||
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
|
|
@ -156,6 +151,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
return ServiceUtil.getService(SalarySobBackItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctResultLogService getSalaryAcctResultLogService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctResultLogServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
private SalaryCheckResultService salaryCheckResultService;
|
||||
|
||||
|
|
@ -550,6 +549,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS);
|
||||
}
|
||||
|
||||
// 存储薪资核算结果数据来源日志
|
||||
saveSalaryAcctResultLog(salaryAcctResultPOSOld,salaryAcctResultPOS);
|
||||
|
||||
// 查询操作日志的targetName
|
||||
// String targetName = getSalaryAcctRecordService(user).getLogTargetNameById(salaryAcctEmployeePO.getSalaryAcctRecordId());
|
||||
// 查询人员信息
|
||||
|
|
@ -568,6 +570,25 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// salaryAcctRecordLoggerTemplate.write(loggerContext);
|
||||
}
|
||||
|
||||
/**
|
||||
* 存储薪资核算结果数据来源日志
|
||||
* @param salaryAcctResultPOSOld
|
||||
* @param salaryAcctResultPOS
|
||||
*/
|
||||
private void saveSalaryAcctResultLog(List<SalaryAcctResultPO> salaryAcctResultPOSOld, List<SalaryAcctResultPO> salaryAcctResultPOS) {
|
||||
// 对比核算结果提取修改了哪些薪资项目
|
||||
List<SalaryAcctResultPO> editItems = new ArrayList<>();
|
||||
Map<Long, SalaryAcctResultPO> oldResutMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOSOld, SalaryAcctResultPO::getSalaryItemId);
|
||||
salaryAcctResultPOS.stream().forEach(PO -> {
|
||||
String oldValue = oldResutMap.get(PO.getSalaryItemId()).getResultValue();
|
||||
if(!StringUtils.equals(oldValue,PO.getResultValue())){
|
||||
editItems.add(PO);
|
||||
}
|
||||
});
|
||||
List<SalaryAcctResultLogPO> needInsertList = SalaryAcctResultLogBO.buildSalaryAcctResultLog(editItems, Long.valueOf(user.getUID()), SalaryAcctResultDataSourceEnum.EDIT);
|
||||
getSalaryAcctResultLogService(user).batchInsert(needInsertList);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void batchSave(Collection<SalaryAcctResultPO> salaryAcctResultPOS) {
|
||||
|
|
@ -730,6 +751,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// salaryCheckResultService.check(salaryAcctCheckParam, true, simpleEmployee);
|
||||
// Thread.sleep(10);
|
||||
getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true);
|
||||
|
||||
// 存储薪资核算数据来源日志
|
||||
new Thread() {
|
||||
public void run() {
|
||||
List<Long> exceptItemIds = new ArrayList<>();
|
||||
List<Long> salaryAcctEmployeeIds = salaryAcctEmployeePOS.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList());
|
||||
exceptItemIds.addAll(lockSalaryItemIds);
|
||||
exceptItemIds.addAll(salaryItemPOS.stream().filter(PO -> Objects.equals(PO.getValueType(), NumberUtils.INTEGER_ONE) &&
|
||||
Objects.equals(PO.getUseInEmployeeSalary(),0))
|
||||
.map(SalaryItemPO::getId).collect(Collectors.toList()) );
|
||||
getSalaryAcctResultLogService(user).deleteBySalaryAcctEmpIdExceptItemIds(salaryAcctEmployeeIds, exceptItemIds);
|
||||
}
|
||||
}.start();
|
||||
// 记录日志
|
||||
// 查询操作日志的targetName
|
||||
// String targetName = getSalaryAcctRecordService(user).getLogTargetNameById(calculateParam.getSalaryAcctRecordId());
|
||||
|
|
|
|||
Loading…
Reference in New Issue