福利方案getSearchCondition接口

This commit is contained in:
Chengliang 2022-03-22 19:47:46 +08:00
parent b0982f7d7f
commit 56036bf9cb
12 changed files with 241 additions and 34 deletions

View File

@ -7,7 +7,10 @@ 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.cloudstore.eccom.pc.table.WeaTable;
import com.cloudstore.eccom.pc.table.WeaTableCheckboxpopedom;
import com.cloudstore.eccom.pc.table.WeaTableColumn;
import com.cloudstore.eccom.result.WeaResultMsg;
import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.siarchives.bo.InsuranceArchivesBO;
@ -24,6 +27,7 @@ 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.UserStatusEnum;
import com.engine.salary.enums.sicategory.*;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.TaxAgentMapper;
@ -81,7 +85,7 @@ public class SIArchivesBiz {
.dimissionDate(SalaryDateUtil.getFormatLocalDate(item.getDissmissdate()))
.build();
// if (item.getStatus() == UserStatus.unavailable) {
// if (item.getStatus() == UserStatusEnum.unavailable) {
// InsuranceArchivesListParam insuranceArchivesListParam = new InsuranceArchivesListParam();
// insuranceArchivesListParam.setEmployeeIds(Collections.singletonList(employeeId));
// List<InsuranceArchivesEmployeePO> insuranceArchivesEmployeePOS = siArchivesSocialMapper.queryEmployeeList(insuranceArchivesListParam, tenantKey);
@ -114,9 +118,9 @@ public class SIArchivesBiz {
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, "社保个人实际承担方");
SearchConditionItem socialName = SalaryFormItemUtil.selectItem(user,socialOptions, 2, 12, 6, false, "社保方案名称","socialName");
SearchConditionItem organizationName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "社保缴纳组织","paymentOrganization");
SearchConditionItem underTakeName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "社保个人实际承担方","underTake");
selectItems.add(socialName);
selectItems.add(organizationName);
@ -133,9 +137,9 @@ public class SIArchivesBiz {
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, "公积金个人实际承担方");
SearchConditionItem fundName = SalaryFormItemUtil.selectItem(user,fundOptions, 2, 12, 6, false, "公积金方案名称","fundName");
SearchConditionItem organizationFundName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "公积金缴纳组织","paymentOrganization");
SearchConditionItem underTakeFundName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "公积金个人实际承担方","underTake");
selectItems.add(fundName);
selectItems.add(organizationFundName);
@ -151,9 +155,9 @@ public class SIArchivesBiz {
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, "其它福利个人实际承担方");
SearchConditionItem otherName = SalaryFormItemUtil.selectItem(user,otherOptions, 2, 12, 6, false, "其它福利名称","otherName");
SearchConditionItem organizationOtherName = SalaryFormItemUtil.selectItem(user, paymentOptions, 2, 12, 6, false, "其它福利缴纳组织","paymentOrganization");
SearchConditionItem underTakeOtherName = SalaryFormItemUtil.selectItem(user, underTakeOptions, 2, 12, 6, false, "其它福利个人实际承担方","underTake");
selectItems.add(otherName);
selectItems.add(organizationOtherName);
@ -276,7 +280,7 @@ public class SIArchivesBiz {
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()));
inputItems.add(SalaryFormItemUtil.inputNumberItem(user,"precision:2",2,12,2,iCategoryPO.getInsuranceName(),String.valueOf(insuranceSchemeDetail.getInsuranceId())));
}
});
return inputItems;
@ -602,13 +606,31 @@ public class SIArchivesBiz {
Map<String, Object> datas = new HashMap<>(16);
try {
SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class);
PageUtil.start(param.getCurrent().intValue(), param.getPageSize().intValue());
PageUtil.start(param.getCurrent(), param.getPageSize());
List<InsuranceArchivesEmployeePO> page = socialSchemeMapper.listPageEmployeePOS(param);
PageInfo<InsuranceArchivesEmployeePO> pageInfo = new PageInfo<>(page, InsuranceArchivesEmployeePO.class);
List<Map<String, Object>> records = buildTableData(param, page);
List<WeaTableColumn> columns = buildWeaTableColumns(page, operateId);
WeaTable table = new WeaTable();
table.setColumns(columns);
//设置check是否可用
List<WeaTableCheckboxpopedom> checkboxpopedomList = new ArrayList<>();
WeaTableCheckboxpopedom checkboxpopedom = new WeaTableCheckboxpopedom();
checkboxpopedom.setPopedompara("column:system_type");
checkboxpopedom.setShowmethod("com.engine.salary.transmethod.TaxRateTransMethod.getCheckBoxPopedom");
checkboxpopedomList.add(checkboxpopedom);
table.setCheckboxList(checkboxpopedomList);
table.setCheckboxpopedom(null);
WeaResultMsg result = new WeaResultMsg(false);
result.putAll(table.makeDataResult());
result.success();
datas.put("pageInfo", pageInfo);
datas.put("datas",records);
datas.put("columns",buildWeaTableColumns(page, operateId));
datas.put("columns",columns);
datas.put("dataKey",result.getResultMap());
return datas;
}finally {
@ -781,7 +803,7 @@ public class SIArchivesBiz {
map.put("departmentId", item.getDepartmentId());
map.put("jobNum", item.getJobNum());
map.put("mobile", item.getTelephone());
map.put("status", item.getUserStatus() == null ? "" : item.getUserStatus().getDescription());
map.put("status", item.getUserStatusEnum() == null ? "" : item.getUserStatusEnum().getDescription());
if (socialItem != null) {
map.put("socialName", insuranceSchemeMapper.querySchemeName(socialItem.getSocialSchemeId()));
Map<String, Object> socialJson = JSON.parseObject(socialItem.getSocialPaymentBaseString(), new TypeReference<Map<String, Object>>() {
@ -824,4 +846,66 @@ public class SIArchivesBiz {
sqlSession.close();
}
}
/**
* 获取信息提示
*/
public void tips() {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
try {
SocialSchemeMapper socialSchemeMapper = sqlSession.getMapper(SocialSchemeMapper.class);
List<Long> employeeIds = socialSchemeMapper.tips();
SalaryAssert.isEmpty(employeeIds, "当前有离职人员档案存在福利缴纳起始月,未维护福利最后缴纳月,请尽快处理");
}finally {
sqlSession.close();
}
}
/**
* 高级搜索
* @return
*/
public Map<String, Object> getSearchCondition(User user) {
SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession();
Map<String,Object> dataMap = new HashMap<>();
try {
List<SearchConditionGroup> addGroups = new ArrayList<>();
List<SearchConditionItem> searchItems = new LinkedList<>();
List<SearchConditionOption> userStatusOptions = Arrays.stream(UserStatusEnum.values()).map(e -> new SearchConditionOption(String.valueOf(e.getValue()), e.getDescription())).collect(Collectors.toList());
List<InsuranceSchemePO> list = new SISchemeBiz().listAll();
List<SearchConditionOption> schemeOption = list.stream().filter(item -> Objects.equals(item.getWelfareType(), WelfareTypeEnum.SOCIAL_SECURITY.getValue()))
.collect(Collectors.toList())
.stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getSchemeName())).collect(Collectors.toList());
List<SearchConditionOption> fundOption = list.stream().filter(item -> Objects.equals(item.getWelfareType(), WelfareTypeEnum.ACCUMULATION_FUND.getValue()))
.collect(Collectors.toList())
.stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getSchemeName())).collect(Collectors.toList());
List<SearchConditionOption> otherOption = list.stream().filter(item -> Objects.equals(item.getWelfareType(), WelfareTypeEnum.OTHER.getValue()))
.collect(Collectors.toList())
.stream().map(item -> new SearchConditionOption(item.getId().toString(), item.getSchemeName())).collect(Collectors.toList());
searchItems.add(SalaryFormItemUtil.inputItem(user, "require", 2, 6, 3, 10, "姓名", "userName"));
searchItems.add(SalaryFormItemUtil.inputItem(user, "require", 2, 6, 3, 10, "工号", "jobNum"));
searchItems.add(SalaryFormItemUtil.browserItem(user,2,6,3,false,"部门","require","57","departmentIds"));
searchItems.add(SalaryFormItemUtil.selectItem(user,userStatusOptions, 2, 6, 6, false, "状态","statuses"));
searchItems.add(SalaryFormItemUtil.browserItem(user,2,6,3,false,"岗位","require","278","positions"));
searchItems.add(SalaryFormItemUtil.rangeDateItem(user,2,6,3,"入职日期","require","",""));
searchItems.add(SalaryFormItemUtil.selectItem(user,schemeOption, 2, 6, 6, false, "社保方案","siSchemeId"));
searchItems.add(SalaryFormItemUtil.selectItem(user,fundOption, 2, 6, 6, false, "公积金方案","fundSchemeId"));
searchItems.add(SalaryFormItemUtil.selectItem(user,otherOption, 2, 6, 6, false, "其它福利方案","otherSchemeId"));
addGroups.add(new SearchConditionGroup("常用条件",true,searchItems));
dataMap.put("items",addGroups);
}finally {
sqlSession.close();
}
return dataMap;
}
}

View File

@ -5,6 +5,7 @@ import com.engine.salary.entity.sicategory.dto.ICategoryFormDTO;
import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.entity.sischeme.po.InsuranceSchemeDetailPO;
import com.engine.salary.enums.sicategory.IsPaymentEnum;
import com.engine.salary.enums.sicategory.WelfareTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.sicategory.ICategoryMapper;
import com.engine.salary.util.SalaryEnumUtil;
@ -43,7 +44,7 @@ public class SICategoryBiz {
return iCategoryFormDTO;
}
return ICategoryFormDTO.builder().build();
return ICategoryFormDTO.builder().welfareType(WelfareTypeEnum.SOCIAL_SECURITY).build();
}

View File

@ -3,6 +3,7 @@ package com.engine.salary.cmd.siarchives;
import com.engine.common.biz.AbstractCommonCommand;
import com.engine.common.entity.BizLogContext;
import com.engine.core.interceptor.CommandContext;
import com.engine.salary.biz.SIArchivesBiz;
import weaver.hrm.User;
import java.util.Map;
@ -27,7 +28,8 @@ public class SIArchivesTipsCmd extends AbstractCommonCommand<Map<String, Object>
@Override
public Map<String, Object> execute(CommandContext commandContext) {
SIArchivesBiz siArchivesBiz = new SIArchivesBiz();
siArchivesBiz.tips();
return null;
}
}

View File

@ -41,17 +41,17 @@ public class SICategoryGetFormCmd extends AbstractCommonCommand<Map<String, Obje
ConditionFactory conditionFactory = new ConditionFactory(user);
Map<String,SearchConditionItem> items = new HashMap<>();
SearchConditionItem input = conditionFactory.createCondition(ConditionType.INPUT,502327, "input");
SearchConditionItem input = conditionFactory.createCondition(ConditionType.INPUT,502327, "insuranceName");
input.setColSpan(2);//定义一行显示条件数默认值为2,当值为1时标识该条件单独占一行
input.setFieldcol(12); //条件输入框所占宽度默认值18
input.setViewAttr(3); // 编辑权限 1只读2可编辑 3必填 默认2
input.setLength(10); // 设置输入长度
input.setLabel("福利名称"); //设置文本值 这个将覆盖多语言标签的值
input.setRules("required"); //设置字段填入规则
input.setValue(Objects.isNull(id) ? "" : form.getInsuranceName() ); //这里设置数据的默认值开发可以通过从数据库取出数据传入
items.put("insuranceName",input);
SearchConditionItem radio = conditionFactory.createCondition(ConditionType.RADIO,502327,"radio");
SearchConditionItem radio = conditionFactory.createCondition(ConditionType.RADIO,502327,"welfareType");
List<SearchConditionOption> radioOptions = new ArrayList <>();
radioOptions.add(new SearchConditionOption("SOCIAL_SECURITY","社保",true));
radioOptions.add(new SearchConditionOption("ACCUMULATION_FUND","公积金"));
@ -66,10 +66,10 @@ public class SICategoryGetFormCmd extends AbstractCommonCommand<Map<String, Obje
radio.setRules("required");
items.put("welfareType",radio);
SearchConditionItem checkbox = conditionFactory.createCondition(ConditionType.CHECKBOX,502327,"check");
SearchConditionItem checkbox = conditionFactory.createCondition(ConditionType.CHECKBOX,502327,"paymentScope");
List<SearchConditionOption> checkOptions = new ArrayList <>();
checkOptions.add(new SearchConditionOption("SCOPE_COMPANY","公司"));
checkOptions.add(new SearchConditionOption("SCOPE_PERSON","个人",true));
checkOptions.add(new SearchConditionOption("SCOPE_PERSON","个人"));
checkbox.setColSpan(2);
checkbox.setFieldcol(12);
checkbox.setLabelcol(6);

View File

@ -1,6 +1,6 @@
package com.engine.salary.entity.siarchives.po;
import com.engine.salary.enums.UserStatus;
import com.engine.salary.enums.UserStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -34,7 +34,7 @@ public class InsuranceArchivesEmployeePO {
private BigDecimal position;
private UserStatus userStatus;
private UserStatusEnum userStatusEnum;
private Date hiredate;

View File

@ -14,7 +14,7 @@ package com.engine.salary.enums;
* retired
* invalid
**/
public enum UserStatus {
public enum UserStatusEnum {
TRIAL(0,"试用"),
FORMAL(1,"正式"),
@ -29,7 +29,7 @@ public enum UserStatus {
private String description;
UserStatus(Integer value, String description) {
UserStatusEnum(Integer value, String description) {
this.value = value;
this.description = description;
}

View File

@ -42,6 +42,9 @@ public interface SocialSchemeMapper {
*/
List<InsuranceArchivesEmployeePO> listPageEmployeePOS(@Param("param") InsuranceArchivesListParam param);
/**
* 信息提示
* @return
*/
List<Long> tips();
}

View File

@ -275,4 +275,14 @@
ORDER BY a.id asc
</select>
<select id="tips" resultType="long">
SELECT
employee_id
FROM
hrsa_social_archives
WHERE
social_start_time is not null and social_end_time is null
</select>
</mapper>

View File

@ -22,4 +22,6 @@ public interface SIArchivesService {
String insert(InsuranceArchivesSaveParam param);
Map<String, Object> listPage(InsuranceArchivesListParam insuranceArchivesListParam);
Map<String,Object> getSearchCondition(Map<String, Object> stringObjectMap);
}

View File

@ -62,5 +62,13 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService
return apidatas;
}
@Override
public Map<String, Object> getSearchCondition(Map<String, Object> param) {
Map<String, Object> apidatas = new HashMap<>(16);
SIArchivesBiz siArchivesBiz = new SIArchivesBiz();
apidatas = siArchivesBiz.getSearchCondition(user);
return apidatas;
}
}

View File

@ -9,6 +9,7 @@ import weaver.hrm.User;
import java.util.List;
/**
* @Author weaver_cl
* @Description: TODO
@ -29,9 +30,9 @@ public class SalaryFormItemUtil {
* @return
*/
public static SearchConditionItem selectItem(User user, List<SearchConditionOption> selectOptions, int colSpan, int fieldcol,
int labelcol, boolean isQuickSearch, String label) {
int labelcol, boolean isQuickSearch, String label,String name) {
ConditionFactory conditionFactory = new ConditionFactory(user);
SearchConditionItem select = conditionFactory.createCondition(ConditionType.SELECT,502327,"SELECT");
SearchConditionItem select = conditionFactory.createCondition(ConditionType.SELECT,502327,name);
select.setOptions(selectOptions);
select.setColSpan(colSpan);
select.setFieldcol(fieldcol);
@ -46,24 +47,97 @@ public class SalaryFormItemUtil {
* 输入框数字
* @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) {
public static SearchConditionItem inputNumberItem(User user,String rules,int colSpan, int fieldcol,
int viewAttr, String label,String name) {
ConditionFactory conditionFactory = new ConditionFactory(user);
SearchConditionItem inputnumber = conditionFactory.createCondition(ConditionType.INPUTNUMBER,502327, "inputNumber");
SearchConditionItem inputnumber = conditionFactory.createCondition(ConditionType.INPUTNUMBER,502327, name);
inputnumber.setColSpan(colSpan);
inputnumber.setFieldcol(fieldcol);
inputnumber.setViewAttr(viewAttr);
inputnumber.setLabel(label);
inputnumber.setKey(key);
inputnumber.setRules(rules);
return inputnumber;
}
/**
* 输入框文本
* @param user
* @param rules
* @param colSpan
* @param fieldcol
* @param viewAttr
* @param length
* @param label
* @return
*/
public static SearchConditionItem inputItem(User user,String rules,int colSpan, int fieldcol,
int viewAttr,int length, String label,String name) {
ConditionFactory conditionFactory = new ConditionFactory(user);
SearchConditionItem input = conditionFactory.createCondition(ConditionType.INPUTNUMBER,502327, name);
input.setColSpan(colSpan);
input.setFieldcol(fieldcol);
input.setViewAttr(viewAttr);
input.setLength(length);
input.setLabel(label);
input.setRules(rules);
return input;
}
/**
* 浏览按钮
* @param user
* @param colSpan
* @param fieldcol
* @param viewAttr
* @param isQuickSearch
* @param label
* @param rules
* @param type
* @return
*/
public static SearchConditionItem browserItem(User user,int colSpan, int fieldcol,
int viewAttr,boolean isQuickSearch,String label,String rules,String type,String name) {
ConditionFactory conditionFactory = new ConditionFactory(user);
SearchConditionItem browser = conditionFactory.createCondition(ConditionType.BROWSER,502327,name,type);
browser.setColSpan(colSpan);
browser.setFieldcol(fieldcol);
browser.setViewAttr(viewAttr);
browser.setIsQuickSearch(isQuickSearch);
browser.setLabel(label);
browser.setRules(rules);
return browser;
}
/**
* 日期区间
* @param user
* @param colSpan
* @param fieldcol
* @param viewAttr
* @param label
* @param rules
* @return
*/
public static SearchConditionItem rangeDateItem(User user,int colSpan, int fieldcol,int viewAttr
,String label,String rules,String name1,String name2) {
ConditionFactory conditionFactory = new ConditionFactory(user);
SearchConditionItem rangeDate = conditionFactory.createCondition(ConditionType.TIMEPICKER,502327,new String[]{name1,name2});
rangeDate.setColSpan(colSpan);
rangeDate.setFieldcol(fieldcol);
rangeDate.setViewAttr(viewAttr);
rangeDate.setLabel(label);
rangeDate.setRules(rules);
return rangeDate;
}
}

View File

@ -32,6 +32,12 @@ public class SIArchivesController {
}
/**
* 提示信息
* @param request
* @param response
* @return
*/
@GET
@Path("/tips")
@Produces(MediaType.APPLICATION_JSON)
@ -41,6 +47,21 @@ public class SIArchivesController {
}
/**
* 高级搜索
* @param request
* @param response
* @return
*/
@POST
@Path("/getSearchCondition")
@Produces(MediaType.APPLICATION_JSON)
public String getSearchCondition(@Context HttpServletRequest request, @Context HttpServletResponse response) {
User user = HrmUserVarify.getUser(request, response);
return ResponseResult.run(getService(user)::getSearchCondition, ParamUtil.request2Map(request));
}
/**
@ -111,4 +132,6 @@ public class SIArchivesController {
}