薪资核算记录 批量新建并核算
This commit is contained in:
parent
e9e3483c8b
commit
d8d46cd932
|
|
@ -106,6 +106,7 @@ public class SalaryAcctRecordBO {
|
|||
.updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime()))
|
||||
.description(salaryAcctRecordPO.getDescription())
|
||||
.approvalStatus(salaryAcctRecordPO.getApprovalStatus())
|
||||
.runStatus(salaryAcctRecordPO.getRunStatus())
|
||||
.operate(btnList)
|
||||
.build();
|
||||
}).collect(Collectors.toList());
|
||||
|
|
@ -122,7 +123,7 @@ public class SalaryAcctRecordBO {
|
|||
*/
|
||||
public static SalaryAcctRecordPO convert2PO(SalaryAcctRecordSaveParam saveParam,
|
||||
SalarySobCycleDTO salarySobCycle,
|
||||
int acctTimes, Long employeeId) {
|
||||
int acctTimes, Long employeeId, String runStatus) {
|
||||
Date now = new Date();
|
||||
return new SalaryAcctRecordPO()
|
||||
.setSalaryMonth(SalaryDateUtil.localDateToDate(saveParam.getSalaryMonth().atDay(1)))
|
||||
|
|
@ -136,6 +137,7 @@ public class SalaryAcctRecordBO {
|
|||
.setCreator(employeeId)
|
||||
.setCreateTime(now)
|
||||
.setUpdateTime(now)
|
||||
.setRunStatus(runStatus)
|
||||
.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,6 +76,9 @@ public class SalaryAcctRecordListDTO {
|
|||
@TableTitle(title = "审批状态", dataIndex = "approvalStatus", key = "approvalStatus")
|
||||
private String approvalStatus;
|
||||
|
||||
@TableTitle(title = "执行状态", dataIndex = "runStatus", key = "runStatus")
|
||||
private String runStatus;
|
||||
|
||||
@TableTitle(title = "操作", dataIndex = "operate", key = "operate")
|
||||
private List<WeaTableOperate> operate;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,37 @@
|
|||
package com.engine.salary.entity.salaryacct.param;
|
||||
|
||||
import com.engine.salary.util.valid.DataCheck;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Harryxzy
|
||||
* @ClassName SalaryAcctRecordBatchSaveParam
|
||||
* @date 2025/06/09 9:45
|
||||
* @description 薪资核算基本信息保存参数
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
//薪资核算基本信息保存参数
|
||||
public class SalaryAcctRecordBatchSaveParam {
|
||||
|
||||
//薪资所属月
|
||||
@DataCheck(require = true, message = "薪资所属月格式错误")
|
||||
private Date salaryMonth;
|
||||
|
||||
private String salaryMonthStr;
|
||||
|
||||
//薪资账套id
|
||||
private List<Long> salarySobIds;
|
||||
|
||||
//备注
|
||||
@DataCheck(max = 80, message = "备注不能超过80个字符")
|
||||
private String description;
|
||||
}
|
||||
|
|
@ -36,4 +36,6 @@ public class SalaryAcctRecordSaveParam {
|
|||
//备注
|
||||
@DataCheck(max = 80, message = "备注不能超过80个字符")
|
||||
private String description;
|
||||
|
||||
private String runStatus;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -137,6 +137,11 @@ public class SalaryAcctRecordPO {
|
|||
@Deprecated
|
||||
private List<Long> lockSalaryItemIds;
|
||||
|
||||
/**
|
||||
* 执行状态
|
||||
*/
|
||||
private String runStatus;
|
||||
|
||||
//查询条件-------------------------------
|
||||
Collection<Long> ids;
|
||||
|
||||
|
|
|
|||
|
|
@ -80,5 +80,5 @@ public interface SalaryAcctRecordMapper {
|
|||
|
||||
List<SalaryAcctRecordPO> getBackCalcRecordByIds(@Param("collection") Set<Long> salaryAcctIds);
|
||||
|
||||
void updateDate(@Param("id")Long id, @Param("updateTime")Date updateTime);
|
||||
void updateDate(@Param("id")Long id, @Param("updateTime")Date updateTime, @Param("runStatus")String runStatus);
|
||||
}
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
<result column="tenant_key" property="tenantKey"/>
|
||||
<result column="back_calc_status" property="backCalcStatus"/>
|
||||
<result column="lock_salary_item_ids" property="lockSalaryItemIds" typeHandler="com.engine.salary.handle.SalaryListTypeHandler"/>
|
||||
<result column="run_status" property="runStatus"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 表字段 -->
|
||||
|
|
@ -38,6 +39,7 @@
|
|||
, t.lock_salary_item_ids
|
||||
, t.approval_status
|
||||
, t.approval_id
|
||||
, t.run_status
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -203,6 +205,9 @@
|
|||
<if test="tenantKey != null">
|
||||
tenant_key,
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
run_status,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
|
|
@ -241,6 +246,9 @@
|
|||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
#{runStatus},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -289,6 +297,9 @@
|
|||
<if test="tenantKey != null">
|
||||
tenant_key,
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
run_status,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
||||
<if test="id != null">
|
||||
|
|
@ -327,6 +338,9 @@
|
|||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
#{runStatus},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -432,7 +446,8 @@
|
|||
|
||||
<update id="updateDate">
|
||||
UPDATE hrsa_salary_acct_record
|
||||
SET update_time=#{updateTime}
|
||||
SET update_time=#{updateTime},
|
||||
run_status=#{runStatus}
|
||||
WHERE delete_type = 0
|
||||
AND id = #{id}
|
||||
</update>
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ public interface SalaryAcctRecordService {
|
|||
|
||||
List<SalaryAcctRecordPO> listSome(SalaryAcctRecordPO po);
|
||||
|
||||
void updateDate(Long id, Date updateTime);
|
||||
void updateDate(Long id, Date updateTime, String runStatus);
|
||||
|
||||
void batSave(SalaryAcctBatParam saveParam);
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import weaver.hrm.User;
|
||||
import weaver.wechat.util.Utils;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.*;
|
||||
|
|
@ -310,7 +311,7 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
.count();
|
||||
|
||||
// 转换成po
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = SalaryAcctRecordBO.convert2PO(saveParam, salarySobCycleDTO, (int) acctTimes, (long) user.getUID());
|
||||
SalaryAcctRecordPO salaryAcctRecordPO = SalaryAcctRecordBO.convert2PO(saveParam, salarySobCycleDTO, (int) acctTimes, (long) user.getUID(), Utils.null2String(saveParam.getRunStatus()));
|
||||
// 保存薪资核算记录
|
||||
getSalaryAcctRecordMapper().insertIgnoreNull(salaryAcctRecordPO);
|
||||
// 初始化薪资核算人员
|
||||
|
|
@ -844,8 +845,8 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
}
|
||||
|
||||
@Override
|
||||
public void updateDate(Long id, Date updateTime) {
|
||||
getSalaryAcctRecordMapper().updateDate(id, updateTime);
|
||||
public void updateDate(Long id, Date updateTime, String runStatus) {
|
||||
getSalaryAcctRecordMapper().updateDate(id, updateTime, runStatus);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -927,7 +927,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true);
|
||||
|
||||
//更新薪资核算记录最后操作日期
|
||||
getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(), new Date());
|
||||
getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(), new Date(), "核算完成");
|
||||
|
||||
stopWatch.stop();
|
||||
log.info(stopWatch.prettyPrint());
|
||||
|
|
|
|||
|
|
@ -141,6 +141,16 @@ public class SalaryAcctController {
|
|||
return new ResponseResult<Long, Long>(user).run(getSalaryAcctRecordWrapper(user)::reCalculate, param.getSalaryAcctRecordId());
|
||||
}
|
||||
|
||||
//批量保存并核算
|
||||
@POST
|
||||
@Path("/batSaveAndAcct")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String batSaveAndAcct(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctRecordBatchSaveParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<SalaryAcctRecordBatchSaveParam, List<Long>>(user).run(getSalaryAcctRecordWrapper(user)::batSaveAndAcct, param);
|
||||
}
|
||||
|
||||
|
||||
//薪资核算
|
||||
@POST
|
||||
@Path("/batAccounting")
|
||||
|
|
|
|||
|
|
@ -10,10 +10,7 @@ import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO;
|
|||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctEmployeeCountDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordFormDTO;
|
||||
import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordListDTO;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctCalculateParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
|
||||
import com.engine.salary.entity.salaryacct.param.*;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctSobConfigPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
|
|
@ -424,4 +421,21 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
|||
getSalaryAcctResultWrapper(user).calculate(calculateParam);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Long> batSaveAndAcct(SalaryAcctRecordBatchSaveParam saveParam) {
|
||||
List<Long> ids = saveParam.getSalarySobIds().stream().map(salarySobId -> {
|
||||
SalaryAcctRecordSaveParam build = SalaryAcctRecordSaveParam.builder()
|
||||
.salarySobId(salarySobId)
|
||||
.salaryMonth(SalaryDateUtil.localDate2YearMonth(saveParam.getSalaryMonth()))
|
||||
.description(saveParam.getDescription())
|
||||
.runStatus("核算中")
|
||||
.build();
|
||||
return save(build);
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
ids.forEach(salaryAcctRecordId -> {
|
||||
getSalaryAcctResultWrapper(user).calculate(SalaryAcctCalculateParam.builder().salaryAcctRecordId(salaryAcctRecordId).build());
|
||||
});
|
||||
return ids;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue