薪酬系统-福利台账,调差方式3时的福利项

This commit is contained in:
sy 2022-12-28 17:01:15 +08:00
parent 2f4d580793
commit 84aeb5059f
5 changed files with 296 additions and 1 deletions

View File

@ -1014,7 +1014,20 @@ public class SIAccountBiz extends Service {
.paymentOrganization(param.getPaymentOrganization())
.projects(param.getProjects())
.billMonth(param.getBillMonth())
.supplementType(param.getSupplementType())
.build();
if ("2".equals(param.getSupplementType())) {
supplementAccountBaseParam.setSocialPaymentBaseString(param.getSocialPaymentBaseString());
supplementAccountBaseParam.setFundPaymentBaseString(param.getFundPaymentBaseString());
supplementAccountBaseParam.setOtherPaymentBaseString(param.getOtherPaymentBaseString());
} else if("3".equals(param.getSupplementType())) {
supplementAccountBaseParam.setSocialPaymentPerString(param.getSocialPaymentPerString());
supplementAccountBaseParam.setSocialPaymentComString(param.getSocialPaymentComString());
supplementAccountBaseParam.setFundPaymentPerString(param.getFundPaymentPerString());
supplementAccountBaseParam.setFundPaymentComString(param.getFundPaymentComString());
supplementAccountBaseParam.setOtherPaymentPerString(param.getOtherPaymentPerString());
supplementAccountBaseParam.setOtherPaymentComString(param.getOtherPaymentComString());
}
baseList.add(supplementAccountBaseParam);
});
});

View File

@ -8,4 +8,9 @@ import java.util.Map;
public interface SIRepairService {
List<Map<String, String>> getSupplementPaymentForm(SupplementAccountBaseParam param);
/**
* 获取待编辑的补缴费用相关福利项
*/
List<Map<String, String>> getPaymentGroup(SupplementAccountBaseParam param);
}

View File

@ -6,12 +6,15 @@ import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.siaccount.param.SaveSupplementaryAccountParam;
import com.engine.salary.entity.siaccount.param.SupplementAccountBaseParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesAccountPO;
import com.engine.salary.entity.siarchives.po.*;
import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.enums.siaccount.ProjectTypeEnum;
import com.engine.salary.enums.sicategory.DataTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper;
import com.engine.salary.mapper.siarchives.FundSchemeMapper;
import com.engine.salary.mapper.siarchives.OtherSchemeMapper;
import com.engine.salary.mapper.siarchives.SocialSchemeMapper;
import com.engine.salary.mapper.sicategory.ICategoryMapper;
import com.engine.salary.service.SIRepairService;
import com.engine.salary.util.SalaryEntityUtil;
@ -35,6 +38,18 @@ public class SIRepairServiceImpl extends Service implements SIRepairService {
return MapperProxyFactory.getProxy(InsuranceAccountDetailMapper.class);
}
private SocialSchemeMapper getSocialSchemeMapper() {
return MapperProxyFactory.getProxy(SocialSchemeMapper.class);
}
private FundSchemeMapper getFundSchemeMapper() {
return MapperProxyFactory.getProxy(FundSchemeMapper.class);
}
private OtherSchemeMapper getOtherSchemeMapper() {
return MapperProxyFactory.getProxy(OtherSchemeMapper.class);
}
/**
* 获取指定月份的福利缴纳基数作为补缴基数
* @param param
@ -124,5 +139,246 @@ public class SIRepairServiceImpl extends Service implements SIRepairService {
}
/**
* 获取待编辑的补缴费用相关福利项
*/
@Override
public List<Map<String, String>> getPaymentGroup(SupplementAccountBaseParam param) {
Long paymentOrganization = param.getPaymentOrganization();
List<Integer> projects = param.getProjects();
Long employeeId = param.getEmployeeId();
InsuranceArchivesSocialSchemePO socialSchemePO = new InsuranceArchivesSocialSchemePO();
InsuranceArchivesFundSchemePO fundSchemePO = new InsuranceArchivesFundSchemePO();
InsuranceArchivesOtherSchemePO otherSchemePO = new InsuranceArchivesOtherSchemePO();
List<InsuranceArchivesSocialSchemePO> socialSchemePOList = getSocialSchemeMapper().getSocialByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.employeeId(employeeId)
.paymentOrganization(paymentOrganization)
.build());
if (socialSchemePOList.size() > 0) {
encryptUtil.decryptList(socialSchemePOList, InsuranceArchivesSocialSchemePO.class);
socialSchemePO = socialSchemePOList.get(0);
}
List<InsuranceArchivesFundSchemePO> fundSchemePOList = getFundSchemeMapper().getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.employeeId(employeeId)
.paymentOrganization(paymentOrganization)
.build());
if (fundSchemePOList.size() > 0) {
encryptUtil.decryptList(fundSchemePOList, InsuranceArchivesFundSchemePO.class);
fundSchemePO = fundSchemePOList.get(0);
}
List<InsuranceArchivesOtherSchemePO> otherSchemePOList = getOtherSchemeMapper().getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder()
.employeeId(employeeId)
.paymentOrganization(paymentOrganization)
.build());
if (otherSchemePOList.size() > 0) {
encryptUtil.decryptList(otherSchemePOList, InsuranceArchivesOtherSchemePO.class);
otherSchemePO = otherSchemePOList.get(0);
}
List<ICategoryPO> allCategoryList = MapperProxyFactory.getProxy(ICategoryMapper.class).listAll();
Map<Long, String> categoryNameMap = SalaryEntityUtil.convert2Map(allCategoryList, ICategoryPO::getId, ICategoryPO::getInsuranceName);
List<Map<String, String>> resultList = new ArrayList<>();
if (projects.contains(ProjectTypeEnum.ALL.getValue())) {
if (socialSchemePO != null) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
if (fundSchemePO != null) {
Map<String, String> fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap<String, String>().getClass());
fundMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
if (otherSchemePO != null) {
Map<String, String> otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap<String, String>().getClass());
otherMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
return resultList;
}
if (projects.contains(ProjectTypeEnum.SOCIAL.getValue())) {
if (socialSchemePO != null) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue()))
&& (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue()))
&& (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()) || "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
socialMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue()))
&& (projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue()))
&& (!projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9001".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
socialMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
if ((!projects.contains(ProjectTypeEnum.SOCIAL.getValue()))
&& (!projects.contains(ProjectTypeEnum.ENDOWMENT_INSURANCE.getValue()))
&& (projects.contains(ProjectTypeEnum.MEDICAL_INSURANCE.getValue()))) {
if (socialSchemePO != null) {
Map<String, String> socialMap = JSON.parseObject(socialSchemePO.getSocialPaymentBaseString(), new HashMap<String, String>().getClass());
socialMap = socialMap.entrySet().stream().filter(e -> "9002".equals(e.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
socialMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
if (projects.contains(ProjectTypeEnum.FUND.getValue())) {
if (fundSchemePO != null) {
Map<String, String> fundMap = JSON.parseObject(fundSchemePO.getFundPaymentBaseString(), new HashMap<String, String>().getClass());
fundMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
if (projects.contains(ProjectTypeEnum.OTHER.getValue())) {
if (otherSchemePO != null) {
Map<String, String> otherMap = JSON.parseObject(otherSchemePO.getOtherPaymentBaseString(), new HashMap<String, String>().getClass());
otherMap.forEach((k, v) -> {
Map<String, String> perMap = new HashMap<>();
Map<String, String> comMap = new HashMap<>();
perMap.put("insuranceId", k);
perMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
perMap.put("paymentScope", "个人");
comMap.put("insuranceId", k);
comMap.put("insuranceName", categoryNameMap.get(Long.valueOf(k)));
comMap.put("paymentScope", "公司");
resultList.add(perMap);
resultList.add(comMap);
});
}
}
return resultList;
}
}

View File

@ -890,4 +890,16 @@ public class SIAccountController {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SupplementAccountBaseParam, List<Map<String, String>>>(user).run(getSIAccountWrapper(user)::getSupplementPaymentForm, param);
}
/**
* 获取待编辑的补缴费用相关福利项
*/
@POST
@Path("/detail/getPaymentGroup")
@Produces(MediaType.APPLICATION_JSON)
public String getPaymentGroup(@Context HttpServletRequest request, @Context HttpServletResponse response,
@RequestBody SupplementAccountBaseParam param) {
User user = HrmUserVarify.getUser(request, response);
return new ResponseResult<SupplementAccountBaseParam, List<Map<String, String>>>(user).run(getSIAccountWrapper(user)::getPaymentGroup, param);
}
}

View File

@ -146,4 +146,13 @@ public class SIAccountWrapper extends Service {
public List<Map<String, String>> getSupplementPaymentForm(SupplementAccountBaseParam param) {
return getSIRepairService(user).getSupplementPaymentForm(param);
}
/**
* 获取待编辑的补缴费用相关福利项
* @param param
* @return
*/
public List<Map<String, String>> getPaymentGroup(SupplementAccountBaseParam param) {
return getSIRepairService(user).getPaymentGroup(param);
}
}