Merge branch 'release/3.0.0.2311.01' into release/个税版本

This commit is contained in:
钱涛 2023-10-31 17:19:09 +08:00
commit b050888b7b
15 changed files with 350 additions and 377 deletions

View File

@ -1705,15 +1705,6 @@ public class SIArchivesBiz {
} }
private List<InsuranceSchemeDetailPO> decryptSchemeDetailList(List<InsuranceSchemeDetailPO> encryptList) {
encryptList.forEach(item -> {
item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit()));
item.setFixedCost(AESEncryptUtil.decrypt(item.getFixedCost()));
item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit()));
});
return encryptList;
}
/** /**
* 判断是否需要生成历史福利档案基本信息 * 判断是否需要生成历史福利档案基本信息
*/ */

View File

@ -2,7 +2,6 @@ package com.engine.salary.biz;
import com.api.formmode.mybatis.util.SqlProxyHandle; import com.api.formmode.mybatis.util.SqlProxyHandle;
import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.constant.SalaryDefaultTenantConstant;
import com.engine.salary.encrypt.AESEncryptUtil;
import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.sicategory.po.ICategoryPO; import com.engine.salary.entity.sicategory.po.ICategoryPO;
import com.engine.salary.entity.sischeme.bo.InsuranceSchemeBO; import com.engine.salary.entity.sischeme.bo.InsuranceSchemeBO;
@ -409,7 +408,7 @@ public class SISchemeBiz {
insuranceSchemeMapper.insert(batchPO); insuranceSchemeMapper.insert(batchPO);
List<InsuranceSchemeDetailPO> detailList = insuranceSchemeDetailMapper.queryListBySchemeId(id); List<InsuranceSchemeDetailPO> detailList = insuranceSchemeDetailMapper.queryListBySchemeId(id);
detailList = decryptSchemeDetailList(detailList); detailList = encryptUtil.decryptList(detailList,InsuranceSchemeDetailPO.class);
if (CollectionUtils.isNotEmpty(detailList)) { if (CollectionUtils.isNotEmpty(detailList)) {
List<InsuranceSchemeDetailPO> detailPOS = detailList.stream().map(item -> InsuranceSchemeDetailPO.builder() List<InsuranceSchemeDetailPO> detailPOS = detailList.stream().map(item -> InsuranceSchemeDetailPO.builder()
.creator(employeeId) .creator(employeeId)
@ -461,16 +460,6 @@ public class SISchemeBiz {
} }
private List<InsuranceSchemeDetailPO> decryptSchemeDetailList(List<InsuranceSchemeDetailPO> encryptList) {
encryptList.forEach(item -> {
item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit()));
item.setFixedCost(AESEncryptUtil.decrypt(item.getFixedCost()));
item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit()));
});
return encryptList;
}
public int checkBeforeDeleteSocialscheme(Map<String, Object> params) { public int checkBeforeDeleteSocialscheme(Map<String, Object> params) {
return getSIAccountUtilMapper().checkBeforeDeleteSocialscheme((Collection<Long>) params.get("ids")).get(0).getNum(); return getSIAccountUtilMapper().checkBeforeDeleteSocialscheme((Collection<Long>) params.get("ids")).get(0).getNum();
} }

View File

@ -99,6 +99,7 @@ public class DataCollectionEmployee {
private Double workYear; private Double workYear;
private Double companyWorkYear; private Double companyWorkYear;
@SalaryFormulaVar(defaultLabel = "证件号码", labelId = 98624, dataType = "string")
private String idNo; private String idNo;
//是否是系统管理员 //是否是系统管理员

View File

@ -116,6 +116,7 @@ public class SalaryAcctFormulaBO {
.companystartdate(simpleEmployee.getCompanystartdate()) .companystartdate(simpleEmployee.getCompanystartdate())
.birthday(simpleEmployee.getBirthday()) .birthday(simpleEmployee.getBirthday())
.workcode(simpleEmployee.getWorkcode()) .workcode(simpleEmployee.getWorkcode())
.idNo(simpleEmployee.getIdNo())
.build(); .build();
return JsonUtil.parseMap(JsonUtil.toJsonString(formulaEmployee), String.class); return JsonUtil.parseMap(JsonUtil.toJsonString(formulaEmployee), String.class);
} }

View File

@ -47,6 +47,9 @@ public class SalaryAcctImportFieldDTO {
//薪资项目名称 //薪资项目名称
private String salaryItemName; private String salaryItemName;
//薪资项目类型
private String dataType;
} }
@Data @Data

View File

@ -75,8 +75,8 @@ public class SalaryFormulaEmployeeDTO {
private String sex; private String sex;
// @SalaryFormulaVar(defaultLabel = "证件号码", labelId = 86318, dataType = "string") @SalaryFormulaVar(defaultLabel = "证件号码", labelId = 86318, dataType = "string")
// private String idNo; private String idNo;
//邮件 //邮件
@SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string") @SalaryFormulaVar(defaultLabel = "邮件", labelId = 92919, dataType = "string")

View File

@ -2,6 +2,7 @@ package com.engine.salary.formlua.util;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.engine.salary.formlua.entity.parameter.FormulaContext; import com.engine.salary.formlua.entity.parameter.FormulaContext;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -11,217 +12,223 @@ import java.util.regex.PatternSyntaxException;
public class ExpressRegularUtil { public class ExpressRegularUtil {
private static final String[] checkRegularNullParameter=new String[]{"TRUE","FALSE","NOW","TODAY"}; private static final String[] checkRegularNullParameter = new String[]{"TRUE", "FALSE", "NOW", "TODAY"};
private static final String[] operSymbs=new String[]{">",">=","=","<","<=","\\+","-","\\*","\\/","!="}; private static final String[] operSymbs = new String[]{">", ">=", "=", "<", "<=", "\\+", "-", "\\*", "\\/", "!="};
private static final String checkRegularParameter="AND|OR|IF|NOT|LIKE|DATEDIFF|DATEADD|WEEKNUM|WEEKDAY|DATEFORMAT|Y|M|D|H|I|S|COUNT|SUM|MAX|MIN|CONCAT|SEARCH|TEXT|PAD|REPLACE|VALUE|LEN|LEFT|RIGHT|MID"; private static final String checkRegularParameter = "AND|OR|IF|NOT|LIKE|DATEDIFF|DATEADD|WEEKNUM|WEEKDAY|DATEFORMAT|Y|M|D|H|I|S|COUNT|SUM|MAX|MIN|CONCAT|SEARCH|TEXT|PAD|REPLACE|VALUE|LEN|LEFT|RIGHT|MID";
private final static String leftCircleBracket="Unmatched closing '('"; private final static String leftCircleBracket = "Unmatched closing '('";
private final static String rightCircleBracket="Unmatched closing ')'"; private final static String rightCircleBracket = "Unmatched closing ')'";
private final static String leftSquareBracket="Unmatched closing '['"; private final static String leftSquareBracket = "Unmatched closing '['";
private final static String rightSquareeBracket="Unmatched closing ']'"; private final static String rightSquareeBracket = "Unmatched closing ']'";
private final static String leftBigBracket="Unmatched closing '{'"; private final static String leftBigBracket = "Unmatched closing '{'";
private final static String rightBigBracket="Unmatched closing '}'"; private final static String rightBigBracket = "Unmatched closing '}'";
public static boolean checkFuncExpress(String str){
filter(str);
return true;
}
public static boolean isContainChinese(String str) { public static boolean checkFuncExpress(String str) {
Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\|\\|\\。|\\|\\|\\《|\\》|\\“|\\”|\\|\\|\\|\\【|\\】]"); filter(str);
Matcher m = p.matcher(str); return true;
if (m.find()) { }
return true;
}
return false;
}
private static void filter(String formula){ public static boolean isContainChinese(String str) {
try { Pattern p = Pattern.compile("[\u4E00-\u9FA5|\\|\\|\\。|\\|\\|\\《|\\》|\\“|\\”|\\|\\|\\|\\【|\\】]");
testSymbol(formula); Matcher m = p.matcher(str);
checkNullRegular(formula); if (m.find()) {
checkOperatorNullParam(formula); return true;
formula=formula.replaceAll("","#"); }
String leftReplace=""; return false;
String rightReplace=""; }
leftReplace=formula.replaceAll("\\(","");
rightReplace=formula.replaceAll("\\)","");
if(leftReplace.length()>rightReplace.length()){
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(leftCircleBracket,formula,formula.lastIndexOf(")"));
throw patternSyntaxException;
}
if(leftReplace.length()<rightReplace.length()){
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(rightCircleBracket,formula,formula.indexOf("("));
throw patternSyntaxException;
}
leftReplace=formula.replaceAll("\\{",""); private static void filter(String formula) {
rightReplace=formula.replaceAll("}",""); try {
if(leftReplace.length()>rightReplace.length()){ testSymbol(formula);
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(leftBigBracket,formula,formula.lastIndexOf("}")); checkNullRegular(formula);
throw patternSyntaxException; checkOperatorNullParam(formula);
} formula = formula.replaceAll("", "#");
if(leftReplace.length()<rightReplace.length()){ String leftReplace = "";
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(rightBigBracket,formula,formula.indexOf("{")); String rightReplace = "";
throw patternSyntaxException; leftReplace = formula.replaceAll("\\(", "");
} rightReplace = formula.replaceAll("\\)", "");
if (leftReplace.length() > rightReplace.length()) {
PatternSyntaxException patternSyntaxException = new PatternSyntaxException(leftCircleBracket, formula, formula.lastIndexOf(")"));
throw patternSyntaxException;
}
if (leftReplace.length() < rightReplace.length()) {
PatternSyntaxException patternSyntaxException = new PatternSyntaxException(rightCircleBracket, formula, formula.indexOf("("));
throw patternSyntaxException;
}
leftReplace=formula.replaceAll("\\[",""); leftReplace = formula.replaceAll("\\{", "");
rightReplace=formula.replaceAll("]",""); rightReplace = formula.replaceAll("}", "");
if(leftReplace.length()>rightReplace.length()){ if (leftReplace.length() > rightReplace.length()) {
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(leftSquareBracket,formula,formula.lastIndexOf("]")); PatternSyntaxException patternSyntaxException = new PatternSyntaxException(leftBigBracket, formula, formula.lastIndexOf("}"));
throw patternSyntaxException; throw patternSyntaxException;
} }
if(leftReplace.length()<rightReplace.length()){ if (leftReplace.length() < rightReplace.length()) {
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(rightSquareeBracket,formula,formula.indexOf("[")); PatternSyntaxException patternSyntaxException = new PatternSyntaxException(rightBigBracket, formula, formula.indexOf("{"));
throw patternSyntaxException; throw patternSyntaxException;
} }
} catch (PatternSyntaxException e) { leftReplace = formula.replaceAll("\\[", "");
String error=e.getDescription().trim(); rightReplace = formula.replaceAll("]", "");
int errorIdx=e.getIndex(); if (leftReplace.length() > rightReplace.length()) {
int errorEndIdx=-1; PatternSyntaxException patternSyntaxException = new PatternSyntaxException(leftSquareBracket, formula, formula.lastIndexOf("]"));
switch (error){ throw patternSyntaxException;
case leftCircleBracket: }
error="'('括号没有找到"; if (leftReplace.length() < rightReplace.length()) {
errorEndIdx=-1; PatternSyntaxException patternSyntaxException = new PatternSyntaxException(rightSquareeBracket, formula, formula.indexOf("["));
break; throw patternSyntaxException;
case rightCircleBracket: }
error="'('括号没有闭合";
errorEndIdx=-1;
break;
case leftSquareBracket:
error="'['括号没有找到";
errorEndIdx=-1;
break;
case rightSquareeBracket:
error="'['括号没有闭合";
errorEndIdx=-1;
break;
case leftBigBracket:
error="'{'括号没有找到";
errorEndIdx=-1;
break;
case rightBigBracket:
error="'{'括号没有闭合";
errorEndIdx=-1;
break;
case "TRUE函数不能有参数":
errorEndIdx=errorIdx+4;
break;
case "FALSE函数不能有参数":
errorEndIdx=errorIdx+5;
break;
case "NOW函数不能有参数":
errorEndIdx=errorIdx+3;
break;
case "TODAY函数不能有参数":
errorEndIdx=errorIdx+5;
break;
} } catch (PatternSyntaxException e) {
JSONObject catchJson=null; String error = e.getDescription().trim();
if(errorEndIdx<0){ int errorIdx = e.getIndex();
catchJson= ErrorUtil.buildError(formula,errorIdx+1,null,error); int errorEndIdx = -1;
}else { switch (error) {
catchJson= ErrorUtil.buildError(formula,errorIdx+1,errorEndIdx,null,error); case leftCircleBracket:
} error = "'('括号没有找到";
errorEndIdx = -1;
break;
case rightCircleBracket:
error = "'('括号没有闭合";
errorEndIdx = -1;
break;
case leftSquareBracket:
error = "'['括号没有找到";
errorEndIdx = -1;
break;
case rightSquareeBracket:
error = "'['括号没有闭合";
errorEndIdx = -1;
break;
case leftBigBracket:
error = "'{'括号没有找到";
errorEndIdx = -1;
break;
case rightBigBracket:
error = "'{'括号没有闭合";
errorEndIdx = -1;
break;
case "TRUE函数不能有参数":
errorEndIdx = errorIdx + 4;
break;
case "FALSE函数不能有参数":
errorEndIdx = errorIdx + 5;
break;
case "NOW函数不能有参数":
errorEndIdx = errorIdx + 3;
break;
case "TODAY函数不能有参数":
errorEndIdx = errorIdx + 5;
break;
catchJson.put("formula",formula); }
throw new PatternSyntaxException(catchJson.toJSONString(),null,errorIdx+1); JSONObject catchJson = null;
} if (errorEndIdx < 0) {
} catchJson = ErrorUtil.buildError(formula, errorIdx + 1, null, error);
} else {
catchJson = ErrorUtil.buildError(formula, errorIdx + 1, errorEndIdx, null, error);
}
private static void checkNullRegular(String formula){ catchJson.put("formula", formula);
String filterPattern=null; throw new PatternSyntaxException(catchJson.toJSONString(), null, errorIdx + 1);
for(int i=0;i<checkRegularNullParameter.length;i++){ }
int eidx=formula.indexOf(checkRegularNullParameter[i]); }
if(eidx>=0){
if(FormulaContext.get().getValue(checkRegularNullParameter[i])!=null){
Integer paramCount=FormulaContext.get().getValue(checkRegularNullParameter[i]);
paramCount++;
FormulaContext.get().setValue(checkRegularNullParameter[i]);
}else {
FormulaContext.get().setValue(checkRegularNullParameter[i]);
}
filterPattern=checkRegularNullParameter[i]+"{1}\\({1}\\){1}";
Pattern pattern= Pattern.compile(filterPattern);
Matcher matcher=pattern.matcher(formula);
boolean excuteBool=matcher.find();
if(!excuteBool){
eidx=0;
Integer errorCount=FormulaContext.get().getFormulaJson().getInteger(checkRegularNullParameter[i]);
String [] errorCutArray=formula.split(checkRegularNullParameter[i]);
for (int fi=0;fi<errorCount;fi++){
eidx+=errorCutArray[fi].length();
if(errorCutArray.length>1&&fi>0){
eidx+=checkRegularNullParameter[i].length();
}
}
PatternSyntaxException patternSyntaxException=new PatternSyntaxException(checkRegularNullParameter[i]+"函数不能有参数",formula,eidx);
throw patternSyntaxException;
}
}else {
} private static void checkNullRegular(String formula) {
} String filterPattern = null;
} for (int i = 0; i < checkRegularNullParameter.length; i++) {
int eidx = formula.indexOf(checkRegularNullParameter[i]);
if (eidx >= 0) {
if (FormulaContext.get().getValue(checkRegularNullParameter[i]) != null) {
Integer paramCount = FormulaContext.get().getValue(checkRegularNullParameter[i]);
paramCount++;
FormulaContext.get().setValue(checkRegularNullParameter[i]);
} else {
FormulaContext.get().setValue(checkRegularNullParameter[i]);
}
filterPattern = checkRegularNullParameter[i] + "{1}\\({1}\\){1}";
Pattern pattern = Pattern.compile(filterPattern);
Matcher matcher = pattern.matcher(formula);
boolean excuteBool = matcher.find();
if (!excuteBool) {
eidx = 0;
Integer errorCount = FormulaContext.get().getFormulaJson().getInteger(checkRegularNullParameter[i]);
String[] errorCutArray = formula.split(checkRegularNullParameter[i]);
for (int fi = 0; fi < errorCount; fi++) {
eidx += errorCutArray[fi].length();
if (errorCutArray.length > 1 && fi > 0) {
eidx += checkRegularNullParameter[i].length();
}
}
PatternSyntaxException patternSyntaxException = new PatternSyntaxException(checkRegularNullParameter[i] + "函数不能有参数", formula, eidx);
throw patternSyntaxException;
}
} else {
private static void checkOperatorNullParam(String formula){ }
formula=formula.trim(); }
JSONObject errorJson=new JSONObject(); }
Map<String,Integer> operMap=new HashMap<>();
for (int i=0;i<operSymbs.length;i++){ private static void checkOperatorNullParam(String formula) {
String operSymb=operSymbs[i]; formula = formula.trim();
if(formula.indexOf(operSymb)<0){ JSONObject errorJson = new JSONObject();
continue; Map<String, Integer> operMap = new HashMap<>();
}
if(operMap.get(operSymb)==null){
operMap.put(operSymb,1);
}else{
operMap.put(operSymb,operMap.get(operSymb)+1);
}
String commonP="("+operSymb+")";
Pattern wrongPone=Pattern.compile("^.+"+commonP+"+?$");
Pattern wrongPtwo=Pattern.compile("^"+commonP+"+?.+$");
Pattern wrongPthree=Pattern.compile("^"+commonP+"+?$");
Matcher m=wrongPone.matcher(formula); for (int i = 0; i < operSymbs.length; i++) {
String operSymb = operSymbs[i];
if (formula.indexOf(operSymb) < 0) {
continue;
}
if (operMap.get(operSymb) == null) {
operMap.put(operSymb, 1);
} else {
operMap.put(operSymb, operMap.get(operSymb) + 1);
}
String commonP = "(" + operSymb + ")";
Pattern wrongPone = Pattern.compile("^.+" + commonP + "+?$");
Pattern wrongPtwo = Pattern.compile("^" + commonP + "+?.+$");
Pattern wrongPthree = Pattern.compile("^" + commonP + "+?$");
if(m.find()){ Matcher m = wrongPone.matcher(formula);
errorJson= ErrorUtil.buildError(operSymb,formula.length(),operMap.get(operSymb),"操作符两端的参数不能为空");
throw new RuntimeException(errorJson.getString("msg"));
}
Matcher mtwo=wrongPtwo.matcher(formula); if (m.find()) {
if(mtwo.find()){ errorJson = ErrorUtil.buildError(operSymb, formula.length(), operMap.get(operSymb), "操作符两端的参数不能为空");
errorJson= ErrorUtil.buildError(operSymb,1,operMap.get(operSymb),"操作符两端的参数不能为空"); throw new RuntimeException(errorJson.getString("msg"));
throw new RuntimeException(errorJson.getString("msg")); }
}
Matcher mthree=wrongPthree.matcher(formula); Matcher mtwo = wrongPtwo.matcher(formula);
if(mthree.find()){ if (mtwo.find()) {
errorJson= ErrorUtil.buildError(operSymb,1,operMap.get(operSymb),"操作符两端的参数不能为空"); //-负数特殊处理
throw new RuntimeException(errorJson.getString("msg")); if (StringUtils.equals(operSymb, "-")) {
} return;
}
errorJson = ErrorUtil.buildError(operSymb, 1, operMap.get(operSymb), "操作符两端的参数不能为空");
throw new RuntimeException(errorJson.getString("msg"));
}
} Matcher mthree = wrongPthree.matcher(formula);
if (mthree.find()) {
errorJson = ErrorUtil.buildError(operSymb, 1, operMap.get(operSymb), "操作符两端的参数不能为空");
throw new RuntimeException(errorJson.getString("msg"));
}
}
} }
public static void testSymbol(String formula){
Pattern pattern=Pattern.compile(",+?\\s*\\)");
Matcher m=pattern.matcher(formula);
if(m.find()){
int idx=formula.indexOf(m.group());
PatternSyntaxException patternSyntaxException=new PatternSyntaxException("参数格式错误",formula,idx);
throw patternSyntaxException;
}
}
public static void main(String args[]){ public static void testSymbol(String formula) {
Pattern pattern = Pattern.compile(",+?\\s*\\)");
Matcher m = pattern.matcher(formula);
if (m.find()) {
int idx = formula.indexOf(m.group());
PatternSyntaxException patternSyntaxException = new PatternSyntaxException("参数格式错误", formula, idx);
throw patternSyntaxException;
}
}
checkOperatorNullParam(" abc>="); public static void main(String args[]) {
}
checkOperatorNullParam(" abc>=");
}
} }

View File

@ -3,7 +3,6 @@ package com.engine.salary.service;
import com.engine.salary.entity.report.po.SalaryAcctResultReportPO; import com.engine.salary.entity.report.po.SalaryAcctResultReportPO;
import java.util.Collection; import java.util.Collection;
import java.util.List;
/** /**
* 薪资报表 * 薪资报表
@ -15,23 +14,6 @@ import java.util.List;
**/ **/
public interface SalaryAcctReportService { public interface SalaryAcctReportService {
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
List<String> decrypt(List<String> s);
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
String decrypt(String s);
/** /**
* 保存核算记录报表数据 * 保存核算记录报表数据
* @param pos * @param pos

View File

@ -1477,16 +1477,6 @@ public class SISchemeServiceImpl extends Service implements SISchemeService {
} }
private List<InsuranceSchemeDetailPO> decryptSchemeDetailList(List<InsuranceSchemeDetailPO> encryptList) {
encryptList.forEach(item -> {
item.setUpperLimit(AESEncryptUtil.decrypt(item.getUpperLimit()));
item.setFixedCost(AESEncryptUtil.decrypt(item.getFixedCost()));
item.setLowerLimit(AESEncryptUtil.decrypt(item.getLowerLimit()));
});
return encryptList;
}
/** /**
* 校验待新增的社保福利档案数据 * 校验待新增的社保福利档案数据
*/ */

View File

@ -28,6 +28,7 @@ import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.UserStatusEnum;
import com.engine.salary.enums.salaryaccounting.LockStatusEnum; import com.engine.salary.enums.salaryaccounting.LockStatusEnum;
import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum; import com.engine.salary.enums.salaryaccounting.SalaryAcctResultDataSourceEnum;
import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum;
import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.sys.SalarySysConfMapper; import com.engine.salary.mapper.sys.SalarySysConfMapper;
import com.engine.salary.service.*; import com.engine.salary.service.*;
@ -442,6 +443,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
.map(salarySobItemPO -> SalaryAcctImportFieldDTO.ImportFieldDTO.builder() .map(salarySobItemPO -> SalaryAcctImportFieldDTO.ImportFieldDTO.builder()
.salaryItemId(salarySobItemPO.getSalaryItemId()) .salaryItemId(salarySobItemPO.getSalaryItemId())
.salaryItemName(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY)) .salaryItemName(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY))
.dataType(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getDataType).orElse(SalaryDataTypeEnum.NUMBER.getValue()))
.build()) .build())
.collect(Collectors.toList()); .collect(Collectors.toList());
@ -458,6 +460,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
.map(salarySobItemPO ->SalaryAcctImportFieldDTO.ImportFieldDTO.builder() .map(salarySobItemPO ->SalaryAcctImportFieldDTO.ImportFieldDTO.builder()
.salaryItemId(salarySobItemPO.getSalaryItemId()) .salaryItemId(salarySobItemPO.getSalaryItemId())
.salaryItemName(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY)) .salaryItemName(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getName).orElse(StringUtils.EMPTY))
.dataType(Optional.ofNullable(salaryItemMap.get(salarySobItemPO.getSalaryItemId())).map(SalaryItemPO::getDataType).orElse(SalaryDataTypeEnum.NUMBER.getValue()))
.build()) .build())
.collect(Collectors.toList()); .collect(Collectors.toList());

View File

@ -12,7 +12,6 @@ import com.engine.salary.sys.enums.OpenEnum;
import com.engine.salary.sys.service.SalarySysConfService; import com.engine.salary.sys.service.SalarySysConfService;
import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl;
import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.db.MapperProxyFactory;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import weaver.hrm.User; import weaver.hrm.User;
@ -42,31 +41,6 @@ public class SalaryAcctReportServiceImpl extends Service implements SalaryAcctRe
return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); return ServiceUtil.getService(SalarySysConfServiceImpl.class, user);
} }
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
@Override
public List<String> decrypt(List<String> s) {
if (s != null) {
return s.stream().map(AESEncryptUtil::decrypt).collect(Collectors.toList());
}
return Lists.newArrayList();
}
/**
* 薪酬解密方法
*
* @param s 待解密字符串
* @return
*/
@Override
public String decrypt(String s) {
return AESEncryptUtil.decrypt(s);
}
/** /**
* 保存核算报表数据 * 保存核算报表数据
* *

View File

@ -354,6 +354,29 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
@Override @Override
public Map<String, Object> sumRow(SalaryAcctResultQueryParam queryParam) { public Map<String, Object> sumRow(SalaryAcctResultQueryParam queryParam) {
//其他条件
List<SalaryAcctResultQueryParam.OtherCondition> otherConditions = queryParam.getOtherConditions();
if(CollectionUtils.isNotEmpty(otherConditions)){
List<Long> items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList());
List<SalaryAcctResultPO> list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items);
for (int i = 0; i < otherConditions.size(); i++) {
SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i);
Long itemId = otherCondition.getItemId();
FilterEnum filter = otherCondition.getFilter();
List<String> params = otherCondition.getParams();
list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList());
}
List<Long> salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList());
if (CollectionUtils.isEmpty(salaryAcctEmpId)) {
//条件不满足直接返回空列表
return new HashMap<>();
} else {
queryParam.setIds(salaryAcctEmpId);
}
}
// 查询薪资核算人员 // 查询薪资核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam); List<SalaryAcctEmployeePO> salaryAcctEmployeePOS = getSalaryAcctEmployeeService(user).listByResultQueryParam(queryParam);

View File

@ -2,7 +2,6 @@ package com.engine.salary.service.impl;
import com.engine.common.util.ServiceUtil; import com.engine.common.util.ServiceUtil;
import com.engine.core.impl.Service; import com.engine.core.impl.Service;
import com.engine.salary.encrypt.AESEncryptUtil;
import com.engine.salary.encrypt.EncryptUtil; import com.engine.salary.encrypt.EncryptUtil;
import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO; import com.engine.salary.entity.salaryacct.bo.SalaryAcctResultBO;
@ -17,7 +16,10 @@ import com.engine.salary.entity.salaryformula.ExpressFormula;
import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO; import com.engine.salary.entity.salarysob.bo.SalarySobItemAggregateBO;
import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO; import com.engine.salary.entity.salarysob.dto.SalarySobItemAggregateDTO;
import com.engine.salary.entity.salarysob.po.*; import com.engine.salary.entity.salarysob.po.SalarySobEmpFieldPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemGroupPO;
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
import com.engine.salary.entity.salarysob.po.SalarySobPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import com.engine.salary.exception.SalaryRunTimeException; import com.engine.salary.exception.SalaryRunTimeException;
import com.engine.salary.mapper.salaryacct.ExcelAcctResultMapper; import com.engine.salary.mapper.salaryacct.ExcelAcctResultMapper;
@ -268,14 +270,4 @@ public class SalaryComparisonResultServiceImpl extends Service implements Salary
public void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) { public void deleteBySalaryAcctRecordIds(Collection<Long> salaryAcctRecordIds) {
getExcelAcctResultMapper().deleteBySalaryAcctRecordIds(salaryAcctRecordIds); getExcelAcctResultMapper().deleteBySalaryAcctRecordIds(salaryAcctRecordIds);
} }
private Collection<ExcelAcctResultPO> encryptCollection(Collection<ExcelAcctResultPO> collection) {
collection.forEach(item -> item.setResultValue(AESEncryptUtil.encrypt(item.getResultValue())));
return collection;
}
private Collection<ExcelAcctResultPO> decryptCollection(Collection<ExcelAcctResultPO> collection) {
collection.forEach(item -> item.setResultValue(AESEncryptUtil.decrypt(item.getResultValue())));
return collection;
}
} }

View File

@ -1,9 +1,7 @@
package com.engine.salary.transmethod; package com.engine.salary.transmethod;
import com.engine.salary.encrypt.AESEncryptUtil;
public class EncryptTransMethod { public class EncryptTransMethod {
public static String decrypt(String source) { // public static String decrypt(String source) {
return AESEncryptUtil.decrypt(source); // return AESEncryptUtil.decrypt(source);
} // }
} }

View File

@ -20,6 +20,7 @@ import com.engine.salary.util.SalaryI18nUtil;
import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.PageInfo;
import com.engine.salary.wrapper.SISchemeWrapper; import com.engine.salary.wrapper.SISchemeWrapper;
import io.swagger.v3.oas.annotations.parameters.RequestBody; import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -48,15 +49,16 @@ import java.util.stream.Collectors;
* @Date 2022/3/7 * @Date 2022/3/7
* @Version V1.0 * @Version V1.0
**/ **/
@Slf4j
public class SISchemeController { public class SISchemeController {
private SISchemeService getService(User user) { private SISchemeService getService(User user) {
return ServiceUtil.getService(SISchemeServiceImpl.class,user); return ServiceUtil.getService(SISchemeServiceImpl.class, user);
} }
private SISchemeWrapper getSISchemeWrapper(User user) { private SISchemeWrapper getSISchemeWrapper(User user) {
return ServiceUtil.getService(SISchemeWrapper.class,user); return ServiceUtil.getService(SISchemeWrapper.class, user);
} }
private SIAccountService getSIAccountService(User user) { private SIAccountService getSIAccountService(User user) {
@ -65,6 +67,7 @@ public class SISchemeController {
/** /**
* 查询福利方案表单 * 查询福利方案表单
*
* @param request * @param request
* @param response * @param response
* @return * @return
@ -77,13 +80,14 @@ public class SISchemeController {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request); Map<String, Object> map = ParamUtil.request2Map(request);
//InsuranceSchemeDTO insuranceSchemeDTO = InsuranceSchemeDTO.builder().welfareType(welfareTypeEnum).build(); //InsuranceSchemeDTO insuranceSchemeDTO = InsuranceSchemeDTO.builder().welfareType(welfareTypeEnum).build();
map.put("welfareTypeEnum",welfareTypeEnum); map.put("welfareTypeEnum", welfareTypeEnum);
return new ResponseResult< Map<String, Object>, Map<String, Object>>(user).run(getService(user)::getForm,map); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::getForm, map);
} }
/** /**
* 查询福利方案列表 * 查询福利方案列表
*
* @param request * @param request
* @param response * @param response
* @return * @return
@ -99,6 +103,7 @@ public class SISchemeController {
/** /**
* 新增 * 新增
*
* @param request * @param request
* @param response * @param response
* @return * @return
@ -109,12 +114,13 @@ public class SISchemeController {
public String insertScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) { public String insertScheme(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request); Map<String, Object> map = ParamUtil.request2Map(request);
map.put("insuranceSchemeReqParam",insuranceSchemeReqParam); map.put("insuranceSchemeReqParam", insuranceSchemeReqParam);
return new ResponseResult< Map<String, Object>, Map<String, Object>>(user).run(getService(user)::insertScheme,map); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::insertScheme, map);
} }
/** /**
* 编辑方案主表和明细表数据 * 编辑方案主表和明细表数据
*
* @param request * @param request
* @param response * @param response
* @param insuranceSchemeReqParam * @param insuranceSchemeReqParam
@ -123,15 +129,16 @@ public class SISchemeController {
@POST @POST
@Path("/update") @Path("/update")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String update(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) { public String update(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request); Map<String, Object> map = ParamUtil.request2Map(request);
map.put("insuranceSchemeReqParam",insuranceSchemeReqParam); map.put("insuranceSchemeReqParam", insuranceSchemeReqParam);
return new ResponseResult< Map<String, Object>, Map<String, Object>>(user).run(getService(user)::update,map); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::update, map);
} }
/** /**
* 编辑方案明细表数据 * 编辑方案明细表数据
*
* @param request * @param request
* @param response * @param response
* @param schemeDetailList * @param schemeDetailList
@ -140,13 +147,14 @@ public class SISchemeController {
@POST @POST
@Path("/updateSchemeDetail") @Path("/updateSchemeDetail")
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public String updateSchemeDetail(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody List<InsuranceSchemeDetailUpdateParam> schemeDetailList) { public String updateSchemeDetail(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody List<InsuranceSchemeDetailUpdateParam> schemeDetailList) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
return new ResponseResult< List<InsuranceSchemeDetailUpdateParam> , List<String>>(user).run(getService(user)::updateSchemeDetail,schemeDetailList); return new ResponseResult<List<InsuranceSchemeDetailUpdateParam>, List<String>>(user).run(getService(user)::updateSchemeDetail, schemeDetailList);
} }
/** /**
* 删除(接口中暂无) * 删除(接口中暂无)
*
* @param request * @param request
* @param response * @param response
* @param insuranceSchemeReqParam * @param insuranceSchemeReqParam
@ -158,13 +166,14 @@ public class SISchemeController {
public String deleteTaxRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) { public String deleteTaxRate(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody InsuranceSchemeReqParam insuranceSchemeReqParam) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request); Map<String, Object> map = ParamUtil.request2Map(request);
map.put("ids",insuranceSchemeReqParam.getIds()); map.put("ids", insuranceSchemeReqParam.getIds());
map.put("welfareTypeId", insuranceSchemeReqParam.getWelfareTypeEnum().getValue()); map.put("welfareTypeId", insuranceSchemeReqParam.getWelfareTypeEnum().getValue());
return new ResponseResult< Map<String, Object>, Map<String, Object>>(user).run(getService(user)::delete,map); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::delete, map);
} }
/** /**
* 复制福利方案表单 * 复制福利方案表单
*
* @param request * @param request
* @param response * @param response
* @return * @return
@ -176,55 +185,61 @@ public class SISchemeController {
@QueryParam("id") Long id, @QueryParam("schemeName") String schemeName) { @QueryParam("id") Long id, @QueryParam("schemeName") String schemeName) {
User user = HrmUserVarify.getUser(request, response); User user = HrmUserVarify.getUser(request, response);
Map<String, Object> map = ParamUtil.request2Map(request); Map<String, Object> map = ParamUtil.request2Map(request);
map.put("id",id); map.put("id", id);
map.put("schemeName",schemeName); map.put("schemeName", schemeName);
return new ResponseResult< Map<String, Object>, Map<String, Object>>(user).run(getService(user)::copyScheme,map); return new ResponseResult<Map<String, Object>, Map<String, Object>>(user).run(getService(user)::copyScheme, map);
} }
/** /**
* 导出档案 * 导出档案
*
* @return * @return
*/ */
@GET @GET
@Path("/export") @Path("/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM) @Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response export(@Context HttpServletRequest request, @Context HttpServletResponse response) { public Response export(@Context HttpServletRequest request, @Context HttpServletResponse response) {
InsuranceArchivesListParam param = buildInsuranceArchivesListParam(request); try {
User user = HrmUserVarify.getUser(request, response); InsuranceArchivesListParam param = buildInsuranceArchivesListParam(request);
XSSFWorkbook workbook = getService(user).export(param); User user = HrmUserVarify.getUser(request, response);
String fileName ; XSSFWorkbook workbook = getService(user).export(param);
//表头 String fileName;
if (param.getRunStatuses().size() > 0) { //表头
if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { if (param.getRunStatuses().size() > 0) {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel()); if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) {
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) { fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel());
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + "在缴员工"); } else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) {
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 1) { fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + "在缴员工");
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + EmployeeStatusEnum.STAY_DEL.getDefaultLabel()); } else if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 1) {
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()) && param.getRunStatuses().size() == 2) { fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + EmployeeStatusEnum.STAY_DEL.getDefaultLabel());
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + "停缴员工"); } else if (param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()) && param.getRunStatuses().size() == 2) {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出" + "-" + "停缴员工");
} else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出");
}
} else { } else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出"); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出");
} }
} else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导出");
}
fileName = fileName + LocalDate.now(); fileName = fileName + LocalDate.now();
try { try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
} catch (UnsupportedEncodingException e) { } catch (UnsupportedEncodingException e) {
e.printStackTrace(); e.printStackTrace();
} }
StreamingOutput output = outputStream -> { StreamingOutput output = outputStream -> {
workbook.write(outputStream); workbook.write(outputStream);
outputStream.flush(); outputStream.flush();
}; };
return Response.ok(output) return Response.ok(output)
.header("Content-disposition", "attachment;filename=" + fileName) .header("Content-disposition", "attachment;filename=" + fileName)
.header("Cache-Control", "no-cache").build(); .header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("社保福利档案导出异常", e);
throw e;
}
} }
@ -248,58 +263,63 @@ public class SISchemeController {
/** /**
* 导出档案和档案模板 * 导出档案和档案模板
*
* @return * @return
*/ */
@GET @GET
@Path("/template/export") @Path("/template/export")
@Produces(MediaType.APPLICATION_OCTET_STREAM) @Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response exportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) { public Response exportTemplate(@Context HttpServletRequest request, @Context HttpServletResponse response) {
try {
InsuranceArchivesListParam param = buildInsuranceArchivesListParam(request);
InsuranceArchivesListParam param = buildInsuranceArchivesListParam(request); param.setExportData(Boolean.valueOf(request.getParameter("exportData")));
param.setExtWelArchiveList(Boolean.valueOf(request.getParameter("extWelArchiveList")));
param.setExportData(Boolean.valueOf(request.getParameter("exportData"))); User user = HrmUserVarify.getUser(request, response);
param.setExtWelArchiveList(Boolean.valueOf(request.getParameter("extWelArchiveList"))); if (param.getInspectAll() != null && param.getInspectAll()) {
User user = HrmUserVarify.getUser(request, response); List<InsuranceAccountInspectPO> insuranceAccountInspectPOS = getSIAccountService(user).allInspects(param.getIds(), param.getBillMonth());
if (param.getInspectAll() != null && param.getInspectAll()) { param.setEmployeeIds(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getEmployeeId).distinct().collect(Collectors.toList()));
List<InsuranceAccountInspectPO> insuranceAccountInspectPOS = getSIAccountService(user).allInspects(param.getIds(), param.getBillMonth()); }
param.setEmployeeIds(insuranceAccountInspectPOS.stream().map(InsuranceAccountInspectPO::getEmployeeId).distinct().collect(Collectors.toList())); XSSFWorkbook workbook = getService(user).exportTemplate(param);
} String fileName;
XSSFWorkbook workbook = getService(user).exportTemplate(param); //表头
String fileName; if (param.isExtWelArchiveList()) {
//表头 fileName = SalaryI18nUtil.getI18nLabel(0, "社保福利档案导入模板") + "-" + SalaryI18nUtil.getI18nLabel(542679, "非系统人员");
if (param.isExtWelArchiveList()) { } else if (param.getRunStatuses().size() > 0) {
fileName = SalaryI18nUtil.getI18nLabel(0, "社保福利档案导入模板") + "-" + SalaryI18nUtil.getI18nLabel(542679, "非系统人员"); if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) {
} else if (param.getRunStatuses().size() > 0) { fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel());
if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_ADD.getValue()) && param.getRunStatuses().size() == 1) { } else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + EmployeeStatusEnum.STAY_ADD.getDefaultLabel()); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + "在缴员工");
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.PAYING.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 2) { } else if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 1) {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + "在缴员工"); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + EmployeeStatusEnum.STAY_DEL.getDefaultLabel());
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.STAY_DEL.getValue()) && param.getRunStatuses().size() == 1) { } else if (param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()) && param.getRunStatuses().size() == 2) {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + EmployeeStatusEnum.STAY_DEL.getDefaultLabel()); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + "停缴员工");
} else if (param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_ADD.getValue()) && param.getRunStatuses().contains(EmployeeStatusEnum.STOP_PAYMENT_FROM_DEL.getValue()) && param.getRunStatuses().size() == 2) { } else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板" + "-" + "停缴员工"); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板");
}
} else { } else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板"); fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板");
} }
} else {
fileName = SalaryI18nUtil.getI18nLabel(85368, "社保福利档案导入模板");
fileName = fileName + LocalDate.now();
try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StreamingOutput output = outputStream -> {
workbook.write(outputStream);
outputStream.flush();
};
return Response.ok(output)
.header("Content-disposition", "attachment;filename=" + fileName)
.header("Cache-Control", "no-cache").build();
} catch (Exception e) {
log.error("社保福利档案模板导出异常", e);
throw e;
} }
fileName = fileName + LocalDate.now();
try {
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
StreamingOutput output = outputStream -> {
workbook.write(outputStream);
outputStream.flush();
};
return Response.ok(output)
.header("Content-disposition", "attachment;filename=" + fileName)
.header("Cache-Control", "no-cache").build();
} }
@NotNull @NotNull
@ -307,13 +327,13 @@ public class SISchemeController {
InsuranceArchivesListParam param = new InsuranceArchivesListParam(); InsuranceArchivesListParam param = new InsuranceArchivesListParam();
String ids = request.getParameter("ids"); String ids = request.getParameter("ids");
if(StringUtils.isNotBlank(ids)){ if (StringUtils.isNotBlank(ids)) {
param.setIds( Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList())); param.setIds(Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList()));
} }
String runStatuses = request.getParameter("runStatuses"); String runStatuses = request.getParameter("runStatuses");
if(StringUtils.isNotBlank(runStatuses)){ if (StringUtils.isNotBlank(runStatuses)) {
param.setRunStatuses( Arrays.stream(runStatuses.split(",")).map(String::valueOf).collect(Collectors.toList())); param.setRunStatuses(Arrays.stream(runStatuses.split(",")).map(String::valueOf).collect(Collectors.toList()));
} }
String statusesStr = request.getParameter("statusesStr"); String statusesStr = request.getParameter("statusesStr");
@ -360,5 +380,4 @@ public class SISchemeController {
} }
} }