This commit is contained in:
parent
5ec4f9e649
commit
a19b19e23d
|
|
@ -56,7 +56,7 @@ public class SalaryWeaTable<T> extends WeaTable {
|
|||
Arrays.stream(operates).forEach(o -> {
|
||||
String text = o.text();
|
||||
int labelId = o.labelId();
|
||||
String htmlLabelName = SystemEnv.getHtmlLabelName(labelId, user.getLanguage());
|
||||
String htmlLabelName = SalaryI18nUtil.getI18nLabel(labelId, user.getLanguage());
|
||||
if (StringUtils.isNotBlank(htmlLabelName)) {
|
||||
text = htmlLabelName;
|
||||
}
|
||||
|
|
@ -86,7 +86,7 @@ public class SalaryWeaTable<T> extends WeaTable {
|
|||
SalaryTableColumn columnAnn = f.getAnnotation(SalaryTableColumn.class);
|
||||
String text = columnAnn.text();
|
||||
int labelId = columnAnn.labelId();
|
||||
String htmlLabelName = SystemEnv.getHtmlLabelName(labelId, user.getLanguage());
|
||||
String htmlLabelName = SalaryI18nUtil.getI18nLabel(labelId, user.getLanguage());
|
||||
if (StringUtils.isNotBlank(htmlLabelName)) {
|
||||
text = htmlLabelName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,10 +47,10 @@ public class AttendQuoteDataBO {
|
|||
});
|
||||
}
|
||||
|
||||
// public static SimpleEmployee getCurrentUser4Remote() {
|
||||
// SimpleEmployee se = UserContext.getCurrentUser();
|
||||
// public static DataCollectionEmployee getCurrentUser4Remote() {
|
||||
// DataCollectionEmployee se = UserContext.getCurrentUser();
|
||||
// if(se != null){
|
||||
// SimpleEmployee simple = new SimpleEmployee();
|
||||
// DataCollectionEmployee simple = new DataCollectionEmployee();
|
||||
// simple.setId(se.getId());
|
||||
// simple.setUserId(se.getUserId());
|
||||
// simple.setUsername(se.getUsername());
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
//import com.weaver.hrm.salary.entity.salaryacct.po.SalaryCheckResultRecordPO;
|
||||
//import com.weaver.hrm.salary.entity.salarysob.po.SalarySobCheckRulePO;
|
||||
//import com.weaver.hrm.salary.util.SalaryEntityUtil;
|
||||
//import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
//import com.weaver.teams.domain.user.DataCollectionEmployee;
|
||||
//import org.apache.commons.collections4.CollectionUtils;
|
||||
//import org.apache.commons.lang3.StringUtils;
|
||||
//import org.apache.commons.lang3.math.NumberUtils;
|
||||
|
|
@ -71,13 +71,13 @@
|
|||
// public static List<SalaryCheckResultRecordListDTO> convert2RecordListDTO(List<SalaryCheckResultRecordPO> salaryCheckResultRecords,
|
||||
// List<SalarySobCheckRulePO> salarySobCheckRules,
|
||||
// List<ExpressFormula> expressFormulas,
|
||||
// List<SimpleEmployee> simpleEmployees) {
|
||||
// List<DataCollectionEmployee> simpleEmployees) {
|
||||
// if (CollectionUtils.isEmpty(salaryCheckResultRecords)) {
|
||||
// return Collections.emptyList();
|
||||
// }
|
||||
// Map<Long, String> formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
|
||||
// Map<Long, String> checkRuleMap = SalaryEntityUtil.convert2Map(salarySobCheckRules, SalarySobCheckRulePO::getId, SalarySobCheckRulePO::getName);
|
||||
// Map<Long, String> employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId, SimpleEmployee::getName);
|
||||
// Map<Long, String> employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getName);
|
||||
// return salaryCheckResultRecords.stream()
|
||||
// .map(e -> SalaryCheckResultRecordListDTO.builder()
|
||||
// .id(e.getId())
|
||||
|
|
|
|||
|
|
@ -1,85 +0,0 @@
|
|||
package com.engine.salary.formlua.data;
|
||||
|
||||
import com.weaver.common.form.data.FormData;
|
||||
import com.weaver.excel.formula.api.entity.ExpressFormula;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 公式数据交互service
|
||||
* @author Failymiss
|
||||
*
|
||||
*/
|
||||
public interface ExpressDataService {
|
||||
|
||||
public Map<String,Object> buildCndFilter(Long formId, Long fieldId, String express, Map<String, Object> params, String module, SimpleEmployee employee);
|
||||
|
||||
/**
|
||||
* 统计函数条件校验
|
||||
* @param formId
|
||||
* @param fieldId
|
||||
* @param funcName
|
||||
* @param express
|
||||
* @param params
|
||||
* @param module
|
||||
* @param employee
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Double getAggregateDataTest(Long formId, Long fieldId, String funcName,String module,Map<String, Object> params,SimpleEmployee employee) throws Exception;
|
||||
|
||||
/**
|
||||
* @param formId
|
||||
* @param fieldId
|
||||
* @param funcName
|
||||
* @param express
|
||||
* @param params
|
||||
* @param module
|
||||
* @param employee
|
||||
* @return
|
||||
*/
|
||||
public Double getAggregateData(Long formId, Long fieldId, String funcName, String express, Map<String, Object> params, String module, SimpleEmployee employee);
|
||||
|
||||
public Double getCommonAggregateData(Long formId,Long fieldId,String funcName,List<DataType> cndDataType,String moduleSource,SimpleEmployee employee);
|
||||
|
||||
/**
|
||||
* formdata封装成函数需要的数据结构
|
||||
* @param fieldIds 字段id
|
||||
* @param dataId 当前数据id(上报id,审批id)
|
||||
* @param module 当前数据module
|
||||
* @param employee 操作人
|
||||
* @return
|
||||
*/
|
||||
// public Map<String, DataType> bulidDataType(List<String> fieldIds, Long dataId, ModuleSource module, SimpleEmployee employee);
|
||||
|
||||
/**
|
||||
* @param fieldIds
|
||||
* @param formData
|
||||
* @param module
|
||||
* @param employee
|
||||
* @return
|
||||
*/
|
||||
public Map<String,DataType> bulidDataType(List<String> fieldIds, FormData formData, String module,SimpleEmployee employee);
|
||||
|
||||
/**
|
||||
* 测试统计筛选条件
|
||||
*/
|
||||
public void testFunc(SimpleEmployee employee);
|
||||
|
||||
String getDataType(String componentKey);
|
||||
|
||||
/**
|
||||
* 给规则库更新时构建筛选条件的一个接口
|
||||
* @param formula
|
||||
* @param targetFormId
|
||||
* @param employee
|
||||
* @param formData
|
||||
* @param module
|
||||
* @return
|
||||
*/
|
||||
Map<String,Object> buildFilterParam(ExpressFormula formula, Long targetFormId, SimpleEmployee employee, FormData formData, String module);
|
||||
|
||||
}
|
||||
|
|
@ -1,662 +0,0 @@
|
|||
package com.engine.salary.formlua.data;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.weaver.common.base.entity.result.WeaResult;
|
||||
import com.weaver.common.form.FreeFormAssistService;
|
||||
import com.weaver.common.form.FreeFormService;
|
||||
import com.weaver.common.form.FreeStatAssistService;
|
||||
import com.weaver.common.form.component.base.ComponentConfig;
|
||||
import com.weaver.common.form.component.base.ComponentType;
|
||||
import com.weaver.common.form.constant.FormGroup;
|
||||
import com.weaver.common.form.data.FormData;
|
||||
import com.weaver.common.form.data.FormDataStatus;
|
||||
import com.weaver.common.form.data.detail.FormDataDetail;
|
||||
import com.weaver.common.form.data.option.FormDataOption;
|
||||
import com.weaver.common.form.data.text.FormDataText;
|
||||
import com.weaver.common.form.metadata.ModuleSource;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.common.form.remoteService.RemoteFreeStatService;
|
||||
import com.weaver.common.form.stat.FilterFormData;
|
||||
import com.weaver.common.form.stat.domain.search.FilterFormDataParam;
|
||||
import com.weaver.common.form.stat.service.serarch.FilterFormDataSearchService;
|
||||
import com.weaver.context.WeaverSentinelContext;
|
||||
import com.weaver.excel.formula.api.entity.ExpressFormula;
|
||||
import com.weaver.excel.formula.api.entity.FormulaVar;
|
||||
import com.weaver.excel.formula.core.rpc.ExcelDubboInvoker;
|
||||
import com.weaver.excel.formula.core.rpc.RemoteExcelService;
|
||||
import com.weaver.excel.formula.data.func.QlExpressUtil;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.excel.formula.entity.parameter.FormulaContext;
|
||||
import com.weaver.excel.formula.entity.parameter.standard.AggFunc;
|
||||
import com.weaver.excel.formula.entity.parameter.standard.ExcelResult;
|
||||
import com.weaver.excel.formula.entity.parameter.standard.FormulaFilterData;
|
||||
import com.weaver.excel.formula.util.ExcelParamUtil;
|
||||
import com.weaver.excel.formula.util.standard.ExcelTransUtil;
|
||||
import com.weaver.framework.rpc.annotation.RpcReference;
|
||||
import com.weaver.teams.core.orm.mybatis.Page;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.formreport.remote.RemoteFormReportService;
|
||||
import com.weaver.utils.WeaverDubboSentinelUtil;
|
||||
import com.weaver.workflow.common.entity.list.requestlist.RequestListDataVoEntity;
|
||||
import com.weaver.workflow.common.entity.list.requestlist.RequestListSearchConditionEntity;
|
||||
import com.weaver.workflow.list.api.rest.publicapi.WflRequestListFormRest;
|
||||
import com.weaver.workflow.list.api.rest.publicapi.WflSearchConditionRest;
|
||||
import com.weaver.workflow.report.api.rest.reportstat.WfcReportStatRest;
|
||||
import org.apache.dubbo.rpc.RpcException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@SuppressWarnings("unused")
|
||||
public class ExpressDataServiceImpl implements ExpressDataService {
|
||||
|
||||
protected final Logger logger = LoggerFactory.getLogger(getClass());
|
||||
@Autowired
|
||||
protected FreeFormAssistService freeFormAssistService;
|
||||
@RpcReference(group = FormGroup.WORKFLOW)
|
||||
protected RemoteFreeStatService remoteFlowFreeStatService;
|
||||
@Autowired
|
||||
private FreeStatAssistService freeStatAssistService;
|
||||
@RpcReference(group = "biaoge")
|
||||
protected RemoteExcelService remoteExcelService;
|
||||
@RpcReference(group = FormGroup.FORMREPORT)
|
||||
protected RemoteFreeStatService remoteReportFreeStatService;
|
||||
@Autowired
|
||||
private QlExpressUtil qlExpressUtil;
|
||||
@RpcReference
|
||||
RemoteFormReportService remoteFormReportService;
|
||||
// @RpcReference
|
||||
// private WfcSearchConditionRest wfcSearchConditionRest;
|
||||
@RpcReference(group = "workflow")
|
||||
private WflSearchConditionRest wflSearchConditionRest;
|
||||
// @RpcReference(group = "workflow",timeout = 300000)
|
||||
// private WfcRequestListFormRest wfcRequestListFormRpc;
|
||||
@RpcReference(group = "workflow")
|
||||
private WflRequestListFormRest wflRequestListFormRest;
|
||||
@Autowired
|
||||
private ExcelDubboInvoker excelDubboInvoker;
|
||||
@Autowired
|
||||
private ExcelTransUtil excelTransUtil;
|
||||
// @RpcReference(group = "workflow")
|
||||
// private WfcRequestListFormRest wfcRequestListFormRest;
|
||||
@RpcReference(group = "hrmsalary")
|
||||
private RemoteExcelService remoteExcelServiceHrmSalary;
|
||||
@RpcReference(group = "workflow")
|
||||
private WfcReportStatRest wfcReportStatRest;
|
||||
@Autowired
|
||||
private FilterFormDataSearchService filterFormDataSearchService;
|
||||
@Override
|
||||
public void testFunc(SimpleEmployee employee) {
|
||||
|
||||
try {
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
List<FormField> formFields = bulidFreeFormService(ModuleSource.biaoge).getFormFieldListByStatus(2598433966837708893L, null, employee);
|
||||
if(formFields != null && formFields.size() > 0) {
|
||||
for(FormField formField:formFields) {
|
||||
params.put("fieldId_"+formField.getId(), formField);
|
||||
}
|
||||
}
|
||||
|
||||
String str = "2=5";
|
||||
|
||||
//测试= ==方法
|
||||
logger.info("测试=,==方法");
|
||||
|
||||
String str2 = "fieldId_2598434392040299458=5";
|
||||
|
||||
String str3 = "fieldId_3419471597648354446=5";
|
||||
logger.info("数字控件:"+JSON.toJSONString(qlExpressUtil.execute(str3, params)));
|
||||
|
||||
String str4 = "fieldId_2598434963895899468='2020-07-14'";
|
||||
logger.info("日期控件:"+JSON.toJSONString(qlExpressUtil.execute(str4, params)));
|
||||
|
||||
String str5 = "fieldId_3419471597648354447=5";
|
||||
logger.info("选项控件:"+JSON.toJSONString(qlExpressUtil.execute(str5, params)));
|
||||
|
||||
//测试= ==方法
|
||||
logger.info("测试 >= <= > < 方法");
|
||||
|
||||
String str7 = "fieldId_3419471597648354446=5";
|
||||
logger.info("数字控件:"+JSON.toJSONString(qlExpressUtil.execute(str3, params)));
|
||||
|
||||
String str8 = "fieldId_2598434963895899468='2020-07-14'";
|
||||
logger.info("日期控件:"+JSON.toJSONString(qlExpressUtil.execute(str4, params)));
|
||||
|
||||
logger.info("测试 >= =< !=方法");
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAggregateDataTest(Long formId, Long fieldId, String funcName,String module,Map<String, Object> params,SimpleEmployee employee) throws Exception {
|
||||
Double value = 0d;
|
||||
return 1d;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public Map<String,Object> buildCndFilter(Long formId, Long fieldId, String express, Map<String, Object> params, String module, SimpleEmployee employee) {
|
||||
Map<String,Object> paramMap=new HashMap<>();
|
||||
List<FilterFormData> filterFormDatas = new ArrayList<FilterFormData>();
|
||||
if(express != null) {
|
||||
if(params == null) {
|
||||
params = new HashMap<String, Object>();
|
||||
}
|
||||
List<FormField> formFields = bulidFreeFormService(ModuleSource.valueOf(module)).getFormFieldListByStatus(formId, null, employee);
|
||||
if(formFields != null && formFields.size() > 0) {
|
||||
for(FormField formField:formFields) {
|
||||
params.put("field"+formField.getId(), formField);
|
||||
}
|
||||
}
|
||||
try {
|
||||
Object object = qlExpressUtil.execute(express, params);
|
||||
if(object instanceof FilterFormData) {
|
||||
filterFormDatas.add((FilterFormData) object);
|
||||
}else if((object instanceof List<?>) && (((List<?>) object).get(0) instanceof FilterFormData)) {
|
||||
filterFormDatas.addAll((List<FilterFormData>)object);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
Map<String, Object> param = assemblyParam(formId, employee);
|
||||
if(filterFormDatas != null && filterFormDatas.size() > 0) {
|
||||
param.put("condition", filterFormDatas.get(0).getCondition());
|
||||
}
|
||||
paramMap.put("param",param);
|
||||
paramMap.put("filterFormDatas",filterFormDatas);
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Double getAggregateData(Long formId, Long fieldId, String funcName,String express, Map<String, Object> params, String module, SimpleEmployee employee) {
|
||||
Double value = 0d;
|
||||
List<FilterFormData> filterFormDatas = new ArrayList<FilterFormData>();
|
||||
if(express != null) {
|
||||
if(params == null) {
|
||||
params = new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
List<FormField> formFields = bulidFreeFormService(ModuleSource.valueOf(module)).getFormFieldListByStatus(formId, null, employee);
|
||||
if(formFields != null && formFields.size() > 0) {
|
||||
for(FormField formField:formFields) {
|
||||
boolean isput=false;
|
||||
Iterator<String> keysets=params.keySet().iterator();
|
||||
while (keysets.hasNext()){
|
||||
String key=keysets.next();
|
||||
Object obj=params.get(key);
|
||||
logger.info("聚合函数匹配表单控件:"+key+"-->"+formField.getId());
|
||||
if(obj instanceof DataType){
|
||||
DataType dataType=(DataType)obj;
|
||||
if(null!=dataType.getFieldId()&&Long.parseLong(dataType.getFieldId())==formField.getId() && !dataType.getName().equals("当前数据")){
|
||||
params.put(key, formField);
|
||||
}else if(key.indexOf(formField.getId()+"")>0){
|
||||
params.put(key, formField);
|
||||
}
|
||||
}else if(key.indexOf(formField.getId()+"")>0){
|
||||
params.put(key, formField);
|
||||
}
|
||||
}
|
||||
if(!isput){
|
||||
params.put("field"+formField.getId(), formField);
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.info(formId+"aggregate express:"+express);
|
||||
try {
|
||||
Object object = qlExpressUtil.execute(express, params);
|
||||
if(object instanceof FilterFormData) {
|
||||
filterFormDatas.add((FilterFormData) object);
|
||||
}else if((object instanceof List<?>) && (((List<?>) object).get(0) instanceof FilterFormData)) {
|
||||
filterFormDatas.addAll((List<FilterFormData>)object);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
Map<String, Object> param = assemblyParam(formId, employee);
|
||||
if(filterFormDatas != null && filterFormDatas.size() > 0) {
|
||||
logger.info(filterFormDatas.get(0).getCondition());
|
||||
param.put("condition", StringUtils.isEmpty(filterFormDatas.get(0).getCondition())?"AND":filterFormDatas.get(0).getCondition());
|
||||
}
|
||||
// logger.info(formId+"param聚合参数:"+(param!=null?JSON.toJSONString(param):"NULL"));
|
||||
// logger.info(formId+"filterFormDatas聚合参数:"+(filterFormDatas!=null?JSON.toJSONString(filterFormDatas):"NULL"));
|
||||
// logger.info(formId+"fieldId聚合参数:"+fieldId);
|
||||
if("count".equalsIgnoreCase(funcName)) {
|
||||
if(module.equalsIgnoreCase(ModuleSource.biaoge.toString())){
|
||||
value=Double.valueOf(remoteFormReportService.countStatFormDatasForReportNum(param, filterFormDatas, null, employee));
|
||||
} else if(module.equalsIgnoreCase(ModuleSource.workflow.toString())){
|
||||
// value=Double.valueOf(remoteFlowDataStatQueryService.countStatFormDatasForFlowNum(param, filterFormDatas, employee));
|
||||
value = getFlowData(param, filterFormDatas, employee, formId);
|
||||
}
|
||||
}else {
|
||||
if (module.equalsIgnoreCase(ModuleSource.workflow.toString())) {
|
||||
value = remoteFlowFreeStatService.findFieldStatByField(param, filterFormDatas,
|
||||
fieldId, funcName,employee);
|
||||
} else if(module.equalsIgnoreCase(ModuleSource.biaoge.toString())){
|
||||
value = remoteReportFreeStatService.findFieldStatByField(param, filterFormDatas,
|
||||
fieldId, funcName,employee);
|
||||
}
|
||||
}
|
||||
logger.info(funcName+"聚合结果:"+value);
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getCommonAggregateData(Long formId, Long fieldId, String funcName, List<DataType> cndDataType, String moduleSource, SimpleEmployee employee) {
|
||||
Double value=0d;
|
||||
funcName=funcName.toLowerCase();
|
||||
List<FilterFormData> filterFormDatas=null;
|
||||
List<FormulaFilterData> formulaFilterDataList=new ArrayList<>();
|
||||
for (int i=1;i<cndDataType.size();i++){
|
||||
DataType paramObj=cndDataType.get(i);
|
||||
if(paramObj!=null){
|
||||
List<FormulaFilterData> paramFilterList=paramObj.getFormulaFilterDataList();
|
||||
// logger.info(JSON.toJSONString(paramFilterList));
|
||||
formulaFilterDataList.addAll(paramFilterList);
|
||||
}
|
||||
}
|
||||
|
||||
//审批、上报使用老条件
|
||||
if(moduleSource.equalsIgnoreCase(ModuleSource.workflow.toString()) || moduleSource.equalsIgnoreCase(ModuleSource.biaoge.toString())){
|
||||
JSONArray jsonArray=JSON.parseArray(JSON.toJSONString(formulaFilterDataList));
|
||||
filterFormDatas=jsonArray.toJavaList(FilterFormData.class);
|
||||
// logger.info("函数条件新转老结果:"+(JSON.toJSONString(filterFormDatas)));
|
||||
}
|
||||
logger.info("条件参数:"+JSON.toJSONString(filterFormDatas));
|
||||
Map<String, Object> param = assemblyParam(formId, employee);
|
||||
if(filterFormDatas != null && filterFormDatas.size() > 0) {
|
||||
param.put("condition", StringUtils.isEmpty(filterFormDatas.get(0).getCondition())?"AND":filterFormDatas.get(0).getCondition());
|
||||
}
|
||||
if(formulaFilterDataList !=null && formulaFilterDataList.size()>0){
|
||||
param.put("condition", StringUtils.isEmpty(formulaFilterDataList.get(0).getCondition())?"AND":formulaFilterDataList.get(0).getCondition());
|
||||
}
|
||||
|
||||
|
||||
if(moduleSource.equalsIgnoreCase(ModuleSource.workflow.toString())){
|
||||
if("count".equalsIgnoreCase(funcName)) {
|
||||
value = getFlowData(param, filterFormDatas, employee, formId);
|
||||
}else {
|
||||
// value = freeStatAssistService.buildFreeStatService("workflow").findFieldStatByField(param, filterFormDatas,
|
||||
// fieldId, funcName,employee);
|
||||
List<FilterFormDataParam> filterFormDataParamList=filterFormDataSearchService.conversionOldFilterFormDataToNew(filterFormDatas,employee);
|
||||
logger.info("conversionOldFilterFormDataToNew函数统计转换条件:"+JSON.toJSONString(filterFormDataParamList));
|
||||
Map<String,Object> aggResultMap= null;
|
||||
try {
|
||||
WeaverSentinelContext.setDowngradeType(false);
|
||||
aggResultMap = wfcReportStatRest.findFieldCalculateByCondition(formId,fieldId,filterFormDataParamList,funcName,employee);
|
||||
} catch (RpcException e) {
|
||||
logger.error("err",e);
|
||||
if (WeaverDubboSentinelUtil.isRpcNoProviderException(e)) {
|
||||
//降级逻辑编写
|
||||
logger.error("审批服务不可用");
|
||||
}
|
||||
}
|
||||
logger.info("审批新统计结果:"+JSON.toJSONString(aggResultMap));
|
||||
Object aggResultObject=aggResultMap.get(funcName.toLowerCase());
|
||||
if(aggResultObject!=null){
|
||||
BigDecimal bigDecimal=new BigDecimal(aggResultObject+"");
|
||||
value=bigDecimal.doubleValue();
|
||||
}
|
||||
}
|
||||
logger.info("审批聚合结果:"+value);
|
||||
}else if(moduleSource.equalsIgnoreCase(ModuleSource.biaoge.toString())){
|
||||
ExcelResult excelResult= null;
|
||||
try {
|
||||
WeaverSentinelContext.setDowngradeType(false);
|
||||
excelResult = remoteExcelService.aggregation(AggFunc.valueOf(funcName.toLowerCase()),formId+"",fieldId+"",formulaFilterDataList,null,employee);
|
||||
} catch (IllegalArgumentException e) {
|
||||
logger.error("err",e);
|
||||
}catch (RpcException e){
|
||||
logger.error("err",e);
|
||||
if (WeaverDubboSentinelUtil.isRpcNoProviderException(e)) {
|
||||
//降级逻辑编写
|
||||
logger.error("上报服务不可用");
|
||||
}
|
||||
}
|
||||
try {
|
||||
value=Double.parseDouble(excelResult.getData()+"");
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
logger.info("上报聚合结果:"+JSON.toJSONString(excelResult));
|
||||
}else if(moduleSource.equalsIgnoreCase("hrmsalary")){
|
||||
ExcelResult excelResult= null;
|
||||
try {
|
||||
excelResult = remoteExcelServiceHrmSalary.aggregation(AggFunc.valueOf(funcName.toLowerCase()),formId+"",fieldId+"",formulaFilterDataList,null,employee);
|
||||
} catch (IllegalArgumentException e) {
|
||||
logger.error("err",e);
|
||||
}catch (RpcException e){
|
||||
logger.error("err",e);
|
||||
if (WeaverDubboSentinelUtil.isRpcNoProviderException(e)) {
|
||||
//降级逻辑编写
|
||||
logger.error("薪酬服务不可用");
|
||||
}
|
||||
}
|
||||
try {
|
||||
value=Double.parseDouble(excelResult.getData()+"");
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
logger.info("薪酬聚合结果:"+JSON.toJSONString(excelResult));
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据表单参数查询审批数据量
|
||||
* @param paramMap
|
||||
* @param filterFormDatas
|
||||
* @param employee
|
||||
* @return
|
||||
*/
|
||||
private Double getFlowData(Map<String, Object> paramMap, List<FilterFormData> filterFormDatas, SimpleEmployee employee, Long formId) {
|
||||
List<FormData> datas =null;
|
||||
FormDataOption formDataOption=new FormDataOption();
|
||||
Page<FormData> pageDatas=new Page<FormData>();
|
||||
|
||||
JSONObject filter=new JSONObject();
|
||||
JSONArray filterArray=JSON.parseArray(JSON.toJSONString(filterFormDatas));
|
||||
|
||||
for(int i=0;i<filterArray.size();i++){
|
||||
JSONObject jsonObject=filterArray.getJSONObject(i);
|
||||
if (jsonObject.containsKey("ids")) {
|
||||
JSONArray idObjectsArray = jsonObject.getJSONArray("ids");
|
||||
JSONArray ids = new JSONArray();
|
||||
for (Object idObject : idObjectsArray) {
|
||||
JSONObject oldIdCnd=new JSONObject();
|
||||
oldIdCnd.put("id",idObject+"");
|
||||
ids.add(oldIdCnd);
|
||||
}
|
||||
jsonObject.put("ids", ids);
|
||||
}
|
||||
}
|
||||
|
||||
filter.put("filterFormDatas",filterArray);
|
||||
String cndString=JSON.toJSONString(filter);
|
||||
logger.error("转换审批条件前:"+cndString);
|
||||
logger.error("调用审批接口转换:convertEtSearch");
|
||||
|
||||
WeaResult<String> weaResult= null;
|
||||
try {
|
||||
WeaverSentinelContext.setDowngradeType(false);
|
||||
weaResult = wflSearchConditionRest.convertCondition(cndString);
|
||||
// weaResult = wfcSearchConditionRest.convertCondition(cndString);
|
||||
} catch (RpcException e) {
|
||||
if (WeaverDubboSentinelUtil.isRpcNoProviderException(e)) {
|
||||
//降级逻辑编写
|
||||
logger.error("审批服务不可用");
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
JSONObject flowJson=JSON.parseObject(weaResult.getData());
|
||||
JSONObject formDatas=new JSONObject();
|
||||
formDatas.put("formDatas",flowJson);
|
||||
cndString=formDatas.toJSONString();
|
||||
logger.error("转换审批条件后:"+cndString);
|
||||
RequestListSearchConditionEntity listSearchCondition =new RequestListSearchConditionEntity();
|
||||
JSONObject newFlowCndJson=JSON.parseObject(cndString);
|
||||
if(paramMap != null) listSearchCondition = newFlowCndJson.toJavaObject(RequestListSearchConditionEntity.class);
|
||||
if(paramMap.get("condition")!=null){
|
||||
listSearchCondition.setType(paramMap.get("condition")+"");
|
||||
}
|
||||
logger.info("JSON转换成审批条件对象:"+(listSearchCondition!=null?JSON.toJSONString(listSearchCondition):"NULL"));
|
||||
//listSearchCondition.setType(paramMap.get("condition")!=null?paramMap.get("condition")+"":"AND");
|
||||
com.weaver.common.component.table.page.Page<RequestListDataVoEntity> page = new com.weaver.common.component.table.page.Page<RequestListDataVoEntity>(1, 10);
|
||||
page.setSize(Integer.MAX_VALUE);
|
||||
paramMap.put("isAdmin",true);
|
||||
paramMap.remove("filterFormDatas");
|
||||
logger.error("函数执行条件paramMap:"+JSON.toJSONString(paramMap));
|
||||
Long flowCount = wflRequestListFormRest.getFormFilterRequestCount(paramMap, formId, listSearchCondition, employee);
|
||||
if(flowCount==null){
|
||||
flowCount=0L;
|
||||
}
|
||||
return flowCount.doubleValue();
|
||||
// List<RequestListDataVoEntity> tempDatas=wfcRequestListFormRest.getFormFilterRequestDatasByWfId(paramMap,formId,listSearchCondition,page,employee);
|
||||
// List<RequestListDataVoEntity> tempDatas=wfcRequestListFormRpc.getFormFilterRequestDatas(paramMap,formId,listSearchCondition,page,employee);
|
||||
// return new Double(tempDatas.size());
|
||||
}
|
||||
|
||||
// 封装高级搜索参数
|
||||
private Map<String, Object> assemblyParam(Long formId, SimpleEmployee employee) {
|
||||
Map<String, Object> param = new HashMap<String, Object>();
|
||||
|
||||
param.put("employeeId", employee.getUserId());
|
||||
param.put("formId", formId); // 表单id
|
||||
param.put("isAdmin", true); // 统计默认有管理元权限
|
||||
param.put("status", FormDataStatus.submit.toString()); // 统计默认有管理元权限
|
||||
|
||||
return param;
|
||||
}
|
||||
|
||||
|
||||
public FreeFormService bulidFreeFormService(ModuleSource module) {
|
||||
return freeFormAssistService.buildFreeFormService(module.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, DataType> bulidDataType(List<String> fieldIds, FormData formData, String module,
|
||||
SimpleEmployee employee) {
|
||||
Map<String, DataType> dataMap = new HashMap<String, DataType>();
|
||||
if(fieldIds != null && fieldIds.size() > 0 && formData != null) {
|
||||
List<FormDataDetail> dataDetails = formData.getDataDetails();
|
||||
Map<Long, List<FormDataDetail>> dataDetailMap = new HashMap<Long, List<FormDataDetail>>();
|
||||
if(dataDetails != null && dataDetails.size() > 0) {
|
||||
for(FormDataDetail dataDetail : dataDetails) {
|
||||
if(dataDetailMap.containsKey(dataDetail.getFormField().getId())) {
|
||||
dataDetailMap.get(dataDetail.getFormField().getId()).add(dataDetail);
|
||||
}else {
|
||||
List<FormDataDetail> values = new ArrayList<FormDataDetail>();
|
||||
values.add(dataDetail);
|
||||
dataDetailMap.put(dataDetail.getFormField().getId(), values);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Map<Long, FormField> fieldMap = bulidFreeFormService(ModuleSource.valueOf(module)).getFieldMapByFormId(formData.getForm().getId(), employee);
|
||||
for(String field : fieldIds) {
|
||||
Long fieldId = Long.parseLong(field);
|
||||
FormField formField = fieldMap.get(fieldId);
|
||||
if(formField != null) {
|
||||
DataType dataType = new DataType();
|
||||
dataType.setFieldId(field);
|
||||
dataType.setDataType(getDataType(formField.getComponentKey()));
|
||||
if(dataDetailMap.containsKey(fieldId)) {
|
||||
dataType.setContent(getDetailValue(dataDetailMap.get(fieldId)));
|
||||
dataType.setText(getDetailContent(dataDetailMap.get(fieldId)));
|
||||
if( ComponentType.RadioBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.CheckBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.Select.toString().equals(formField.getComponentKey())) {
|
||||
dataType.setScore(getDetailScore(dataDetailMap.get(fieldId),ModuleSource.valueOf(module),formData.getFormLayout().getId(),employee));
|
||||
}
|
||||
}else {
|
||||
dataType.setContent("");
|
||||
dataType.setText("");
|
||||
}
|
||||
dataMap.put(field, dataType);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataMap;
|
||||
}
|
||||
|
||||
private Double getDetailScore(List<FormDataDetail> dataDetails, ModuleSource module,Long layoutId,SimpleEmployee employee) {
|
||||
Double score =0d;
|
||||
for (FormDataDetail formDataDetail :dataDetails){
|
||||
score=excelTransUtil.getDetailScore(formDataDetail,module,layoutId,employee);
|
||||
}
|
||||
// if(dataDetails != null && dataDetails.size() > 0) {
|
||||
// FormDataDetail dataDetail = dataDetails.get(0);
|
||||
// if(dataDetail != null) {
|
||||
// score = bulidFreeFormService(module).getOptionScore(dataDetail.getFormField().getId()+"", layoutId, dataDetail, employee).doubleValue();
|
||||
// }
|
||||
// }
|
||||
return score;
|
||||
}
|
||||
|
||||
private String getDetailValue(List<FormDataDetail> dataDetails) {
|
||||
String content ="";
|
||||
if(dataDetails != null && dataDetails.size() > 0) {
|
||||
FormDataDetail dataDetail = dataDetails.get(0);
|
||||
if(dataDetail != null) {
|
||||
content = dataDetail.getContent() == null ? "" : dataDetail.getContent(); // 字段新数据
|
||||
FormDataText formDataText = dataDetail.getDataText();
|
||||
if (formDataText != null) { // 如果是多行文本框
|
||||
content = formDataText.getContent();
|
||||
}
|
||||
List<FormDataOption> optDetails = dataDetail.getDataOptions(); // 填写选项明细
|
||||
if ((optDetails != null) && (optDetails.size() > 0)) {// 如果是选项类型控件
|
||||
for (FormDataOption formDataOption : optDetails) {
|
||||
content += formDataOption.getOptionId()+",";
|
||||
}
|
||||
if ((content != null) && (content.length() > 0)) {
|
||||
content = content.substring(0, content.length() - 1); // 去掉最后一个逗号
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
private String getDetailContent(List<FormDataDetail> dataDetails) {
|
||||
String content ="";
|
||||
if(dataDetails != null && dataDetails.size() > 0) {
|
||||
FormDataDetail dataDetail = dataDetails.get(0);
|
||||
if(dataDetail != null) {
|
||||
content = dataDetail.getContent() == null ? "" : dataDetail.getContent(); // 字段新数据
|
||||
FormDataText formDataText = dataDetail.getDataText();
|
||||
if (formDataText != null) { // 如果是多行文本框
|
||||
content = formDataText.getContent();
|
||||
}
|
||||
List<FormDataOption> optDetails = dataDetail.getDataOptions(); // 填写选项明细
|
||||
if ((optDetails != null) && (optDetails.size() > 0)) {// 如果是选项类型控件
|
||||
for (FormDataOption formDataOption : optDetails) {
|
||||
content += formDataOption.getContent() + ",";
|
||||
}
|
||||
if ((content != null) && (content.length() > 0)) {
|
||||
content = content.substring(0, content.length() - 1); // 去掉最后一个逗号
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查控件类型
|
||||
* @param componentKey
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getDataType(String componentKey){
|
||||
DataType dataType = new DataType();
|
||||
if(ComponentConfig.isNumberComponent(componentKey)) {
|
||||
return DataType.NUMBER;
|
||||
}else if(ComponentConfig.isOptionComponent(componentKey)) {
|
||||
return DataType.OPTION;
|
||||
}else if(componentKey.equals(ComponentType.DateComponent.toString())) {
|
||||
return DataType.STRING;
|
||||
}else {
|
||||
return DataType.STRING;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> buildFilterParam(ExpressFormula dataExpressFormula, Long targetFormId, SimpleEmployee employee, FormData formData, String module) {
|
||||
String moduleStr=module.toString();
|
||||
FormulaContext.get().setValue(moduleStr);
|
||||
|
||||
Map<String,Object> expressMap=new HashMap<>();
|
||||
Map<String,Object> paramMap = Maps.newHashMap();
|
||||
if(dataExpressFormula==null) throw new RuntimeException("公式不存在");
|
||||
|
||||
try {
|
||||
JSONObject paramJson= JSON.parseObject(dataExpressFormula.getParameter());
|
||||
List<FormulaVar> varList=null;
|
||||
if(dataExpressFormula.getParameter()!=null){
|
||||
JSONArray paramArray=paramJson.getJSONArray("formulavars");
|
||||
varList=paramArray.toJavaList(FormulaVar.class);
|
||||
List<String> fieldIds=new ArrayList<>();
|
||||
for(FormulaVar formulaVar:varList){
|
||||
if(formulaVar.getFieldId()!=null&&formulaVar.getOptionId()==null&&!formulaVar.getFormId().equalsIgnoreCase(targetFormId.toString())){
|
||||
fieldIds.add(formulaVar.getFieldId().toString());
|
||||
}
|
||||
}
|
||||
|
||||
Map<String,DataType> dataTypeMap=bulidDataType(fieldIds,formData,module,employee);
|
||||
for(FormulaVar formulaVar:varList){
|
||||
if(formulaVar.getFieldId()!=null&&dataTypeMap.containsKey(formulaVar.getFieldId().toString())){
|
||||
DataType dataType=dataTypeMap.get(formulaVar.getFieldId().toString());
|
||||
if(formulaVar.getFormId()!=null){
|
||||
dataType.setFormId(Long.parseLong(formulaVar.getFormId()));
|
||||
}
|
||||
|
||||
try {
|
||||
dataType.setModule(formulaVar.getModule());
|
||||
} catch (IllegalArgumentException e) {
|
||||
logger.error("err",e);
|
||||
dataType.setModule(formulaVar.getModule());
|
||||
}
|
||||
dataType.setEmployee(employee);
|
||||
if(formulaVar.getName()!=null){
|
||||
if(dataType.getContent()==null){
|
||||
dataType.setContent(formulaVar.getOptionId());
|
||||
}
|
||||
if(dataType.getText()==null){
|
||||
dataType.setText(formulaVar.getName());
|
||||
}
|
||||
}
|
||||
expressMap.put(formulaVar.getKey(),dataType);
|
||||
}else{
|
||||
DataType dataType=new DataType();
|
||||
|
||||
if(formulaVar.getKey().equals("current_operator")){
|
||||
dataType.setContent(employee.getId());
|
||||
dataType.setText(employee.getUsername());
|
||||
dataType.setDataType(DataType.OPTION);
|
||||
expressMap.put(formulaVar.getKey(),dataType);
|
||||
}else if(formulaVar.getOptionId()!=null){
|
||||
dataType.setDataType(DataType.OPTION);
|
||||
dataType.setContent(formulaVar.getOptionId());
|
||||
dataType.setText(formulaVar.getName());
|
||||
expressMap.put(formulaVar.getKey(),dataType);
|
||||
}else {
|
||||
dataType.setContent(formulaVar.getFormId());
|
||||
try {
|
||||
dataType.setModule(formulaVar.getModule());
|
||||
} catch (IllegalArgumentException e) {
|
||||
logger.error("err",e);
|
||||
dataType.setModule(formulaVar.getModule());
|
||||
}
|
||||
dataType.setEmployee(employee);
|
||||
}
|
||||
dataType.setFormId(formulaVar.getFormId()!=null?Long.parseLong(formulaVar.getFormId()):null);
|
||||
expressMap.put(formulaVar.getKey(),dataType);
|
||||
}
|
||||
}
|
||||
|
||||
List<FormulaVar> paramDatas=paramJson.getJSONArray("formulavars").toJavaList(FormulaVar.class);
|
||||
String filterGenFormula= ExcelParamUtil.replaceAllParam(dataExpressFormula.getFormula(),paramDatas);
|
||||
filterGenFormula= ExcelParamUtil.spliteSql(filterGenFormula,expressMap);
|
||||
filterGenFormula=filterGenFormula.replaceAll("\\{","");
|
||||
filterGenFormula=filterGenFormula.replaceAll("\\}","");
|
||||
paramMap=this.buildCndFilter(targetFormId,null,filterGenFormula,expressMap,module,employee);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
return paramMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
import com.ql.util.express.Operator;
|
||||
import com.weaver.common.form.component.base.ComponentConfig;
|
||||
import com.weaver.common.form.component.base.ComponentType;
|
||||
import com.weaver.common.form.excel.validator.Validator;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.common.form.stat.FilterFormData;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.teams.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* equals转成筛选条件
|
||||
* @author Failymiss
|
||||
*/
|
||||
public class EqOperator extends Operator {
|
||||
|
||||
private static final long serialVersionUID = -6647187680280498682L;
|
||||
|
||||
|
||||
public Object executeInner(Object[] list) throws Exception {
|
||||
Object obj=executeInner(list[0], list[1]);
|
||||
return obj;
|
||||
}
|
||||
|
||||
public Object executeInner(Object obj1,Object obj2) throws Exception {
|
||||
FilterFormData filterFormData = null;
|
||||
String content = null;
|
||||
FormField field = null;
|
||||
if(checkParam(obj1, obj2)) {
|
||||
field = (FormField) obj1;
|
||||
if(obj2 instanceof DataType) {
|
||||
content = ((DataType) obj2).getContent()+"";
|
||||
}else {
|
||||
content = obj2+"";
|
||||
}
|
||||
}
|
||||
if (field != null && content != null) {
|
||||
String componentKey = field.getComponentKey();
|
||||
filterFormData = new FilterFormData();
|
||||
filterFormData.setFieldId(field.getId()+"");
|
||||
if(field.getSubForm() != null) {
|
||||
filterFormData.setSubFormId(field.getSubForm().getId()+"");
|
||||
}
|
||||
filterFormData.setComponentKey(componentKey);
|
||||
if(StringUtils.isEmpty(content)) {
|
||||
filterFormData.setTerm(FilterFormData.TERM_NULL);
|
||||
}else{
|
||||
filterFormData.setTerm(FilterFormData.TERM_EQ);
|
||||
//数字类型
|
||||
if(ComponentConfig.isNumberComponent(componentKey)
|
||||
|| componentKey.equals(ComponentType.DateComponent.toString())
|
||||
|| componentKey.equals(ComponentType.TimeComponent.toString())) {
|
||||
filterFormData.setContent(content);
|
||||
//选项控件
|
||||
}else if(ComponentConfig.isOptionComponent(componentKey)) {
|
||||
List<String> ids = new ArrayList<>();
|
||||
String[] idsArray = content.split(",");
|
||||
for(String idStr : idsArray) {
|
||||
if(StringUtils.isNotBlank(idStr)) {
|
||||
ids.add(idStr);
|
||||
}
|
||||
}
|
||||
filterFormData.setIds(ids);
|
||||
//文本型
|
||||
}else {
|
||||
filterFormData.setContent(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
return filterFormData;
|
||||
}
|
||||
|
||||
private boolean checkParam(Object obj1,Object obj2) {
|
||||
if(obj1 instanceof FormField) {
|
||||
String componentKey = ((FormField) obj1).getComponentKey();
|
||||
if(ComponentConfig.isNumberComponent(componentKey)) {
|
||||
if(obj2 instanceof DataType) {
|
||||
if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[=]:数字控件右边必须是数字");
|
||||
}
|
||||
}else if(StringUtils.isEmpty(obj2+"") || Validator.isFloat(obj2+"") ){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[=]:数字控件右边必须是数字");
|
||||
}
|
||||
}else if(ComponentConfig.isOptionComponent(componentKey)){
|
||||
if(StringUtils.isEmpty(obj2+"") || (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.OPTION))) {
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[=]:选项控件右边必须是选项");
|
||||
}
|
||||
} else {
|
||||
if(StringUtils.isEmpty(obj2+"") || obj2 instanceof String || obj2 instanceof Character) {
|
||||
return true;
|
||||
}else if(obj2 instanceof DataType){
|
||||
if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)){
|
||||
return true;
|
||||
}else if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[=]:文本控件右边必须是字符");
|
||||
}
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[=]:文本控件右边必须是字符");
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("筛选条件[=]:左边必须是表单控件");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,115 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.ql.util.express.Operator;
|
||||
import com.weaver.common.form.component.base.ComponentConfig;
|
||||
import com.weaver.common.form.component.base.ComponentType;
|
||||
import com.weaver.common.form.excel.validator.Validator;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.common.form.stat.FilterFormData;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* >= <= > < 转成筛选条件
|
||||
* @author Failymiss
|
||||
*/
|
||||
public class LessMoreOperator extends Operator{
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
private static final long serialVersionUID = -1001332992613137814L;
|
||||
|
||||
public LessMoreOperator(String aName) {
|
||||
this.name = aName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object executeInner(Object[] list) throws Exception {
|
||||
|
||||
return executeInner(list[0], list[1]);
|
||||
}
|
||||
|
||||
private Object executeInner(Object obj1, Object obj2) {
|
||||
FilterFormData filterFormData = null;
|
||||
FormField field = null;
|
||||
String content = null;
|
||||
if(checkParam(obj1, obj2)) {
|
||||
field = (FormField) obj1;
|
||||
if(obj2 instanceof DataType) {
|
||||
content = ((DataType) obj2).getContent()+"";
|
||||
}else {
|
||||
content = obj2+"";
|
||||
}
|
||||
}
|
||||
if (field != null && content != null) {
|
||||
String componentKey = field.getComponentKey();
|
||||
if(ComponentConfig.isNumberComponent(componentKey)
|
||||
|| componentKey.equals(ComponentType.DateComponent.toString())
|
||||
|| componentKey.equals(ComponentType.TimeComponent.toString())) {
|
||||
|
||||
filterFormData = new FilterFormData();
|
||||
filterFormData.setFieldId(field.getId()+"");
|
||||
if(field.getSubForm() != null) {
|
||||
filterFormData.setSubFormId(field.getSubForm().getId()+"");
|
||||
}
|
||||
filterFormData.setComponentKey(componentKey);
|
||||
switch (this.name) {
|
||||
case ">=":
|
||||
filterFormData.setTerm(FilterFormData.TERM_GE);
|
||||
break;
|
||||
case ">":
|
||||
filterFormData.setTerm(FilterFormData.TERM_GT);
|
||||
break;
|
||||
case "<=":
|
||||
filterFormData.setTerm(FilterFormData.TERM_LE);
|
||||
break;
|
||||
case "<":
|
||||
filterFormData.setTerm(FilterFormData.TERM_LT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
filterFormData.setContent(content);
|
||||
}
|
||||
}
|
||||
return filterFormData;
|
||||
}
|
||||
|
||||
private boolean checkParam(Object obj1,Object obj2) {
|
||||
logger.info("聚合函数校验,第一个参数:"+ JSON.toJSONString(obj1));
|
||||
logger.info("聚合函数校验,第二个参数:"+ JSON.toJSONString(obj2));
|
||||
if(obj1 instanceof FormField) {
|
||||
String componentKey = ((FormField) obj1).getComponentKey();
|
||||
if(ComponentConfig.isNumberComponent(componentKey)) {
|
||||
if(obj2 instanceof Number) {
|
||||
return true;
|
||||
}else if(obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件["+this.name+"]:数字控件右边必须是数字");
|
||||
}
|
||||
}
|
||||
if(componentKey.equals(ComponentType.DateComponent.toString())) {
|
||||
if(obj2 instanceof String && Validator.isDate((String)obj2)) {
|
||||
return true;
|
||||
}else if(obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件["+this.name+"]:日期控件右边必须是日期字符串");
|
||||
}
|
||||
|
||||
}
|
||||
if(componentKey.equals(ComponentType.TimeComponent.toString())) {
|
||||
if(obj2 instanceof String && Validator.isTime((String)obj2)) {
|
||||
return true;
|
||||
}else if(obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING) ){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件["+this.name+"]:时间控件右边必须是时间字符串");
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("筛选条件["+this.name+"]:左边必须是数字控件或时间控件");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
import com.weaver.common.form.component.base.ComponentConfig;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.common.form.stat.FilterFormData;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class LogicFunc {
|
||||
|
||||
public static List<FilterFormData> and(Object... objs){
|
||||
List<FilterFormData> filterFormDatas = new ArrayList<>();
|
||||
if(objs != null && objs.length > 0) {
|
||||
for(int i=0;i<objs.length;i++){
|
||||
if(objs[i] instanceof FilterFormData) {
|
||||
FilterFormData filterFormData = (FilterFormData) objs[i];
|
||||
filterFormData.setCondition(FilterFormData.CONDITION_AND);
|
||||
filterFormDatas.add(filterFormData);
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件函数[AND]:参数只能是'==,!=,>,>=,<,<=,LIKE,AND,OR'条件公式");
|
||||
}
|
||||
}
|
||||
}
|
||||
return filterFormDatas;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param objs
|
||||
* @return
|
||||
*/
|
||||
public static List<FilterFormData> or(Object... objs){
|
||||
List<FilterFormData> filterFormDatas = new ArrayList<>();
|
||||
if(objs != null && objs.length > 0) {
|
||||
for(int i=0;i<objs.length;i++){
|
||||
if(objs[i] instanceof FilterFormData) {
|
||||
FilterFormData filterFormData = (FilterFormData) objs[i];
|
||||
filterFormData.setCondition(FilterFormData.CONDITION_OR);
|
||||
filterFormDatas.add(filterFormData);
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件函数[or]::参数只能是'==,!=,>,>=,<,<=,LIKE,AND,OR'条件公式");
|
||||
}
|
||||
}
|
||||
}
|
||||
return filterFormDatas;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支持文本、数字、日期
|
||||
* @param formField
|
||||
* @param strs
|
||||
* @return
|
||||
*/
|
||||
public static FilterFormData like(FormField formField,Object[] strs){
|
||||
if(formField != null && strs.length > 0) {
|
||||
if(ComponentConfig.isOptionComponent(formField.getComponentKey())) {
|
||||
throw new RuntimeException("筛选条件函数[LIKE]:第一个参数不能是选项控件");
|
||||
}
|
||||
FilterFormData filterFormData = new FilterFormData();
|
||||
List<String> contents = new ArrayList<String>();
|
||||
for(Object str : strs) {
|
||||
contents.add(str+"");
|
||||
}
|
||||
filterFormData.setContents(contents);
|
||||
filterFormData.setTerm(FilterFormData.TERM_LIKE);
|
||||
filterFormData.setFieldId(formField.getId()+"");
|
||||
return filterFormData;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件函数[LIKE]:参数异常");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 仅支持选项型控件
|
||||
* @param formField
|
||||
* @param options
|
||||
* @return
|
||||
*/
|
||||
public static FilterFormData in(FormField formField,DataType[] options){
|
||||
if(formField != null && options.length > 0) {
|
||||
if(!ComponentConfig.isOptionComponent(formField.getComponentKey())) {
|
||||
throw new RuntimeException("筛选条件函数[IN]:第一个参数必须选项控件");
|
||||
}
|
||||
FilterFormData filterFormData = new FilterFormData();
|
||||
List<String> ids = new ArrayList<String>();
|
||||
for(DataType option : options) {
|
||||
ids.add(option.getContent()+"");
|
||||
}
|
||||
filterFormData.setIds(ids);
|
||||
filterFormData.setFieldId(formField.getId()+"");
|
||||
filterFormData.setTerm(FilterFormData.TERM_EQ);
|
||||
return filterFormData;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件函数[IN]:参数异常");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
import com.ql.util.express.Operator;
|
||||
import com.weaver.common.form.component.base.ComponentConfig;
|
||||
import com.weaver.common.form.excel.validator.Validator;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.common.form.stat.FilterFormData;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.teams.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* equals转成筛选条件
|
||||
* @author Failymiss
|
||||
*/
|
||||
public class NotEqOperator extends Operator {
|
||||
|
||||
private static final long serialVersionUID = -6647187680280498682L;
|
||||
|
||||
public Object executeInner(Object[] list) throws Exception {
|
||||
return executeInner(list[0], list[1]);
|
||||
}
|
||||
|
||||
public Object executeInner(Object obj1,Object obj2) throws Exception {
|
||||
FilterFormData filterFormData = null;
|
||||
String content = null;
|
||||
FormField field = null;
|
||||
if(checkParam(obj1, obj2)) {
|
||||
field = (FormField) obj1;
|
||||
if(obj2 instanceof DataType) {
|
||||
content = ((DataType) obj2).getContent()+"";
|
||||
}else {
|
||||
content = obj2+"";
|
||||
}
|
||||
}
|
||||
if (field != null && content != null) {
|
||||
String componentKey = field.getComponentKey();
|
||||
filterFormData = new FilterFormData();
|
||||
filterFormData.setFieldId(field.getId()+"");
|
||||
if(field.getSubForm() != null) {
|
||||
filterFormData.setSubFormId(field.getSubForm().getId()+"");
|
||||
}
|
||||
filterFormData.setComponentKey(componentKey);
|
||||
if(StringUtils.isEmpty(content)) {
|
||||
filterFormData.setTerm(FilterFormData.TERM_NOT_NULL);
|
||||
}else{
|
||||
//选项控件
|
||||
if(ComponentConfig.isOptionComponent(componentKey)) {
|
||||
filterFormData.setTerm(FilterFormData.TERM_NOT_EQ);
|
||||
List<String> ids = new ArrayList<>();
|
||||
String[] idsArray = content.split(",");
|
||||
for(String idStr : idsArray) {
|
||||
if(StringUtils.isNotBlank(idStr)) {
|
||||
ids.add(idStr);
|
||||
}
|
||||
}
|
||||
filterFormData.setIds(ids);
|
||||
//其他
|
||||
}else {
|
||||
filterFormData.setTerm(FilterFormData.TERM_NOT_EQ);
|
||||
filterFormData.setContent(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
return filterFormData;
|
||||
}
|
||||
|
||||
private boolean checkParam(Object obj1,Object obj2) {
|
||||
if(obj1 instanceof FormField) {
|
||||
String componentKey = ((FormField) obj1).getComponentKey();
|
||||
if(ComponentConfig.isNumberComponent(componentKey)) {
|
||||
if(obj2 instanceof DataType) {
|
||||
if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.NUMBER)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[!=]:数字控件右边必须是数字");
|
||||
}
|
||||
}else if(StringUtils.isEmpty(obj2+"") || Validator.isFloat(obj2+"") ){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[!=]:数字控件右边必须是数字");
|
||||
}
|
||||
}else if(ComponentConfig.isOptionComponent(componentKey)){
|
||||
if(StringUtils.isEmpty(obj2+"") || (obj2 instanceof DataType && ((DataType) obj2).getDataType().equalsIgnoreCase(DataType.OPTION))) {
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[!=]:选项控件右边必须是选项");
|
||||
}
|
||||
} else {
|
||||
if(StringUtils.isEmpty(obj2+"") || obj2 instanceof String || obj2 instanceof Character) {
|
||||
return true;
|
||||
}else if(obj2 instanceof DataType){
|
||||
if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING) ){
|
||||
return true;
|
||||
}else if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)){
|
||||
return true;
|
||||
}else if(((DataType) obj2).getDataType().equalsIgnoreCase(DataType.STRING)){
|
||||
return true;
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[!=]:文本控件右边必须是字符");
|
||||
}
|
||||
}else {
|
||||
throw new RuntimeException("筛选条件[!=]:文本控件右边必须是字符");
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("筛选条件[!=]:左边必须是表单控件");
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
|
||||
import com.ql.util.express.IExpressContext;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class QLExpressContext extends HashMap<String, Object> implements
|
||||
IExpressContext<String, Object> {
|
||||
|
||||
private ApplicationContext context;
|
||||
|
||||
public QLExpressContext(ApplicationContext aContext) {
|
||||
this.context = aContext;
|
||||
}
|
||||
|
||||
public QLExpressContext(Map<String, Object> aProperties,ApplicationContext aContext) {
|
||||
super(aProperties);
|
||||
this.context = aContext;
|
||||
}
|
||||
|
||||
/**
|
||||
* 抽象方法:根据名称从属性列表中提取属性值
|
||||
*/
|
||||
public Object get(Object name) {
|
||||
Object result = null;
|
||||
result = super.get(name);
|
||||
try {
|
||||
if (result == null && this.context != null
|
||||
&& this.context.containsBean((String) name)) {
|
||||
// 如果在Spring容器中包含bean,则返回String的Bean
|
||||
result = this.context.getBean((String) name);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public Object put(String name, Object object) {
|
||||
return super.put(name, object);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,148 +0,0 @@
|
|||
package com.engine.salary.formlua.data.func;
|
||||
|
||||
import com.ql.util.express.DynamicParamsUtil;
|
||||
import com.ql.util.express.ExpressRunner;
|
||||
import com.ql.util.express.IExpressContext;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.excel.formula.entity.parameter.FuncNames;
|
||||
import com.weaver.excel.formula.func.aggregate.AggregationFunc;
|
||||
import com.weaver.excel.formula.func.compare.WOperatorAdd;
|
||||
import com.weaver.excel.formula.func.compare.WOperatorDiv;
|
||||
import com.weaver.excel.formula.func.compare.WOperatorMulti;
|
||||
import com.weaver.excel.formula.func.compare.WOperatorReduce;
|
||||
import com.weaver.excel.formula.func.date.DateTimeService;
|
||||
import com.weaver.excel.formula.func.logic.IfOperator;
|
||||
import com.weaver.excel.formula.func.logic.LogicService;
|
||||
import com.weaver.excel.formula.func.math.MathFuncsService;
|
||||
import com.weaver.excel.formula.func.string.StringFormulaService;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 函数转换筛选条件类
|
||||
* @author Failymiss
|
||||
*/
|
||||
@Component
|
||||
public class QlExpressUtil {
|
||||
@Autowired
|
||||
AggregationFunc aggregationFunc;
|
||||
@Autowired
|
||||
LogicService logicService;
|
||||
@Autowired
|
||||
DateTimeService dateTimeService;
|
||||
@Autowired
|
||||
StringFormulaService stringFormulaService;
|
||||
@Autowired
|
||||
MathFuncsService mathFuncsService;
|
||||
|
||||
|
||||
private static ExpressRunner runner;
|
||||
static {
|
||||
runner = new ExpressRunner(true,false);
|
||||
}
|
||||
private static boolean isInitialRunner = false;
|
||||
private ApplicationContext applicationContext;// spring上下文
|
||||
|
||||
/**
|
||||
*
|
||||
* @param statement
|
||||
* 执行语句
|
||||
* @param context
|
||||
* 上下文
|
||||
* @throws Exception
|
||||
*/
|
||||
public Object execute(String statement, Map<String, Object> context)
|
||||
throws Exception {
|
||||
DynamicParamsUtil.supportDynamicParams = true;
|
||||
initRunner(runner);
|
||||
IExpressContext<String, Object> expressContext = new QLExpressContext(context,
|
||||
applicationContext);
|
||||
return runner.execute(statement, expressContext, null, true, false);
|
||||
}
|
||||
|
||||
private void initRunner(ExpressRunner runner) {
|
||||
if (isInitialRunner == true) {
|
||||
return;
|
||||
}
|
||||
synchronized (runner) {
|
||||
if (isInitialRunner == true) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
runner.replaceOperator("=",new EqOperator());
|
||||
runner.replaceOperator("==",new EqOperator());
|
||||
runner.replaceOperator("!=",new NotEqOperator());
|
||||
runner.replaceOperator(">=",new LessMoreOperator(">="));
|
||||
runner.replaceOperator(">",new LessMoreOperator(">"));
|
||||
runner.replaceOperator("<=",new LessMoreOperator("<="));
|
||||
runner.replaceOperator("<",new LessMoreOperator("<"));
|
||||
runner.addFunctionOfClassMethod("LIKE",LogicFunc.class.getName(),"like", new Class[] {FormField.class, Object[].class},"");
|
||||
runner.addFunctionOfClassMethod("IN",LogicFunc.class.getName(),"in",new Class[] {FormField.class, DataType[].class},"");
|
||||
runner.addFunctionOfClassMethod("AND",LogicFunc.class.getName(),"and",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfClassMethod("OR",LogicFunc.class.getName(),"or",new Class[]{Object[].class},"");
|
||||
|
||||
/**********************一下函数引入后不会构建成高级搜索条件***********************/
|
||||
|
||||
//字符串函数
|
||||
runner.addFunctionOfServiceMethod("CONCAT",stringFormulaService,"concatString",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("SEARCH",stringFormulaService,"search",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("TEXT",stringFormulaService,"text",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("PAD",stringFormulaService,"pad",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("REPLACE",stringFormulaService,"replace",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("VALUE",stringFormulaService,"value",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("LEN",stringFormulaService,"len",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("LEFT",stringFormulaService,"left",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("RIGHT",stringFormulaService,"right",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("MID",stringFormulaService,"mid",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("REPT",stringFormulaService,"repeat",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("TRIM",stringFormulaService,"trim",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("SCORE",stringFormulaService,"score",new Class[]{Object[].class},"");
|
||||
|
||||
//数学函数
|
||||
runner.addFunctionOfServiceMethod("ROUNDUP",mathFuncsService,"roundUp",new Class[]{Object.class},"");
|
||||
runner.addFunctionOfServiceMethod("ROUNDDOWN",mathFuncsService,"roundDown",new Class[]{Object.class},"");
|
||||
|
||||
//日期函数
|
||||
runner.addFunctionOfServiceMethod( "DATEDIFF",dateTimeService,"dateDiff",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "DATEADD",dateTimeService,"dateAdd",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "YEAR",dateTimeService,"year",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "MONTH",dateTimeService,"month",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "DAY",dateTimeService,"day",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "HOUR",dateTimeService,"hour",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "MINUTE",dateTimeService,"minute",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "SECOND",dateTimeService,"seconds",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "WEEKNUM",dateTimeService,"weekNum",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "WEEKDAY",dateTimeService,"weekDay",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "NOW",dateTimeService,"now",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod( "TODAY",dateTimeService,"today",new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod("DATEFORMAT",dateTimeService,"dateFormat",new Class[]{Object[].class},"");
|
||||
|
||||
//逻辑函数
|
||||
runner.replaceOperator("IF",new IfOperator("IF"));
|
||||
runner.addFunctionOfServiceMethod(FuncNames.TRUE.toString(),logicService,FuncNames.TRUE.getName(),new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod(FuncNames.FALSE.toString(),logicService,FuncNames.FALSE.getName(),new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod(FuncNames.ISEMPTY.toString(),logicService,FuncNames.ISEMPTY.getName(),new Class[]{Object[].class},"");
|
||||
runner.addFunctionOfServiceMethod(FuncNames.NOT.toString(),logicService,FuncNames.NOT.getName(),new Class[]{Object[].class},"");
|
||||
|
||||
runner.replaceOperator("+",new WOperatorAdd("+"));
|
||||
runner.replaceOperator("-",new WOperatorReduce("-"));
|
||||
runner.replaceOperator("*",new WOperatorMulti("*"));
|
||||
runner.replaceOperator("/",new WOperatorDiv("/"));
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("初始化失败表达式");
|
||||
}
|
||||
}
|
||||
isInitialRunner = true;
|
||||
}
|
||||
|
||||
public void setApplicationContext(ApplicationContext aContext)
|
||||
throws BeansException {
|
||||
applicationContext = aContext;
|
||||
}
|
||||
}
|
||||
|
|
@ -2,17 +2,12 @@ package com.engine.salary.formlua.entity.parameter;
|
|||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.weaver.common.i18n.label.SystemEnv;
|
||||
import com.weaver.excel.formula.core.rpc.ExcelDubboInvoker;
|
||||
import com.weaver.excel.formula.core.rpc.RemoteExcelExtendFuncService;
|
||||
import com.weaver.excel.formula.core.rpc.RpcMethod;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -28,34 +23,30 @@ public class ExcelFuncs {
|
|||
static private String[] paramDatas=new String[]{};
|
||||
static private String[] allParamDatas=new String[]{"{}","[]"};
|
||||
static private String[] moduleList=new String[]{"biaoge","workflow"};
|
||||
@Autowired
|
||||
ExcelDubboInvoker excelDubboInvoker;
|
||||
|
||||
@Autowired
|
||||
private FuncDescUtil funcDescUtil;
|
||||
public List<ExcelFunc> getCompList(){
|
||||
//比较操作符
|
||||
List<ExcelFunc> compList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc(">",SystemEnv.getHtmlLabelName(12132,"大于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc(">",SalaryI18nUtil.getI18nLabel(12132,"大于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
excelFunc=new ExcelFunc(">=",SystemEnv.getHtmlLabelName(27694,"大于等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc(">=",SalaryI18nUtil.getI18nLabel(27694,"大于等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
excelFunc=new ExcelFunc("<",SystemEnv.getHtmlLabelName(20009,"小于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("<",SalaryI18nUtil.getI18nLabel(20009,"小于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
excelFunc=new ExcelFunc("<=",SystemEnv.getHtmlLabelName(15251,"小于等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("<=",SalaryI18nUtil.getI18nLabel(15251,"小于等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("=",SystemEnv.getHtmlLabelName(15112,"等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("=",SalaryI18nUtil.getI18nLabel(15112,"等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("!=",SystemEnv.getHtmlLabelName(14897,"不等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("!=", SalaryI18nUtil.getI18nLabel(14897,"不等于"), "","",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
compList.add(excelFunc);
|
||||
|
||||
return compList;
|
||||
|
|
@ -70,98 +61,98 @@ public class ExcelFuncs {
|
|||
List<ExcelFunc> dateList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("TODAY",SystemEnv.getHtmlLabelName(94924,"当前日期"), funcDescUtil.get("TODAY"),"TODAY()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("TODAY",SalaryI18nUtil.getI18nLabel(94924,"当前日期"), funcDescUtil.get("TODAY"),"TODAY()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("NOW",SystemEnv.getHtmlLabelName(94925,"当前日期时间"), funcDescUtil.get("NOW"),"NOW()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("NOW",SalaryI18nUtil.getI18nLabel(94925,"当前日期时间"), funcDescUtil.get("NOW"),"NOW()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("DATEADD",SystemEnv.getHtmlLabelName(94926,"对日期加减年、月、日"), funcDescUtil.get("DATEADD"),"DATEADD(日期, 数值, ['单位'])",nullParamDatas,paramArray,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("DATEADD",SalaryI18nUtil.getI18nLabel(94926,"对日期加减年、月、日"), funcDescUtil.get("DATEADD"),"DATEADD(日期, 数值, ['单位'])",nullParamDatas,paramArray,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("DATEDIFF",SystemEnv.getHtmlLabelName(94927,"返回两个日期的差值"), funcDescUtil.get("DATEDIFF"),"DATEDIFF(日期1, 日期2, ['单位'])",nullParamDatas,paramArray,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("DATEDIFF",SalaryI18nUtil.getI18nLabel(94927,"返回两个日期的差值"), funcDescUtil.get("DATEDIFF"),"DATEDIFF(日期1, 日期2, ['单位'])",nullParamDatas,paramArray,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("DATEFORMAT",SystemEnv.getHtmlLabelName(94928,"返回指定格式的日期"), funcDescUtil.get("DATEFORMAT"),"DATEFORMAT(日期, '可选格式')",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("DATEFORMAT",SalaryI18nUtil.getI18nLabel(94928,"返回指定格式的日期"), funcDescUtil.get("DATEFORMAT"),"DATEFORMAT(日期, '可选格式')",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("YEAR",SystemEnv.getHtmlLabelName(94929,"返回日期中的年"), funcDescUtil.get("YEAR"),"YEAR(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("YEAR",SalaryI18nUtil.getI18nLabel(94929,"返回日期中的年"), funcDescUtil.get("YEAR"),"YEAR(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{"String"};
|
||||
excelFunc=new ExcelFunc("MONTH",SystemEnv.getHtmlLabelName(94930,"返回日期中的月"), funcDescUtil.get("MONTH"),"MONTH(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MONTH",SalaryI18nUtil.getI18nLabel(94930,"返回日期中的月"), funcDescUtil.get("MONTH"),"MONTH(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("DAY",SystemEnv.getHtmlLabelName(94931,"返回日期中的日"), funcDescUtil.get("DAY"),"DAY(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("DAY",SalaryI18nUtil.getI18nLabel(94931,"返回日期中的日"), funcDescUtil.get("DAY"),"DAY(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("HOUR",SystemEnv.getHtmlLabelName(94932,"返回日期中的小时"), funcDescUtil.get("HOUR"),"HOUR(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("HOUR",SalaryI18nUtil.getI18nLabel(94932,"返回日期中的小时"), funcDescUtil.get("HOUR"),"HOUR(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MINUTE",SystemEnv.getHtmlLabelName(94933,"返回日期中的分钟"), funcDescUtil.get("MINUTE"),"MINUTE(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MINUTE",SalaryI18nUtil.getI18nLabel(94933,"返回日期中的分钟"), funcDescUtil.get("MINUTE"),"MINUTE(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("SECOND",SystemEnv.getHtmlLabelName(94934,"返回日期中的秒"), funcDescUtil.get("SECOND"),"SECOND(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("SECOND",SalaryI18nUtil.getI18nLabel(94934,"返回日期中的秒"), funcDescUtil.get("SECOND"),"SECOND(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("WEEKNUM",SystemEnv.getHtmlLabelName(94936,"返回日期为第几周"), funcDescUtil.get("WEEKNUM"),"WEEKNUM(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("WEEKNUM",SalaryI18nUtil.getI18nLabel(94936,"返回日期为第几周"), funcDescUtil.get("WEEKNUM"),"WEEKNUM(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("WEEKDAY",SystemEnv.getHtmlLabelName(94937,"返回日期为星期几"), funcDescUtil.get("WEEKDAY"),"WEEKDAY(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("WEEKDAY",SalaryI18nUtil.getI18nLabel(94937,"返回日期为星期几"), funcDescUtil.get("WEEKDAY"),"WEEKDAY(日期)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("NETWORKDAYSPI",SystemEnv.getHtmlLabelName(94938,"返回指定日期之间包含的工作日天数(仅限的过去时间)"), funcDescUtil.get("NETWORKDAYSPI"),"NETWORKDAYSPI(日期1, 日期2, 成员)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("NETWORKDAYSPI",SalaryI18nUtil.getI18nLabel(94938,"返回指定日期之间包含的工作日天数(仅限的过去时间)"), funcDescUtil.get("NETWORKDAYSPI"),"NETWORKDAYSPI(日期1, 日期2, 成员)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("EOMONTH",SystemEnv.getHtmlLabelName(94939,"返回某月最后一天日期"), funcDescUtil.get("EOMONTH"),"EOMONTH(日期,指定日期之前或之后的月数)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("EOMONTH",SalaryI18nUtil.getI18nLabel(94939,"返回某月最后一天日期"), funcDescUtil.get("EOMONTH"),"EOMONTH(日期,指定日期之前或之后的月数)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRYEAR",SystemEnv.getHtmlLabelName(101059,"返回当前年份"), funcDescUtil.get("CURRYEAR"),"CURRYEAR()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRYEAR",SalaryI18nUtil.getI18nLabel(101059,"返回当前年份"), funcDescUtil.get("CURRYEAR"),"CURRYEAR()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRMONTH",SystemEnv.getHtmlLabelName(101060,"返回当前月份"), funcDescUtil.get("CURRMONTH"),"CURRMONTH()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRMONTH",SalaryI18nUtil.getI18nLabel(101060,"返回当前月份"), funcDescUtil.get("CURRMONTH"),"CURRMONTH()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRDAY",SystemEnv.getHtmlLabelName(101061,"返回当前第几日(当月)"), funcDescUtil.get("CURRDAY"),"CURRDAY()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRDAY",SalaryI18nUtil.getI18nLabel(101061,"返回当前第几日(当月)"), funcDescUtil.get("CURRDAY"),"CURRDAY()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRWEEK",SystemEnv.getHtmlLabelName(101062,"返回当前是周几"), funcDescUtil.get("CURRWEEK"),"CURRWEEK()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRWEEK",SalaryI18nUtil.getI18nLabel(101062,"返回当前是周几"), funcDescUtil.get("CURRWEEK"),"CURRWEEK()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRHOUR",SystemEnv.getHtmlLabelName(101063,"返回当前小时"), funcDescUtil.get("CURRHOUR"),"CURRHOUR()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRHOUR",SalaryI18nUtil.getI18nLabel(101063,"返回当前小时"), funcDescUtil.get("CURRHOUR"),"CURRHOUR()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRMINUTE",SystemEnv.getHtmlLabelName(101064,"返回当前分"), funcDescUtil.get("CURRMINUTE"),"CURRMINUTE()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRMINUTE",SalaryI18nUtil.getI18nLabel(101064,"返回当前分"), funcDescUtil.get("CURRMINUTE"),"CURRMINUTE()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CURRSECOND",SystemEnv.getHtmlLabelName(101065,"返回当前秒"), funcDescUtil.get("CURRSECOND"),"CURRSECOND()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CURRSECOND",SalaryI18nUtil.getI18nLabel(101065,"返回当前秒"), funcDescUtil.get("CURRSECOND"),"CURRSECOND()",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MAXDATE",SystemEnv.getHtmlLabelName(100803,"返回一组日期中的最大值"), funcDescUtil.get("MAXDATE"),"MAXDATE(日期1,日期2,……)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MAXDATE",SalaryI18nUtil.getI18nLabel(100803,"返回一组日期中的最大值"), funcDescUtil.get("MAXDATE"),"MAXDATE(日期1,日期2,……)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MINDATE",SystemEnv.getHtmlLabelName(100805,"返回一组日期中的最小值"), funcDescUtil.get("MINDATE"),"MINDATE(日期1,日期2,……)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MINDATE",SalaryI18nUtil.getI18nLabel(100805,"返回一组日期中的最小值"), funcDescUtil.get("MINDATE"),"MINDATE(日期1,日期2,……)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
dateList.add(excelFunc);
|
||||
return dateList;
|
||||
}
|
||||
|
|
@ -175,47 +166,47 @@ public class ExcelFuncs {
|
|||
List<ExcelFunc> logicList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("IF",SystemEnv.getHtmlLabelName(94940,"如果条件为真,则...否则..."), funcDescUtil.get("IF"),"IF(条件, 表达式1, 表达式2)",paramArray,nullParamDatas,"Object",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("IF",SalaryI18nUtil.getI18nLabel(94940,"如果条件为真,则...否则..."), funcDescUtil.get("IF"),"IF(条件, 表达式1, 表达式2)",paramArray,nullParamDatas,"Object",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("AND",SystemEnv.getHtmlLabelName(51100,"且"), funcDescUtil.get("AND"),"AND(条件1, 条件2, [条件3, …])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("AND",SalaryI18nUtil.getI18nLabel(51100,"且"), funcDescUtil.get("AND"),"AND(条件1, 条件2, [条件3, …])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("OR",SystemEnv.getHtmlLabelName(35824,"或"), funcDescUtil.get("OR"),"OR(条件1, 条件2, [条件3, …])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("OR",SalaryI18nUtil.getI18nLabel(35824,"或"), funcDescUtil.get("OR"),"OR(条件1, 条件2, [条件3, …])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("NOT",SystemEnv.getHtmlLabelName(94942,"反转真假结果"), funcDescUtil.get("NOT"),"NOT(逻辑结果)",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("NOT",SalaryI18nUtil.getI18nLabel(94942,"反转真假结果"), funcDescUtil.get("NOT"),"NOT(逻辑结果)",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("IN",SystemEnv.getHtmlLabelName(94943,"变量是否包含在一组结果中"), funcDescUtil.get("IN"),"IN(变量, [变量1, 变量2, …])",paramArray,allParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("IN",SalaryI18nUtil.getI18nLabel(94943,"变量是否包含在一组结果中"), funcDescUtil.get("IN"),"IN(变量, [变量1, 变量2, …])",paramArray,allParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("LIKE",SystemEnv.getHtmlLabelName(94944,"文本是否包含任意一个关键字"), funcDescUtil.get("LIKE"),"LIKE(文本, [文本1, 文本2, …])",paramArray,allParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("LIKE",SalaryI18nUtil.getI18nLabel(94944,"文本是否包含任意一个关键字"), funcDescUtil.get("LIKE"),"LIKE(文本, [文本1, 文本2, …])",paramArray,allParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ISEMPTY",SystemEnv.getHtmlLabelName(94945,"是否为空"), funcDescUtil.get("ISEMPTY"),"ISEMPTY(变量)",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ISEMPTY",SalaryI18nUtil.getI18nLabel(94945,"是否为空"), funcDescUtil.get("ISEMPTY"),"ISEMPTY(变量)",paramArray,paramDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("TRUE",SystemEnv.getHtmlLabelName(94946,"返回真"), funcDescUtil.get("TRUE"),"TRUE()",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("TRUE",SalaryI18nUtil.getI18nLabel(94946,"返回真"), funcDescUtil.get("TRUE"),"TRUE()",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("FALSE",SystemEnv.getHtmlLabelName(94947,"返回假"), funcDescUtil.get("FALSE"),"FALSE()",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("FALSE",SalaryI18nUtil.getI18nLabel(94947,"返回假"), funcDescUtil.get("FALSE"),"FALSE()",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("IFS",SystemEnv.getHtmlLabelName(94948,"多条件"), funcDescUtil.get("IFS"),"IFS({条件1},{结果1},{条件2},{结果2}...{默认结果})",paramArray,nullParamDatas,"Object",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("IFS",SalaryI18nUtil.getI18nLabel(94948,"多条件"), funcDescUtil.get("IFS"),"IFS({条件1},{结果1},{条件2},{结果2}...{默认结果})",paramArray,nullParamDatas,"Object",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("FIND",SystemEnv.getHtmlLabelName(31835,"查找"), funcDescUtil.get("FIND"),"FIND([{查找值1},{查找值2}...{查找值N}],[{查找目标1},{查找目标2}...{查找目标N}])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("FIND",SalaryI18nUtil.getI18nLabel(31835,"查找"), funcDescUtil.get("FIND"),"FIND([{查找值1},{查找值2}...{查找值N}],[{查找目标1},{查找目标2}...{查找目标N}])",paramArray,nullParamDatas,"Boolean",CURRENTDATA);
|
||||
logicList.add(excelFunc);
|
||||
return logicList;
|
||||
}
|
||||
|
|
@ -229,81 +220,81 @@ public class ExcelFuncs {
|
|||
List<ExcelFunc> stringList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CONCAT",SystemEnv.getHtmlLabelName(94949,"链接多个文本"), funcDescUtil.get("CONCAT"),"CONCAT(文本1, 文本2, [文本3, …])",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CONCAT",SalaryI18nUtil.getI18nLabel(94949,"链接多个文本"), funcDescUtil.get("CONCAT"),"CONCAT(文本1, 文本2, [文本3, …])",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("TEXT",SystemEnv.getHtmlLabelName(94950,"将变量转为文本"), funcDescUtil.get("TEXT"),"TEXT(变量)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("TEXT",SalaryI18nUtil.getI18nLabel(94950,"将变量转为文本"), funcDescUtil.get("TEXT"),"TEXT(变量)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("VALUE",SystemEnv.getHtmlLabelName(94951,"将文本转为数字"), funcDescUtil.get("VALUE"),"VALUE(文本)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("VALUE",SalaryI18nUtil.getI18nLabel(94951,"将文本转为数字"), funcDescUtil.get("VALUE"),"VALUE(文本)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("LEN",SystemEnv.getHtmlLabelName(94952,"返回文本长度"), funcDescUtil.get("LEN"),"LEN(文本)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("LEN",SalaryI18nUtil.getI18nLabel(94952,"返回文本长度"), funcDescUtil.get("LEN"),"LEN(文本)",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("SEARCH",SystemEnv.getHtmlLabelName(94953,"在文本中查找关键字"), funcDescUtil.get("SEARCH"),"SEARCH(关键字, 文本, [搜索开始位置])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("SEARCH",SalaryI18nUtil.getI18nLabel(94953,"在文本中查找关键字"), funcDescUtil.get("SEARCH"),"SEARCH(关键字, 文本, [搜索开始位置])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("REPLACE",SystemEnv.getHtmlLabelName(94954,"替换文本中的字"), funcDescUtil.get("REPLACE"),"REPLACE(原文本, 替换开始位置, 替换字符数, 新文本)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("REPLACE",SalaryI18nUtil.getI18nLabel(94954,"替换文本中的字"), funcDescUtil.get("REPLACE"),"REPLACE(原文本, 替换开始位置, 替换字符数, 新文本)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("REPT",SystemEnv.getHtmlLabelName(94955,"将文本重复指定次数"), funcDescUtil.get("REPT"),"REPT(文本, 重复次数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("REPT",SalaryI18nUtil.getI18nLabel(94955,"将文本重复指定次数"), funcDescUtil.get("REPT"),"REPT(文本, 重复次数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("PAD",SystemEnv.getHtmlLabelName(94956,"将文本填充至指定长度"), funcDescUtil.get("PAD"),"PAD(原文本, 长度, 填充用的文本, ['填充位置'])",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("PAD",SalaryI18nUtil.getI18nLabel(94956,"将文本填充至指定长度"), funcDescUtil.get("PAD"),"PAD(原文本, 长度, 填充用的文本, ['填充位置'])",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("TRIM",SystemEnv.getHtmlLabelName(94957,"清除前后空格"), funcDescUtil.get("TRIM"),"TRIM(文本)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("TRIM",SalaryI18nUtil.getI18nLabel(94957,"清除前后空格"), funcDescUtil.get("TRIM"),"TRIM(文本)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("LEFT",SystemEnv.getHtmlLabelName(94958,"返回文本左侧开始的文字"), funcDescUtil.get("LEFT"),"LEFT(文本, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("LEFT",SalaryI18nUtil.getI18nLabel(94958,"返回文本左侧开始的文字"), funcDescUtil.get("LEFT"),"LEFT(文本, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("RIGHT",SystemEnv.getHtmlLabelName(94959,"返回文本右侧开始的文字"), funcDescUtil.get("RIGHT"),"RIGHT(文本, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("RIGHT",SalaryI18nUtil.getI18nLabel(94959,"返回文本右侧开始的文字"), funcDescUtil.get("RIGHT"),"RIGHT(文本, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MID",SystemEnv.getHtmlLabelName(94960,"返回文本指定位置开始的文字"), funcDescUtil.get("MID"),"MID(文本, 指定位置, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MID",SalaryI18nUtil.getI18nLabel(94960,"返回文本指定位置开始的文字"), funcDescUtil.get("MID"),"MID(文本, 指定位置, 截取字符数)",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("SCORE",SystemEnv.getHtmlLabelName(94961,"获取选项型控件分数"), funcDescUtil.get("SCORE"),"SCORE({选项型控件})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("SCORE",SalaryI18nUtil.getI18nLabel(94961,"获取选项型控件分数"), funcDescUtil.get("SCORE"),"SCORE({选项型控件})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("IDCARD",SystemEnv.getHtmlLabelName(94962,"身份证函数"), funcDescUtil.get("IDCARD"),"IDCARD({身份证号码}, {查找类型})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("IDCARD",SalaryI18nUtil.getI18nLabel(94962,"身份证函数"), funcDescUtil.get("IDCARD"),"IDCARD({身份证号码}, {查找类型})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ISSTRING",SystemEnv.getHtmlLabelName(0,"是否是字符串"), funcDescUtil.get("ISSTRING"),"ISSTRING({任意控件})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ISSTRING",SalaryI18nUtil.getI18nLabel(0,"是否是字符串"), funcDescUtil.get("ISSTRING"),"ISSTRING({任意控件})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
stringList.add(excelFunc);
|
||||
|
||||
// paramArray=new String[]{};
|
||||
// excelFunc=new ExcelFunc("SUBSTRING",SystemEnv.getHtmlLabelName(97524,"字符截取函数"), funcDescUtil.get("SUBSTRING"),"SUBSTRING({源字符}, {截取开始位置},{截取结束位置})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// excelFunc=new ExcelFunc("SUBSTRING",SalaryI18nUtil.getI18nLabel(97524,"字符截取函数"), funcDescUtil.get("SUBSTRING"),"SUBSTRING({源字符}, {截取开始位置},{截取结束位置})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// stringList.add(excelFunc);
|
||||
// paramArray=new String[]{};
|
||||
// excelFunc=new ExcelFunc("SUBSTITUE",SystemEnv.getHtmlLabelName(97525,"字符查找替换函数"), funcDescUtil.get("SUBSTITUE"),"SUBSTITUE({源字符}, {被替换字符},{新字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// excelFunc=new ExcelFunc("SUBSTITUE",SalaryI18nUtil.getI18nLabel(97525,"字符查找替换函数"), funcDescUtil.get("SUBSTITUE"),"SUBSTITUE({源字符}, {被替换字符},{新字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// stringList.add(excelFunc);
|
||||
// paramArray=new String[]{};
|
||||
// excelFunc=new ExcelFunc("LOWER",SystemEnv.getHtmlLabelName(97526,"字符转小写函数"), funcDescUtil.get("LOWER"),"LOWER({源字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// excelFunc=new ExcelFunc("LOWER",SalaryI18nUtil.getI18nLabel(97526,"字符转小写函数"), funcDescUtil.get("LOWER"),"LOWER({源字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// stringList.add(excelFunc);
|
||||
// paramArray=new String[]{};
|
||||
// excelFunc=new ExcelFunc("UPPER",SystemEnv.getHtmlLabelName(97527,"字符转大写函数"), funcDescUtil.get("UPPER"),"UPPER({源字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// excelFunc=new ExcelFunc("UPPER",SalaryI18nUtil.getI18nLabel(97527,"字符转大写函数"), funcDescUtil.get("UPPER"),"UPPER({源字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// stringList.add(excelFunc);
|
||||
// paramArray=new String[]{};
|
||||
// excelFunc=new ExcelFunc("EXACT",SystemEnv.getHtmlLabelName(97528,"字符比较函数"), funcDescUtil.get("EXACT"),"EXACT({字符1}, {字符2})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// excelFunc=new ExcelFunc("EXACT",SalaryI18nUtil.getI18nLabel(97528,"字符比较函数"), funcDescUtil.get("EXACT"),"EXACT({字符1}, {字符2})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
// stringList.add(excelFunc);
|
||||
return stringList;
|
||||
}
|
||||
|
|
@ -316,36 +307,36 @@ public class ExcelFuncs {
|
|||
List<ExcelFunc> mathList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ROUNDUP",SystemEnv.getHtmlLabelName(94963,"向上舍入"), funcDescUtil.get("ROUNDUP"),"ROUNDUP(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ROUNDUP",SalaryI18nUtil.getI18nLabel(94963,"向上舍入"), funcDescUtil.get("ROUNDUP"),"ROUNDUP(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ROUND",SystemEnv.getHtmlLabelName(17392,"四舍五入"), funcDescUtil.get("ROUND"),"ROUND(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ROUND",SalaryI18nUtil.getI18nLabel(17392,"四舍五入"), funcDescUtil.get("ROUND"),"ROUND(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ROUNDDOWN",SystemEnv.getHtmlLabelName(94964,"向下舍入"), funcDescUtil.get("ROUNDDOWN"),"ROUNDDOWN(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ROUNDDOWN",SalaryI18nUtil.getI18nLabel(94964,"向下舍入"), funcDescUtil.get("ROUNDDOWN"),"ROUNDDOWN(数值, [小数位精确度])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("AGGREGATION",SystemEnv.getHtmlLabelName(94965,"聚合运算"), funcDescUtil.get("AGGREGATION"),"AGGREGATION({数字}...,{聚合运算类型})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("AGGREGATION",SalaryI18nUtil.getI18nLabel(94965,"聚合运算"), funcDescUtil.get("AGGREGATION"),"AGGREGATION({数字}...,{聚合运算类型})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MOD",SystemEnv.getHtmlLabelName(94966,"求余"), funcDescUtil.get("MOD"),"ROUNDDOWN({数字},{数字})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MOD",SalaryI18nUtil.getI18nLabel(94966,"求余"), funcDescUtil.get("MOD"),"ROUNDDOWN({数字},{数字})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("TRUNC",SystemEnv.getHtmlLabelName(94967,"数字格式化"), funcDescUtil.get("TRUNC"),"ROUNDDOWN({数字},{精度})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("TRUNC",SalaryI18nUtil.getI18nLabel(94967,"数字格式化"), funcDescUtil.get("TRUNC"),"ROUNDDOWN({数字},{精度})",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ISINT",SystemEnv.getHtmlLabelName(0,"字符内容是否是整数"), funcDescUtil.get("ISINT"),"ISINT({字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ISINT",SalaryI18nUtil.getI18nLabel(0,"字符内容是否是整数"), funcDescUtil.get("ISINT"),"ISINT({字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("ISNUMBER",SystemEnv.getHtmlLabelName(0,"字符内容是否是数字"), funcDescUtil.get("ISNUMBER"),"ISNUMBER({字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("ISNUMBER",SalaryI18nUtil.getI18nLabel(0,"字符内容是否是数字"), funcDescUtil.get("ISNUMBER"),"ISNUMBER({字符})",paramArray,nullParamDatas,"String",CURRENTDATA);
|
||||
mathList.add(excelFunc);
|
||||
|
||||
return mathList;
|
||||
|
|
@ -360,15 +351,15 @@ public class ExcelFuncs {
|
|||
List<ExcelFunc> findList=new LinkedList<>();
|
||||
ExcelFunc excelFunc=null;
|
||||
String [] paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("CHOOSE",SystemEnv.getHtmlLabelName(94968,"返回索引范围内指定的值"), funcDescUtil.get("CHOOSE"),"CHOOSE(数据源,[条件])",paramArray,nullParamDatas,"Array",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("CHOOSE",SalaryI18nUtil.getI18nLabel(94968,"返回索引范围内指定的值"), funcDescUtil.get("CHOOSE"),"CHOOSE(数据源,[条件])",paramArray,nullParamDatas,"Array",CURRENTDATA);
|
||||
findList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("VLOOKUPS",SystemEnv.getHtmlLabelName(94969,"按列查找,返回所需值"), funcDescUtil.get("VLOOKUPS"),"VLOOKUPS(表,[条件],[返回参数])",paramArray,nullParamDatas,"Array",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("VLOOKUPS",SalaryI18nUtil.getI18nLabel(94969,"按列查找,返回所需值"), funcDescUtil.get("VLOOKUPS"),"VLOOKUPS(表,[条件],[返回参数])",paramArray,nullParamDatas,"Array",CURRENTDATA);
|
||||
findList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{};
|
||||
excelFunc=new ExcelFunc("MATCH",SystemEnv.getHtmlLabelName(94970,"返回指定数值在指定数组区域中的位置"), funcDescUtil.get("MATCH"),"MATCH(值,[数组])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
excelFunc=new ExcelFunc("MATCH",SalaryI18nUtil.getI18nLabel(94970,"返回指定数值在指定数组区域中的位置"), funcDescUtil.get("MATCH"),"MATCH(值,[数组])",paramArray,nullParamDatas,"Number",CURRENTDATA);
|
||||
findList.add(excelFunc);
|
||||
return findList;
|
||||
}
|
||||
|
|
@ -382,23 +373,23 @@ public class ExcelFuncs {
|
|||
ExcelFunc excelFunc=null;
|
||||
|
||||
String [] paramArray=new String[]{"Form","Number","Boolean"};
|
||||
excelFunc=new ExcelFunc("COUNT", SystemEnv.getHtmlLabelName(16654,"计数"), funcDescUtil.get("COUNT"),"COUNT(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
excelFunc=new ExcelFunc("COUNT", SalaryI18nUtil.getI18nLabel(16654,"计数"), funcDescUtil.get("COUNT"),"COUNT(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
aggList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{"Number","Number","Boolean"};
|
||||
excelFunc=new ExcelFunc("SUM",SystemEnv.getHtmlLabelName(95012,"求和") , funcDescUtil.get("SUM"),"SUM(数字字段)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
excelFunc=new ExcelFunc("SUM",SalaryI18nUtil.getI18nLabel(95012,"求和") , funcDescUtil.get("SUM"),"SUM(数字字段)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
aggList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{"Number","Number","Boolean"};
|
||||
excelFunc=new ExcelFunc("AVG",SystemEnv.getHtmlLabelName(19550,"平均值"), funcDescUtil.get("AVG"),"AVG(数字字段)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
excelFunc=new ExcelFunc("AVG",SalaryI18nUtil.getI18nLabel(19550,"平均值"), funcDescUtil.get("AVG"),"AVG(数字字段)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
aggList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{"Number","Number","Boolean"};
|
||||
excelFunc=new ExcelFunc("MIN",SystemEnv.getHtmlLabelName(12318,"最小值"), funcDescUtil.get("MIN"),"MIN(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
excelFunc=new ExcelFunc("MIN",SalaryI18nUtil.getI18nLabel(12318,"最小值"), funcDescUtil.get("MIN"),"MIN(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
aggList.add(excelFunc);
|
||||
|
||||
paramArray=new String[]{"Number","Number","Boolean"};
|
||||
excelFunc=new ExcelFunc("MAX",SystemEnv.getHtmlLabelName(66750,"最大值"), funcDescUtil.get("MAX"),"MAX(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
excelFunc=new ExcelFunc("MAX",SalaryI18nUtil.getI18nLabel(66750,"最大值"), funcDescUtil.get("MAX"),"MAX(表格)",paramArray,paramDatas,"Number",ALLFORM);
|
||||
aggList.add(excelFunc);
|
||||
return aggList;
|
||||
}
|
||||
|
|
@ -410,7 +401,7 @@ public class ExcelFuncs {
|
|||
public Object getFinanceList(){
|
||||
ExcelFunc excelFunc = null;
|
||||
List<ExcelFunc> funcs = Lists.newArrayList();
|
||||
excelFunc = new ExcelFunc("GETMONEY",SystemEnv.getHtmlLabelName(0,"获取锁给定数字的金额大写"), funcDescUtil.get("GETMONEY"),"GETMONEY({数字})",null,nullParamDatas,"",CURRENTDATA);
|
||||
excelFunc = new ExcelFunc("GETMONEY",SalaryI18nUtil.getI18nLabel(0,"获取锁给定数字的金额大写"), funcDescUtil.get("GETMONEY"),"GETMONEY({数字})",null,nullParamDatas,"",CURRENTDATA);
|
||||
funcs.add(excelFunc);
|
||||
|
||||
return funcs;
|
||||
|
|
@ -423,73 +414,54 @@ public class ExcelFuncs {
|
|||
ExcelFunc excelFunc = null;
|
||||
List<ExcelFunc> funcs = Lists.newArrayList();
|
||||
|
||||
// excelFunc = new ExcelFunc("GETHRMLOGINID",SystemEnv.getHtmlLabelName(100807,"返回指定人员系统账号"), funcDescUtil.get("GETHRMLOGINID"),"GETHRMLOGINID({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMLOGINID",SalaryI18nUtil.getI18nLabel(100807,"返回指定人员系统账号"), funcDescUtil.get("GETHRMLOGINID"),"GETHRMLOGINID({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETHRMWORKCODE",SystemEnv.getHtmlLabelName(100809,"返回指定人员编号"), funcDescUtil.get("GETHRMWORKCODE"),"GETHRMWORKCODE({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMWORKCODE",SalaryI18nUtil.getI18nLabel(100809,"返回指定人员编号"), funcDescUtil.get("GETHRMWORKCODE"),"GETHRMWORKCODE({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETHRMMANAGER",SystemEnv.getHtmlLabelName(100811,"返回指定人员直接上级"), funcDescUtil.get("GETHRMMANAGER"),"GETHRMMANAGER({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMMANAGER",SalaryI18nUtil.getI18nLabel(100811,"返回指定人员直接上级"), funcDescUtil.get("GETHRMMANAGER"),"GETHRMMANAGER({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETHRMALLMANAGER",SystemEnv.getHtmlLabelName(100813,"返回指定人员所有上级"), funcDescUtil.get("GETHRMALLMANAGER"),"GETHRMALLMANAGER({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMALLMANAGER",SalaryI18nUtil.getI18nLabel(100813,"返回指定人员所有上级"), funcDescUtil.get("GETHRMALLMANAGER"),"GETHRMALLMANAGER({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETHRMDEPARTMENT",SystemEnv.getHtmlLabelName(100815,"返回指定人员部门"), funcDescUtil.get("GETHRMDEPARTMENT"),"GETHRMDEPARTMENT({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMDEPARTMENT",SalaryI18nUtil.getI18nLabel(100815,"返回指定人员部门"), funcDescUtil.get("GETHRMDEPARTMENT"),"GETHRMDEPARTMENT({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETHRMSUBCOMPANY",SystemEnv.getHtmlLabelName(100817,"返回指定人员分部"), funcDescUtil.get("GETHRMSUBCOMPANY"),"GETHRMSUBCOMPANY({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETHRMSUBCOMPANY",SalaryI18nUtil.getI18nLabel(100817,"返回指定人员分部"), funcDescUtil.get("GETHRMSUBCOMPANY"),"GETHRMSUBCOMPANY({表单.人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETDEPARTMENTNAME",SystemEnv.getHtmlLabelName(100819,"返回指定部门名称"), funcDescUtil.get("GETDEPARTMENTNAME"),"GETDEPARTMENTNAME({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETDEPARTMENTNAME",SalaryI18nUtil.getI18nLabel(100819,"返回指定部门名称"), funcDescUtil.get("GETDEPARTMENTNAME"),"GETDEPARTMENTNAME({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETDEPARTMENTCODE",SystemEnv.getHtmlLabelName(100821,"返回指定部门编号"), funcDescUtil.get("GETDEPARTMENTCODE"),"GETDEPARTMENTCODE({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETDEPARTMENTCODE",SalaryI18nUtil.getI18nLabel(100821,"返回指定部门编号"), funcDescUtil.get("GETDEPARTMENTCODE"),"GETDEPARTMENTCODE({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETSUPERDEPARTMENT",SystemEnv.getHtmlLabelName(100823,"返回指定部门直接上级部门"), funcDescUtil.get("GETSUPERDEPARTMENT"),"GETSUPERDEPARTMENT({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETSUPERDEPARTMENT",SalaryI18nUtil.getI18nLabel(100823,"返回指定部门直接上级部门"), funcDescUtil.get("GETSUPERDEPARTMENT"),"GETSUPERDEPARTMENT({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETALLSUPERDEPARTMENT",SystemEnv.getHtmlLabelName(100825,"返回指定部门所有上级部门"), funcDescUtil.get("GETALLSUPERDEPARTMENT"),"GETALLSUPERDEPARTMENT({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETALLSUPERDEPARTMENT",SalaryI18nUtil.getI18nLabel(100825,"返回指定部门所有上级部门"), funcDescUtil.get("GETALLSUPERDEPARTMENT"),"GETALLSUPERDEPARTMENT({表单.部门})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETSUBCOMPANYNAME",SystemEnv.getHtmlLabelName(100827,"返回指定分部名称"), funcDescUtil.get("GETSUBCOMPANYNAME"),"GETSUBCOMPANYNAME({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETSUBCOMPANYNAME",SalaryI18nUtil.getI18nLabel(100827,"返回指定分部名称"), funcDescUtil.get("GETSUBCOMPANYNAME"),"GETSUBCOMPANYNAME({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETSUBCOMPANYCODE",SystemEnv.getHtmlLabelName(100829,"返回指定分部编号"), funcDescUtil.get("GETSUBCOMPANYCODE"),"GETSUBCOMPANYCODE({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETSUBCOMPANYCODE",SalaryI18nUtil.getI18nLabel(100829,"返回指定分部编号"), funcDescUtil.get("GETSUBCOMPANYCODE"),"GETSUBCOMPANYCODE({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETSUPERSUBCOMPANY",SystemEnv.getHtmlLabelName(100831,"返回指定分部直接上级分部"), funcDescUtil.get("GETSUPERSUBCOMPANY"),"GETSUPERSUBCOMPANY({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETSUPERSUBCOMPANY",SalaryI18nUtil.getI18nLabel(100831,"返回指定分部直接上级分部"), funcDescUtil.get("GETSUPERSUBCOMPANY"),"GETSUPERSUBCOMPANY({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
//
|
||||
// excelFunc = new ExcelFunc("GETALLSUPERSUBCOMPANY",SystemEnv.getHtmlLabelName(100833,"返回指定分部所有上级分部"), funcDescUtil.get("GETALLSUPERSUBCOMPANY"),"GETALLSUPERSUBCOMPANY({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// excelFunc = new ExcelFunc("GETALLSUPERSUBCOMPANY",SalaryI18nUtil.getI18nLabel(100833,"返回指定分部所有上级分部"), funcDescUtil.get("GETALLSUPERSUBCOMPANY"),"GETALLSUPERSUBCOMPANY({表单.分部})",null,nullParamDatas,"",CURRENTDATA);
|
||||
// funcs.add(excelFunc);
|
||||
|
||||
excelFunc = new ExcelFunc("GETHRMNAME",SystemEnv.getHtmlLabelName(100833,"获取人员名称"), funcDescUtil.get("GETHRMNAME"),"GETHRMNAME({人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
excelFunc = new ExcelFunc("GETHRMNAME",SalaryI18nUtil.getI18nLabel(100833,"获取人员名称"), funcDescUtil.get("GETHRMNAME"),"GETHRMNAME({人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
funcs.add(excelFunc);
|
||||
|
||||
excelFunc = new ExcelFunc("GETHRMMOBILE",SystemEnv.getHtmlLabelName(100833,"获取人员手机号码"), funcDescUtil.get("GETHRMMOBILE"),"GETHRMMOBILE({人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
excelFunc = new ExcelFunc("GETHRMMOBILE",SalaryI18nUtil.getI18nLabel(100833,"获取人员手机号码"), funcDescUtil.get("GETHRMMOBILE"),"GETHRMMOBILE({人员})",null,nullParamDatas,"",CURRENTDATA);
|
||||
funcs.add(excelFunc);
|
||||
|
||||
return funcs;
|
||||
}
|
||||
|
||||
public List<ExcelFunc> getOtherFuncs(){
|
||||
List<ExcelFunc> otherFuncs=new ArrayList<>();
|
||||
for(int i=0;i<moduleList.length;i++){
|
||||
String module=moduleList[i];
|
||||
try {
|
||||
Object result=excelDubboInvoker.invokeModuleDubbo(List.class, RemoteExcelExtendFuncService.class,module, RpcMethod.getExtendFuncs);
|
||||
if(result!=null){
|
||||
List<ExcelFunc> moduleFuncs=(List<ExcelFunc>)result;
|
||||
if(moduleFuncs.size()>0){
|
||||
otherFuncs.addAll(moduleFuncs);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
return otherFuncs;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package com.engine.salary.formlua.entity.parameter;
|
||||
|
||||
import com.weaver.common.i18n.label.SystemEnv;
|
||||
import com.engine.salary.util.SalaryI18nUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -11,122 +11,124 @@ import java.util.Map;
|
|||
|
||||
@Component
|
||||
public class FuncDescUtil {
|
||||
protected final Logger logger = LoggerFactory.getLogger(FuncDescUtil.class);
|
||||
Map<String,String> funcMap=new HashMap();
|
||||
public void initData(){
|
||||
//聚合函数
|
||||
funcMap.put("COUNT",SystemEnv.getHtmlLabelName(94986,"返回指定表格中满足条件的数据条数。示例:COUNT({员工表})"));
|
||||
funcMap.put("SUM",SystemEnv.getHtmlLabelName(94987,"返回指定表格中满足条件的数据,其指定数字字段值的总和。统计条件中不可嵌套使用统计函数。示例:SUM({员工表.工资})"));
|
||||
funcMap.put("AVG",SystemEnv.getHtmlLabelName(94988,"返回指定表格中满足条件的数据,其指定数字字段值的平均值。统计条件中不可嵌套使用统计函数。示例:AVG({员工表.工资})"));
|
||||
funcMap.put("MIN",SystemEnv.getHtmlLabelName(94989,"返回指定表格中满足条件的数据,其指定数字字段值的最小值。统计条件中不可嵌套使用统计函数。示例:MIN({员工表.工资})"));
|
||||
funcMap.put("MAX",SystemEnv.getHtmlLabelName(94990,"返回指定表格中满足条件的数据,其指定数字字段值的最大值。统计条件中不可嵌套使用统计函数。示例:MAX({员工表.工资})"));
|
||||
//日期函数
|
||||
funcMap.put("TODAY",SystemEnv.getHtmlLabelName(97678,"返回当天日期。示例:TODAY() 结果: '2020-01-01'"));
|
||||
funcMap.put("NOW",SystemEnv.getHtmlLabelName(97689,"返回当天日期+时间。示例:NOW() 结果: '2016-12-24 12:05:38'"));
|
||||
funcMap.put("DATEADD",SystemEnv.getHtmlLabelName(97691,"对日期加减按照单位加减。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。示例:<br> DATEADD('2016-12-21', 3) 结果: '2016-12-24' <br> DATEADD('2016-12-24 20:00:00', 3, 'H') 结果: '2016-12-24 23:00:00'"));
|
||||
funcMap.put("DATEDIFF",SystemEnv.getHtmlLabelName(97692,"根据指定的单位,返回日期2减去日期1的差值。当日期2小于日期1时,差值为负值。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。<br> 示例:<br> DATEDIF('2016-12-21', '2016-12-24') 结果: 3 <br> DATEDIF('2016-12-24 20:00:00', '2016-12-25 20:00:00', 'H') 结果: 24"));
|
||||
funcMap.put("DATEFORMAT",SystemEnv.getHtmlLabelName(97693,"将日期转为指定格式返回。 示例:<br> DATEFORMAT('2016-12-24', 'YY年MM月DD日') 结果: 2016年12月24日 <br> yyyy 将年份显示为1900-9999 <br> yy 将年份显示为00-99 <br> mm 将月份显示为 01–12 <br> dd 将日期显示为 01–31"));
|
||||
funcMap.put("YEAR",SystemEnv.getHtmlLabelName(97694,"返回指定日期中的年。示例:<br> YEAR('2016-12-24') 结果: 2016"));
|
||||
funcMap.put("MONTH",SystemEnv.getHtmlLabelName(97695,"返回指定日期中的月。示例:<br> MONTH('2016-12-24') 结果: 12"));
|
||||
funcMap.put("DAY",SystemEnv.getHtmlLabelName(97696,"返回指定日期中的日。示例:<br> DAY('2016-12-24') 结果: 24"));
|
||||
funcMap.put("HOUR",SystemEnv.getHtmlLabelName(97697,"返回指定日期中的小时。示例:<br> HOUR('2016-12-24 20:30:56') 结果: 20"));
|
||||
funcMap.put("MINUTE",SystemEnv.getHtmlLabelName(97698,"返回指定日期中的分钟。示例:<br> MINUTE('2016-12-24 20:30:56') 结果: 30"));
|
||||
funcMap.put("SECOND",SystemEnv.getHtmlLabelName(97699,"返回指定日期中的秒钟。示例:<br> SECOND('2016-12-24 20:30:56') 结果: 56"));
|
||||
funcMap.put("WEEKNUM",SystemEnv.getHtmlLabelName(97700,"返回指定日期为第几周,从每年第1天开始算第1周。示例:<br> WEEKNUM('2016-12-24') 结果: 52"));
|
||||
funcMap.put("WEEKDAY",SystemEnv.getHtmlLabelName(97701,"返回指定日期为星期几。返回值为0~6,代表周日~周六。示例:<br> WEEKDAY('2016-12-24') 结果: 6"));
|
||||
funcMap.put("EOMONTH",SystemEnv.getHtmlLabelName(97702,"将某月最后一天日期返回。日期可以为指定日期也可以是日期参数,之前的月数用负数表示,之后的月数用正数表示。所输入月数需为整数。<br>示例:EOMONTH('2021-11-07', -2)<br>结果:2021-09-30"));
|
||||
funcMap.put("NETWORKDAYSPI",SystemEnv.getHtmlLabelName(97703,"将指定日期(仅限的过去时间,最大支持跨度为365天)之间包含的工作日天数返回。注意:此函数只能选择过去的时间才可使用,跨度不能超过365天。当日期2小于日期1时,差值为负值。单位默认为日。<br>示例:想知道李四在2021-11-07和2021-11-12之间的工作日天数。<br>NETWORKDAYSPI('2021-11-07', '2021-11-12','李四') <br>结果:5"));
|
||||
funcMap.put("MAXDATE", SystemEnv.getHtmlLabelName(100804, "取一组日期中的最大值。示例:<br/> MAXDATE('2016-12-24', '2022-12-24') 结果: 2022-12-24"));
|
||||
funcMap.put("MINDATE", SystemEnv.getHtmlLabelName(100806, "取一组日期中的最小值。示例:<br/> MINDATE('2016-12-24', '2022-12-24') 结果: 2016-12-24"));
|
||||
//日期中的当前时间操作
|
||||
funcMap.put("CURRYEAR", SystemEnv.getHtmlLabelName(101066, "取当前日期的年份。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRYEAR() 结果: 2022"));
|
||||
funcMap.put("CURRMONTH", SystemEnv.getHtmlLabelName(101067, "取当前日期的月份。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRMONTH() 结果: 2"));
|
||||
funcMap.put("CURRDAY", SystemEnv.getHtmlLabelName(101068, "取当前日期的天。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRDAY() 结果: 17"));
|
||||
funcMap.put("CURRWEEK", SystemEnv.getHtmlLabelName(101069, "取当前日期是周几。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRWEEK() 结果: 4"));
|
||||
funcMap.put("CURRHOUR", SystemEnv.getHtmlLabelName(101070, "取当前日期的小时。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRHOUR() 结果: 11"));
|
||||
funcMap.put("CURRMINUTE", SystemEnv.getHtmlLabelName(101071, "取当前日期的分钟。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRMINUTE() 结果: 20"));
|
||||
funcMap.put("CURRSECOND", SystemEnv.getHtmlLabelName(101072, "取当前日期的秒钟。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRSECOND() 结果: 30"));
|
||||
protected final Logger logger = LoggerFactory.getLogger(FuncDescUtil.class);
|
||||
Map<String, String> funcMap = new HashMap();
|
||||
|
||||
//逻辑函数
|
||||
funcMap.put("IF",SystemEnv.getHtmlLabelName(97704,"如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。示例:<br> IF({员工表.年龄} > 60, '退休', '在职')、IF({员工表.年龄} > 60, IF({员工表.性别} = {员工表.性别.女}, '退休', '在职'), '在职')"));
|
||||
funcMap.put("AND",SystemEnv.getHtmlLabelName(97705,"所有条件均为真,则返回真,否则返回假。逻辑操作AND的函数模式。示例:<br> AND(2 = 2, 2 < 2)"));
|
||||
funcMap.put("OR",SystemEnv.getHtmlLabelName(97706,"任意一个条件为真,则返回真,否则返回假。逻辑操作OR的函数模式。示例:<br> OR(2 = 2, 2 > 3)"));
|
||||
funcMap.put("NOT",SystemEnv.getHtmlLabelName(97707,"对逻辑结果取反。示例:<br> NOT(2 > 3)"));
|
||||
funcMap.put("IN",SystemEnv.getHtmlLabelName(97708,"任意类型的变量或常量等于一组同类型变量或常量结果中的任意一个,则返回真。示例:<br> IN(2, [2, 3, 4])"));
|
||||
funcMap.put("LIKE",SystemEnv.getHtmlLabelName(97709,"文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。示例:<br> LIKE('大家好', ['大家', '好'])"));
|
||||
funcMap.put("TRUE",SystemEnv.getHtmlLabelName(97710,"返回真。示例:TRUE()"));
|
||||
funcMap.put("FALSE",SystemEnv.getHtmlLabelName(97712,"返回假。示例:FALSE()"));
|
||||
funcMap.put("IFS",SystemEnv.getHtmlLabelName(97713,"多个条件判断,位于单数位置的参数设置为条件,位于双数位置的参数设置为结果,最后一个参数为默认返回值,当所有条件都不满足的时候返回默认参数。示例:IFS(1>1,1,1=1,2,0),结果:2"));
|
||||
funcMap.put("FIND",SystemEnv.getHtmlLabelName(97714,"用指定参数去另一个参数列表中查找匹配项,指定参数时,填写1则去第一个参数列表中查找,2则是第二个参数列表里匹配查找第一个参数,成功则返回true,失败返回false。示例:FIND([1,2,3],[1,2,3,4],1),结果:true"));
|
||||
public void initData() {
|
||||
//聚合函数
|
||||
funcMap.put("COUNT", SalaryI18nUtil.getI18nLabel(94986, "返回指定表格中满足条件的数据条数。示例:COUNT({员工表})"));
|
||||
funcMap.put("SUM", SalaryI18nUtil.getI18nLabel(94987, "返回指定表格中满足条件的数据,其指定数字字段值的总和。统计条件中不可嵌套使用统计函数。示例:SUM({员工表.工资})"));
|
||||
funcMap.put("AVG", SalaryI18nUtil.getI18nLabel(94988, "返回指定表格中满足条件的数据,其指定数字字段值的平均值。统计条件中不可嵌套使用统计函数。示例:AVG({员工表.工资})"));
|
||||
funcMap.put("MIN", SalaryI18nUtil.getI18nLabel(94989, "返回指定表格中满足条件的数据,其指定数字字段值的最小值。统计条件中不可嵌套使用统计函数。示例:MIN({员工表.工资})"));
|
||||
funcMap.put("MAX", SalaryI18nUtil.getI18nLabel(94990, "返回指定表格中满足条件的数据,其指定数字字段值的最大值。统计条件中不可嵌套使用统计函数。示例:MAX({员工表.工资})"));
|
||||
//日期函数
|
||||
funcMap.put("TODAY", SalaryI18nUtil.getI18nLabel(97678, "返回当天日期。示例:TODAY() 结果: '2020-01-01'"));
|
||||
funcMap.put("NOW", SalaryI18nUtil.getI18nLabel(97689, "返回当天日期+时间。示例:NOW() 结果: '2016-12-24 12:05:38'"));
|
||||
funcMap.put("DATEADD", SalaryI18nUtil.getI18nLabel(97691, "对日期加减按照单位加减。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。示例:<br> DATEADD('2016-12-21', 3) 结果: '2016-12-24' <br> DATEADD('2016-12-24 20:00:00', 3, 'H') 结果: '2016-12-24 23:00:00'"));
|
||||
funcMap.put("DATEDIFF", SalaryI18nUtil.getI18nLabel(97692, "根据指定的单位,返回日期2减去日期1的差值。当日期2小于日期1时,差值为负值。单位默认为日,可选单位:年Y、月M、日D、时H、分I、秒S。<br> 示例:<br> DATEDIF('2016-12-21', '2016-12-24') 结果: 3 <br> DATEDIF('2016-12-24 20:00:00', '2016-12-25 20:00:00', 'H') 结果: 24"));
|
||||
funcMap.put("DATEFORMAT", SalaryI18nUtil.getI18nLabel(97693, "将日期转为指定格式返回。 示例:<br> DATEFORMAT('2016-12-24', 'YY年MM月DD日') 结果: 2016年12月24日 <br> yyyy 将年份显示为1900-9999 <br> yy 将年份显示为00-99 <br> mm 将月份显示为 01–12 <br> dd 将日期显示为 01–31"));
|
||||
funcMap.put("YEAR", SalaryI18nUtil.getI18nLabel(97694, "返回指定日期中的年。示例:<br> YEAR('2016-12-24') 结果: 2016"));
|
||||
funcMap.put("MONTH", SalaryI18nUtil.getI18nLabel(97695, "返回指定日期中的月。示例:<br> MONTH('2016-12-24') 结果: 12"));
|
||||
funcMap.put("DAY", SalaryI18nUtil.getI18nLabel(97696, "返回指定日期中的日。示例:<br> DAY('2016-12-24') 结果: 24"));
|
||||
funcMap.put("HOUR", SalaryI18nUtil.getI18nLabel(97697, "返回指定日期中的小时。示例:<br> HOUR('2016-12-24 20:30:56') 结果: 20"));
|
||||
funcMap.put("MINUTE", SalaryI18nUtil.getI18nLabel(97698, "返回指定日期中的分钟。示例:<br> MINUTE('2016-12-24 20:30:56') 结果: 30"));
|
||||
funcMap.put("SECOND", SalaryI18nUtil.getI18nLabel(97699, "返回指定日期中的秒钟。示例:<br> SECOND('2016-12-24 20:30:56') 结果: 56"));
|
||||
funcMap.put("WEEKNUM", SalaryI18nUtil.getI18nLabel(97700, "返回指定日期为第几周,从每年第1天开始算第1周。示例:<br> WEEKNUM('2016-12-24') 结果: 52"));
|
||||
funcMap.put("WEEKDAY", SalaryI18nUtil.getI18nLabel(97701, "返回指定日期为星期几。返回值为0~6,代表周日~周六。示例:<br> WEEKDAY('2016-12-24') 结果: 6"));
|
||||
funcMap.put("EOMONTH", SalaryI18nUtil.getI18nLabel(97702, "将某月最后一天日期返回。日期可以为指定日期也可以是日期参数,之前的月数用负数表示,之后的月数用正数表示。所输入月数需为整数。<br>示例:EOMONTH('2021-11-07', -2)<br>结果:2021-09-30"));
|
||||
funcMap.put("NETWORKDAYSPI", SalaryI18nUtil.getI18nLabel(97703, "将指定日期(仅限的过去时间,最大支持跨度为365天)之间包含的工作日天数返回。注意:此函数只能选择过去的时间才可使用,跨度不能超过365天。当日期2小于日期1时,差值为负值。单位默认为日。<br>示例:想知道李四在2021-11-07和2021-11-12之间的工作日天数。<br>NETWORKDAYSPI('2021-11-07', '2021-11-12','李四') <br>结果:5"));
|
||||
funcMap.put("MAXDATE", SalaryI18nUtil.getI18nLabel(100804, "取一组日期中的最大值。示例:<br/> MAXDATE('2016-12-24', '2022-12-24') 结果: 2022-12-24"));
|
||||
funcMap.put("MINDATE", SalaryI18nUtil.getI18nLabel(100806, "取一组日期中的最小值。示例:<br/> MINDATE('2016-12-24', '2022-12-24') 结果: 2016-12-24"));
|
||||
//日期中的当前时间操作
|
||||
funcMap.put("CURRYEAR", SalaryI18nUtil.getI18nLabel(101066, "取当前日期的年份。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRYEAR() 结果: 2022"));
|
||||
funcMap.put("CURRMONTH", SalaryI18nUtil.getI18nLabel(101067, "取当前日期的月份。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRMONTH() 结果: 2"));
|
||||
funcMap.put("CURRDAY", SalaryI18nUtil.getI18nLabel(101068, "取当前日期的天。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRDAY() 结果: 17"));
|
||||
funcMap.put("CURRWEEK", SalaryI18nUtil.getI18nLabel(101069, "取当前日期是周几。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRWEEK() 结果: 4"));
|
||||
funcMap.put("CURRHOUR", SalaryI18nUtil.getI18nLabel(101070, "取当前日期的小时。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRHOUR() 结果: 11"));
|
||||
funcMap.put("CURRMINUTE", SalaryI18nUtil.getI18nLabel(101071, "取当前日期的分钟。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRMINUTE() 结果: 20"));
|
||||
funcMap.put("CURRSECOND", SalaryI18nUtil.getI18nLabel(101072, "取当前日期的秒钟。示例:<br/> 假设当前时间为:2022年2月17日 11:20:30 ,CURRSECOND() 结果: 30"));
|
||||
|
||||
//文本函数
|
||||
funcMap.put("CONCAT",SystemEnv.getHtmlLabelName(97730,"可用于连接多个任意类型的文本、日期、数字变量或常量。示例:<br> CONCAT({总价}/10000, '万元')"));
|
||||
funcMap.put("TEXT",SystemEnv.getHtmlLabelName(97731,"将变量转为文本。示例:<br> TEXT({当前数据.性别}) 结果: '男'"));
|
||||
funcMap.put("VALUE",SystemEnv.getHtmlLabelName(97732,"将文本转为数字。示例:<br> VALUE('23') 结果: 23"));
|
||||
funcMap.put("LEN",SystemEnv.getHtmlLabelName(97733,"返回文本的长度,中文、英文都算1个字符。示例:<br> LEN('大家好dajiahao') 结果: 12"));
|
||||
funcMap.put("SEARCH",SystemEnv.getHtmlLabelName(97734,"在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。示例:<br> SEARCH('大家', '大家好大家好', 3) 结果: 4"));
|
||||
funcMap.put("REPLACE",SystemEnv.getHtmlLabelName(97735,"在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。示例:<br> REPLACE('大家好大家好', 2, 3, 'dajia') 结果: '大dajia家好'"));
|
||||
funcMap.put("REPT",SystemEnv.getHtmlLabelName(97736,"将文本重复指定次数。示例:<br> REPT('大家', 2) 结果: '大家大家'"));
|
||||
funcMap.put("PAD",SystemEnv.getHtmlLabelName(97737,"将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。填充位置可用参数:'LEFT'、'RIGHT'。示例:<br> PAD('你好', 4, '你', 'LEFT') 结果: '你你你好'"));
|
||||
funcMap.put("TRIM",SystemEnv.getHtmlLabelName(97738,"删除文本首尾的空格。示例:<br> TRIM(' 大家好 ') 结果: '大家好'"));
|
||||
funcMap.put("LEFT",SystemEnv.getHtmlLabelName(97739,"从文本左侧开始,返回指定字符数的文字。示例:<br> LEFT('大家好', 2) 结果: '大家'"));
|
||||
funcMap.put("RIGHT",SystemEnv.getHtmlLabelName(97740,"从文本右侧开始,返回指定字符数的文字。示例:<br> RIGHT('大家好', 2) 结果: '家好'"));
|
||||
funcMap.put("MID",SystemEnv.getHtmlLabelName(97741,"从文本指定位置之后开始,返回指定字符数的文字。示例:<br> MID('大家好', 2, 1) 结果: '家'"));
|
||||
funcMap.put("ISEMPTY",SystemEnv.getHtmlLabelName(97742,"变量为空或未填写,则返回真。示例:<br> ISEMPTY({员工表.电话})"));
|
||||
funcMap.put("IDCARD",SystemEnv.getHtmlLabelName(97743,"从身份证号码中获取相关信息,比如:生日(BD)、年龄(AGE)、籍贯(NA)、性别(GENDER)。示例:<br> IDCARD( ‘43070319980706334X’ , ‘BD’ ) 结果: '1998-07-06'"));
|
||||
funcMap.put("SCORE",SystemEnv.getHtmlLabelName(97744,"获取选项型控件(单选框、复选框、下拉菜单)分数。示例:SCORE({当前数据.单选框}) 结果:选项分数<br>注:未设置选项分数时,结果为0"));
|
||||
funcMap.put("SUBSTRING", SystemEnv.getHtmlLabelName(97745,"字符截取函数,用于按起始位置截取字符。<br>示例:SUBSTRING('abcdefg',2,3) <br>结果:bc"));
|
||||
funcMap.put("SUBSTITUE", SystemEnv.getHtmlLabelName(97746,"字符查找替换函数,替换字符中的所有关键词为新字符。<br>示例:SUBSTITUE('泛微移动办公','泛微','eteams') <br>结果:eteams移动办公"));
|
||||
funcMap.put("LOWER", SystemEnv.getHtmlLabelName(97747,"将字符中的字母转为小写。<br>示例:LOWER('abc')<br>结果:ABC"));
|
||||
funcMap.put("UPPER", SystemEnv.getHtmlLabelName(97748,"将字符中的字母转为大写。<br>示例:LOWER('ABC')<br>结果:abc"));
|
||||
funcMap.put("EXACT", SystemEnv.getHtmlLabelName(97749,"比较两个字符是否相等,区分字母的大小写。<br>示例:EXACT('泛微Eteams','泛微eteams') <br> 结果:false"));
|
||||
funcMap.put("ISSTRING", SystemEnv.getHtmlLabelName(0,"判断是否是字符。<br>示例:ISSTRING('泛微Eteams') <br> 结果:true"));
|
||||
//逻辑函数
|
||||
funcMap.put("IF", SalaryI18nUtil.getI18nLabel(97704, "如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。示例:<br> IF({员工表.年龄} > 60, '退休', '在职')、IF({员工表.年龄} > 60, IF({员工表.性别} = {员工表.性别.女}, '退休', '在职'), '在职')"));
|
||||
funcMap.put("AND", SalaryI18nUtil.getI18nLabel(97705, "所有条件均为真,则返回真,否则返回假。逻辑操作AND的函数模式。示例:<br> AND(2 = 2, 2 < 2)"));
|
||||
funcMap.put("OR", SalaryI18nUtil.getI18nLabel(97706, "任意一个条件为真,则返回真,否则返回假。逻辑操作OR的函数模式。示例:<br> OR(2 = 2, 2 > 3)"));
|
||||
funcMap.put("NOT", SalaryI18nUtil.getI18nLabel(97707, "对逻辑结果取反。示例:<br> NOT(2 > 3)"));
|
||||
funcMap.put("IN", SalaryI18nUtil.getI18nLabel(97708, "任意类型的变量或常量等于一组同类型变量或常量结果中的任意一个,则返回真。示例:<br> IN(2, [2, 3, 4])"));
|
||||
funcMap.put("LIKE", SalaryI18nUtil.getI18nLabel(97709, "文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。示例:<br> LIKE('大家好', ['大家', '好'])"));
|
||||
funcMap.put("TRUE", SalaryI18nUtil.getI18nLabel(97710, "返回真。示例:TRUE()"));
|
||||
funcMap.put("FALSE", SalaryI18nUtil.getI18nLabel(97712, "返回假。示例:FALSE()"));
|
||||
funcMap.put("IFS", SalaryI18nUtil.getI18nLabel(97713, "多个条件判断,位于单数位置的参数设置为条件,位于双数位置的参数设置为结果,最后一个参数为默认返回值,当所有条件都不满足的时候返回默认参数。示例:IFS(1>1,1,1=1,2,0),结果:2"));
|
||||
funcMap.put("FIND", SalaryI18nUtil.getI18nLabel(97714, "用指定参数去另一个参数列表中查找匹配项,指定参数时,填写1则去第一个参数列表中查找,2则是第二个参数列表里匹配查找第一个参数,成功则返回true,失败返回false。示例:FIND([1,2,3],[1,2,3,4],1),结果:true"));
|
||||
|
||||
//数学函数
|
||||
funcMap.put("ROUND",SystemEnv.getHtmlLabelName(97750,"根据设置的小数位精确度,返回对数值四舍五入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,针对小数点后的数据进行四舍五入;如果小数位精确度等于 0,返回最接近数值的整数;如果小数位精确度为负整数,针对小数点前的数据进行四舍五入,被舍掉的数据用0占位。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。<br>示例:ROUND(123.456,2),ROUND(123.456,0),ROUND(123.456,-2) <br>结果:依次为123.46,123,100"));
|
||||
funcMap.put("ROUNDUP",SystemEnv.getHtmlLabelName(97751,"根据设置的小数位精确度,返回对数值向上舍入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,则向上舍入到指定的小数位。如果小数位精确度等于 0,则向上舍入到最接近的整数。如果小数位精确度为负整数,则在小数点左侧向上进行舍入。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。示例:ROUNDDOWN(76.9,0)结果:77"));
|
||||
funcMap.put("ROUNDDOWN",SystemEnv.getHtmlLabelName(97752,"根据设置的小数位精确度,返回对数值向下舍入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,则向下舍入到指定的小数位。如果小数位精确度等于 0,则向下舍入到最接近的整数。如果小数位精确度为负整数,则在小数点左侧向下进行舍入。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。<br>示例:ROUNDDOWN(76.9,0)<br>结果:76"));
|
||||
funcMap.put("AGGREGATION",SystemEnv.getHtmlLabelName(97753,"将一组数据进行统计计算,支持最大值(MAX)、最小值(MIN)、平均值(AVG)。示例:AGGREGATION(1 , 2,3,'AVG'),结果:2"));
|
||||
funcMap.put("MOD",SystemEnv.getHtmlLabelName(97754,"将两个参数进行除法运算然后得出余数返回。示例:MOD( 7 , 3 ),结果:1"));
|
||||
funcMap.put("TRUNC",SystemEnv.getHtmlLabelName(97755,"将小数点格式化成指定位数。示例:TRUNC( 2.123 , 2 ),结果:2.12"));
|
||||
funcMap.put("ISINT",SystemEnv.getHtmlLabelName(0,"判断字符内容是否是整数。示例:ISINT( 2.123 ),结果:false"));
|
||||
funcMap.put("ISNUMBER",SystemEnv.getHtmlLabelName(0,"判断字符内容是否是数字。示例:ISNUMBER('2.123'),结果:true"));
|
||||
//文本函数
|
||||
funcMap.put("CONCAT", SalaryI18nUtil.getI18nLabel(97730, "可用于连接多个任意类型的文本、日期、数字变量或常量。示例:<br> CONCAT({总价}/10000, '万元')"));
|
||||
funcMap.put("TEXT", SalaryI18nUtil.getI18nLabel(97731, "将变量转为文本。示例:<br> TEXT({当前数据.性别}) 结果: '男'"));
|
||||
funcMap.put("VALUE", SalaryI18nUtil.getI18nLabel(97732, "将文本转为数字。示例:<br> VALUE('23') 结果: 23"));
|
||||
funcMap.put("LEN", SalaryI18nUtil.getI18nLabel(97733, "返回文本的长度,中文、英文都算1个字符。示例:<br> LEN('大家好dajiahao') 结果: 12"));
|
||||
funcMap.put("SEARCH", SalaryI18nUtil.getI18nLabel(97734, "在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。示例:<br> SEARCH('大家', '大家好大家好', 3) 结果: 4"));
|
||||
funcMap.put("REPLACE", SalaryI18nUtil.getI18nLabel(97735, "在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。示例:<br> REPLACE('大家好大家好', 2, 3, 'dajia') 结果: '大dajia家好'"));
|
||||
funcMap.put("REPT", SalaryI18nUtil.getI18nLabel(97736, "将文本重复指定次数。示例:<br> REPT('大家', 2) 结果: '大家大家'"));
|
||||
funcMap.put("PAD", SalaryI18nUtil.getI18nLabel(97737, "将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。填充位置可用参数:'LEFT'、'RIGHT'。示例:<br> PAD('你好', 4, '你', 'LEFT') 结果: '你你你好'"));
|
||||
funcMap.put("TRIM", SalaryI18nUtil.getI18nLabel(97738, "删除文本首尾的空格。示例:<br> TRIM(' 大家好 ') 结果: '大家好'"));
|
||||
funcMap.put("LEFT", SalaryI18nUtil.getI18nLabel(97739, "从文本左侧开始,返回指定字符数的文字。示例:<br> LEFT('大家好', 2) 结果: '大家'"));
|
||||
funcMap.put("RIGHT", SalaryI18nUtil.getI18nLabel(97740, "从文本右侧开始,返回指定字符数的文字。示例:<br> RIGHT('大家好', 2) 结果: '家好'"));
|
||||
funcMap.put("MID", SalaryI18nUtil.getI18nLabel(97741, "从文本指定位置之后开始,返回指定字符数的文字。示例:<br> MID('大家好', 2, 1) 结果: '家'"));
|
||||
funcMap.put("ISEMPTY", SalaryI18nUtil.getI18nLabel(97742, "变量为空或未填写,则返回真。示例:<br> ISEMPTY({员工表.电话})"));
|
||||
funcMap.put("IDCARD", SalaryI18nUtil.getI18nLabel(97743, "从身份证号码中获取相关信息,比如:生日(BD)、年龄(AGE)、籍贯(NA)、性别(GENDER)。示例:<br> IDCARD( ‘43070319980706334X’ , ‘BD’ ) 结果: '1998-07-06'"));
|
||||
funcMap.put("SCORE", SalaryI18nUtil.getI18nLabel(97744, "获取选项型控件(单选框、复选框、下拉菜单)分数。示例:SCORE({当前数据.单选框}) 结果:选项分数<br>注:未设置选项分数时,结果为0"));
|
||||
funcMap.put("SUBSTRING", SalaryI18nUtil.getI18nLabel(97745, "字符截取函数,用于按起始位置截取字符。<br>示例:SUBSTRING('abcdefg',2,3) <br>结果:bc"));
|
||||
funcMap.put("SUBSTITUE", SalaryI18nUtil.getI18nLabel(97746, "字符查找替换函数,替换字符中的所有关键词为新字符。<br>示例:SUBSTITUE('泛微移动办公','泛微','eteams') <br>结果:eteams移动办公"));
|
||||
funcMap.put("LOWER", SalaryI18nUtil.getI18nLabel(97747, "将字符中的字母转为小写。<br>示例:LOWER('abc')<br>结果:ABC"));
|
||||
funcMap.put("UPPER", SalaryI18nUtil.getI18nLabel(97748, "将字符中的字母转为大写。<br>示例:LOWER('ABC')<br>结果:abc"));
|
||||
funcMap.put("EXACT", SalaryI18nUtil.getI18nLabel(97749, "比较两个字符是否相等,区分字母的大小写。<br>示例:EXACT('泛微Eteams','泛微eteams') <br> 结果:false"));
|
||||
funcMap.put("ISSTRING", SalaryI18nUtil.getI18nLabel(0, "判断是否是字符。<br>示例:ISSTRING('泛微Eteams') <br> 结果:true"));
|
||||
|
||||
//查找函数
|
||||
funcMap.put("CHOOSE",SystemEnv.getHtmlLabelName(97756,"根据条件获取指定数据源中的全部数据。数据源支持选表单、表单中的字段。<br>示例:想知道税表中,收入大于15000的数值<br>CHOOSE({税表}, {税表.收入}>15000) <br>结果:返回税表中收入大于15000的集合"));
|
||||
funcMap.put("MATCH",SystemEnv.getHtmlLabelName(97757,"将指定数值在指定数组区域中的位置返回。若数组中无指定值,返回null。<br>示例:MATCH(15000, [1000, 15000, 2000]) <br>结果:1"));
|
||||
funcMap.put("VLOOKUPS", SystemEnv.getHtmlLabelName(97758,"按列查找,返回所需值。常用于薪酬模块。根据条件获取查询参数所在列的返回参数的值。返回参数可填写多个,用英文逗号隔开。若查询不到返回null。<br>示例:VLOOKUPS({税表},{税表.收入},AND({税表.收入}>{税表.应纳税所得额下限},{税表.收入}<{税表.应纳税所得额上限}),[{税表.税率},{税表.速算扣除数}]) <br>结果:按列查找返回税表中收入所在的收入区间所对应的税率和速算扣除数的数值"));
|
||||
//数学函数
|
||||
funcMap.put("ROUND", SalaryI18nUtil.getI18nLabel(97750, "根据设置的小数位精确度,返回对数值四舍五入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,针对小数点后的数据进行四舍五入;如果小数位精确度等于 0,返回最接近数值的整数;如果小数位精确度为负整数,针对小数点前的数据进行四舍五入,被舍掉的数据用0占位。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。<br>示例:ROUND(123.456,2),ROUND(123.456,0),ROUND(123.456,-2) <br>结果:依次为123.46,123,100"));
|
||||
funcMap.put("ROUNDUP", SalaryI18nUtil.getI18nLabel(97751, "根据设置的小数位精确度,返回对数值向上舍入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,则向上舍入到指定的小数位。如果小数位精确度等于 0,则向上舍入到最接近的整数。如果小数位精确度为负整数,则在小数点左侧向上进行舍入。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。示例:ROUNDDOWN(76.9,0)结果:77"));
|
||||
funcMap.put("ROUNDDOWN", SalaryI18nUtil.getI18nLabel(97752, "根据设置的小数位精确度,返回对数值向下舍入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,则向下舍入到指定的小数位。如果小数位精确度等于 0,则向下舍入到最接近的整数。如果小数位精确度为负整数,则在小数点左侧向下进行舍入。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。<br>示例:ROUNDDOWN(76.9,0)<br>结果:76"));
|
||||
funcMap.put("AGGREGATION", SalaryI18nUtil.getI18nLabel(97753, "将一组数据进行统计计算,支持最大值(MAX)、最小值(MIN)、平均值(AVG)。示例:AGGREGATION(1 , 2,3,'AVG'),结果:2"));
|
||||
funcMap.put("MOD", SalaryI18nUtil.getI18nLabel(97754, "将两个参数进行除法运算然后得出余数返回。示例:MOD( 7 , 3 ),结果:1"));
|
||||
funcMap.put("TRUNC", SalaryI18nUtil.getI18nLabel(97755, "将小数点格式化成指定位数。示例:TRUNC( 2.123 , 2 ),结果:2.12"));
|
||||
funcMap.put("ISINT", SalaryI18nUtil.getI18nLabel(0, "判断字符内容是否是整数。示例:ISINT( 2.123 ),结果:false"));
|
||||
funcMap.put("ISNUMBER", SalaryI18nUtil.getI18nLabel(0, "判断字符内容是否是数字。示例:ISNUMBER('2.123'),结果:true"));
|
||||
|
||||
//数据库函数
|
||||
funcMap.put("GETHRMLOGINID", SystemEnv.getHtmlLabelName(100808, "获取指定人员系统账号。<br/>示例:GETHRMLOGINID({表单.张三}) <br/>结果:zhangsan@qq.com"));
|
||||
funcMap.put("GETHRMWORKCODE", SystemEnv.getHtmlLabelName(100810, "获取指定人员编号。<br/>示例:GETHRMWORKCODE({表单.张三}) <br/>结果:A001"));
|
||||
funcMap.put("GETHRMMANAGER", SystemEnv.getHtmlLabelName(100812, "获取指定人员直接上级。<br/>示例:GETHRMMANAGER({表单.张三}) <br/>结果:返回张三的直接上级"));
|
||||
funcMap.put("GETHRMALLMANAGER", SystemEnv.getHtmlLabelName(100814, "获取指定人员所有上级。<br/>示例:GETHRMMANAGER({表单.张三}) <br/>结果:返回张三的所有上级形成的数组"));
|
||||
funcMap.put("GETHRMDEPARTMENT", SystemEnv.getHtmlLabelName(100816, "获取指定人员部门。<br/>示例:GETHRMDEPARTMENT({表单.张三}) <br/>结果:返回张三的部门"));
|
||||
funcMap.put("GETHRMSUBCOMPANY", SystemEnv.getHtmlLabelName(100818, "获取指定人员分部。<br/>示例:GETHRMSUBCOMPANY({表单.张三}) <br/>结果:返回张三的分部"));
|
||||
funcMap.put("GETDEPARTMENTNAME", SystemEnv.getHtmlLabelName(100820, "获取指定部门名称。<br/>示例:GETDEPARTMENTNAME({表单.A部门}) <br/>结果:A部门"));
|
||||
funcMap.put("GETDEPARTMENTCODE", SystemEnv.getHtmlLabelName(100822, "获取指定部门编号。<br/>示例:GETDEPARTMENTCODE({表单.A部门}) <br/>结果:A001"));
|
||||
funcMap.put("GETSUPERDEPARTMENT", SystemEnv.getHtmlLabelName(100824, "获取指定部门直接上级部门。<br/>示例:GETDEPARTMENTCODE({表单.A部门}) <br/>结果:A部门的直接上级部门"));
|
||||
funcMap.put("GETALLSUPERDEPARTMENT", SystemEnv.getHtmlLabelName(100826, "获取指定部门所有上级部门。<br/>示例:GETALLSUPERDEPARTMENT({表单.A部门}) <br/>结果:A部门的所有上级部门形成的数组"));
|
||||
funcMap.put("GETSUBCOMPANYNAME", SystemEnv.getHtmlLabelName(100828, "获取指定分部名称。<br/>示例:GETSUBCOMPANYNAME({表单.A分部}) <br/>结果:A分部"));
|
||||
funcMap.put("GETSUBCOMPANYCODE", SystemEnv.getHtmlLabelName(100830, "获取指定分部编号。<br/>示例:GETSUBCOMPANYCODE({表单.A分部}) <br/>结果:B001"));
|
||||
funcMap.put("GETSUPERSUBCOMPANY", SystemEnv.getHtmlLabelName(100832, "获取指定分部直接上级分部。<br/>示例:GETSUPERSUBCOMPANY({表单.A分部}) <br/>结果:A分部的直接上级分部"));
|
||||
funcMap.put("GETALLSUPERSUBCOMPANY", SystemEnv.getHtmlLabelName(100834, "获取指定分部所有上级分部。<br/>示例:GETALLSUPERSUBCOMPANY({表单.A分部}) <br/>结果:A分部的所有上级分部形成的数组"));
|
||||
funcMap.put("GETHRMNAME", SystemEnv.getHtmlLabelName(100834, "获取指定人员的姓名。<br/>示例:GETHRMNAME({U:张三}) <br/>结果:张三"));
|
||||
funcMap.put("GETHRMMOBILE", SystemEnv.getHtmlLabelName(100834, "获取指定人员的手机号码。<br/>示例:GETHRMMOBILE({U:张三}) <br/>结果:13123232323"));
|
||||
//查找函数
|
||||
funcMap.put("CHOOSE", SalaryI18nUtil.getI18nLabel(97756, "根据条件获取指定数据源中的全部数据。数据源支持选表单、表单中的字段。<br>示例:想知道税表中,收入大于15000的数值<br>CHOOSE({税表}, {税表.收入}>15000) <br>结果:返回税表中收入大于15000的集合"));
|
||||
funcMap.put("MATCH", SalaryI18nUtil.getI18nLabel(97757, "将指定数值在指定数组区域中的位置返回。若数组中无指定值,返回null。<br>示例:MATCH(15000, [1000, 15000, 2000]) <br>结果:1"));
|
||||
funcMap.put("VLOOKUPS", SalaryI18nUtil.getI18nLabel(97758, "按列查找,返回所需值。常用于薪酬模块。根据条件获取查询参数所在列的返回参数的值。返回参数可填写多个,用英文逗号隔开。若查询不到返回null。<br>示例:VLOOKUPS({税表},{税表.收入},AND({税表.收入}>{税表.应纳税所得额下限},{税表.收入}<{税表.应纳税所得额上限}),[{税表.税率},{税表.速算扣除数}]) <br>结果:按列查找返回税表中收入所在的收入区间所对应的税率和速算扣除数的数值"));
|
||||
|
||||
//财务函数
|
||||
funcMap.put("GETMONEY", SystemEnv.getHtmlLabelName(0, "将金额转换成中文金额大写。<br/>示例:GETMONEY({1234}) <br/>结果:壹仟贰佰叁拾肆元整"));
|
||||
//数据库函数
|
||||
funcMap.put("GETHRMLOGINID", SalaryI18nUtil.getI18nLabel(100808, "获取指定人员系统账号。<br/>示例:GETHRMLOGINID({表单.张三}) <br/>结果:zhangsan@qq.com"));
|
||||
funcMap.put("GETHRMWORKCODE", SalaryI18nUtil.getI18nLabel(100810, "获取指定人员编号。<br/>示例:GETHRMWORKCODE({表单.张三}) <br/>结果:A001"));
|
||||
funcMap.put("GETHRMMANAGER", SalaryI18nUtil.getI18nLabel(100812, "获取指定人员直接上级。<br/>示例:GETHRMMANAGER({表单.张三}) <br/>结果:返回张三的直接上级"));
|
||||
funcMap.put("GETHRMALLMANAGER", SalaryI18nUtil.getI18nLabel(100814, "获取指定人员所有上级。<br/>示例:GETHRMMANAGER({表单.张三}) <br/>结果:返回张三的所有上级形成的数组"));
|
||||
funcMap.put("GETHRMDEPARTMENT", SalaryI18nUtil.getI18nLabel(100816, "获取指定人员部门。<br/>示例:GETHRMDEPARTMENT({表单.张三}) <br/>结果:返回张三的部门"));
|
||||
funcMap.put("GETHRMSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100818, "获取指定人员分部。<br/>示例:GETHRMSUBCOMPANY({表单.张三}) <br/>结果:返回张三的分部"));
|
||||
funcMap.put("GETDEPARTMENTNAME", SalaryI18nUtil.getI18nLabel(100820, "获取指定部门名称。<br/>示例:GETDEPARTMENTNAME({表单.A部门}) <br/>结果:A部门"));
|
||||
funcMap.put("GETDEPARTMENTCODE", SalaryI18nUtil.getI18nLabel(100822, "获取指定部门编号。<br/>示例:GETDEPARTMENTCODE({表单.A部门}) <br/>结果:A001"));
|
||||
funcMap.put("GETSUPERDEPARTMENT", SalaryI18nUtil.getI18nLabel(100824, "获取指定部门直接上级部门。<br/>示例:GETDEPARTMENTCODE({表单.A部门}) <br/>结果:A部门的直接上级部门"));
|
||||
funcMap.put("GETALLSUPERDEPARTMENT", SalaryI18nUtil.getI18nLabel(100826, "获取指定部门所有上级部门。<br/>示例:GETALLSUPERDEPARTMENT({表单.A部门}) <br/>结果:A部门的所有上级部门形成的数组"));
|
||||
funcMap.put("GETSUBCOMPANYNAME", SalaryI18nUtil.getI18nLabel(100828, "获取指定分部名称。<br/>示例:GETSUBCOMPANYNAME({表单.A分部}) <br/>结果:A分部"));
|
||||
funcMap.put("GETSUBCOMPANYCODE", SalaryI18nUtil.getI18nLabel(100830, "获取指定分部编号。<br/>示例:GETSUBCOMPANYCODE({表单.A分部}) <br/>结果:B001"));
|
||||
funcMap.put("GETSUPERSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100832, "获取指定分部直接上级分部。<br/>示例:GETSUPERSUBCOMPANY({表单.A分部}) <br/>结果:A分部的直接上级分部"));
|
||||
funcMap.put("GETALLSUPERSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100834, "获取指定分部所有上级分部。<br/>示例:GETALLSUPERSUBCOMPANY({表单.A分部}) <br/>结果:A分部的所有上级分部形成的数组"));
|
||||
funcMap.put("GETHRMNAME", SalaryI18nUtil.getI18nLabel(100834, "获取指定人员的姓名。<br/>示例:GETHRMNAME({U:张三}) <br/>结果:张三"));
|
||||
funcMap.put("GETHRMMOBILE", SalaryI18nUtil.getI18nLabel(100834, "获取指定人员的手机号码。<br/>示例:GETHRMMOBILE({U:张三}) <br/>结果:13123232323"));
|
||||
|
||||
}
|
||||
public String get(String key){
|
||||
if(funcMap.size()>0){
|
||||
//财务函数
|
||||
funcMap.put("GETMONEY", SalaryI18nUtil.getI18nLabel(0, "将金额转换成中文金额大写。<br/>示例:GETMONEY({1234}) <br/>结果:壹仟贰佰叁拾肆元整"));
|
||||
|
||||
}
|
||||
|
||||
public String get(String key) {
|
||||
if (funcMap.size() > 0) {
|
||||
// logger.info("描述数据存在:"+funcMap.size());
|
||||
}else {
|
||||
logger.info("初始化函数描述数据");
|
||||
initData();
|
||||
}
|
||||
} else {
|
||||
logger.info("初始化函数描述数据");
|
||||
initData();
|
||||
}
|
||||
|
||||
return funcMap.get(key);
|
||||
}
|
||||
return funcMap.get(key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
package com.engine.salary.formlua.entity.parameter;
|
||||
|
||||
import com.weaver.common.form.metadata.ModuleSource;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.engine.salary.entity.datacollection.DataCollectionEmployee;
|
||||
import org.mozilla.javascript.commonjs.module.provider.ModuleSource;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
|
@ -11,7 +11,7 @@ public class ThreadLocalData {
|
|||
private Map<String, Object> expressContext;
|
||||
private ModuleSource moduleSource;
|
||||
|
||||
private SimpleEmployee employee;
|
||||
private DataCollectionEmployee employee;
|
||||
|
||||
public ModuleSource getModuleSource() {
|
||||
return moduleSource;
|
||||
|
|
@ -21,11 +21,11 @@ public class ThreadLocalData {
|
|||
this.moduleSource = moduleSource;
|
||||
}
|
||||
|
||||
public SimpleEmployee getEmployee() {
|
||||
public DataCollectionEmployee getEmployee() {
|
||||
return employee;
|
||||
}
|
||||
|
||||
public void setEmployee(SimpleEmployee employee) {
|
||||
public void setEmployee(DataCollectionEmployee employee) {
|
||||
this.employee = employee;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -685,7 +685,7 @@ public class DateTimeServiceImpl implements DateTimeService {
|
|||
// Object employeeObj = objects[2];
|
||||
// String empIdStr = employeeObj != null ? ((DataType) employeeObj).getContent() + "" : null;
|
||||
//
|
||||
// SimpleEmployee currEmp = employeeObj != null ? ((DataType) employeeObj).getEmployee() : null;
|
||||
// DataCollectionEmployee currEmp = employeeObj != null ? ((DataType) employeeObj).getEmployee() : null;
|
||||
// String tenantKey = currEmp != null ? currEmp.getTenantKey() : null;
|
||||
//
|
||||
// if (ExcelParamUtil.checkIsNull(startDate, endDate, empIdStr, ExcelParamUtil.CHECKLEVEL_STRING)) {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import com.weaver.excel.formula.entity.parameter.DataType;
|
|||
import com.weaver.excel.formula.entity.parameter.DateAndString;
|
||||
import com.weaver.excel.formula.entity.parameter.FuncNames;
|
||||
import com.weaver.excel.formula.util.*;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.domain.user.DataCollectionEmployee;
|
||||
import com.weaver.teams.util.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -698,7 +698,7 @@ public class DateTimeTestServiceImpl implements DateTimeService {
|
|||
if(!IgnoreParamFilter.isEmployee(employeeObj)) throw new RuntimeException(func+"函数第三个参数必须是人员参数");
|
||||
|
||||
String empIdStr = employeeObj != null ? ((DataType)employeeObj).getContent()+"" : null;
|
||||
SimpleEmployee currEmp = employeeObj != null ? ((DataType)employeeObj).getEmployee() : null;
|
||||
DataCollectionEmployee currEmp = employeeObj != null ? ((DataType)employeeObj).getEmployee() : null;
|
||||
String tenantKey = currEmp != null ? currEmp.getTenantKey() : null;
|
||||
|
||||
if(ExcelParamUtil.checkIsNull(startDate, endDate, empIdStr, ExcelParamUtil.CHECKLEVEL_STRING)){
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import com.weaver.excel.formula.entity.parameter.standard.FormulaFilterData;
|
|||
import com.weaver.excel.formula.util.ErrorUtil;
|
||||
import com.weaver.excel.formula.util.ExcelParamUtil;
|
||||
import com.weaver.excel.formula.util.IgnoreParamFilter;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.domain.user.DataCollectionEmployee;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
|
|
@ -71,7 +71,7 @@ public class FindFuncsServiceImpl implements FindFuncsService{
|
|||
|
||||
Long formId = formObj.getFormId();
|
||||
List<FormulaFilterData> filterDatas = conditionObj != null ? conditionObj.getFormulaFilterDataList(): Lists.newArrayList();
|
||||
SimpleEmployee user = formObj.getEmployee();
|
||||
DataCollectionEmployee user = formObj.getEmployee();
|
||||
|
||||
Object[] params = {formId, filterDatas, user};
|
||||
return excelDubboInvoker.invokeCommonDubbo(DataType.class,formObj.getModule()+"", RpcMethod.choose, params);
|
||||
|
|
@ -145,7 +145,7 @@ public class FindFuncsServiceImpl implements FindFuncsService{
|
|||
|
||||
Long formId = formObj.getFormId();
|
||||
List<FormulaFilterData> filterDatas = conditionObj != null ? conditionObj.getFormulaFilterDataList() : Lists.newArrayList();
|
||||
SimpleEmployee user = formObj.getEmployee();
|
||||
DataCollectionEmployee user = formObj.getEmployee();
|
||||
|
||||
Object[] params = {formId+"", filterDatas, fieldIds, null,user};
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -8,7 +8,7 @@ import com.weaver.excel.formula.api.entity.FormulaVar;
|
|||
import com.weaver.excel.formula.entity.parameter.DataType;
|
||||
import com.weaver.excel.formula.entity.parameter.ParamFactory;
|
||||
import com.weaver.excel.formula.entity.standard.front.CurrentVar;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.domain.user.DataCollectionEmployee;
|
||||
import com.weaver.teams.util.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
@ -22,7 +22,7 @@ import java.util.regex.Pattern;
|
|||
public class ExcelStandardUtil {
|
||||
protected static final Logger logger = LoggerFactory.getLogger(ExcelStandardUtil.class);
|
||||
|
||||
public static Map<String,Object> replaceAllParam(String sql, List<FormulaVar> localVars,List<FormulaVar> dataVars, SimpleEmployee employee){
|
||||
public static Map<String,Object> replaceAllParam(String sql, List<FormulaVar> localVars,List<FormulaVar> dataVars, DataCollectionEmployee employee){
|
||||
if(null!=localVars){
|
||||
for (FormulaVar formulaVar:localVars){
|
||||
if(StringUtils.isNotEmpty(formulaVar.getDataId()) && StringUtils.isEmpty(formulaVar.getFormId())){
|
||||
|
|
@ -131,7 +131,7 @@ public class ExcelStandardUtil {
|
|||
return dataMap;
|
||||
}
|
||||
|
||||
public static Map<String,Object> replaceAllParamForTest(String sql, List<FormulaVar> formulaVars, SimpleEmployee employee){
|
||||
public static Map<String,Object> replaceAllParamForTest(String sql, List<FormulaVar> formulaVars, DataCollectionEmployee employee){
|
||||
if(null==formulaVars){
|
||||
return null;
|
||||
}
|
||||
|
|
@ -234,7 +234,7 @@ public class ExcelStandardUtil {
|
|||
return dataMap;
|
||||
}
|
||||
|
||||
private static DataType transFormulaVarToDataTypeTesy(FormulaVar formulaVar,SimpleEmployee employee){
|
||||
private static DataType transFormulaVarToDataTypeTesy(FormulaVar formulaVar,DataCollectionEmployee employee){
|
||||
DataType dataType =new DataType();
|
||||
ParamFactory paramFactory=ParamFactory.getInstance();
|
||||
dataType.setContent(formulaVar.getContent());
|
||||
|
|
@ -330,7 +330,7 @@ public class ExcelStandardUtil {
|
|||
return dataType;
|
||||
}
|
||||
|
||||
private static DataType transFormulaVarToDataType(FormulaVar localFormulaVar,List<FormulaVar> dataVars,SimpleEmployee employee){
|
||||
private static DataType transFormulaVarToDataType(FormulaVar localFormulaVar,List<FormulaVar> dataVars,DataCollectionEmployee employee){
|
||||
DataType dataType =new DataType();
|
||||
if(localFormulaVar == null){
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import com.weaver.excel.formula.func.math.MathFuncsServiceImpl;
|
|||
import com.weaver.excel.formula.func.string.StringFormulaService;
|
||||
import com.weaver.excel.formula.func.string.StringFormulaServiceImpl;
|
||||
import com.weaver.excel.formula.util.standard.ExcelDataType;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.domain.user.DataCollectionEmployee;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
|
@ -150,7 +150,7 @@ public class TestUtil {
|
|||
filterDatas.add(formulaFilterData2);
|
||||
String dataId="60000000000000001";
|
||||
String[] cols=new String[]{"10_taxRate"};
|
||||
SimpleEmployee employee=new SimpleEmployee();
|
||||
DataCollectionEmployee employee=new DataCollectionEmployee();
|
||||
employee.setTenantKey("tm7tozevws");
|
||||
employee.setUserId(5113514575963198048L);
|
||||
employee.setId(3573514574891514361L);
|
||||
|
|
|
|||
|
|
@ -1,320 +0,0 @@
|
|||
package com.engine.salary.formlua.util.standard;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.weaver.common.form.FreeFormAssistService;
|
||||
import com.weaver.common.form.FreeFormService;
|
||||
import com.weaver.common.form.component.base.ComponentType;
|
||||
import com.weaver.common.form.data.detail.FormDataDetail;
|
||||
import com.weaver.common.form.data.option.FormDataOption;
|
||||
import com.weaver.common.form.metadata.ModuleSource;
|
||||
import com.weaver.common.form.metadata.field.FormField;
|
||||
import com.weaver.excel.formula.api.entity.DataOption;
|
||||
import com.weaver.excel.formula.api.entity.FormulaVar;
|
||||
import com.weaver.excel.formula.entity.standard.execute.FixFieldType;
|
||||
import com.weaver.excel.formula.util.ExcelParamUtil;
|
||||
import com.weaver.teams.domain.user.SimpleEmployee;
|
||||
import com.weaver.teams.util.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 函数标准数据转换工具
|
||||
*/
|
||||
@Component
|
||||
public class ExcelTransUtil {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
@Autowired
|
||||
protected FreeFormAssistService freeFormAssistService;
|
||||
/**
|
||||
* 固定字段数据转换方法
|
||||
* @param sourceId 来源ID或表单ID
|
||||
* @param fixFieldKey 固定字段属性ID
|
||||
* @param name 固定字段名称,记录日志使用
|
||||
* @param content 文本、数字的值
|
||||
* @param dataOptions 选项型数据的值
|
||||
* @param fixFieldType 固定字段类型,使用函数提供的FixFieldType标记
|
||||
* @return
|
||||
*/
|
||||
public static FormulaVar buildFixField(Long sourceId, String fixFieldKey,String name, String content, List<DataOption> dataOptions, FixFieldType fixFieldType){
|
||||
FormulaVar formulaVar=new FormulaVar();
|
||||
formulaVar.setFormId(sourceId+"");
|
||||
formulaVar.setDataType(ExcelParamUtil.findType(fixFieldType.toString()));
|
||||
formulaVar.setContent(content);
|
||||
formulaVar.setFixName(name);
|
||||
formulaVar.setFixFieldKey(fixFieldKey);
|
||||
formulaVar.setId(fixFieldKey);
|
||||
formulaVar.setKey(fixFieldKey);
|
||||
formulaVar.setFieldId(fixFieldKey);
|
||||
if(fixFieldType==FixFieldType.Select || fixFieldType==FixFieldType.Department || fixFieldType == FixFieldType.Employee || fixFieldType == FixFieldType.Relate){
|
||||
formulaVar.setDataOptionList(dataOptions);
|
||||
String options="";
|
||||
for(DataOption dataOption:dataOptions){
|
||||
options+=dataOption.getOptionId();
|
||||
}
|
||||
formulaVar.setContent(options);
|
||||
formulaVar.setComponentKey(ComponentType.Employee.toString());
|
||||
}
|
||||
return formulaVar;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建字段数据,文本、数字、日期使用此方法
|
||||
* @param sourceId
|
||||
* @param fieldId
|
||||
* @param excelDataType
|
||||
* @param module
|
||||
* @param value
|
||||
* @return
|
||||
*/
|
||||
public static FormulaVar buildTxtNumDateField(Long sourceId,Long fieldId,ExcelDataType excelDataType,String module,Object value){
|
||||
return commonBuildField(sourceId,fieldId,excelDataType,module,null,value);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建选项型或数据源型使用此方法
|
||||
* @param sourceId
|
||||
* @param fieldId
|
||||
* @param excelDataType
|
||||
* @param module
|
||||
* @param dataOptions
|
||||
* @return
|
||||
*/
|
||||
public static FormulaVar buildOptionField(Long sourceId,Long fieldId,ExcelDataType excelDataType,String module,List<DataOption> dataOptions){
|
||||
return commonBuildField(sourceId,fieldId,excelDataType,module,dataOptions,null);
|
||||
}
|
||||
private static FormulaVar commonBuildField(Long sourceId,Long fieldId,ExcelDataType excelDataType,String module,List<DataOption> dataOptions,Object value){
|
||||
FormulaVar formulaVar =new FormulaVar();
|
||||
formulaVar.setContent(value+"");
|
||||
formulaVar.setFieldId(fieldId+"");
|
||||
formulaVar.setFormId(sourceId+"");
|
||||
formulaVar.setDataType(excelDataType.toString());
|
||||
formulaVar.setModule(module);
|
||||
if(dataOptions!=null && dataOptions.size()>0){
|
||||
formulaVar.setDataOptionList(dataOptions);
|
||||
String optionStr="";
|
||||
for(DataOption dataOption:dataOptions){
|
||||
optionStr+=dataOption.getOptionId();
|
||||
}
|
||||
formulaVar.setContent(optionStr);
|
||||
}
|
||||
return formulaVar;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换表单字段数据为函数标准参数对象
|
||||
* @param formDataDetailList 表单字段数据列表
|
||||
* @param sourceId 表单ID或者数据源ID
|
||||
* @param module 所属模块
|
||||
* @return
|
||||
*/
|
||||
public List<FormulaVar> transFieldForForm(List<FormDataDetail> formDataDetailList,Long layoutId, Long sourceId, ModuleSource module,SimpleEmployee simpleEmployee){
|
||||
List<FormulaVar> formulaVarList=new ArrayList<>();
|
||||
if(formDataDetailList!=null && formDataDetailList.size()>0){
|
||||
|
||||
Map<Long, FormField> fieldMap = bulidFreeFormService(module).getFieldMapByFormId(sourceId, simpleEmployee);
|
||||
FormulaVar formulaVar =null;
|
||||
Map<Long,FormDataDetail> replaceMap=new HashMap<>();
|
||||
for (FormDataDetail formDataDetail:formDataDetailList){
|
||||
if(formDataDetail.getFormField()==null){
|
||||
throw new RuntimeException("函数数据转换失败,找不到表单字段数据");
|
||||
}
|
||||
FormField newFormField=fieldMap.get(formDataDetail.getFormField().getId());
|
||||
if(newFormField!=null){
|
||||
formDataDetail.setFormField(newFormField);
|
||||
}
|
||||
Double score=getDetailScoreForForm(formDataDetail,module,layoutId,simpleEmployee);
|
||||
// Double score=getDetailScore(formDataDetail,module,layoutId,simpleEmployee);
|
||||
formulaVar=new FormulaVar();
|
||||
if(score!=null){
|
||||
formulaVar.setScore(score);
|
||||
}
|
||||
FormField formField=formDataDetail.getFormField();
|
||||
formulaVar.setContent(formDataDetail.getContent());
|
||||
if(formDataDetail.getDataText()!=null && StringUtils.isNotEmpty(formDataDetail.getDataText().getContent())){
|
||||
if(StringUtils.isNotEmpty(formDataDetail.getDataText().getContent())){
|
||||
formulaVar.setContent(formDataDetail.getDataText().getContent());
|
||||
}
|
||||
}
|
||||
formulaVar.setFieldId(formField.getId()!=null?formField.getId()+"":null);
|
||||
formulaVar.setFormId(formField.getFormId()!=null?formField.getFormId()+"":null);
|
||||
formulaVar.setComponentKey(formField.getComponentKey());
|
||||
if(formField.getSubForm()!=null){
|
||||
formulaVar.setsFormId(formField.getSubForm().getId()+"");
|
||||
}
|
||||
formulaVar.setDataType(ExcelParamUtil.findType(formField.getComponentKey()));
|
||||
formulaVar.setModule(module.toString());
|
||||
if(formulaVar.getFormId()==null){
|
||||
formulaVar.setFormId(sourceId+"");
|
||||
}
|
||||
if(formDataDetail.getDataOptions()!=null && formDataDetail.getDataOptions().size()>0){
|
||||
List<FormDataOption> formDataOptions=formDataDetail.getDataOptions();
|
||||
List<DataOption> excelOptionList=new ArrayList<>();
|
||||
String optionstr="";
|
||||
String optionContent="";
|
||||
for(FormDataOption formDataOption:formDataOptions){
|
||||
DataOption dataOption=new DataOption();
|
||||
dataOption.setOptionId(formDataOption.getOptionId()+"");
|
||||
dataOption.setOptionContent(formDataOption.getContent());
|
||||
excelOptionList.add(dataOption);
|
||||
optionstr+=formDataOption.getOptionId();
|
||||
optionContent+=formDataOption.getContent();
|
||||
}
|
||||
if(StringUtils.isNotEmpty(optionstr)){
|
||||
formulaVar.setContent(optionstr);
|
||||
}
|
||||
formulaVar.setOptionContent(optionContent);
|
||||
formulaVar.setDataOptionList(excelOptionList);
|
||||
}
|
||||
//明细替换处理
|
||||
try {
|
||||
if(!replaceMap.containsKey(formDataDetail.getFormField().getId())){
|
||||
replaceMap.put(formDataDetail.getFormField().getId(),formDataDetail);
|
||||
}else{
|
||||
FormDataDetail lastFormDataDetail=replaceMap.get(formDataDetail.getFormField().getId());
|
||||
if(formDataDetail.getDataIndex()!=null && lastFormDataDetail.getDataIndex()!=null){
|
||||
if(formDataDetail.getDataIndex().longValue()<lastFormDataDetail.getDataIndex().longValue()){
|
||||
replaceMap.put(formDataDetail.getFormField().getId(),formDataDetail);
|
||||
formulaVarList.removeIf(loopData -> loopData.getFieldId().equalsIgnoreCase(formDataDetail.getFormField().getId().toString()));
|
||||
logger.info("替换了:"+JSON.toJSONString(formDataDetail));
|
||||
}else{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
|
||||
formulaVarList.add(formulaVar);
|
||||
}
|
||||
}
|
||||
return formulaVarList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换表单字段数据为函数标准参数对象
|
||||
* @param formDataDetailList 表单字段数据列表
|
||||
* @param sourceId 表单ID或者数据源ID
|
||||
* @param module 所属模块
|
||||
* @return
|
||||
*/
|
||||
public List<FormulaVar> transField(List<FormDataDetail> formDataDetailList,Long layoutId, Long sourceId, ModuleSource module,SimpleEmployee simpleEmployee){
|
||||
List<FormulaVar> formulaVarList=new ArrayList<>();
|
||||
if(formDataDetailList!=null && formDataDetailList.size()>0){
|
||||
|
||||
Map<Long, FormField> fieldMap = bulidFreeFormService(module).getFieldMapByFormId(sourceId, simpleEmployee);
|
||||
|
||||
FormulaVar formulaVar =null;
|
||||
for (FormDataDetail formDataDetail:formDataDetailList){
|
||||
if(formDataDetail.getFormField()==null){
|
||||
throw new RuntimeException("函数数据转换失败,找不到表单字段数据");
|
||||
}
|
||||
FormField newFormField=fieldMap.get(formDataDetail.getFormField().getId());
|
||||
if(newFormField!=null){
|
||||
formDataDetail.setFormField(newFormField);
|
||||
}
|
||||
Double score=getDetailScore(formDataDetail,module,layoutId,simpleEmployee);
|
||||
|
||||
formulaVar=new FormulaVar();
|
||||
if(score!=null){
|
||||
formulaVar.setScore(score);
|
||||
}
|
||||
FormField formField=formDataDetail.getFormField();
|
||||
formulaVar.setContent(formDataDetail.getContent());
|
||||
if(formDataDetail.getDataText()!=null && StringUtils.isNotEmpty(formDataDetail.getDataText().getContent())){
|
||||
if(StringUtils.isNotEmpty(formDataDetail.getDataText().getContent())){
|
||||
formulaVar.setContent(formDataDetail.getDataText().getContent());
|
||||
}
|
||||
}
|
||||
formulaVar.setFieldId(formField.getId()!=null?formField.getId()+"":null);
|
||||
formulaVar.setFormId(formField.getFormId()!=null?formField.getFormId()+"":null);
|
||||
formulaVar.setComponentKey(formField.getComponentKey());
|
||||
if(formField.getSubForm()!=null){
|
||||
formulaVar.setsFormId(formField.getSubForm().getId()+"");
|
||||
}
|
||||
formulaVar.setDataType(ExcelParamUtil.findType(formField.getComponentKey()));
|
||||
formulaVar.setModule(module.toString());
|
||||
if(formulaVar.getFormId()==null){
|
||||
formulaVar.setFormId(sourceId+"");
|
||||
}
|
||||
if(formDataDetail.getDataOptions()!=null && formDataDetail.getDataOptions().size()>0){
|
||||
List<FormDataOption> formDataOptions=formDataDetail.getDataOptions();
|
||||
List<DataOption> excelOptionList=new ArrayList<>();
|
||||
String optionstr="";
|
||||
String optionContent="";
|
||||
for(FormDataOption formDataOption:formDataOptions){
|
||||
DataOption dataOption=new DataOption();
|
||||
dataOption.setOptionId(formDataOption.getOptionId()+"");
|
||||
dataOption.setOptionContent(formDataOption.getContent());
|
||||
excelOptionList.add(dataOption);
|
||||
optionstr+=formDataOption.getOptionId();
|
||||
optionContent+=formDataOption.getContent();
|
||||
}
|
||||
if(StringUtils.isNotEmpty(optionstr)){
|
||||
formulaVar.setContent(optionstr);
|
||||
}
|
||||
formulaVar.setOptionContent(optionContent);
|
||||
formulaVar.setDataOptionList(excelOptionList);
|
||||
}
|
||||
|
||||
formulaVarList.add(formulaVar);
|
||||
}
|
||||
}
|
||||
return formulaVarList;
|
||||
}
|
||||
|
||||
public Double getDetailScore(FormDataDetail dataDetail, ModuleSource module, Long layoutId, SimpleEmployee employee) {
|
||||
Double score = null;
|
||||
FormField formField=dataDetail.getFormField();
|
||||
// logger.info("获取分数的参数:"+(JSON.toJSONString(dataDetail)));
|
||||
// logger.info("获取分数的布局ID:"+(layoutId));
|
||||
if( ComponentType.RadioBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.CheckBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.Select.toString().equals(formField.getComponentKey())) {
|
||||
// score=getDetailScoreForForm(dataDetail,module,layoutId,employee);
|
||||
score = bulidFreeFormService(module).getOptionScore(dataDetail.getFormField().getId()+"", layoutId, dataDetail, employee).doubleValue();
|
||||
}
|
||||
return score;
|
||||
}
|
||||
public Double getDetailScoreForForm(FormDataDetail dataDetail, ModuleSource module, Long layoutId, SimpleEmployee employee) {
|
||||
Double score = null;
|
||||
FormField formField=dataDetail.getFormField();
|
||||
if( ComponentType.RadioBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.CheckBox.toString().equals(formField.getComponentKey())
|
||||
|| ComponentType.Select.toString().equals(formField.getComponentKey())) {
|
||||
if(dataDetail.getDataOptions()!=null && dataDetail.getDataOptions().size()>0){
|
||||
Double scoreSum=0D;
|
||||
for(FormDataOption formDataOption:dataDetail.getDataOptions()){
|
||||
try {
|
||||
if(StringUtils.isNotEmpty(formDataOption.getScore())){
|
||||
scoreSum+=Double.parseDouble(formDataOption.getScore());
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
// scoreString=scoreSum.toString();
|
||||
}
|
||||
if(scoreSum!=null){
|
||||
try {
|
||||
score=scoreSum;
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("err",e);
|
||||
}
|
||||
}
|
||||
logger.info("获取分数:"+score);
|
||||
}
|
||||
}
|
||||
return score;
|
||||
}
|
||||
public FreeFormService bulidFreeFormService(ModuleSource module) {
|
||||
return freeFormAssistService.buildFreeFormService(module.toString());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -95,7 +95,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
if("leave".equalsIgnoreCase(kqReportFieldComInfo.getFieldname())&&leaveRules.size()==0)continue;
|
||||
|
||||
column = new HashMap();
|
||||
column.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("title", SalaryI18nUtil.getI18nLabels(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("unit", KQReportBiz.getUnitType(kqReportFieldComInfo, user));
|
||||
column.put("dataIndex", kqReportFieldComInfo.getFieldname());
|
||||
column.put("type", kqReportFieldComInfo.getFieldname());
|
||||
|
|
@ -143,7 +143,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
// }
|
||||
|
||||
// column = new HashMap();
|
||||
// column.put("title", SystemEnv.getHtmlLabelName(386476, user.getLanguage()));
|
||||
// column.put("title", SalaryI18nUtil.getI18nLabel(386476, user.getLanguage()));
|
||||
// column.put("dataIndex", "kqCalendar");
|
||||
// column.put("key", "kqCalendar");
|
||||
// if(childColumns.size()>0) {//跨列width取子列的width
|
||||
|
|
@ -430,7 +430,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
if(DateUtil.compDate(today, date)>0){
|
||||
data.put(date,"");
|
||||
}else{
|
||||
data.put(date,detialDatas.get(id+"|"+date)==null?SystemEnv.getHtmlLabelName(26593, user.getLanguage()):detialDatas.get(id+"|"+date));
|
||||
data.put(date,detialDatas.get(id+"|"+date)==null?SalaryI18nUtil.getI18nLabel(26593, user.getLanguage()):detialDatas.get(id+"|"+date));
|
||||
}
|
||||
cal.setTime(DateUtil.parseToDate(date));
|
||||
date = DateUtil.getDate(cal.getTime(), 1);
|
||||
|
|
@ -489,7 +489,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
String unitType = Util.null2String(leaveRule.get("unitType"));
|
||||
column = new HashMap();
|
||||
column.put("title", name);
|
||||
column.put("unit", KQUnitBiz.isLeaveHour(unitType) ?SystemEnv.getHtmlLabelName(391, user.getLanguage()):SystemEnv.getHtmlLabelName(1925, user.getLanguage()));
|
||||
column.put("unit", KQUnitBiz.isLeaveHour(unitType) ?SalaryI18nUtil.getI18nLabel(391, user.getLanguage()):SalaryI18nUtil.getI18nLabel(1925, user.getLanguage()));
|
||||
column.put("width", 65);
|
||||
column.put("dataIndex", id);
|
||||
column.put("key", id);
|
||||
|
|
@ -517,16 +517,16 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
String unitTypeName = "";
|
||||
if(Util.null2String(unitType).length()>0){
|
||||
if(unitType.equals("1")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(1925, user.getLanguage());
|
||||
unitTypeName=SalaryI18nUtil.getI18nLabel(1925, user.getLanguage());
|
||||
}else if(unitType.equals("2")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(391, user.getLanguage());
|
||||
unitTypeName=SalaryI18nUtil.getI18nLabel(391, user.getLanguage());
|
||||
}else if(unitType.equals("3")){
|
||||
unitTypeName=SystemEnv.getHtmlLabelName(18083, user.getLanguage());
|
||||
unitTypeName=SalaryI18nUtil.getI18nLabel(18083, user.getLanguage());
|
||||
}
|
||||
}
|
||||
column.put("unit", unitTypeName);
|
||||
}
|
||||
column.put("title", SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()));
|
||||
column.put("title", SalaryI18nUtil.getI18nLabels(fieldlabel, user.getLanguage()));
|
||||
column.put("dataIndex", id);
|
||||
column.put("key", id);
|
||||
column.put("rowSpan", 1);
|
||||
|
|
@ -547,7 +547,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
if(kqReportFieldComInfo.getParentid().equals(parentid)) {
|
||||
if(!kqReportFieldComInfo.getReportType().equals("month"))continue;
|
||||
column = new HashMap();
|
||||
column.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("title", SalaryI18nUtil.getI18nLabels(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("unit", KQReportBiz.getUnitType(kqReportFieldComInfo, user));
|
||||
column.put("width", Util.getIntValue(kqReportFieldComInfo.getWidth()));
|
||||
column.put("dataIndex", kqReportFieldComInfo.getFieldname());
|
||||
|
|
@ -579,7 +579,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|||
if(!kqReportFieldComInfo.getReportType().equals("month"))continue;
|
||||
if (kqReportFieldComInfo.getFieldname().equals(lsCascadeKey.get(i))){
|
||||
column = new HashMap();
|
||||
column.put("title", SystemEnv.getHtmlLabelNames(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("title", SalaryI18nUtil.getI18nLabels(kqReportFieldComInfo.getFieldlabel(), user.getLanguage()));
|
||||
column.put("unit", KQReportBiz.getUnitType(kqReportFieldComInfo, user));
|
||||
column.put("width", Util.getIntValue(kqReportFieldComInfo.getWidth()));
|
||||
column.put("dataIndex", kqReportFieldComInfo.getFieldname());
|
||||
|
|
|
|||
|
|
@ -7,22 +7,22 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
public interface RemoteExcelService {
|
||||
// ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
//
|
||||
// ExcelPage<FormulaCategory> categoryList(ExcelPage<FormulaCategory> page, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// ExcelPage<FormulaCategory> categoryList(ExcelPage<FormulaCategory> page, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
|
||||
List<FormulaVar> fieldList(String sourceId, Map<String, Object> extendParam);
|
||||
|
||||
List<Map<String,Object>> fieldGroupList(Map<String, Object> extendParam);
|
||||
|
||||
|
||||
// ExcelPage<FormulaDataSource> dataSourceList(String categoryId, ExcelPage<FormulaDataSource> page, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// ExcelPage<FormulaDataSource> dataSourceList(String categoryId, ExcelPage<FormulaDataSource> page, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
//
|
||||
// List<FormulaVar> findProperData(String dataId, String fieldId, String fieldType, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// List<FormulaVar> findProperData(String dataId, String fieldId, String fieldType, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
//
|
||||
// List<DataType> choose(String sourceId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// List<DataType> choose(String sourceId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
//
|
||||
// List<DataType> vlookups(String sourceId, List<FormulaFilterData> filterFormDataList, List<String> returnFields, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// List<DataType> vlookups(String sourceId, List<FormulaFilterData> filterFormDataList, List<String> returnFields, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
//
|
||||
// Map<String, SimpleExcelEntity> findSourceName(String Module, List<String> idList, Map<String, Object> extendParam, SimpleEmployee employee);
|
||||
// Map<String, SimpleExcelEntity> findSourceName(String Module, List<String> idList, Map<String, Object> extendParam, DataCollectionEmployee employee);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction
|
|||
|
||||
//日期范围选项
|
||||
// List<SearchConditionOption> dateOptions = new ArrayList<SearchConditionOption>();
|
||||
// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// dateOptions.add(new SearchConditionOption("6", SalaryI18nUtil.getI18nLabel(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"});
|
||||
// hiredate.setInputType("rangepicker");
|
||||
// hiredate.setFormat("yyyy-MM-dd");
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation
|
|||
//
|
||||
// //日期范围选项
|
||||
// List<SearchConditionOption> dateOptions = new ArrayList<SearchConditionOption>();
|
||||
// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// dateOptions.add(new SearchConditionOption("6", SalaryI18nUtil.getI18nLabel(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"});
|
||||
// hiredate.setInputType("rangepicker");
|
||||
// hiredate.setFormat("yyyy-MM-dd");
|
||||
|
|
|
|||
|
|
@ -79,12 +79,12 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
|
||||
// @Override
|
||||
// public ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam,
|
||||
// SimpleEmployee employee) {
|
||||
// DataCollectionEmployee employee) {
|
||||
// return null;
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public ExcelPage<FormulaCategory> categoryList(ExcelPage<FormulaCategory> page, Map<String, Object> extendParam, SimpleEmployee employee) {
|
||||
// public ExcelPage<FormulaCategory> categoryList(ExcelPage<FormulaCategory> page, Map<String, Object> extendParam, DataCollectionEmployee employee) {
|
||||
// log.info("page: {}", JsonUtil.toJsonString(page));
|
||||
// List<FormulaCategory> categories = Lists.newArrayList();
|
||||
// FormulaCategory category = new FormulaCategory();
|
||||
|
|
@ -201,7 +201,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
}
|
||||
|
||||
// @Override
|
||||
// public ExcelPage<FormulaDataSource> dataSourceList(String categoryId, ExcelPage<FormulaDataSource> page, Map<String, Object> extendParam, SimpleEmployee employee) {
|
||||
// public ExcelPage<FormulaDataSource> dataSourceList(String categoryId, ExcelPage<FormulaDataSource> page, Map<String, Object> extendParam, DataCollectionEmployee employee) {
|
||||
// log.info("categoryId: {}, page: {}", categoryId, JsonUtil.toJsonString(page));
|
||||
// if (StringUtils.equals("TAX_RATE", categoryId)) {
|
||||
// taxRate2FormulaDataSource(page, employee.getTenantKey());
|
||||
|
|
@ -211,18 +211,18 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<FormulaVar> findProperData(String dataId, String fieldId, String fieldType, Map<String, Object> extendParam, SimpleEmployee employee) {
|
||||
// public List<FormulaVar> findProperData(String dataId, String fieldId, String fieldType, Map<String, Object> extendParam, DataCollectionEmployee employee) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public List<DataType> choose(String sourceId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, SimpleEmployee employee) {
|
||||
// public List<DataType> choose(String sourceId, List<FormulaFilterData> filterFormDataList, Map<String, Object> extendParam, DataCollectionEmployee employee) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
//// @Override
|
||||
// public List<DataType> vlookups(String sourceId, List<FormulaFilterData> filterFormDataList, List<String> returnFields, Map<String, Object> extendParam,
|
||||
// SimpleEmployee employee) {
|
||||
// DataCollectionEmployee employee) {
|
||||
// log.info("sourceId: {}, filterFormDataList: {}, returnFields: {}", sourceId, JsonUtil.toJsonString(filterFormDataList), JsonUtil.toJsonString(returnFields));
|
||||
// Map<String, String> columnMap = Maps.newHashMap();
|
||||
// for (Field declaredField : SalaryFormulaTaxRateDTO.class.getDeclaredFields()) {
|
||||
|
|
@ -257,12 +257,12 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
// }
|
||||
//
|
||||
// @Override
|
||||
// public Map<String, SimpleExcelEntity> findSourceName(String Module, List<String> idList, Map<String, Object> extendParam, SimpleEmployee employee) {
|
||||
// public Map<String, SimpleExcelEntity> findSourceName(String Module, List<String> idList, Map<String, Object> extendParam, DataCollectionEmployee employee) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
//// @Override
|
||||
//// public List<DataType> getFieldData(String dataId, List<String> fieldIds, SimpleEmployee employee) {
|
||||
//// public List<DataType> getFieldData(String dataId, List<String> fieldIds, DataCollectionEmployee employee) {
|
||||
//// return null;
|
||||
//// }
|
||||
//
|
||||
|
|
|
|||
|
|
@ -1129,8 +1129,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc
|
|||
// return excelSheetData;
|
||||
// }
|
||||
// List<Long> employeeIds = SalaryEntityUtil.properties(salaryCheckResultRecords, SalaryCheckResultRecordPO::getEmployeeId, Collectors.toList());
|
||||
// List<SimpleEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds);
|
||||
// Map<Long, String> simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId, SimpleEmployee::getUsername);
|
||||
// List<DataCollectionEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds);
|
||||
// Map<Long, String> simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername);
|
||||
// List<ExpressFormula> expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(checkResult.getFormulaId()));
|
||||
// Map<Long, String> formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula);
|
||||
// for (SalaryCheckResultRecordPO salaryCheckResultRecord : salaryCheckResultRecords) {
|
||||
|
|
|
|||
|
|
@ -1014,13 +1014,13 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
|
|||
//
|
||||
// // 获取所有人员信息
|
||||
// List<Long> ids = enableSendList.stream().map(e->Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList());
|
||||
// List<SimpleEmployee> allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey);
|
||||
// List<DataCollectionEmployee> allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey);
|
||||
// List<SalaryTemplateSalaryItemSetListDTO> listDTOS = JSONArray.parseArray(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class);
|
||||
// Optional<SalaryTemplateSalaryItemSetListDTO> optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst();
|
||||
// SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null);
|
||||
// Map<String, String> employeeField = SalaryAcctResultBO.buildEmployeeFieldName();
|
||||
// enableSendList.forEach(e -> {
|
||||
// Optional<SimpleEmployee> optionalSimpleEmployee = allEmployees.stream().filter(f->f.getEmployeeId().equals(Long.valueOf(e.get("employeeId").toString()))).findFirst();
|
||||
// Optional<DataCollectionEmployee> optionalSimpleEmployee = allEmployees.stream().filter(f->f.getEmployeeId().equals(Long.valueOf(e.get("employeeId").toString()))).findFirst();
|
||||
// if (optionalSimpleEmployee.isPresent()) {
|
||||
// buildEmployeeInfo(employeeInformation, optionalSimpleEmployee.get(), e.get("taxAgent").toString(), employeeField);
|
||||
// }
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla
|
|||
List<TaxDeclarationDetailPO> taxDeclarationDetailPOS = listByTaxDeclarationIdAndEmployeeIds(queryParam.getTaxDeclarationId(), employeeIdPage);
|
||||
// 查询人员
|
||||
List<DataCollectionEmployee> simpleEmployees = getSalaryEmployeeService().listByIds(employeeIdPage);
|
||||
// List<SimpleEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIdPage.getRecords(), tenantKey);
|
||||
// List<DataCollectionEmployee> simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIdPage.getRecords(), tenantKey);
|
||||
// 转换成列表dto
|
||||
TaxDeclarationBO.buildDetailListDTO(queryParam.getTaxDeclarationId(), dtoPage, taxDeclarationDetailPOS, simpleEmployees);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class SalaryI18nUtil {
|
|||
// */
|
||||
// public static String getI18nLabel(String tenantKey, Long employeeId, int labelId, String defaultLabel) {
|
||||
// int languageId = I18nLanguageUtil.getLangId(employeeId);
|
||||
// return SystemEnv.getHtmlLabelName(labelId, languageId, tenantKey, defaultLabel);
|
||||
// return SalaryI18nUtil.getI18nLabel(labelId, languageId, tenantKey, defaultLabel);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
|
|
@ -43,8 +43,8 @@ public class SalaryI18nUtil {
|
|||
// * @param defaultLabel 默认中文
|
||||
// * @return
|
||||
// */
|
||||
// public static String getI18nLabel(SimpleEmployee simpleEmployee, int labelId, String defaultLabel) {
|
||||
// public static String getI18nLabel(DataCollectionEmployee simpleEmployee, int labelId, String defaultLabel) {
|
||||
// int languageId = I18nLanguageUtil.getLangId(simpleEmployee.getEmployeeId());
|
||||
// return SystemEnv.getHtmlLabelName(labelId, languageId, simpleEmployee.getTenantKey(), defaultLabel);
|
||||
// return SalaryI18nUtil.getI18nLabel(labelId, languageId, simpleEmployee.getTenantKey(), defaultLabel);
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -606,7 +606,7 @@ public class SalaryAcctController {
|
|||
// @ApiOperation("校验异常导出")
|
||||
// @WeaPermission
|
||||
// public WeaResult<Map<String, Object>> exportCheckResult(@RequestBody @Validated SalaryCheckResultExportParam exportParam) {
|
||||
// SimpleEmployee simpleEmployee = UserContext.getCurrentUser();
|
||||
// DataCollectionEmployee simpleEmployee = UserContext.getCurrentUser();
|
||||
// String tenantKey = TenantContext.getCurrentTenantKey();
|
||||
// String eteamsId = TenantRpcContext.getEteamsId();
|
||||
// Map<String, Object> map = salaryAcctExcelWrapper.exportCheckResult(exportParam, simpleEmployee, tenantKey, eteamsId);
|
||||
|
|
@ -617,7 +617,7 @@ public class SalaryAcctController {
|
|||
// @ApiOperation("校验异常明细导出")
|
||||
// @WeaPermission
|
||||
// public WeaResult<Map<String, Object>> exportCheckResultDetail(@RequestParam(value = "checkResultId") Long checkResultId) {
|
||||
// SimpleEmployee simpleEmployee = UserContext.getCurrentUser();
|
||||
// DataCollectionEmployee simpleEmployee = UserContext.getCurrentUser();
|
||||
// String tenantKey = TenantContext.getCurrentTenantKey();
|
||||
// String eteamsId = TenantRpcContext.getEteamsId();
|
||||
// Map<String, Object> map = salaryAcctExcelWrapper.exportCheckResultDetail(checkResultId, simpleEmployee, tenantKey, eteamsId);
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public class OtherDeductionWrapper extends Service {
|
|||
//
|
||||
// //日期范围选项
|
||||
// List<SearchConditionOption> dateOptions = new ArrayList<SearchConditionOption>();
|
||||
// dateOptions.add(new SearchConditionOption("6", SystemEnv.getHtmlLabelName(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// dateOptions.add(new SearchConditionOption("6", SalaryI18nUtil.getI18nLabel(32530, user.getLanguage()), true));//指定日期范围(必须为6)
|
||||
// SearchConditionItem hiredate = conditionFactory.createCondition(ConditionType.RANGEPICKER, 18648, new String[]{"hiredate", "hiredate"});
|
||||
// hiredate.setInputType("rangepicker");
|
||||
// hiredate.setFormat("yyyy-MM-dd");
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public class SalaryAcctExcelWrapper extends Service {
|
|||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportCheckResult(SalaryCheckResultExportParam exportParam,
|
||||
// SimpleEmployee simpleEmployee, String tenantKey, String eteamsId) {
|
||||
// DataCollectionEmployee simpleEmployee, String tenantKey, String eteamsId) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setModule(EntityType.hrsa.name())
|
||||
// .setFunction("salaryCheckResultHandler");
|
||||
|
|
@ -131,7 +131,7 @@ public class SalaryAcctExcelWrapper extends Service {
|
|||
// * @return
|
||||
// */
|
||||
// public Map<String, Object> exportCheckResultDetail(Long checkResultId,
|
||||
// SimpleEmployee simpleEmployee, String tenantKey, String eteamsId) {
|
||||
// DataCollectionEmployee simpleEmployee, String tenantKey, String eteamsId) {
|
||||
// ExcelExportParam excelExportParam = new ExcelExportParam()
|
||||
// .setModule(EntityType.hrsa.name())
|
||||
// .setFunction("salaryCheckResultDetailHandler");
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ public class SalaryAcctResultWrapper extends Service {
|
|||
* @param simpleEmployee 当前登陆人员
|
||||
* @param tenantKey 租户key
|
||||
*/
|
||||
// public void check(SalaryAcctCheckParam checkParam, SimpleEmployee simpleEmployee, String tenantKey) {
|
||||
// public void check(SalaryAcctCheckParam checkParam, DataCollectionEmployee simpleEmployee, String tenantKey) {
|
||||
// // 检查是否正在核算中
|
||||
// SalaryAcctProgressDTO salaryAcctProgressDTO = salaryAcctProgressService.getProgress("" + checkParam.getSalaryAcctRecordId(), simpleEmployee.getEmployeeId(), tenantKey);
|
||||
// if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue