Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
钱涛 2022-03-17 15:15:00 +08:00
commit a6bd9f38de
17 changed files with 580 additions and 38 deletions

View File

@ -1,29 +1,47 @@
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.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;
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.mapper.archives.FundSchemeMapper;
import com.engine.salary.mapper.archives.OtherSchemeMapper;
import com.engine.salary.mapper.archives.SocialSchemeMapper;
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;
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 +52,15 @@ import java.util.Map;
**/
public class SIArchivesBiz {
public Map<String,Object> getBaseForm(WelfareTypeEnum welfareType, Long employeeId, Long operateId) {
/**
*
* @param welfareType
* @param employeeId
* @param operateId
* @param user
* @return
*/
public Map<String,Object> getBaseForm(WelfareTypeEnum welfareType, Long employeeId, Long operateId, User user) {
Map<String, Object> data = new HashMap<>(16);
SalaryAssert.notNull(employeeId, "员工id不可为空");
EmployBiz employBiz = new EmployBiz();
@ -71,36 +97,232 @@ public class SIArchivesBiz {
SISchemeBiz siSchemeBiz = new SISchemeBiz();
List<InsuranceSchemePO> list = siSchemeBiz.listAll();
//返回组件
List<SearchConditionItem> selectItems = new ArrayList<>();
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionOption> paymentOptions = paymentOrganizationOptions();
List<SearchConditionOption> 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<InsuranceSchemePO> socialList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.SOCIAL_SECURITY.getValue())).collect(Collectors.toList());
List<SearchConditionOption> 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<InsuranceSchemePO> fundList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.ACCUMULATION_FUND.getValue())).collect(Collectors.toList());
List<SearchConditionOption> 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<InsuranceSchemePO> otherList = list.stream().filter(e -> Objects.equals(e.getWelfareType(), WelfareTypeEnum.OTHER.getValue())).collect(Collectors.toList());
List<SearchConditionOption> 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<String, Object> getPaymentForm(User user, WelfareTypeEnum welfareType, Long employeeId, long operateId, Long schemeId) {
Map<String, Object> 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<String, Object> buildOtherPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) {
Map<String, Object> dataMap = new HashMap<>();
InsuranceArchivesOtherSchemeDTO data = buildOtherForm(employeeId, operateId);
if (data != null) {
dataMap.put("data",JSONObject.parseObject(data.getOtherPaymentBaseString(), new TypeReference<Map<String, Object>>() {
}));
}
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> 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<String, Object> buildFundPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) {
Map<String, Object> dataMap = new HashMap<>();
InsuranceArchivesFundSchemeDTO data = buildFundForm(employeeId, operateId);
if (data != null) {
dataMap.put("data",JSONObject.parseObject(data.getFundPaymentBaseString(), new TypeReference<Map<String, Object>>() {
}));
}
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> 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<String, Object> buildSocialPaymentForm(User user,Long employeeId, Long schemeId, long operateId,Integer welfareType) {
Map<String, Object> dataMap = new HashMap<>();
InsuranceArchivesSocialSchemeDTO data = buildSocialForm(employeeId, operateId);
if (data != null) {
dataMap.put("data",JSONObject.parseObject(data.getSchemePaymentBaseString(), new TypeReference<Map<String, Object>>() {
}));
}
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> inputItems = buildPaymentBase(user,schemeId,welfareType);
addGroups.add(new SearchConditionGroup("社保缴纳基数",true,inputItems));
dataMap.put("items",addGroups);
return dataMap;
}
/**
* 构造payment(items)
* @param schemeId
* @return
*/
public List<SearchConditionItem> buildPaymentBase(User user,Long schemeId,Integer welfareType) {
List<SearchConditionItem> inputItems = new ArrayList<>();
if(schemeId == null) {
return new ArrayList<>();
}
List<InsuranceSchemeDetailPO> 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<InsuranceSchemeDetailPO> 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<SearchConditionOption> paymentOrganizationOptions() {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
TaxAgentMapper taxAgentMapper = sqlSession.getMapper(TaxAgentMapper.class);
List<TaxAgent> 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<InsuranceSchemePO> 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 +341,11 @@ public class SIArchivesBiz {
/**
* 公积金基础表单
* @param list
* @param employeeId
* @param operateId
* @return
*/
public InsuranceArchivesFundSchemeDTO buildFundForm(List<InsuranceSchemePO> list, Long employeeId, Long operateId) {
public InsuranceArchivesFundSchemeDTO buildFundForm(Long employeeId, Long operateId) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
@ -144,12 +365,11 @@ public class SIArchivesBiz {
/**
* 社保基础表单
* @param list
* @param employeeId
* @param operateId
* @return
*/
public InsuranceArchivesSocialSchemeDTO buildSocialForm(List<InsuranceSchemePO> 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) {
@ -176,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();
}
}
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archives.FundSchemeMapper">
<mapper namespace="com.engine.salary.mapper.siarchives.FundSchemeMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.siarchives.po.InsuranceArchivesFundSchemePO">
<result column="id" property="id"/>
<result column="employee_id" property="employeeId"/>

View File

@ -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;

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archives.OtherSchemeMapper">
<mapper namespace="com.engine.salary.mapper.siarchives.OtherSchemeMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO">
<result column="id" property="id"/>
<result column="employee_id" property="employeeId"/>

View File

@ -1,8 +1,11 @@
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;
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<Long> singletonList);
/**
* 批量保存
* @param singletonList
*/
void batchSave(List<InsuranceArchivesSocialSchemePO> singletonList);
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.engine.salary.mapper.archives.SocialSchemeMapper">
<mapper namespace="com.engine.salary.mapper.siarchives.SocialSchemeMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.siarchives.po.InsuranceArchivesSocialSchemePO">
<result column="id" property="id"/>
<result column="employee_id" property="employeeId"/>
@ -53,4 +53,6 @@
</mapper>

View File

@ -46,6 +46,24 @@ public interface InsuranceSchemeDetailMapper {
List<InsuranceSchemeDetailPO> 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<InsuranceSchemeDetailPO> queryListByPrimaryIdIsPayment(@Param("primaryId") Long primaryId, @Param("isPayment") Integer isPayment,
@Param("welfareType") Integer welfareType);
}

View File

@ -155,5 +155,17 @@
</select>
<select id="queryListByPrimaryIdIsPayment" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM hrsa_scheme_detail t,hrsa_insurance_category b
WHERE t.insurance_id = b.id
AND t.primary_id = #{primaryId}
AND t.is_payment = #{isPayment}
AND b.welfare_type = #{welfareType}
AND delete_type = 0
</select>
</mapper>

View File

@ -1,5 +1,7 @@
package com.engine.salary.service;
import com.engine.salary.entity.siarchives.param.InsuranceArchivesSaveParam;
import java.util.Map;
/**
@ -13,4 +15,8 @@ public interface SIArchivesService {
Map<String, Object> getTips(Map<String, Object> params);
Map<String, Object> getBaseForm(Map<String, Object> params);
Map<String, Object> getPaymentForm(Map<String, Object> params);
String insert(InsuranceArchivesSaveParam param);
}

View File

@ -224,7 +224,7 @@ public class AttendQuoteFieldServiceImpl extends Service implements AttendQuoteF
// 本地已存在则更新交集
List<String> updateCodes = localFieldCodes.stream().filter(item -> attendFieldCodes.contains(item)).collect(Collectors.toList());
// 本地比attend多则删除差集(local - attend)
List<String> deleteCodes = localFieldCodes.stream().filter(item -> !attendFieldCodes.contains(item)).collect(Collectors.toList());
Collection<String> deleteCodes = localFieldCodes.stream().filter(item -> !attendFieldCodes.contains(item)).collect(Collectors.toList());
// attend比本地多则新增差集(attend - local)
List<String> saveCodes = attendFieldCodes.stream().filter(item -> !localFieldCodes.contains(item)).collect(Collectors.toList());
String hourI18n = SalaryI18nUtil.getI18nLabel(100743, "小时");

View File

@ -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;
@ -30,10 +33,26 @@ 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<String, Object> getPaymentForm(Map<String, Object> params) {
Map<String, Object> 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;
}
@Override
public String insert(InsuranceArchivesSaveParam param) {
SIArchivesBiz siArchivesBiz = new SIArchivesBiz();
siArchivesBiz.insert(param,(long) user.getUID());
return null;
}
}

View File

@ -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<SearchConditionOption> 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;
}
}

View File

@ -2,11 +2,12 @@ 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.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;
@ -16,7 +17,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
@ -40,6 +40,8 @@ public class SIArchivesController {
}
/**
* 查询档案基本信息表单
* @param request
@ -50,15 +52,45 @@ 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<String, Object> map = ParamUtil.request2Map(request);
map.put("welfareTypeEnum",welfareTypeEnum);
map.put("employeeId",employeeId);
return ResponseResult.run(getService(user)::getBaseForm, map);
}
/**
* 查询档案缴纳基数表单
* @param request
* @param response
* @param welfareTypeEnum
* @return
*/
@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<String, Object> map = ParamUtil.request2Map(request);
map.put("welfareTypeEnum",welfareTypeEnum);
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<InsuranceArchivesSaveParam,String>().run(getService(user)::insert, param);
}
}