diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index c03ef2a39..6e03b56ff 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -433,7 +433,13 @@ public class SIArchivesBiz { .build()); encryptUtil.decryptList(otherList, InsuranceArchivesOtherSchemePO.class); InsuranceArchivesOtherSchemePO insuranceArchivesOtherSchemePO = otherList.size() != 0 ? otherList.get(0) : null; - InsuranceArchivesOtherSchemeDTO data = InsuranceArchivesBO.convertOtherPOtoDTO(insuranceArchivesOtherSchemePO, employeeId); + String schemeName = ""; + if (insuranceArchivesOtherSchemePO.getOtherSchemeId() != null) { + SISchemeBiz siSchemeBiz = new SISchemeBiz(); + InsuranceSchemePO insuranceSchemePO = siSchemeBiz.getById(insuranceArchivesOtherSchemePO.getOtherSchemeId()); + schemeName = insuranceSchemePO != null ? insuranceSchemePO.getSchemeName() : ""; + } + InsuranceArchivesOtherSchemeDTO data = InsuranceArchivesBO.convertOtherPOtoDTO(insuranceArchivesOtherSchemePO, employeeId, schemeName); if (insuranceArchivesOtherSchemePO == null) { data.setEmployeeId(employeeId); data.setUnderTake(UndertakerEnum.SCOPE_PERSON.getValue().toString()); @@ -464,7 +470,13 @@ public class SIArchivesBiz { .build()); encryptUtil.decryptList(fundList, InsuranceArchivesFundSchemePO.class); InsuranceArchivesFundSchemePO insuranceArchivesFundSchemePO = fundList.size() != 0 ? fundList.get(0) : null; - InsuranceArchivesFundSchemeDTO data = InsuranceArchivesBO.convertFundPOtoDTO(insuranceArchivesFundSchemePO, employeeId); + String schemeName = ""; + if (insuranceArchivesFundSchemePO.getFundSchemeId() != null) { + SISchemeBiz siSchemeBiz = new SISchemeBiz(); + InsuranceSchemePO insuranceSchemePO = siSchemeBiz.getById(insuranceArchivesFundSchemePO.getFundSchemeId()); + schemeName = insuranceSchemePO != null ? insuranceSchemePO.getSchemeName() : ""; + } + InsuranceArchivesFundSchemeDTO data = InsuranceArchivesBO.convertFundPOtoDTO(insuranceArchivesFundSchemePO, employeeId, schemeName); if (insuranceArchivesFundSchemePO == null) { data.setEmployeeId(employeeId); data.setUnderTake(UndertakerEnum.SCOPE_PERSON.getValue().toString()); @@ -485,7 +497,13 @@ public class SIArchivesBiz { */ public InsuranceArchivesSocialSchemeDTO buildSocialForm(Long employeeId, Long operateId, Long paymentOrganization) { InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO = getSocialByEmployeeId(employeeId, paymentOrganization); - InsuranceArchivesSocialSchemeDTO data = InsuranceArchivesBO.convertSocialPOtoDTO(insuranceArchivesSocialSchemePO, employeeId); + String schemeName = ""; + if (insuranceArchivesSocialSchemePO.getSocialSchemeId() != null) { + SISchemeBiz siSchemeBiz = new SISchemeBiz(); + InsuranceSchemePO insuranceSchemePO = siSchemeBiz.getById(insuranceArchivesSocialSchemePO.getSocialSchemeId()); + schemeName = insuranceSchemePO != null ? insuranceSchemePO.getSchemeName() : ""; + } + InsuranceArchivesSocialSchemeDTO data = InsuranceArchivesBO.convertSocialPOtoDTO(insuranceArchivesSocialSchemePO, employeeId, schemeName); if (insuranceArchivesSocialSchemePO == null) { data.setEmployeeId(employeeId); data.setUnderTake(UndertakerEnum.SCOPE_PERSON.getValue().toString()); diff --git a/src/com/engine/salary/biz/SISchemeBiz.java b/src/com/engine/salary/biz/SISchemeBiz.java index 74dba143c..8240497a5 100644 --- a/src/com/engine/salary/biz/SISchemeBiz.java +++ b/src/com/engine/salary/biz/SISchemeBiz.java @@ -1,6 +1,7 @@ package com.engine.salary.biz; import com.api.formmode.mybatis.util.SqlProxyHandle; +import com.engine.core.impl.Service; import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.encrypt.AESEncryptUtil; import com.engine.salary.encrypt.EncryptUtil; @@ -36,7 +37,7 @@ import java.util.stream.Collectors; * @Date 2022/3/7 * @Version V1.0 **/ -public class SISchemeBiz { +public class SISchemeBiz extends Service { private SIAccountUtilMapper getSIAccountUtilMapper() { return SqlProxyHandle.getProxy(SIAccountUtilMapper.class); diff --git a/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBO.java b/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBO.java index a96b96aad..5442744ce 100644 --- a/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBO.java +++ b/src/com/engine/salary/entity/siarchives/bo/InsuranceArchivesBO.java @@ -19,12 +19,12 @@ import java.util.Objects; **/ public class InsuranceArchivesBO { - public static InsuranceArchivesSocialSchemeDTO convertSocialPOtoDTO(InsuranceArchivesSocialSchemePO po, Long employeeId) { + public static InsuranceArchivesSocialSchemeDTO convertSocialPOtoDTO(InsuranceArchivesSocialSchemePO po, Long employeeId, String schemeName) { if (Objects.isNull(po)) { return InsuranceArchivesSocialSchemeDTO.builder().build(); } return InsuranceArchivesSocialSchemeDTO.builder() - .socialName(po.getSocialSchemeId() == null ? null : String.valueOf(po.getSocialSchemeId())) + .socialName(schemeName) .socialSchemeId(po.getSocialSchemeId()) .welfareType(SalaryEnumUtil.enumMatchByValue(po.getWelfareType(), WelfareTypeEnum.values(), WelfareTypeEnum.class)) .id(po.getId()) @@ -40,7 +40,7 @@ public class InsuranceArchivesBO { } - public static InsuranceArchivesFundSchemeDTO convertFundPOtoDTO(InsuranceArchivesFundSchemePO po, Long employeeId) { + public static InsuranceArchivesFundSchemeDTO convertFundPOtoDTO(InsuranceArchivesFundSchemePO po, Long employeeId, String schemeName) { if (Objects.isNull(po)) { return InsuranceArchivesFundSchemeDTO.builder().build(); } @@ -57,10 +57,11 @@ public class InsuranceArchivesBO { .nonPayment(po.getNonPayment()) .underTake(po.getUnderTake() == null ? null : String.valueOf(po.getUnderTake())) .welfareType(SalaryEnumUtil.enumMatchByValue(po.getWelfareType(), WelfareTypeEnum.values(), WelfareTypeEnum.class)) + .fundName(schemeName) .build(); } - public static InsuranceArchivesOtherSchemeDTO convertOtherPOtoDTO(InsuranceArchivesOtherSchemePO po, Long employeeId) { + public static InsuranceArchivesOtherSchemeDTO convertOtherPOtoDTO(InsuranceArchivesOtherSchemePO po, Long employeeId, String schemeName) { if (Objects.isNull(po)) { return InsuranceArchivesOtherSchemeDTO.builder().build(); } @@ -76,6 +77,7 @@ public class InsuranceArchivesBO { .otherEndTime(po.getOtherEndTime()) .paymentOrganization(po.getPaymentOrganization()) .welfareType(SalaryEnumUtil.enumMatchByValue(po.getWelfareType(), WelfareTypeEnum.values(), WelfareTypeEnum.class)) + .otherName(schemeName) .build(); } diff --git a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesFundSchemeDTO.java b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesFundSchemeDTO.java index f85206c01..6427c5b81 100644 --- a/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesFundSchemeDTO.java +++ b/src/com/engine/salary/entity/siarchives/dto/InsuranceArchivesFundSchemeDTO.java @@ -40,7 +40,7 @@ public class InsuranceArchivesFundSchemeDTO { //公积金方案名称 - private Long fundName; + private String fundName; //公积金方案id private Long fundSchemeId; diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesDetailListParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesDetailListParam.java new file mode 100644 index 000000000..f9bc19af4 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesDetailListParam.java @@ -0,0 +1,30 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.common.BaseQueryParam; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @Author: sy + * @Description: 福利档案明细信息查询 + * @Date: 2023/9/25 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesDetailListParam extends BaseQueryParam { + + //员工id + private Long employeeId; + + //个税扣缴义务人 + private Long paymentOrganization; + + //福利执行状态 + private List runStatuses; +} diff --git a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java index 80e9c5e2e..54eacb546 100644 --- a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java +++ b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.java @@ -1,5 +1,6 @@ package com.engine.salary.mapper.siarchives; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesDetailListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; import org.apache.ibatis.annotations.Param; @@ -127,4 +128,11 @@ public interface InsuranceBaseInfoMapper { * @return */ List listEndDateIsNull(@Param("employeeIds") List employeeIds); + + /** + * 根据人员id、个税扣缴义务人、社保执行状态获取基础信息列表 + * @param + * @return + */ + List getListByEmpId(@Param("param") InsuranceArchivesDetailListParam param); } diff --git a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml index 467dbf9f2..31f9484fa 100644 --- a/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/InsuranceBaseInfoMapper.xml @@ -370,4 +370,23 @@ WHERE id = #{id} + + \ No newline at end of file diff --git a/src/com/engine/salary/service/SIArchivesService.java b/src/com/engine/salary/service/SIArchivesService.java index fb4c63752..a8c6e9601 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesDetailListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; @@ -103,4 +104,6 @@ public interface SIArchivesService { void deleteArchive(Collection longs); void handleStayDelData(long currentEmployeeId); + + List> getWelTableDetail(InsuranceArchivesDetailListParam param); } diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index 720ed4805..4a41b2a9b 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -1,5 +1,8 @@ package com.engine.salary.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.cloudstore.dev.api.util.Util_DataCache; import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; @@ -7,6 +10,11 @@ import com.engine.core.impl.Service; import com.engine.salary.biz.SIArchivesBiz; import com.engine.salary.cmd.siarchives.SIArchivesTipsCmd; import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBaseInfoBO; +import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO; +import com.engine.salary.entity.siarchives.dto.InsuranceArchivesFundSchemeDTO; +import com.engine.salary.entity.siarchives.dto.InsuranceArchivesOtherSchemeDTO; +import com.engine.salary.entity.siarchives.dto.InsuranceArchivesSocialSchemeDTO; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesDetailListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.entity.siarchives.po.*; @@ -1133,5 +1141,86 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService } } + @Override + public List> getWelTableDetail(InsuranceArchivesDetailListParam param) { + if (param.getEmployeeId() == null) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(0, "员工id必填!")); + } + List baseInfoPOList = getInsuranceBaseInfoMapper().getListByEmpId(param); + List> resultList = new ArrayList<>(); + if (baseInfoPOList.size() > 0) { + for (InsuranceArchivesBaseInfoPO base : baseInfoPOList) { + Map itemResult = new HashMap<>(); + //获取社保档案详细信息 + Map socialQueryParam = new HashMap<>(); + socialQueryParam.put("welfareTypeEnum", WelfareTypeEnum.SOCIAL_SECURITY); + socialQueryParam.put("employeeId", param.getEmployeeId()); + socialQueryParam.put("paymentOrganization", base.getPaymentOrganization()); + Map socialBaseMap = getBaseForm(socialQueryParam); -} + if (socialBaseMap.get("data") != null) { + InsuranceArchivesSocialSchemeDTO socialBaseInfo = (InsuranceArchivesSocialSchemeDTO) socialBaseMap.get("data"); + itemResult.putAll(JSON.parseObject(JSON.toJSONString(socialBaseInfo), HashMap.class)); + if (socialBaseInfo.getSocialSchemeId() != null && StringUtils.isNotBlank(socialBaseInfo.getSchemePaymentBaseString())) { +// socialQueryParam.put("schemeId", socialBaseInfo.getSocialSchemeId()); +// Map socialBaseDetailMap = getPaymentForm(socialQueryParam); +// if (socialBaseDetailMap.get("data") != null) { +// Map socialBaseNumMap = (Map) socialBaseDetailMap.get("data"); +// itemResult.putAll(socialBaseNumMap); +// } +// } + itemResult.putAll(JSONObject.parseObject(socialBaseInfo.getSchemePaymentBaseString(), new TypeReference>() { + })); + } + } + //获取公积金档案详细信息 + Map fundQueryParam = new HashMap<>(); + fundQueryParam.put("welfareTypeEnum", WelfareTypeEnum.ACCUMULATION_FUND); + fundQueryParam.put("employeeId", param.getEmployeeId()); + fundQueryParam.put("paymentOrganization", base.getPaymentOrganization()); + Map fundBaseMap = getBaseForm(fundQueryParam); + + if (fundBaseMap.get("data") != null) { + InsuranceArchivesFundSchemeDTO fundBaseInfo = (InsuranceArchivesFundSchemeDTO) fundBaseMap.get("data"); + itemResult.putAll(JSON.parseObject(JSON.toJSONString(fundBaseInfo), HashMap.class)); + if (fundBaseInfo.getFundSchemeId() != null && StringUtils.isNotBlank(fundBaseInfo.getFundPaymentBaseString())) { +// fundQueryParam.put("schemeId", fundBaseInfo.getFundSchemeId()); +// Map fundBaseDetailMap = getPaymentForm(fundQueryParam); +// if (fundBaseDetailMap.get("data") != null) { +// Map fundBaseNumMap = (Map) fundBaseDetailMap.get("data"); +// itemResult.putAll(fundBaseNumMap); +// } + itemResult.putAll(JSONObject.parseObject(fundBaseInfo.getFundPaymentBaseString(), new TypeReference>() { + })); + } + } + + //获取其他福利档案详细信息 + Map otherQueryParam = new HashMap<>(); + otherQueryParam.put("welfareTypeEnum", WelfareTypeEnum.OTHER); + otherQueryParam.put("employeeId", param.getEmployeeId()); + otherQueryParam.put("paymentOrganization", base.getPaymentOrganization()); + Map otherBaseMap = getBaseForm(otherQueryParam); + + if (otherBaseMap.get("data") != null) { + InsuranceArchivesOtherSchemeDTO otherBaseInfo = (InsuranceArchivesOtherSchemeDTO) otherBaseMap.get("data"); + itemResult.putAll(JSON.parseObject(JSON.toJSONString(otherBaseInfo), HashMap.class)); + if (otherBaseInfo.getOtherSchemeId() != null && StringUtils.isNotBlank(otherBaseInfo.getOtherPaymentBaseString())) { +// otherQueryParam.put("schemeId", otherBaseInfo.getOtherSchemeId()); +// Map otherBaseDetailMap = getPaymentForm(otherQueryParam); +// if (otherBaseDetailMap.get("data") != null) { +// Map otherBaseNumMap = (Map) otherBaseDetailMap.get("data"); +// itemResult.putAll(otherBaseNumMap); +// } + itemResult.putAll(JSONObject.parseObject(otherBaseInfo.getOtherPaymentBaseString(), new TypeReference>() { + })); + } + } + itemResult.remove("id"); + resultList.add(itemResult); + } + } + return resultList; + } + + } diff --git a/src/com/engine/salary/web/SIArchivesController.java b/src/com/engine/salary/web/SIArchivesController.java index d70763a45..04a649a71 100644 --- a/src/com/engine/salary/web/SIArchivesController.java +++ b/src/com/engine/salary/web/SIArchivesController.java @@ -2,6 +2,7 @@ package com.engine.salary.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesDetailListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesListParam; import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesBaseInfoPO; @@ -19,6 +20,7 @@ import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -131,6 +133,21 @@ public class SIArchivesController { return new ResponseResult>(user).run(getService(user)::listPage, param); } + /** + * 查询档案列表 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/getWelTableDetail") + @Produces(MediaType.APPLICATION_JSON) + public String getWelTableDetail(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody InsuranceArchivesDetailListParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>>(user).run(getService(user)::getWelTableDetail, param); + } + /** * 获取福利档案各tab总人数 *