From cc9a650b9297956c75d577f23886999b427e78f7 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 16 Mar 2022 18:26:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98=EF=BC=8C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E7=A4=BE=E4=BF=9D=E6=A1=A3?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 70 +++++++++++++++++++ .../SIArchivesTipsCmd.java | 2 +- .../param/InsuranceArchivesSaveParam.java | 26 +++++++ .../InsuranceArchivesSocialSaveParam.java | 58 +++++++++++++++ .../mapper/siarchives/SocialSchemeMapper.java | 15 ++++ .../mapper/siarchives/SocialSchemeMapper.xml | 2 + .../salary/service/SIArchivesService.java | 4 ++ .../impl/AttendQuoteFieldServiceImpl.java | 2 +- .../service/impl/SIArchivesServiceImpl.java | 15 +++- .../salary/web/SIArchivesController.java | 27 ++++++- 10 files changed, 216 insertions(+), 5 deletions(-) rename src/com/engine/salary/cmd/{archives => siarchives}/SIArchivesTipsCmd.java (94%) create mode 100644 src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSaveParam.java create mode 100644 src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSocialSaveParam.java diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 9be07db97..43279bb1c 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -6,12 +6,15 @@ import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.api.browser.bean.SearchConditionGroup; import com.api.browser.bean.SearchConditionItem; import com.api.browser.bean.SearchConditionOption; +import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBO; 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.InsuranceArchivesSaveParam; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesSocialSaveParam; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; @@ -19,9 +22,11 @@ import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO; import com.engine.salary.entity.sischeme.po.InsuranceSchemePO; import com.engine.salary.entity.taxrate.TaxAgent; +import com.engine.salary.enums.sicategory.DeleteTypeEnum; import com.engine.salary.enums.sicategory.IsPaymentEnum; import com.engine.salary.enums.sicategory.UndertakerEnum; import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.mapper.TaxAgentMapper; import com.engine.salary.mapper.siarchives.FundSchemeMapper; import com.engine.salary.mapper.siarchives.OtherSchemeMapper; @@ -391,4 +396,69 @@ public class SIArchivesBiz { } + /** + * 新增 + * @param param + * @param employeeId + */ + public void insert(InsuranceArchivesSaveParam param, long employeeId) { + SalaryAssert.notNull(param.getWelfareType(), "福利类型为空"); + switch (param.getWelfareType()) { + case SOCIAL_SECURITY: + socialSave(param, employeeId); + break; + case ACCUMULATION_FUND: + //fundSave(param, employeeId); + break; + case OTHER: + //otherSave(param, employeeId); + break; + default: + throw new SalaryRunTimeException("福利类型不存在"); + } + + } + + /** + * + * @param paramReq + * @param employeeId + */ + public void socialSave(InsuranceArchivesSaveParam paramReq, long employeeId) { + + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class); + + InsuranceArchivesSocialSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesSocialSaveParam.class); + SalaryAssert.notNull("员工id为空", param, param.getEmployeeId()); + //删除社保数据 + socialSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId())); + + InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO = + InsuranceArchivesSocialSchemePO.builder() + //.id(IdGenerator.generate()) + .welfareType(paramReq.getWelfareType().getValue()) + .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) + .socialPaymentBaseString(paramReq.getPaymentForm()) + .socialSchemeId(param.getSocialName()) + .createTime(new Date()) + .socialEndTime(param.getSocialEndTime()) + .socialStartTime(param.getSocialStartTime()) + .creator(employeeId) + .nonPayment(param.getNonPayment()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .employeeId(param.getEmployeeId()) + .updateTime(new Date()) + .underTake(param.getUnderTake().getValue()) + .socialAccount(param.getSchemeAccount()) + .paymentOrganization(param.getPaymentOrganization()) + .build(); + socialSchemeMapper.batchSave(Collections.singletonList(insuranceArchivesSocialSchemePO)); + + sqlSession.commit(); + }finally { + sqlSession.close(); + } + } } diff --git a/src/com/engine/salary/cmd/archives/SIArchivesTipsCmd.java b/src/com/engine/salary/cmd/siarchives/SIArchivesTipsCmd.java similarity index 94% rename from src/com/engine/salary/cmd/archives/SIArchivesTipsCmd.java rename to src/com/engine/salary/cmd/siarchives/SIArchivesTipsCmd.java index 297e2919b..4998f1788 100644 --- a/src/com/engine/salary/cmd/archives/SIArchivesTipsCmd.java +++ b/src/com/engine/salary/cmd/siarchives/SIArchivesTipsCmd.java @@ -1,4 +1,4 @@ -package com.engine.salary.cmd.archives; +package com.engine.salary.cmd.siarchives; import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.entity.BizLogContext; diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSaveParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSaveParam.java new file mode 100644 index 000000000..af0b98320 --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSaveParam.java @@ -0,0 +1,26 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO 社保档案保存 + * @Date 2022/3/16 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesSaveParam { + + private WelfareTypeEnum welfareType; + + private String baseForm; + + private String paymentForm; +} diff --git a/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSocialSaveParam.java b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSocialSaveParam.java new file mode 100644 index 000000000..e011b900f --- /dev/null +++ b/src/com/engine/salary/entity/siarchives/param/InsuranceArchivesSocialSaveParam.java @@ -0,0 +1,58 @@ +package com.engine.salary.entity.siarchives.param; + +import com.engine.salary.enums.sicategory.UndertakerEnum; +import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author weaver_cl + * @Description: TODO 社保档案保存 + * @Date 2022/3/16 + * @Version V1.0 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class InsuranceArchivesSocialSaveParam { + + //主键id + private Long id; + + //员工id + private Long employeeId; + + //暂不缴纳 + private Integer nonPayment; + + //福利类型 + private WelfareTypeEnum welfareType; + + //社保起始缴纳月 + private String socialStartTime; + + //社保最后缴纳月 + private String socialEndTime; + + //社保方案id + private Long socialSchemeId; + + //社保方案id + //todo 前端需要调整 + private Long socialName; + + //社保账号 + private String schemeAccount; + + //社保缴纳组织 + private Long paymentOrganization; + + //社保个人实际承担方 + private UndertakerEnum underTake; + + //基数jsonString + private String paymentForm; +} diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index 78bc23dd5..091e70752 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -3,6 +3,9 @@ package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import org.apache.ibatis.annotations.Param; +import java.util.Collection; +import java.util.List; + /** * @Author weaver_cl * @Description: TODO @@ -17,4 +20,16 @@ public interface SocialSchemeMapper { * @return */ InsuranceArchivesSocialSchemePO getSocialByEmployeeId(@Param("employeeId")Long employeeId); + + /** + * 批量删除 + * @param singletonList + */ + void batchDeleteByEmployeeIds(@Param("employeeIds") Collection singletonList); + + /** + * 批量保存 + * @param singletonList + */ + void batchSave(List singletonList); } diff --git a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index c700d7045..12ae46464 100644 --- a/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -53,4 +53,6 @@ + + \ 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 eb8b31232..66d3a8f3e 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -1,5 +1,7 @@ package com.engine.salary.service; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; + import java.util.Map; /** @@ -15,4 +17,6 @@ public interface SIArchivesService { Map getBaseForm(Map params); Map getPaymentForm(Map params); + + String insert(InsuranceArchivesSaveParam param); } diff --git a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java index bad5ff43a..6c8789e4a 100644 --- a/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java +++ b/src/com/engine/salary/service/impl/AttendQuoteFieldServiceImpl.java @@ -224,7 +224,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF // 本地已存在则更新【交集】 List updateCodes = localFieldCodes.stream().filter(item -> attendFieldCodes.contains(item)).collect(Collectors.toList()); // 本地比attend多,则删除【差集(local - attend)】 - List deleteCodes = localFieldCodes.stream().filter(item -> !attendFieldCodes.contains(item)).collect(Collectors.toList()); + Collection deleteCodes = localFieldCodes.stream().filter(item -> !attendFieldCodes.contains(item)).collect(Collectors.toList()); // attend比本地多,则新增【差集(attend - local)】 List saveCodes = attendFieldCodes.stream().filter(item -> !localFieldCodes.contains(item)).collect(Collectors.toList()); String hourI18n = SalaryI18nUtil.getI18nLabel(100743, "小时"); diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index f81d4cf47..a88aa754f 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -2,10 +2,13 @@ package com.engine.salary.service.impl; import com.engine.core.impl.Service; import com.engine.salary.biz.SIArchivesBiz; -import com.engine.salary.cmd.archives.SIArchivesTipsCmd; -import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO; +import com.engine.salary.cmd.siarchives.SIArchivesTipsCmd; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.enums.sicategory.WelfareTypeEnum; +import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.service.SIArchivesService; +import com.engine.salary.util.SalaryAssert; +import com.engine.salary.util.SalaryI18nUtil; import weaver.general.Util; import java.util.HashMap; @@ -44,4 +47,12 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService apidatas = siArchivesBiz.getPaymentForm(user,welfareTypeEnum, employeeId,(long) user.getUID(),schemeId); return apidatas; } + + + @Override + public String insert(InsuranceArchivesSaveParam param) { + SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + siArchivesBiz.insert(param,(long) user.getUID()); + return null; + } } diff --git a/src/com/engine/salary/web/SIArchivesController.java b/src/com/engine/salary/web/SIArchivesController.java index 65e6c3c9f..49f04d758 100644 --- a/src/com/engine/salary/web/SIArchivesController.java +++ b/src/com/engine/salary/web/SIArchivesController.java @@ -2,10 +2,12 @@ package com.engine.salary.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.service.SIArchivesService; import com.engine.salary.service.impl.SIArchivesServiceImpl; import com.engine.salary.util.ResponseResult; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -38,6 +40,8 @@ public class SIArchivesController { } + + /** * 查询档案基本信息表单 * @param request @@ -55,7 +59,13 @@ public class SIArchivesController { return ResponseResult.run(getService(user)::getBaseForm, map); } - + /** + * 查询档案缴纳基数表单 + * @param request + * @param response + * @param welfareTypeEnum + * @return + */ @GET @Path("/getPaymentForm") @Produces(MediaType.APPLICATION_JSON) @@ -67,5 +77,20 @@ public class SIArchivesController { return ResponseResult.run(getService(user)::getPaymentForm, map); } + /** + * 保存档案 + * @param request + * @param response + * @param param + * @return + */ + @POST + @Path("/save") + @Produces(MediaType.APPLICATION_JSON) + public String insert(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody InsuranceArchivesSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult().run(getService(user)::insert, param); + } + }