Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
a6bd9f38de
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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"/>
|
||||
|
|
@ -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;
|
||||
|
|
@ -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"/>
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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>
|
||||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, "小时");
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue