diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java index ad98f4ad7..58888a156 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryAcctRecordBO.java @@ -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); } diff --git a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java index edc4d99dd..d60471eba 100644 --- a/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java +++ b/src/com/engine/salary/entity/salaryacct/dto/SalaryAcctRecordListDTO.java @@ -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 operate; } diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java new file mode 100644 index 000000000..7f97ccd71 --- /dev/null +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordBatchSaveParam.java @@ -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 salarySobIds; + + //备注 + @DataCheck(max = 80, message = "备注不能超过80个字符") + private String description; +} diff --git a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java index 62890c5da..de134d6af 100644 --- a/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/SalaryAcctRecordSaveParam.java @@ -36,4 +36,6 @@ public class SalaryAcctRecordSaveParam { //备注 @DataCheck(max = 80, message = "备注不能超过80个字符") private String description; + + private String runStatus; } diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java index c2b8fd33c..cf816bf5d 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java @@ -137,6 +137,11 @@ public class SalaryAcctRecordPO { @Deprecated private List lockSalaryItemIds; + /** + * 执行状态 + */ + private String runStatus; + //查询条件------------------------------- Collection ids; diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java index 83110f1e6..cc59fd546 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java @@ -80,5 +80,5 @@ public interface SalaryAcctRecordMapper { List getBackCalcRecordByIds(@Param("collection") Set 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); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml index 9da99248d..0147aa432 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.xml @@ -16,6 +16,7 @@ + @@ -38,6 +39,7 @@ , t.lock_salary_item_ids , t.approval_status , t.approval_id + , t.run_status @@ -203,6 +205,9 @@ tenant_key, + + run_status, + @@ -241,6 +246,9 @@ #{tenantKey}, + + #{runStatus}, + @@ -289,6 +297,9 @@ tenant_key, + + run_status, + @@ -327,6 +338,9 @@ #{tenantKey}, + + #{runStatus}, + @@ -432,7 +446,8 @@ UPDATE hrsa_salary_acct_record - SET update_time=#{updateTime} + SET update_time=#{updateTime}, + run_status=#{runStatus} WHERE delete_type = 0 AND id = #{id} diff --git a/src/com/engine/salary/service/SalaryAcctRecordService.java b/src/com/engine/salary/service/SalaryAcctRecordService.java index 603e2a164..342b5a842 100644 --- a/src/com/engine/salary/service/SalaryAcctRecordService.java +++ b/src/com/engine/salary/service/SalaryAcctRecordService.java @@ -210,7 +210,7 @@ public interface SalaryAcctRecordService { List listSome(SalaryAcctRecordPO po); - void updateDate(Long id, Date updateTime); + void updateDate(Long id, Date updateTime, String runStatus); void batSave(SalaryAcctBatParam saveParam); diff --git a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java index 2f79fd449..66bb678c5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java @@ -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 diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 77a091911..6e3a358c3 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -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()); diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 57483fd40..d173d1a0a 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -141,6 +141,16 @@ public class SalaryAcctController { return new ResponseResult(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>(user).run(getSalaryAcctRecordWrapper(user)::batSaveAndAcct, param); + } + + //薪资核算 @POST @Path("/batAccounting") diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 481cf0e1f..ce5bd7f9f 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -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 batSaveAndAcct(SalaryAcctRecordBatchSaveParam saveParam) { + List 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; + } }