From b0124e250d1500747c20e8e6a7a2e756826d95bc Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 16 Mar 2022 17:04:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=A1=A3=E6=A1=88payForm?= =?UTF-8?q?=E5=8F=8A=E8=A1=A8=E5=8D=95=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 253 ++++++++++++++++-- .../FundSchemeMapper.java | 2 +- .../FundSchemeMapper.xml | 2 +- .../OtherSchemeMapper.java | 2 +- .../OtherSchemeMapper.xml | 2 +- .../SocialSchemeMapper.java | 2 +- .../SocialSchemeMapper.xml | 2 +- .../sischeme/InsuranceSchemeDetailMapper.java | 18 ++ .../sischeme/InsuranceSchemeDetailMapper.xml | 12 + .../salary/service/SIArchivesService.java | 2 + .../service/impl/SIArchivesServiceImpl.java | 14 +- .../salary/util/SalaryFormItemUtil.java | 69 +++++ .../salary/web/SIArchivesController.java | 17 +- 13 files changed, 364 insertions(+), 33 deletions(-) rename src/com/engine/salary/mapper/{archives => siarchives}/FundSchemeMapper.java (90%) rename src/com/engine/salary/mapper/{archives => siarchives}/FundSchemeMapper.xml (96%) rename src/com/engine/salary/mapper/{archives => siarchives}/OtherSchemeMapper.java (90%) rename src/com/engine/salary/mapper/{archives => siarchives}/OtherSchemeMapper.xml (96%) rename src/com/engine/salary/mapper/{archives => siarchives}/SocialSchemeMapper.java (90%) rename src/com/engine/salary/mapper/{archives => siarchives}/SocialSchemeMapper.xml (96%) create mode 100644 src/com/engine/salary/util/SalaryFormItemUtil.java diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 00edd82d0..9be07db97 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -1,5 +1,11 @@ package com.engine.salary.biz; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +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.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBO; import com.engine.salary.entity.siarchives.dto.InsuranceArchivesBaseDTO; @@ -9,21 +15,28 @@ import com.engine.salary.entity.siarchives.dto.InsuranceArchivesSocialSchemeDTO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; +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.IsPaymentEnum; import com.engine.salary.enums.sicategory.UndertakerEnum; import com.engine.salary.enums.sicategory.WelfareTypeEnum; -import com.engine.salary.mapper.archives.FundSchemeMapper; -import com.engine.salary.mapper.archives.OtherSchemeMapper; -import com.engine.salary.mapper.archives.SocialSchemeMapper; +import com.engine.salary.mapper.TaxAgentMapper; +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.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.util.SalaryAssert; import com.engine.salary.util.SalaryDateUtil; +import com.engine.salary.util.SalaryFormItemUtil; import org.apache.ibatis.session.SqlSession; import weaver.conn.mybatis.MyBatisFactory; +import weaver.general.Util; +import weaver.hrm.User; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** @@ -34,7 +47,15 @@ import java.util.Map; **/ public class SIArchivesBiz { - public Map getBaseForm(WelfareTypeEnum welfareType, Long employeeId, Long operateId) { + /** + * + * @param welfareType + * @param employeeId + * @param operateId + * @param user + * @return + */ + public Map getBaseForm(WelfareTypeEnum welfareType, Long employeeId, Long operateId, User user) { Map data = new HashMap<>(16); SalaryAssert.notNull(employeeId, "员工id不可为空"); EmployBiz employBiz = new EmployBiz(); @@ -71,36 +92,232 @@ public class SIArchivesBiz { SISchemeBiz siSchemeBiz = new SISchemeBiz(); List list = siSchemeBiz.listAll(); - //返回组件 + List selectItems = new ArrayList<>(); + List addGroups = new ArrayList<>(); + List paymentOptions = paymentOrganizationOptions(); + List underTakeOptions = Arrays.stream(UndertakerEnum.values()).map(e -> new SearchConditionOption(e.name(), e.getDefaultLabel())).collect(Collectors.toList()); + //返回数据 switch (welfareType) { case SOCIAL_SECURITY: - InsuranceArchivesSocialSchemeDTO insuranceArchivesSocialSchemeDTO = buildSocialForm(list, employeeId, operateId ); + InsuranceArchivesSocialSchemeDTO insuranceArchivesSocialSchemeDTO = buildSocialForm(employeeId, operateId ); + List socialList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.SOCIAL_SECURITY.getValue())).collect(Collectors.toList()); + List socialOptions = new ArrayList <>(); + socialList.forEach(social -> { + socialOptions.add(new SearchConditionOption(Util.null2String(social.getId()),social.getSchemeName())); + }); + SearchConditionItem socialName = SalaryFormItemUtil.selectItem(user,socialOptions, 2, 12, 6, false, "社保方案名称"); + SearchConditionItem organizationName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "社保缴纳组织"); + SearchConditionItem underTakeName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "社保个人实际承担方"); + + selectItems.add(socialName); + selectItems.add(organizationName); + selectItems.add(underTakeName); + + addGroups.add(new SearchConditionGroup("社保基础信息",true,selectItems)); data.put("data",insuranceArchivesSocialSchemeDTO); + data.put("items",addGroups); break; case ACCUMULATION_FUND: - InsuranceArchivesFundSchemeDTO insuranceArchivesFundSchemeDTO = buildFundForm(list, employeeId, operateId); + InsuranceArchivesFundSchemeDTO insuranceArchivesFundSchemeDTO = buildFundForm(employeeId, operateId); + List fundList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.ACCUMULATION_FUND.getValue())).collect(Collectors.toList()); + List fundOptions = new ArrayList <>(); + fundList.forEach(social -> { + fundOptions.add(new SearchConditionOption(Util.null2String(social.getId()),social.getSchemeName())); + }); + SearchConditionItem fundName = SalaryFormItemUtil.selectItem(user,fundOptions, 2, 12, 6, false, "公积金方案名称"); + SearchConditionItem organizationFundName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "公积金缴纳组织"); + SearchConditionItem underTakeFundName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "公积金个人实际承担方"); + + selectItems.add(fundName); + selectItems.add(organizationFundName); + selectItems.add(underTakeFundName); + addGroups.add(new SearchConditionGroup("公积金基础信息",true,selectItems)); data.put("data",insuranceArchivesFundSchemeDTO); + data.put("items",addGroups); break; case OTHER: - InsuranceArchivesOtherSchemeDTO insuranceArchivesOtherSchemeDTO = buildOtherForm(list, employeeId, operateId); + InsuranceArchivesOtherSchemeDTO insuranceArchivesOtherSchemeDTO = buildOtherForm(employeeId, operateId); + List otherList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.OTHER.getValue())).collect(Collectors.toList()); + List otherOptions = new ArrayList <>(); + otherList.forEach(social -> { + otherOptions.add(new SearchConditionOption(Util.null2String(social.getId()),social.getSchemeName())); + }); + SearchConditionItem otherName = SalaryFormItemUtil.selectItem(user,otherOptions, 2, 12, 6, false, "其它福利名称"); + SearchConditionItem organizationOtherName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "其它福利缴纳组织"); + SearchConditionItem underTakeOtherName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "其它福利个人实际承担方"); + + selectItems.add(otherName); + selectItems.add(organizationOtherName); + selectItems.add(underTakeOtherName); + addGroups.add(new SearchConditionGroup("其它福利基础信息",true,selectItems)); data.put("data",insuranceArchivesOtherSchemeDTO); + data.put("items",addGroups); break; default: - data.put("data",""); } return data; } + /** + * 获取详细表单 + * @param user + * @param welfareType + * @param employeeId + * @param operateId + * @param schemeId + * @return + */ + public Map getPaymentForm(User user, WelfareTypeEnum welfareType, Long employeeId, long operateId, Long schemeId) { + Map data = new HashMap<>(16); + switch (welfareType) { + case SOCIAL_SECURITY: + data = buildSocialPaymentForm(user,employeeId, schemeId, operateId,welfareType.getValue()); + break; + case ACCUMULATION_FUND: + data = buildFundPaymentForm(user,employeeId, schemeId, operateId,welfareType.getValue()); + break; + case OTHER: + data = buildOtherPaymentForm(user,employeeId, schemeId, operateId,welfareType.getValue()); + break; + default: + } + return data; + } + + /** + * 其他payForm + * @param employeeId + * @param schemeId + * @param operateId + * @return + */ + public Map buildOtherPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) { + Map dataMap = new HashMap<>(); + InsuranceArchivesOtherSchemeDTO data = buildOtherForm(employeeId, operateId); + if (data != null) { + dataMap.put("data",JSONObject.parseObject(data.getOtherPaymentBaseString(), new TypeReference>() { + })); + } + List addGroups = new ArrayList<>(); + List inputItems = buildPaymentBase(user,schemeId,welfareType); + addGroups.add(new SearchConditionGroup("其它福利缴纳基数",true,inputItems)); + dataMap.put("items",addGroups); + return dataMap; + } + + /** + * 公积金payForm + * @param employeeId + * @param schemeId + * @param operateId + * @return + */ + public Map buildFundPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) { + + Map dataMap = new HashMap<>(); + InsuranceArchivesFundSchemeDTO data = buildFundForm(employeeId, operateId); + if (data != null) { + dataMap.put("data",JSONObject.parseObject(data.getFundPaymentBaseString(), new TypeReference>() { + })); + } + List addGroups = new ArrayList<>(); + List inputItems = buildPaymentBase(user,schemeId,welfareType); + addGroups.add(new SearchConditionGroup("公积金缴纳基数",true,inputItems)); + dataMap.put("items",addGroups); + return dataMap; + } + + /** + * 社保payForm + * @param employeeId + * @param schemeId + * @param operateId + * @return + */ + public Map buildSocialPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) { + Map dataMap = new HashMap<>(); + InsuranceArchivesSocialSchemeDTO data = buildSocialForm(employeeId, operateId); + if (data != null) { + dataMap.put("data",JSONObject.parseObject(data.getSchemePaymentBaseString(), new TypeReference>() { + })); + } + + List addGroups = new ArrayList<>(); + List inputItems = buildPaymentBase(user,schemeId,welfareType); + addGroups.add(new SearchConditionGroup("社保缴纳基数",true,inputItems)); + dataMap.put("items",addGroups); + return dataMap; + + } + + /** + * 构造payment(items) + * @param schemeId + * @return + */ + public List buildPaymentBase(User user,Long schemeId,Integer welfareType) { + List inputItems = new ArrayList<>(); + if(schemeId == null) { + return new ArrayList<>(); + } + List list = queryListByPrimaryIdIsPayment(schemeId,welfareType).stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(InsuranceSchemeDetailPO::getInsuranceId))), ArrayList::new) + ); + SICategoryBiz siCategoryBiz = new SICategoryBiz(); + list.forEach(insuranceSchemeDetail-> { + ICategoryPO iCategoryPO = siCategoryBiz.getByID(insuranceSchemeDetail.getInsuranceId()); + if (iCategoryPO != null) { + inputItems.add(SalaryFormItemUtil.inputNumberItem(user,"precision:2",String.valueOf(insuranceSchemeDetail.getInsuranceId()),2,12,2,iCategoryPO.getInsuranceName())); + } + }); + return inputItems; + } + + /** + * 获取方案明细 + * @param schemeId + * @return + */ + public List queryListByPrimaryIdIsPayment(Long schemeId,Integer welfareType) { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try{ + InsuranceSchemeDetailMapper insuranceSchemeDetailMapper = sqlSession.getMapper(InsuranceSchemeDetailMapper.class); + return insuranceSchemeDetailMapper.queryListByPrimaryIdIsPayment(schemeId, IsPaymentEnum.YES.getValue(),welfareType); + }finally { + sqlSession.close(); + } + } + + + /** + * 社保缴纳组织 + * @return + */ + public List paymentOrganizationOptions() { + SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); + try { + TaxAgentMapper taxAgentMapper = sqlSession.getMapper(TaxAgentMapper.class); + List list = taxAgentMapper.listAll(); + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list + .stream() + .map(item -> new SearchConditionOption(String.valueOf(item.getId()), item.getName())).collect(Collectors.toList()); + }finally { + sqlSession.close(); + } + } + /** * 其它基础表单 - * @param list * @param employeeId * @param operateId * @return */ - public InsuranceArchivesOtherSchemeDTO buildOtherForm(List list, Long employeeId, Long operateId) { + public InsuranceArchivesOtherSchemeDTO buildOtherForm(Long employeeId, Long operateId) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { OtherSchemeMapper otherSchemeMapper = sqlSession.getMapper(OtherSchemeMapper.class); @@ -119,12 +336,11 @@ public class SIArchivesBiz { /** * 公积金基础表单 - * @param list * @param employeeId * @param operateId * @return */ - public InsuranceArchivesFundSchemeDTO buildFundForm(List list, Long employeeId, Long operateId) { + public InsuranceArchivesFundSchemeDTO buildFundForm(Long employeeId, Long operateId) { SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); try { @@ -144,12 +360,11 @@ public class SIArchivesBiz { /** * 社保基础表单 - * @param list * @param employeeId * @param operateId * @return */ - public InsuranceArchivesSocialSchemeDTO buildSocialForm(List list, Long employeeId, Long operateId) { + public InsuranceArchivesSocialSchemeDTO buildSocialForm(Long employeeId, Long operateId) { InsuranceArchivesSocialSchemePO insuranceArchivesSocialSchemePO = getSocialByEmployeeId(employeeId); InsuranceArchivesSocialSchemeDTO data = InsuranceArchivesBO.convertSocialPOtoDTO(insuranceArchivesSocialSchemePO, employeeId); if (insuranceArchivesSocialSchemePO == null) { diff --git a/src/com/engine/salary/mapper/archives/FundSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java similarity index 90% rename from src/com/engine/salary/mapper/archives/FundSchemeMapper.java rename to src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java index accb48c37..b99d0dbb3 100644 --- a/src/com/engine/salary/mapper/archives/FundSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.java @@ -1,4 +1,4 @@ -package com.engine.salary.mapper.archives; +package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/salary/mapper/archives/FundSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml similarity index 96% rename from src/com/engine/salary/mapper/archives/FundSchemeMapper.xml rename to src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml index c7ff70287..cb909ebf8 100644 --- a/src/com/engine/salary/mapper/archives/FundSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/FundSchemeMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/src/com/engine/salary/mapper/archives/OtherSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java similarity index 90% rename from src/com/engine/salary/mapper/archives/OtherSchemeMapper.java rename to src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java index 12040fd1c..d7ba2bc92 100644 --- a/src/com/engine/salary/mapper/archives/OtherSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.java @@ -1,4 +1,4 @@ -package com.engine.salary.mapper.archives; +package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/salary/mapper/archives/OtherSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml similarity index 96% rename from src/com/engine/salary/mapper/archives/OtherSchemeMapper.xml rename to src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml index 4dfc82731..88282a169 100644 --- a/src/com/engine/salary/mapper/archives/OtherSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/OtherSchemeMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/src/com/engine/salary/mapper/archives/SocialSchemeMapper.java b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java similarity index 90% rename from src/com/engine/salary/mapper/archives/SocialSchemeMapper.java rename to src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java index 6fdba9daa..78bc23dd5 100644 --- a/src/com/engine/salary/mapper/archives/SocialSchemeMapper.java +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.java @@ -1,4 +1,4 @@ -package com.engine.salary.mapper.archives; +package com.engine.salary.mapper.siarchives; import com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO; import org.apache.ibatis.annotations.Param; diff --git a/src/com/engine/salary/mapper/archives/SocialSchemeMapper.xml b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml similarity index 96% rename from src/com/engine/salary/mapper/archives/SocialSchemeMapper.xml rename to src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml index e937723bf..c700d7045 100644 --- a/src/com/engine/salary/mapper/archives/SocialSchemeMapper.xml +++ b/src/com/engine/salary/mapper/siarchives/SocialSchemeMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java index 35f9b9f84..0c7d85184 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.java @@ -46,6 +46,24 @@ public interface InsuranceSchemeDetailMapper { List queryListByInsuranceIdIsPayment(@Param("insuranceId") Long insuranceId, @Param("isPayment") Integer isPayment); + /** + * + * @param primaryId + * @param paymentScope + * @param insuranceId + * @return + */ InsuranceSchemeDetailPO getByPPI(@Param("primaryId") Long primaryId, @Param("paymentScope") Integer paymentScope, @Param("insuranceId") Long insuranceId); + + + /** + * 根据主键和是否缴费查询 + * @param primaryId + * @param isPayment + * @return + */ + List queryListByPrimaryIdIsPayment(@Param("primaryId") Long primaryId, @Param("isPayment") Integer isPayment, + @Param("welfareType") Integer welfareType); + } diff --git a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml index 24eb7ac25..80cdff45d 100644 --- a/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml +++ b/src/com/engine/salary/mapper/sischeme/InsuranceSchemeDetailMapper.xml @@ -155,5 +155,17 @@ + + + \ 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 7bfa31c20..eb8b31232 100644 --- a/src/com/engine/salary/service/SIArchivesService.java +++ b/src/com/engine/salary/service/SIArchivesService.java @@ -13,4 +13,6 @@ public interface SIArchivesService { Map getTips(Map params); Map getBaseForm(Map params); + + Map getPaymentForm(Map params); } diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index bf21f3d94..f81d4cf47 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -30,10 +30,18 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); WelfareTypeEnum welfareTypeEnum = (WelfareTypeEnum)params.get("welfareTypeEnum"); Long employeeId = Long.valueOf(Util.null2String(params.get("employeeId"))); - apidatas = siArchivesBiz.getBaseForm(welfareTypeEnum, employeeId,(long) user.getUID()); - if (welfareTypeEnum != null) { + apidatas = siArchivesBiz.getBaseForm(welfareTypeEnum, employeeId,(long) user.getUID(),user); + return apidatas; + } - } + @Override + public Map getPaymentForm(Map params) { + Map apidatas = new HashMap<>(16); + SIArchivesBiz siArchivesBiz = new SIArchivesBiz(); + WelfareTypeEnum welfareTypeEnum = (WelfareTypeEnum)params.get("welfareTypeEnum"); + Long employeeId = Long.valueOf(Util.null2String(params.get("employeeId"))); + Long schemeId = Long.valueOf(Util.null2String(params.get("schemeId"))); + apidatas = siArchivesBiz.getPaymentForm(user,welfareTypeEnum, employeeId,(long) user.getUID(),schemeId); return apidatas; } } diff --git a/src/com/engine/salary/util/SalaryFormItemUtil.java b/src/com/engine/salary/util/SalaryFormItemUtil.java new file mode 100644 index 000000000..4b8776b35 --- /dev/null +++ b/src/com/engine/salary/util/SalaryFormItemUtil.java @@ -0,0 +1,69 @@ +package com.engine.salary.util; + +import com.api.browser.bean.SearchConditionItem; +import com.api.browser.bean.SearchConditionOption; +import com.api.browser.util.ConditionFactory; +import com.api.browser.util.ConditionType; +import weaver.hrm.User; + +import java.util.List; + + +/** + * @Author weaver_cl + * @Description: TODO + * @Date 2022/3/16 + * @Version V1.0 + **/ +public class SalaryFormItemUtil { + + /** + * 下拉框 + * @param user + * @param selectOptions + * @param colSpan + * @param fieldcol + * @param labelcol + * @param isQuickSearch + * @param label + * @return + */ + public static SearchConditionItem selectItem(User user, List selectOptions, int colSpan, int fieldcol, + int labelcol, boolean isQuickSearch, String label) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem select = conditionFactory.createCondition(ConditionType.SELECT,502327,"SELECT"); + select.setOptions(selectOptions); + select.setColSpan(colSpan); + select.setFieldcol(fieldcol); + select.setLabelcol(labelcol); + select.setIsQuickSearch(isQuickSearch); + select.setLabel(label); + return select; + } + + + /** + * 输入框数字 + * @param user + * @param rules + * @param key + * @param colSpan + * @param fieldcol + * @param viewAttr + * @param label + * @return + */ + public static SearchConditionItem inputNumberItem(User user,String rules,String key,int colSpan, int fieldcol, + int viewAttr, String label) { + ConditionFactory conditionFactory = new ConditionFactory(user); + SearchConditionItem inputnumber = conditionFactory.createCondition(ConditionType.INPUTNUMBER,502327, "inputNumber"); + inputnumber.setColSpan(colSpan); + inputnumber.setFieldcol(fieldcol); + inputnumber.setViewAttr(viewAttr); + inputnumber.setLabel(label); + inputnumber.setKey(key); + inputnumber.setRules(rules); + + return inputnumber; + } +} diff --git a/src/com/engine/salary/web/SIArchivesController.java b/src/com/engine/salary/web/SIArchivesController.java index 196966479..65e6c3c9f 100644 --- a/src/com/engine/salary/web/SIArchivesController.java +++ b/src/com/engine/salary/web/SIArchivesController.java @@ -2,7 +2,6 @@ package com.engine.salary.web; import com.engine.common.util.ParamUtil; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.sischeme.dto.InsuranceSchemeDTO; import com.engine.salary.enums.sicategory.WelfareTypeEnum; import com.engine.salary.service.SIArchivesService; import com.engine.salary.service.impl.SIArchivesServiceImpl; @@ -16,7 +15,6 @@ import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.Map; -import java.util.Objects; /** * @Author weaver_cl @@ -50,15 +48,24 @@ public class SIArchivesController { @Path("/getBaseForm") @Produces(MediaType.APPLICATION_JSON) public String getBaseForm(@Context HttpServletRequest request, @Context HttpServletResponse response, - @DefaultValue("") @QueryParam(value = "welfareTypeEnum") WelfareTypeEnum welfareTypeEnum, - @QueryParam(value = "employeeId") Long employeeId) { + @DefaultValue("") @QueryParam(value = "welfareTypeEnum") WelfareTypeEnum welfareTypeEnum) { User user = HrmUserVarify.getUser(request, response); Map map = ParamUtil.request2Map(request); map.put("welfareTypeEnum",welfareTypeEnum); - map.put("employeeId",employeeId); return ResponseResult.run(getService(user)::getBaseForm, map); } + @GET + @Path("/getPaymentForm") + @Produces(MediaType.APPLICATION_JSON) + public String getPaymentForm(@Context HttpServletRequest request, @Context HttpServletResponse response, + @DefaultValue("") @QueryParam(value = "welfareTypeEnum") WelfareTypeEnum welfareTypeEnum) { + User user = HrmUserVarify.getUser(request, response); + Map map = ParamUtil.request2Map(request); + map.put("welfareTypeEnum",welfareTypeEnum); + return ResponseResult.run(getService(user)::getPaymentForm, map); + } + } 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 2/2] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=EF=BC=8C=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E6=A1=A3=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); + } + }