薪资回算功能,工资单部分
This commit is contained in:
parent
3ff3fd8e44
commit
c0d916c286
|
|
@ -16,4 +16,10 @@ public class SalaryTemplateSalaryItemSetGroupConstant {
|
|||
* 无分类组id
|
||||
*/
|
||||
public static final String NO_TYPE_GROUP_ID = String.valueOf(222222222222222222L);
|
||||
|
||||
/**
|
||||
* 已发补发
|
||||
*/
|
||||
public static final String REPLENISH_GROUP_ID = String.valueOf(333333333333333333L);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ public class SalaryAcctResultReportBO {
|
|||
.taxAgentId(e.getTaxAgentId())
|
||||
.salaryItemId(e.getSalaryItemId())
|
||||
.resultValue(e.getResultValue())
|
||||
.originResultValue(e.getOriginResultValue())
|
||||
.creator(e.getCreator())
|
||||
.createTime(e.getCreateTime())
|
||||
.updateTime(e.getUpdateTime())
|
||||
|
|
|
|||
|
|
@ -45,6 +45,10 @@ public class SalaryAcctResultReportPO {
|
|||
* 计算后的值
|
||||
*/
|
||||
private String resultValue;
|
||||
/**
|
||||
* 回算前的值
|
||||
*/
|
||||
private String originResultValue;
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
|
|||
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
|
||||
import com.engine.salary.util.JsonUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
||||
import java.util.Date;
|
||||
|
|
@ -59,7 +60,7 @@ public class SalaryTemplateBO {
|
|||
.build();
|
||||
}
|
||||
|
||||
public static List<SalaryTemplateSalaryItemSetListDTO> convertSalarySobItemAggregateToSalaryItemSet(SalarySobItemAggregateDTO salarySobItemAggregateDTO, Long currentEmployeeId) {
|
||||
public static List<SalaryTemplateSalaryItemSetListDTO> convertSalarySobItemAggregateToSalaryItemSet(SalarySobItemAggregateDTO salarySobItemAggregateDTO, Long currentEmployeeId, boolean isReplenish) {
|
||||
List<SalaryTemplateSalaryItemSetListDTO> groups = new LinkedList<>();
|
||||
if (salarySobItemAggregateDTO!=null) {
|
||||
// 1.员工信息
|
||||
|
|
@ -125,6 +126,31 @@ public class SalaryTemplateBO {
|
|||
.items(items)
|
||||
.build());
|
||||
}
|
||||
|
||||
if (isReplenish) {
|
||||
// 4.已发补发
|
||||
if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(salarySobItemAggregateDTO.getBackCalcItems())) {
|
||||
List<SalaryTemplateSalaryItemListDTO> items = new LinkedList<>();
|
||||
salarySobItemAggregateDTO.getBackCalcItems().forEach(e -> {
|
||||
items.add(
|
||||
SalaryTemplateSalaryItemListDTO.builder()
|
||||
.id(String.valueOf(e.getSalaryItemId()))
|
||||
// .salaryItemId(String.valueOf(e.getSalaryItemId()))
|
||||
.name(e.getName())
|
||||
.sortedIndex(e.getSortedIndex())
|
||||
.build()
|
||||
);
|
||||
});
|
||||
groups.add(
|
||||
SalaryTemplateSalaryItemSetListDTO.builder()
|
||||
.groupId(SalaryTemplateSalaryItemSetGroupConstant.REPLENISH_GROUP_ID)
|
||||
.groupName(SalaryI18nUtil.getI18nLabel(139698, "已发补发"))
|
||||
.sortedIndex(groups.size() + 1)
|
||||
.items(items)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return groups;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import lombok.Builder;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
|
|
@ -113,4 +111,17 @@ public class SalarySendListDTO {
|
|||
// 最后发送时间
|
||||
@SalaryTableColumn(text = "最后发送时间", width = "15%", column = "lastSendTime")
|
||||
private Date lastSendTime;
|
||||
|
||||
|
||||
/**
|
||||
* 发放状态。0:未冻结、1:已冻结
|
||||
*/
|
||||
private Integer sendStatus;
|
||||
|
||||
/**
|
||||
* 核算类型。0:正常,1:补发
|
||||
*/
|
||||
private Integer salaryAcctType;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import lombok.Builder;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -22,5 +23,5 @@ public class SalaryTemplateBaseFormDTO {
|
|||
private Map<String, Object> salaryTemplateBaseSet;
|
||||
|
||||
// 补发规则设置下拉列表
|
||||
private Map<String, String> replenishRuleSetOption;
|
||||
private List<Map<String, String>> replenishRuleSetOption;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,10 @@ public class SalaryTemplateListDTO {
|
|||
@SalaryTableColumn(text = "工资单模板名称", width = "20%", column = "name")
|
||||
private String name;
|
||||
|
||||
//补发工资单模板名称
|
||||
@SalaryTableColumn(text = "补发工资单模板名称", width = "20%", column = "replenishName")
|
||||
private String replenishName;
|
||||
|
||||
|
||||
//所属薪资账套
|
||||
@SalaryTableColumn(text = "所属薪资账套", width = "20%", column = "salarySob")
|
||||
|
|
|
|||
|
|
@ -149,6 +149,9 @@
|
|||
<if test="resultValue != null">
|
||||
result_value,
|
||||
</if>
|
||||
<if test="originResultValue != null">
|
||||
origin_result_value,
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null">
|
||||
salary_acct_emp_id,
|
||||
</if>
|
||||
|
|
@ -205,6 +208,9 @@
|
|||
<if test="resultValue != null">
|
||||
#{resultValue},
|
||||
</if>
|
||||
<if test="originResultValue != null">
|
||||
#{originResultValue},
|
||||
</if>
|
||||
<if test="salaryAcctEmpId != null">
|
||||
#{salaryAcctEmpId},
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
</sql>
|
||||
<sql id="salarySendColumn">
|
||||
t1.id,
|
||||
t1.send_status AS sendStatus,
|
||||
t1.salary_acct_type AS salaryAcctType,
|
||||
t2.salary_month AS salaryYearMonth,
|
||||
t3.name AS salarySob,
|
||||
t3.id AS salarySobId,
|
||||
|
|
@ -83,7 +85,9 @@
|
|||
salary_sob_id,
|
||||
send_num,
|
||||
send_total,
|
||||
last_send_time
|
||||
last_send_time,
|
||||
send_status,
|
||||
salary_acct_type
|
||||
FROM hrsa_salary_send
|
||||
WHERE delete_type = 0
|
||||
AND id = #{id}
|
||||
|
|
@ -140,7 +144,7 @@
|
|||
<update id="batchHandleSalaryAcctTypeHistory">
|
||||
update hrsa_salary_send
|
||||
set salary_acct_type = 0
|
||||
where send_status is NULL
|
||||
where salary_acct_type is NULL
|
||||
</update>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,9 @@
|
|||
<result column="salary_item_null_status" property="salaryItemNullStatus"/>
|
||||
<result column="salary_item_zero_status" property="salaryItemZeroStatus"/>
|
||||
<result column="salary_item_setting" property="salaryItemSetting"/>
|
||||
<result column="replenish_name" property="replenishName"/>
|
||||
<result column="replenish_rule" property="replenishRule"/>
|
||||
<result column="replenish_salary_item_setting" property="replenishSalaryItemSetting"/>
|
||||
<result column="create_time" property="createTime"/>
|
||||
<result column="update_time" property="updateTime"/>
|
||||
<result column="creator" property="creator"/>
|
||||
|
|
@ -43,6 +46,9 @@
|
|||
, t.salary_item_null_status
|
||||
, t.salary_item_zero_status
|
||||
, t.salary_item_setting
|
||||
, replenish_name
|
||||
, replenish_rule
|
||||
, replenish_item_setting
|
||||
, t.create_time
|
||||
, t.update_time
|
||||
, t.creator
|
||||
|
|
@ -277,6 +283,15 @@
|
|||
<if test="salaryItemSetting != null and salaryItemSetting != ''">
|
||||
AND salary_item_setting = #{salaryItemSetting}
|
||||
</if>
|
||||
<if test=" replenishName != null and replenishName != ''">
|
||||
AND replenish_name = #{replenishName}
|
||||
</if>
|
||||
<if test="replenishRule != null and replenishRule != ''">
|
||||
AND replenish_rule = #{replenishRule}
|
||||
</if>
|
||||
<if test="replenishSalaryItemSetting != null and replenishSalaryItemSetting != ''">
|
||||
AND replenish_salary_item_setting = #{replenishSalaryItemSetting}
|
||||
</if>
|
||||
<if test="createTime != null and createTime != ''">
|
||||
AND create_time = #{createTime}
|
||||
</if>
|
||||
|
|
@ -352,6 +367,15 @@
|
|||
<if test="salaryItemSetting != null">
|
||||
salary_item_setting=#{salaryItemSetting},
|
||||
</if>
|
||||
<if test="replenishName != null">
|
||||
replenish_name=#{replenishName},
|
||||
</if>
|
||||
<if test="replenishRule != null">
|
||||
replenish_rule=#{replenishRule},
|
||||
</if>
|
||||
<if test="replenishSalaryItemSetting != null">
|
||||
replenish_salary_item_setting=#{replenishSalaryItemSetting},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time=#{createTime},
|
||||
</if>
|
||||
|
|
@ -489,6 +513,15 @@
|
|||
<if test="salaryItemSetting != null">
|
||||
#{salaryItemSetting},
|
||||
</if>
|
||||
<if test="replenishName != null">
|
||||
#{replenishName},
|
||||
</if>
|
||||
<if test="replenishRule != null">
|
||||
#{replenishRule},
|
||||
</if>
|
||||
<if test="replenishSalaryItemSetting != null">
|
||||
#{replenishSalaryItemSetting},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
</if>
|
||||
|
|
@ -561,6 +594,15 @@
|
|||
<if test="salaryItemSetting != null">
|
||||
salary_item_setting,
|
||||
</if>
|
||||
<if test="replenishName != null">
|
||||
replenish_name,
|
||||
</if>
|
||||
<if test="replenishRule != null">
|
||||
replenish_rule,
|
||||
</if>
|
||||
<if test="replenishSalaryItemSetting != null">
|
||||
replenish_salary_item_setting,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
|
|
@ -623,6 +665,15 @@
|
|||
<if test="salaryItemSetting != null">
|
||||
#{salaryItemSetting},
|
||||
</if>
|
||||
<if test="replenishName != null">
|
||||
#{replenishName},
|
||||
</if>
|
||||
<if test="replenishRule != null">
|
||||
#{replenishRule},
|
||||
</if>
|
||||
<if test="replenishSalaryItemSetting != null">
|
||||
#{replenishSalaryItemSetting},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -181,4 +181,13 @@ public interface SalaryAcctResultService {
|
|||
* @date 2022/11/24 20:26
|
||||
*/
|
||||
void reCalc(Long id);
|
||||
|
||||
/**
|
||||
* 根据薪资核算记录的id、个税扣缴义务人查询薪资核算结果
|
||||
*
|
||||
* @param salaryAcctRecordIds 薪资核算记录的id
|
||||
* @param salaryItemIds 薪资项目id
|
||||
* @return
|
||||
*/
|
||||
List<SalaryAcctResultPO> listBySalaryAcctRecordIdsAndSalaryItemIds(Collection<Long> salaryAcctRecordIds, Collection<Long> salaryItemIds);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ public interface SalarySendService {
|
|||
* @param salaryTemplatePO
|
||||
* @return
|
||||
*/
|
||||
List<SalaryTemplateSalaryItemListDTO> getSalaryItemsSetting(SalaryTemplatePO salaryTemplatePO);
|
||||
List<SalaryTemplateSalaryItemListDTO> getSalaryItemsSetting(SalaryTemplatePO salaryTemplatePO, boolean isReplenish);
|
||||
|
||||
/**
|
||||
* 构建详情列表
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ public interface SalaryTemplateService {
|
|||
* @param salarySobId
|
||||
* @return
|
||||
*/
|
||||
List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId);
|
||||
List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId, boolean isReplenish);
|
||||
|
||||
/**
|
||||
* 获取默认工资单模板
|
||||
|
|
|
|||
|
|
@ -525,12 +525,14 @@ public class SalaryAcctRecordServiceImpl extends Service implements SalaryAcctRe
|
|||
if (CollectionUtils.isEmpty(salaryAcctResultPOS)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(99691, "尚未核算,请先核算后再归档"));
|
||||
}
|
||||
|
||||
// 生成工资单
|
||||
getSalarySendService(user).generateSalaryBill(salaryAcctRecordId);
|
||||
|
||||
// 更新薪资核算记录的状态
|
||||
salaryAcctRecordPO.setStatus(SalaryAcctRecordStatusEnum.ARCHIVED.getValue());
|
||||
salaryAcctRecordPO.setUpdateTime(new Date());
|
||||
getSalaryAcctRecordMapper().updateIgnoreNull(salaryAcctRecordPO);
|
||||
// 生成工资单
|
||||
getSalarySendService(user).generateSalaryBill(salaryAcctRecordId);
|
||||
|
||||
// 记录日志
|
||||
// String targetName = getLogTargetNameById(salaryAcctRecordId);
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
boolean isBackCalc = Objects.equals(salaryAcctRecordPO.getBackCalcStatus(), 1);
|
||||
// 查询薪资核算所用的薪资账套的员工信息字段
|
||||
List<SalarySobEmpFieldPO> salarySobEmpFieldPOS = getSalarySobEmpFieldService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
// 查询薪资核算所用薪资账套的薪资项目 TODO ?是否包含回算薪资项目 ? --不包含
|
||||
// 查询薪资核算所用薪资账套的薪资项目
|
||||
List<SalarySobItemPO> salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId());
|
||||
Set<Long> salaryItemIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getSalaryItemId);
|
||||
// 是否是回算
|
||||
|
|
@ -352,7 +352,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
salaryItemIds.addAll(salarySobBackItemPOList.stream().map(SalarySobBackItemPO::getSalaryItemId).collect(Collectors.toList()));
|
||||
}
|
||||
List<SalaryItemPO> salaryItemPOS = getSalaryItemService(user).listByIds(salaryItemIds);
|
||||
// 查询薪资核算结果 TODO: ?是否包含薪资回算项目结果? --包含
|
||||
// 查询薪资核算结果
|
||||
Set<Long> salaryAcctEmployeeIds = SalaryEntityUtil.properties(salaryAcctEmployeePOS, SalaryAcctEmployeePO::getId);
|
||||
List<SalaryAcctResultPO> salaryAcctResultPOS = listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds);
|
||||
// 查询人员信息
|
||||
|
|
@ -374,7 +374,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
}
|
||||
// 查询公式详情
|
||||
Set<Long> formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId);
|
||||
// 获取回算公式 TODO: ?是回算项目?
|
||||
// 获取回算公式
|
||||
if (isBackCalc) {
|
||||
formulaIds.addAll(salarySobBackItemPOList.stream().map(SalarySobBackItemPO :: getFormulaId ).collect(Collectors.toList()));
|
||||
}
|
||||
|
|
@ -853,6 +853,15 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
batchUpdateOriginResultValue(salaryAcctResultPOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryAcctResultPO> listBySalaryAcctRecordIdsAndSalaryItemIds(Collection<Long> salaryAcctRecordIds, Collection<Long> salaryItemIds) {
|
||||
if (CollectionUtils.isEmpty(salaryAcctRecordIds) || CollectionUtils.isEmpty(salaryItemIds) || Objects.equals( ((List)salaryItemIds).get(0), 0 ) ) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return SalaryAcctResultPOEncrypt.decryptList(getSalaryAcctResultMapper().listSome(SalaryAcctResultPO.builder().salaryAcctRecordIds(salaryAcctRecordIds).salaryItemIds(salaryItemIds).build()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void batchUpdateOriginResultValue(List<SalaryAcctResultPO> salaryAcctResultValues) {
|
||||
int batchSize = 1000;
|
||||
|
|
|
|||
|
|
@ -24,11 +24,14 @@ 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.salaryformula.dto.SalaryFormulaEmployeeDTO;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
|
||||
import com.engine.salary.enums.salaryaccounting.SalaryAcctRecordStatusEnum;
|
||||
import com.engine.salary.enums.salaryarchive.SalaryArchiveFieldTypeEnum;
|
||||
import com.engine.salary.enums.salarybill.SalarySendStatusEnum;
|
||||
import com.engine.salary.enums.salarybill.SalaryTemplateReplenishRuleEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper;
|
||||
import com.engine.salary.mapper.salaryacct.SalaryAcctRecordMapper;
|
||||
|
|
@ -120,6 +123,22 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalarySobService getSalarySobService(User user) {
|
||||
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryItemService getSalaryItemService(User user) {
|
||||
return ServiceUtil.getService(SalaryItemServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctEmployeeService getSalaryAcctEmployeeService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctEmployeeServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctResultService getSalaryAcctResultService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctResultServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
// @RpcReference
|
||||
// private FileDownloadClient fileDownloadClient;
|
||||
|
|
@ -189,23 +208,69 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
}
|
||||
|
||||
|
||||
SalarySendPO sendPO = new SalarySendPO();
|
||||
sendPO.setDeleteType(0);
|
||||
sendPO.setSalaryAccountingId(salaryAccountingId);
|
||||
List<SalarySendPO> salarySends = mapper.listSome(sendPO);
|
||||
if (CollectionUtils.isNotEmpty(salarySends)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100499, "工资单已生成过,不可再重复生成"));
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployees = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(Collections.singletonList(salaryAccountingId));
|
||||
// 根据人员id去重
|
||||
salaryAcctEmployees = salaryAcctEmployees.stream()
|
||||
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId))), ArrayList::new));
|
||||
|
||||
// 1.回算:如果是回算,todo 要等原始核算发完或者上一个回算记录发完才行,目前最多只有一个回算记录
|
||||
if (acctRecords.get(0).getBackCalcStatus().equals(NumberUtils.INTEGER_ONE)) {
|
||||
SalarySendPO sendPO = new SalarySendPO();
|
||||
sendPO.setDeleteType(0);
|
||||
sendPO.setSalaryAccountingId(salaryAccountingId);
|
||||
List<SalarySendPO> salarySends = mapper.listSome(sendPO);
|
||||
if (CollectionUtils.isEmpty(salarySends)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 139700, "还没有正常核算,不能进行回算"));
|
||||
}
|
||||
// todo 一般只有一个未冻结,同一个原始核算id,后面如果有多级回算,就会换成不同核算id
|
||||
SalarySendPO salarySend = salarySends.stream().filter(s -> s.getSendStatus().equals(NumberUtils.INTEGER_ZERO)).findFirst().orElse(null);
|
||||
|
||||
// 根据工资单补发模板规则过滤人员,已发补发的合计项目不等于0的进行过滤
|
||||
SalarySobPO salarySob = getSalarySobService(user).getById(acctRecords.get(0).getSalarySobId());
|
||||
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user)
|
||||
.getDefaultTemplates(Arrays.asList(acctRecords.get(0).getSalarySobId(), salarySob == null ? 0L : salarySob.getId()));
|
||||
// 如果有默认模板,且规则不是全部
|
||||
if (CollectionUtils.isNotEmpty(salaryTemplates) && StringUtils.isEmpty(salaryTemplates.get(0).getReplenishRule())) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel( 140649, "请维护补发工资单模板信息"));
|
||||
}
|
||||
Long backCalcItemId =
|
||||
CollectionUtils.isNotEmpty(salaryTemplates) && !SalaryTemplateReplenishRuleEnum.ALL.getValue().equals(salaryTemplates.get(0).getReplenishRule()) ? Long
|
||||
.parseLong(salaryTemplates.get(0).getReplenishRule()) : 0L;
|
||||
SalaryItemPO salaryItem = getSalaryItemService(user).getById(backCalcItemId);
|
||||
if (salaryItem != null && salaryItem.getDataType().equals(SalaryArchiveFieldTypeEnum.NUMBER.getValue())) {
|
||||
// 目前是单个薪资项目
|
||||
List<SalaryAcctResultPO> salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singleton(salaryAccountingId), Collections.singleton(backCalcItemId));
|
||||
Set<Long> salaryAcctEmployeeIds = salaryAcctResultValues.stream()
|
||||
.filter(salaryAcctResultPO -> SalaryEntityUtil.empty2Zero(salaryAcctResultPO.getResultValue()).compareTo(BigDecimal.ZERO)
|
||||
!= 0)
|
||||
.map(SalaryAcctResultPO::getSalaryAcctEmpId)
|
||||
.collect(Collectors.toSet());
|
||||
salaryAcctEmployees = salaryAcctEmployees.stream().filter(se -> salaryAcctEmployeeIds.contains(se.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
// 将未冻结的给冻结掉
|
||||
if (salarySend != null) {
|
||||
salarySend.setSendStatus(NumberUtils.INTEGER_ONE);
|
||||
this.mapper.updateById(salarySend);
|
||||
}
|
||||
// 2.正常核算
|
||||
} else {
|
||||
SalarySendPO sendPO = new SalarySendPO();
|
||||
sendPO.setDeleteType(0);
|
||||
sendPO.setSalaryAccountingId(salaryAccountingId);
|
||||
List<SalarySendPO> salarySends = mapper.listSome(sendPO);
|
||||
if (CollectionUtils.isNotEmpty(salarySends)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100499, "工资单已生成过,不可再重复生成"));
|
||||
}
|
||||
}
|
||||
|
||||
SalaryAcctEmployeePO employeePO = new SalaryAcctEmployeePO();
|
||||
employeePO.setDeleteType(0);
|
||||
employeePO.setSalaryAcctRecordId(salaryAccountingId);
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployees = getSalaryAcctEmployeeMapper().listSome(employeePO);
|
||||
|
||||
Long salarySendId = IdGenerator.generate();
|
||||
|
||||
SalaryAcctRecordPO salaryAcctRecord = acctRecords.get(0);
|
||||
// 工资单模板类型:0,正常核算,1是回算,todo 后续可能还有别的算,需要改这里
|
||||
Integer templateType = salaryAcctRecord.getBackCalcStatus();
|
||||
|
||||
// 构建工资单发放数据
|
||||
List<SalarySendInfoPO> salarySendInfos = salaryAcctEmployees.stream().map(m ->
|
||||
SalarySendInfoPO.builder()
|
||||
.id(IdGenerator.generate())
|
||||
|
|
@ -216,6 +281,7 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
.salaryAcctRecordId(m.getSalaryAcctRecordId())
|
||||
.sendStatus(SalarySendStatusEnum.UNSEND.getValue())
|
||||
.salaryTemplate("")
|
||||
.salaryAcctType(templateType)
|
||||
.creator((long) user.getUID())
|
||||
.createTime(new Date())
|
||||
.updateTime(new Date())
|
||||
|
|
@ -229,6 +295,8 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
.salarySobId(salaryAcctRecord.getSalarySobId())
|
||||
.sendNum(0)
|
||||
.sendTotal(salarySendInfos.size())
|
||||
.sendStatus(NumberUtils.INTEGER_ZERO) // 未冻结
|
||||
.salaryAcctType(templateType)
|
||||
.lastSendTime(new Date())
|
||||
.creator((long) user.getUID())
|
||||
.createTime(new Date())
|
||||
|
|
@ -336,7 +404,14 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
// 获取默认模板
|
||||
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId()));
|
||||
if (CollectionUtils.isNotEmpty(salaryTemplates)) {
|
||||
template = salaryTemplates.get(0).getName();
|
||||
// 是否是回算
|
||||
SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salarySend.getSalaryAccountingId());
|
||||
boolean isReplenish = salaryAcctRecord != null && Objects.equals(salaryAcctRecord.getBackCalcStatus(), (NumberUtils.INTEGER_ONE));
|
||||
if(isReplenish){
|
||||
template = salaryTemplates.get(0).getReplenishName();
|
||||
}else{
|
||||
template = salaryTemplates.get(0).getName();
|
||||
}
|
||||
}
|
||||
|
||||
return SalarySendBaseInfoDTO.builder()
|
||||
|
|
@ -663,19 +738,28 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SalaryTemplateSalaryItemListDTO> getSalaryItemsSetting(SalaryTemplatePO salaryTemplate) {
|
||||
public List<SalaryTemplateSalaryItemListDTO> getSalaryItemsSetting(SalaryTemplatePO salaryTemplate, boolean isReplenish) {
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = new ArrayList<>();
|
||||
|
||||
if (salaryTemplate == null) {
|
||||
return salaryItems;
|
||||
}
|
||||
if (StringUtils.isNotEmpty(salaryTemplate.getSalaryItemSetting())) {
|
||||
// 正常模板
|
||||
if (!isReplenish && StringUtils.isNotEmpty(salaryTemplate.getSalaryItemSetting())) {
|
||||
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getSalaryItemSetting(),
|
||||
SalaryTemplateSalaryItemSetListDTO.class);
|
||||
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> {
|
||||
salaryItems.addAll(e.getItems());
|
||||
});
|
||||
}
|
||||
// 补发模板
|
||||
if (isReplenish && StringUtils.isNotEmpty(salaryTemplate.getReplenishSalaryItemSetting())) {
|
||||
List<SalaryTemplateSalaryItemSetListDTO> salaryTemplateShowSetData = JsonUtil.parseList(salaryTemplate.getReplenishSalaryItemSetting(),
|
||||
SalaryTemplateSalaryItemSetListDTO.class);
|
||||
salaryTemplateShowSetData.stream().filter(f -> !f.getGroupId().equals(SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID)).forEach(e -> {
|
||||
salaryItems.addAll(e.getItems());
|
||||
});
|
||||
}
|
||||
return salaryItems;
|
||||
}
|
||||
|
||||
|
|
@ -689,6 +773,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
Collection<Long> ids = param.getIds();
|
||||
|
||||
SalarySendPO salarySend = mapper.getById(salarySendId);
|
||||
// 已经冻结不能操作
|
||||
if (Objects.equals(salarySend.getSendStatus() , NumberUtils.INTEGER_ONE)) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "工资单已冻结"));
|
||||
}
|
||||
if (salarySend == null) {
|
||||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在"));
|
||||
}
|
||||
|
|
@ -863,7 +951,9 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
|
||||
private List<Map<String, Object>> getEnableSendList(SalarySendPO salarySend, Collection<Long> ids, SalaryTemplatePO salaryTemplate) {
|
||||
// 1.根据模板获取薪资项目设置
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalaryItemsSetting(salaryTemplate);
|
||||
SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salarySend.getSalaryAccountingId());
|
||||
boolean isReplenish = salaryAcctRecord != null && Objects.equals(salaryAcctRecord.getBackCalcStatus(), (NumberUtils.INTEGER_ONE));
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalaryItemsSetting(salaryTemplate,isReplenish);
|
||||
SalarySendDetailQueryParam queryParam = new SalarySendDetailQueryParam();
|
||||
queryParam.setSalarySendId(salarySend.getId());
|
||||
// 空就是所有
|
||||
|
|
@ -1095,8 +1185,10 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
public XSSFWorkbook exportDetailList(SalarySendPO salarySend, SalarySendDetailQueryParam queryParam) {
|
||||
|
||||
// 1.根据模板获取薪资项目设置
|
||||
SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salarySend.getSalaryAccountingId());
|
||||
boolean isReplenish = salaryAcctRecord != null && Objects.equals(salaryAcctRecord.getBackCalcStatus(), (NumberUtils.INTEGER_ONE));
|
||||
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId()));
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalaryItemsSetting(CollectionUtils.isNotEmpty(salaryTemplates) ? salaryTemplates.get(0) : null);
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalaryItemsSetting(CollectionUtils.isNotEmpty(salaryTemplates) ? salaryTemplates.get(0) : null , isReplenish);
|
||||
|
||||
// 2.获取基本数据
|
||||
//排序配置
|
||||
|
|
|
|||
|
|
@ -264,9 +264,9 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId) {
|
||||
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId, boolean isReplenish) {
|
||||
SalarySobItemAggregateDTO salarySobItemAggregate = getSalarySobItemService(user).getAggregateBySalarySobId(salarySobId);
|
||||
return SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()));
|
||||
return SalaryTemplateBO.convertSalarySobItemAggregateToSalaryItemSet(salarySobItemAggregate, new Long(user.getUID()), isReplenish);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
|||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
|
|
@ -209,9 +208,9 @@ public class SalaryBillController {
|
|||
@GET
|
||||
@Path("/template/getReplenishRuleSetOptions")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public String getReplenishRuleSetOptions(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestParam Long salarySobId) {
|
||||
public String getReplenishRuleSetOptions(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam("salarySobId") Long salarySobId) {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return new ResponseResult<Long,String>(user).run(getSalaryTemplateWrapper(user)::getReplenishRuleSetOptions, salarySobId);
|
||||
return new ResponseResult<Long,List<Map<String, String>>>(user).run(getSalaryTemplateWrapper(user)::getReplenishRuleSetOptions, salarySobId);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -17,20 +17,15 @@ import com.engine.salary.entity.salaryBill.dto.*;
|
|||
import com.engine.salary.entity.salaryBill.param.*;
|
||||
import com.engine.salary.entity.salaryBill.po.SalarySendPO;
|
||||
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
|
||||
import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobPO;
|
||||
import com.engine.salary.entity.taxagent.dto.TaxAgentListDTO;
|
||||
import com.engine.salary.enums.UserStatusEnum;
|
||||
import com.engine.salary.enums.salarybill.SalarySendStatusEnum;
|
||||
import com.engine.salary.exception.SalaryRunTimeException;
|
||||
import com.engine.salary.mapper.salarybill.SalarySendMapper;
|
||||
import com.engine.salary.service.SalarySendService;
|
||||
import com.engine.salary.service.SalarySobService;
|
||||
import com.engine.salary.service.SalaryTemplateService;
|
||||
import com.engine.salary.service.TaxAgentService;
|
||||
import com.engine.salary.service.impl.SalarySendServiceImpl;
|
||||
import com.engine.salary.service.impl.SalarySobServiceImpl;
|
||||
import com.engine.salary.service.impl.SalaryTemplateServiceImpl;
|
||||
import com.engine.salary.service.impl.TaxAgentServiceImpl;
|
||||
import com.engine.salary.service.*;
|
||||
import com.engine.salary.service.impl.*;
|
||||
import com.engine.salary.util.SalaryDateUtil;
|
||||
import com.engine.salary.util.SalaryEntityUtil;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
|
|
@ -71,6 +66,11 @@ public class SalarySendWrapper extends Service {
|
|||
return ServiceUtil.getService(SalarySobServiceImpl.class, user);
|
||||
}
|
||||
|
||||
private SalaryAcctRecordService getSalaryAcctRecordService(User user) {
|
||||
return ServiceUtil.getService(SalaryAcctRecordServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 工资单发放列表
|
||||
*
|
||||
|
|
@ -119,6 +119,7 @@ public class SalarySendWrapper extends Service {
|
|||
// 工资单模板
|
||||
Optional<SalaryTemplatePO> optional = salaryTemplates.stream().filter(s -> s.getSalarySobId().equals(e.getSalarySobId())).findFirst();
|
||||
if (optional.isPresent()) {
|
||||
// todo 目前就一个回算,那么没有冻结且是回算,就展示补发名称
|
||||
e.setTemplate(optional.get().getName());
|
||||
e.setTemplateId(optional.get().getId());
|
||||
}
|
||||
|
|
@ -164,6 +165,7 @@ public class SalarySendWrapper extends Service {
|
|||
idColumn.setDisplay(WeaBoolAttr.FALSE);
|
||||
list.add(new WeaTableColumn("10%", "薪资所属月", "salaryYearMonth"));
|
||||
list.add(new WeaTableColumn("35%", "薪资账套", "salarySob"));
|
||||
list.add(new WeaTableColumn("25%", "次数", "acctTimes"));
|
||||
list.add(new WeaTableColumn("25%", "工资单模板", "template"));
|
||||
list.add(new WeaTableColumn("15%", "已发放", "sendSituation"));
|
||||
list.add(new WeaTableColumn("15%", "最后发送时间", "lastSendTime"));
|
||||
|
|
@ -478,9 +480,17 @@ public class SalarySendWrapper extends Service {
|
|||
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100510, "工资发放不存在"));
|
||||
}
|
||||
|
||||
SalaryAcctRecordPO salaryAcctRecord = getSalaryAcctRecordService(user).getById(salarySend.getSalaryAccountingId());
|
||||
boolean isReplenish = salaryAcctRecord != null && Objects.equals(salaryAcctRecord.getBackCalcStatus(), (NumberUtils.INTEGER_ONE));
|
||||
|
||||
|
||||
// 1.根据模板获取薪资项目设置
|
||||
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId()));
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalarySendService(user).getSalaryItemsSetting(CollectionUtils.isNotEmpty(salaryTemplates) ? salaryTemplates.get(0) : null);
|
||||
SalarySobPO salarySob = getSalarySobService(user).getById(salarySend.getSalarySobId());
|
||||
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user)
|
||||
.getDefaultTemplates(Arrays.asList(salarySend.getSalarySobId(), salarySob == null ? 0L : salarySob.getId()));
|
||||
|
||||
List<SalaryTemplateSalaryItemListDTO> salaryItems = getSalarySendService(user)
|
||||
.getSalaryItemsSetting(CollectionUtils.isNotEmpty(salaryTemplates) ? salaryTemplates.get(0) : null, isReplenish);
|
||||
|
||||
// 2.获取基本数据
|
||||
PageInfo<SalarySendDetailListDTO> pageInfo = getSalarySendService(user).salarySendInfoDetailListPage(queryParam);
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ public class SalaryTemplateWrapper extends Service {
|
|||
|
||||
String fields = " t.id" +
|
||||
" , t.name" +
|
||||
" , t.replenish_name as replenishName" +
|
||||
" , s.name as salarySob" +
|
||||
" , t.use_type as useType" +
|
||||
" , t.description";
|
||||
|
|
@ -137,7 +138,7 @@ public class SalaryTemplateWrapper extends Service {
|
|||
|
||||
SalaryTemplateBaseSetDTO salaryTemplateBaseSetDTO = new SalaryTemplateBaseSetDTO();
|
||||
|
||||
Map<String, String> replenishRuleSetOptionList = Collections.emptyMap();
|
||||
List<Map<String, String>> replenishRuleSetOptionList = Collections.emptyList();
|
||||
if (id != null) {
|
||||
SalaryTemplatePO po = getSalaryTemplateService(user).getById(id);
|
||||
if (po == null) {
|
||||
|
|
@ -248,7 +249,11 @@ public class SalaryTemplateWrapper extends Service {
|
|||
* @return
|
||||
*/
|
||||
public List<SalaryTemplateSalaryItemSetListDTO> getSalaryItemSet(Long salarySobId) {
|
||||
return getSalaryTemplateService(user).getSalaryItemSet(salarySobId);
|
||||
return getSalaryTemplateService(user).getSalaryItemSet(salarySobId, false);
|
||||
}
|
||||
|
||||
public List<SalaryTemplateSalaryItemSetListDTO> getReplenishSalaryItemSet(Long salarySobId) {
|
||||
return getSalaryTemplateService(user).getSalaryItemSet(salarySobId, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -317,13 +322,13 @@ public class SalaryTemplateWrapper extends Service {
|
|||
* @param salarySobId
|
||||
* @return
|
||||
*/
|
||||
public Map<String, String> getReplenishRuleSetOptions(Long salarySobId) {
|
||||
public List<Map<String, String>> getReplenishRuleSetOptions(Long salarySobId) {
|
||||
if (salarySobId == null) {
|
||||
return Collections.emptyMap();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
SalarySobPO salarySob = getSalarySobService(user).getById(salarySobId);
|
||||
if (salarySob == null) {
|
||||
return Collections.emptyMap();
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 查询薪资账套的回算薪资项目
|
||||
List<SalarySobBackItemPO> salarySobBackItems = getSalarySobBackItemService(user).listBySalarySobId(salarySobId);
|
||||
|
|
@ -341,10 +346,11 @@ public class SalaryTemplateWrapper extends Service {
|
|||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(result!= null && result.size()>0){
|
||||
return result.get(0);
|
||||
}
|
||||
return Collections.emptyMap();
|
||||
return result;
|
||||
// if(result!= null && result.size()>0){
|
||||
// return result.get(0);
|
||||
// }
|
||||
// return Collections.emptyMap();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -354,29 +360,30 @@ public class SalaryTemplateWrapper extends Service {
|
|||
* @return
|
||||
*/
|
||||
public SalaryTemplateReplenishFormDTO getReplenishForm(ReplenishFormQueryParam replenishFormQueryParam) {
|
||||
// Long id = replenishFormQueryParam.getId();
|
||||
// // 补发薪资项目设置
|
||||
// List<SalaryTemplateSalaryItemSetListDTO> replenishSalaryItemSetting;
|
||||
// if (id != null) {
|
||||
// SalaryTemplatePO po = salaryTemplateService.getById(id);
|
||||
// if (po == null) {
|
||||
// throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100533, "工资单模板不存在")+"[id:%s]", id));
|
||||
// }
|
||||
// org.springframework.beans.BeanUtils.copyProperties(po, salaryTemplateReplenishSetDTO);
|
||||
// if (StringUtils.isNotEmpty(po.getReplenishSalaryItemSetting())) {
|
||||
// replenishSalaryItemSetting = JsonUtil.parseList(po.getReplenishSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||
// } else {
|
||||
// replenishSalaryItemSetting = this.getSalaryItemSet(salarySobId, true);
|
||||
// }
|
||||
// } else {
|
||||
// replenishSalaryItemSetting = this.getSalaryItemSet(salarySobId, true);
|
||||
// }
|
||||
//
|
||||
// return SalaryTemplateReplenishFormDTO.builder()
|
||||
// .id(id)
|
||||
// .replenishSalaryTemplateSalaryItemSet(replenishSalaryItemSetting)
|
||||
// .build();
|
||||
return null;
|
||||
Long id = replenishFormQueryParam.getId();
|
||||
SalaryTemplateReplenishFormDTO salaryTemplateReplenishSetDTO = new SalaryTemplateReplenishFormDTO();
|
||||
|
||||
// 补发薪资项目设置
|
||||
List<SalaryTemplateSalaryItemSetListDTO> replenishSalaryItemSetting;
|
||||
if (id != null) {
|
||||
SalaryTemplatePO po = getSalaryTemplateService(user).getById(id);
|
||||
if (po == null) {
|
||||
throw new SalaryRunTimeException(String.format(SalaryI18nUtil.getI18nLabel(100533, "工资单模板不存在")+"[id:%s]", id));
|
||||
}
|
||||
BeanUtils.copyProperties(po, salaryTemplateReplenishSetDTO);
|
||||
if (StringUtils.isNotEmpty(po.getReplenishSalaryItemSetting())) {
|
||||
replenishSalaryItemSetting = JsonUtil.fromJson(po.getReplenishSalaryItemSetting(), List.class);
|
||||
} else {
|
||||
replenishSalaryItemSetting = getReplenishSalaryItemSet(replenishFormQueryParam.getSalarySobId());
|
||||
}
|
||||
} else {
|
||||
replenishSalaryItemSetting = getReplenishSalaryItemSet(replenishFormQueryParam.getSalarySobId());
|
||||
}
|
||||
|
||||
return SalaryTemplateReplenishFormDTO.builder()
|
||||
.id(id)
|
||||
.replenishSalaryTemplateSalaryItemSet(replenishSalaryItemSetting)
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue