自定义工资项目展示名

This commit is contained in:
Harryxzy 2023-07-20 10:42:16 +08:00
parent 07b36db9e1
commit b95663ada8
6 changed files with 64 additions and 2 deletions

View File

@ -104,6 +104,8 @@ public class SalaryTemplateSaveParam {
*/
private String feedbackUrl;
List<SalaryBillItemNameSaveParam> salaryBillItemNameSetting;
public static void checkParam(SalaryTemplateSaveParam saveParam) {
if (saveParam.getSalarySobId() == null) {
throw new SalaryRunTimeException("薪资账套表的主键id必传;");

View File

@ -86,4 +86,10 @@ public interface SalaryBillItemNameMapper {
* @param salaryBillType
*/
void deleteByItemIdsAndTemplateId(@Param("salaryItemIds") List<Long> salaryItemIds, @Param("salaryTemplateId") Long salaryTemplateId, @Param("salaryBillType") Integer salaryBillType);
/**
* 根据idList删除
* @param longs
*/
void deleteByIds(@Param("collection") List<Long> longs);
}

View File

@ -321,5 +321,15 @@
</foreach>
</delete>
<delete id="deleteByIds">
UPDATE hrsa_salary_bill_item_name
SET delete_type=1
WHERE delete_type = 0
AND id IN
<foreach collection="collection" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -85,4 +85,9 @@ public interface SalaryBillItemNameService {
*/
void batchInsert(List<SalaryBillItemNamePO> needInsertList);
/**
* 根据id批量删除
* @param needDeleteIds
*/
void deleteByIds(List<Long> needDeleteIds);
}

View File

@ -140,20 +140,31 @@ public class SalaryBillItemNameServiceImpl extends Service implements SalaryBill
@Override
public void batchUpdate(List<SalaryBillItemNamePO> needUpdateList) {
if(CollectionUtils.isEmpty(needUpdateList))
if(CollectionUtils.isEmpty(needUpdateList)){
return;
}
List<List<SalaryBillItemNamePO>> partition = Lists.partition(needUpdateList, 500);
partition.forEach(getSalaryBillItemNameMapper()::batchUpdate);
}
@Override
public void batchInsert(List<SalaryBillItemNamePO> needInsertList) {
if(CollectionUtils.isEmpty(needInsertList))
if(CollectionUtils.isEmpty(needInsertList)){
return;
}
List<List<SalaryBillItemNamePO>> partition = Lists.partition(needInsertList, 500);
partition.forEach(getSalaryBillItemNameMapper()::batchInsert);
}
@Override
public void deleteByIds(List<Long> needDeleteIds) {
if(CollectionUtils.isEmpty(needDeleteIds)){
return;
}
List<List<Long>> partition = Lists.partition(needDeleteIds, 1000);
partition.forEach(getSalaryBillItemNameMapper()::deleteByIds);
}
public void batchDeleteByItemIdsAndTemplateId(List<Long> salaryItemIds, Long salaryTemplateId, Integer salaryBillType) {
if(CollectionUtils.isEmpty(salaryItemIds) || Objects.isNull(salaryTemplateId) || Objects.isNull(salaryBillType))
return;

View File

@ -7,11 +7,13 @@ import com.engine.salary.biz.SalarySobBiz;
import com.engine.salary.biz.SalaryTemplateBiz;
import com.engine.salary.entity.salaryBill.bo.SalaryTemplateBO;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateListDTO;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemListDTO;
import com.engine.salary.entity.salaryBill.dto.SalaryTemplateSalaryItemSetListDTO;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateCopyParam;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateDefaultUseParam;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateSaveParam;
import com.engine.salary.entity.salaryBill.po.SalaryBillItemNamePO;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemDTO;
@ -59,6 +61,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user);
}
private SalaryBillItemNameService getSalaryBillItemNameService(User user) {
return ServiceUtil.getService(SalaryBillItemNameServiceImpl.class, user);
}
@Override
public SalaryTemplatePO getById(Long id) {
return mapper.getById(id);
@ -138,6 +144,10 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
salaryTemplate.setSalaryItemZeroStatus(saveParam.getSalaryItemZeroStatus()?1:0);
salaryTemplate.setAutoSendCycleType(saveParam.getAutoSendCycleType());
mapper.insert(salaryTemplate);
// 存储工资单项目自定义名称信息
saveParam.getSalaryBillItemNameSetting().stream().forEach(set -> set.setSalaryTemplateId(salaryTemplate.getId()));
getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting());
// 记录日志
// SalaryLoggerUtil.recordAddSingleLog(salaryTemplateLoggerTemplate,
// salaryTemplate.getId(),
@ -204,6 +214,24 @@ public class SalaryTemplateServiceImpl extends Service implements SalaryTemplate
salaryTemplateNew.setSalaryItemSetting(saveParam.getSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getSalaryItemSetting()) : "");
salaryTemplateNew.setReplenishSalaryItemSetting(saveParam.getReplenishSalaryItemSetting() != null ? JSONUtil.toJsonStr(saveParam.getReplenishSalaryItemSetting()) : "");
mapper.updateById(salaryTemplateNew);
// 保存自定义工资单项目名称信息
getSalaryBillItemNameService(user).saveItemShowName(saveParam.getSalaryBillItemNameSetting());
// 模板中没有的薪资项目需要同步删除显示名称表
List<SalaryBillItemNamePO> billItemNameList = getSalaryBillItemNameService(user).ListByTemplateAndType(SalaryBillItemNamePO.builder().salaryTemplateId(saveParam.getId()).build());
Map<Integer, List<SalaryBillItemNamePO>> billItemNameMap = SalaryEntityUtil.group2Map(billItemNameList, SalaryBillItemNamePO::getSalaryBillType);
List<SalaryTemplateSalaryItemListDTO> saveItemList = saveParam.getSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList());
Set<String> saveItemIdList = SalaryEntityUtil.properties(saveItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId);
// 正常工资单模板
List<Long> needDeleteIds = billItemNameMap.getOrDefault(NumberUtils.INTEGER_ZERO, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString()))
.map(SalaryBillItemNamePO::getId).collect(Collectors.toList());
// 补发工资单模板
List<SalaryTemplateSalaryItemListDTO> replenishItemList = saveParam.getReplenishSalaryItemSetting().stream().map(SalaryTemplateSalaryItemSetListDTO::getItems).flatMap(Collection::stream).collect(Collectors.toList());
Set<String> saveReplenishItemIdList = SalaryEntityUtil.properties(replenishItemList, SalaryTemplateSalaryItemListDTO::getSalaryItemId);
needDeleteIds.addAll(billItemNameMap.getOrDefault(NumberUtils.INTEGER_ONE, Collections.emptyList()).stream().filter(salaryBillItemNamepo -> !saveReplenishItemIdList.contains(salaryBillItemNamepo.getSalaryItemId().toString()))
.map(SalaryBillItemNamePO::getId).collect(Collectors.toList()));
getSalaryBillItemNameService(user).deleteByIds(needDeleteIds);
// 记录日志
// SalaryLoggerUtil.recordUpdateSingleLog(salaryTemplateLoggerTemplate,
// salaryTemplate.getId(),