Merge branch 'feature/批量操作' into custom/钱智
# Conflicts: # src/com/engine/salary/entity/salaryacct/po/SalaryAcctRecordPO.java # src/com/engine/salary/entity/taxdeclaration/param/TaxDeclarationBatParam.java # src/com/engine/salary/mapper/salaryacct/SalaryAcctRecordMapper.java # src/com/engine/salary/service/SIAccountService.java # src/com/engine/salary/service/SalaryAcctRecordService.java # src/com/engine/salary/service/impl/SalaryAcctRecordServiceImpl.java # src/com/engine/salary/web/SalaryAcctController.java # src/com/engine/salary/web/TaxDeclarationController.java # src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java # src/com/engine/salary/wrapper/TaxDeclarationWrapper.java
This commit is contained in:
commit
5c2c0f603f
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD (
|
||||
run_status varchar2(200) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD (
|
||||
run_status varchar2(200) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD (
|
||||
run_status varchar2(200) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) ;
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD (
|
||||
run_status varchar2(200) NULL
|
||||
)
|
||||
/
|
||||
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD COLUMN run_status varchar(200) NULL;
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD run_status varchar(200) NULL
|
||||
GO
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
ALTER TABLE hrsa_salary_acct_record ADD (
|
||||
run_status varchar2(200) NULL
|
||||
);
|
||||
/
|
||||
|
||||
|
|
@ -107,6 +107,7 @@ public class SalaryAcctRecordBO {
|
|||
.updateTime(SalaryDateUtil.getFormatLocalDateTime(salaryAcctRecordPO.getUpdateTime()))
|
||||
.description(salaryAcctRecordPO.getDescription())
|
||||
.approvalStatus(salaryAcctRecordPO.getApprovalStatus())
|
||||
.runStatus(salaryAcctRecordPO.getRunStatus())
|
||||
.operate(btnList)
|
||||
.opts(salaryAcctRecordPO.getOpts())
|
||||
.build();
|
||||
|
|
@ -124,7 +125,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)))
|
||||
|
|
@ -138,6 +139,7 @@ public class SalaryAcctRecordBO {
|
|||
.setCreator(employeeId)
|
||||
.setCreateTime(now)
|
||||
.setUpdateTime(now)
|
||||
.setRunStatus(runStatus)
|
||||
.setTenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -67,6 +67,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<String> 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,6 +151,11 @@ public class SalaryAcctRecordPO {
|
|||
|
||||
private Set<String> opts;
|
||||
|
||||
/**
|
||||
* 执行状态
|
||||
*/
|
||||
private String runStatus;
|
||||
|
||||
//查询条件-------------------------------
|
||||
Collection<Long> ids;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import lombok.Builder;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ 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>
|
||||
|
||||
<resultMap id="BaseResultMap2" type="com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO">
|
||||
|
|
@ -56,6 +57,7 @@
|
|||
, t.lock_salary_item_ids
|
||||
, t.approval_status
|
||||
, t.approval_id
|
||||
, t.run_status
|
||||
</sql>
|
||||
|
||||
<!-- 查询全部 -->
|
||||
|
|
@ -226,6 +228,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">
|
||||
|
|
@ -264,6 +269,9 @@
|
|||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
#{runStatus},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -312,6 +320,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">
|
||||
|
|
@ -350,6 +361,9 @@
|
|||
<if test="tenantKey != null">
|
||||
#{tenantKey},
|
||||
</if>
|
||||
<if test="runStatus != null">
|
||||
#{runStatus},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
|
@ -455,7 +469,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>
|
||||
|
|
|
|||
|
|
@ -218,7 +218,7 @@ public interface SalaryAcctRecordService {
|
|||
|
||||
List<SalaryAcctRecordPO> listSome(SalaryAcctRecordPO po);
|
||||
|
||||
void updateDate(Long id, Date updateTime);
|
||||
void updateDate(Long id, Date updateTime, String runStatus);
|
||||
|
||||
/**
|
||||
* 根据薪资核算记录id查询关联的个税扣缴义务人
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import com.engine.salary.entity.salaryBill.po.SalarySendPO;
|
|||
import com.engine.salary.entity.salaryacct.bo.SalaryAcctRecordBO;
|
||||
import com.engine.salary.entity.salaryacct.param.AbnormalEmployeeListQueryParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctBatParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam;
|
||||
import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
||||
|
|
@ -50,6 +51,8 @@ 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 weaver.wechat.util.Utils;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.*;
|
||||
|
|
@ -331,8 +334,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()));
|
||||
// 检查是否能够新建核算
|
||||
SalaryAcctTaxAgentPO build = SalaryAcctTaxAgentPO.builder()
|
||||
.incomeCategory(salarySobPO.getIncomeCategory())
|
||||
|
|
@ -1004,10 +1006,11 @@ 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
|
||||
public void batSave(SalaryAcctBatParam saveParam) {
|
||||
|
||||
|
|
|
|||
|
|
@ -965,7 +965,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());
|
||||
|
|
|
|||
|
|
@ -142,6 +142,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")
|
||||
|
|
|
|||
|
|
@ -5,6 +5,13 @@ import com.engine.salary.entity.taxdeclaration.dto.*;
|
|||
import com.engine.salary.entity.taxdeclaration.param.*;
|
||||
import com.engine.salary.entity.taxdeclaration.po.TaxDeclareStatusPO;
|
||||
import com.engine.salary.enums.salarysob.IncomeCategoryEnum;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationFormDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationInfoDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.dto.TaxDeclarationListDTO;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationBatParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationDetailListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationListQueryParam;
|
||||
import com.engine.salary.entity.taxdeclaration.param.TaxDeclarationSaveParam;
|
||||
import com.engine.salary.service.TaxDeclarationExcelService;
|
||||
import com.engine.salary.service.TaxDeclarationService;
|
||||
import com.engine.salary.service.impl.TaxDeclarationExcelServiceImpl;
|
||||
|
|
@ -546,6 +553,16 @@ public class TaxDeclarationController {
|
|||
* @return
|
||||
*/
|
||||
@POST
|
||||
@Path("/batSave")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String batSave(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationBatParam param) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
param.setSalaryMonth(SalaryDateUtil.String2YearMonth(param.getSalaryMonthStr()));
|
||||
return new ResponseResult<TaxDeclarationBatParam, Long>(user).run(getTaxDeclarationWrapper(user)::batSave, param);
|
||||
}
|
||||
|
||||
//个税申报表详情列表
|
||||
@POST
|
||||
@Path("/detail/list")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String listTaxDeclarationValue(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody TaxDeclarationValueListQueryParam queryParam) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ 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;
|
||||
|
|
@ -408,4 +409,22 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord
|
|||
getSalaryAcctResultWrapper(user).calculate(calculateParam);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Long> batSaveAndAcct(SalaryAcctRecordBatchSaveParam saveParam) {
|
||||
List<Long> ids = saveParam.getSalarySobIds().stream().filter(NumberUtils::isCreatable)
|
||||
.map(Long::valueOf).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