From a19b19e23dff3ff0ed0f3ace840d47d33a3a3b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 19 Apr 2023 10:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/component/SalaryWeaTable.java | 4 +- .../datacollection/bo/AttendQuoteDataBO.java | 6 +- .../salaryacct/bo/SalaryCheckResultBO.java | 6 +- .../formlua/data/ExpressDataService.java | 85 - .../formlua/data/ExpressDataServiceImpl.java | 662 ------ .../salary/formlua/data/func/EqOperator.java | 117 - .../formlua/data/func/LessMoreOperator.java | 115 - .../salary/formlua/data/func/LogicFunc.java | 99 - .../formlua/data/func/NotEqOperator.java | 112 - .../formlua/data/func/QLExpressContext.java | 47 - .../formlua/data/func/QlExpressUtil.java | 148 -- .../formlua/entity/parameter/ExcelFuncs.java | 218 +- .../entity/parameter/FuncDescUtil.java | 222 +- .../entity/parameter/ThreadLocalData.java | 10 +- .../func/date/DateTimeServiceImpl.java | 2 +- .../func/date/DateTimeTestServiceImpl.java | 4 +- .../func/find/FindFuncsServiceImpl.java | 6 +- .../salary/formlua/util/ExcelParamUtil.java | 2042 +++++++++-------- .../formlua/util/ExcelStandardUtil.java | 10 +- .../engine/salary/formlua/util/TestUtil.java | 4 +- .../formlua/util/standard/ExcelTransUtil.java | 320 --- .../remote/attend/cmd/GetKQReportCmd.java | 20 +- .../salary/service/RemoteExcelService.java | 14 +- .../impl/AddUpDeductionServiceImpl.java | 2 +- .../impl/AddUpSituationServiceImpl.java | 2 +- .../service/impl/RemoteExcelServiceImpl.java | 16 +- .../impl/SalaryAcctExcelServiceImpl.java | 4 +- .../service/impl/SalarySendServiceImpl.java | 4 +- .../impl/TaxDeclarationDetailServiceImpl.java | 2 +- .../engine/salary/util/SalaryI18nUtil.java | 6 +- .../salary/web/SalaryAcctController.java | 4 +- .../salary/wrapper/OtherDeductionWrapper.java | 2 +- .../wrapper/SalaryAcctExcelWrapper.java | 4 +- .../wrapper/SalaryAcctResultWrapper.java | 2 +- 34 files changed, 1308 insertions(+), 3013 deletions(-) delete mode 100644 src/com/engine/salary/formlua/data/ExpressDataService.java delete mode 100644 src/com/engine/salary/formlua/data/ExpressDataServiceImpl.java delete mode 100644 src/com/engine/salary/formlua/data/func/EqOperator.java delete mode 100644 src/com/engine/salary/formlua/data/func/LessMoreOperator.java delete mode 100644 src/com/engine/salary/formlua/data/func/LogicFunc.java delete mode 100644 src/com/engine/salary/formlua/data/func/NotEqOperator.java delete mode 100644 src/com/engine/salary/formlua/data/func/QLExpressContext.java delete mode 100644 src/com/engine/salary/formlua/data/func/QlExpressUtil.java delete mode 100644 src/com/engine/salary/formlua/util/standard/ExcelTransUtil.java diff --git a/src/com/engine/salary/component/SalaryWeaTable.java b/src/com/engine/salary/component/SalaryWeaTable.java index b4e41a76c..98110f7ce 100644 --- a/src/com/engine/salary/component/SalaryWeaTable.java +++ b/src/com/engine/salary/component/SalaryWeaTable.java @@ -56,7 +56,7 @@ public class SalaryWeaTable 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 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; } diff --git a/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java b/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java index 66bc83223..144ed4c0e 100644 --- a/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java +++ b/src/com/engine/salary/entity/datacollection/bo/AttendQuoteDataBO.java @@ -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()); diff --git a/src/com/engine/salary/entity/salaryacct/bo/SalaryCheckResultBO.java b/src/com/engine/salary/entity/salaryacct/bo/SalaryCheckResultBO.java index 34b4f3267..a9d26843c 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/SalaryCheckResultBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/SalaryCheckResultBO.java @@ -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 convert2RecordListDTO(List salaryCheckResultRecords, // List salarySobCheckRules, // List expressFormulas, -// List simpleEmployees) { +// List simpleEmployees) { // if (CollectionUtils.isEmpty(salaryCheckResultRecords)) { // return Collections.emptyList(); // } // Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula); // Map checkRuleMap = SalaryEntityUtil.convert2Map(salarySobCheckRules, SalarySobCheckRulePO::getId, SalarySobCheckRulePO::getName); -// Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId, SimpleEmployee::getName); +// Map employeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getName); // return salaryCheckResultRecords.stream() // .map(e -> SalaryCheckResultRecordListDTO.builder() // .id(e.getId()) diff --git a/src/com/engine/salary/formlua/data/ExpressDataService.java b/src/com/engine/salary/formlua/data/ExpressDataService.java deleted file mode 100644 index 239974af7..000000000 --- a/src/com/engine/salary/formlua/data/ExpressDataService.java +++ /dev/null @@ -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 buildCndFilter(Long formId, Long fieldId, String express, Map 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 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 params, String module, SimpleEmployee employee); - - public Double getCommonAggregateData(Long formId,Long fieldId,String funcName,List cndDataType,String moduleSource,SimpleEmployee employee); - - /** - * formdata封装成函数需要的数据结构 - * @param fieldIds 字段id - * @param dataId 当前数据id(上报id,审批id) - * @param module 当前数据module - * @param employee 操作人 - * @return - */ -// public Map bulidDataType(List fieldIds, Long dataId, ModuleSource module, SimpleEmployee employee); - - /** - * @param fieldIds - * @param formData - * @param module - * @param employee - * @return - */ - public Map bulidDataType(List 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 buildFilterParam(ExpressFormula formula, Long targetFormId, SimpleEmployee employee, FormData formData, String module); - -} diff --git a/src/com/engine/salary/formlua/data/ExpressDataServiceImpl.java b/src/com/engine/salary/formlua/data/ExpressDataServiceImpl.java deleted file mode 100644 index 5d6991b5f..000000000 --- a/src/com/engine/salary/formlua/data/ExpressDataServiceImpl.java +++ /dev/null @@ -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 params = new HashMap(); - List 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 params,SimpleEmployee employee) throws Exception { - Double value = 0d; - return 1d; - } - - @SuppressWarnings("unchecked") - @Override - public Map buildCndFilter(Long formId, Long fieldId, String express, Map params, String module, SimpleEmployee employee) { - Map paramMap=new HashMap<>(); - List filterFormDatas = new ArrayList(); - if(express != null) { - if(params == null) { - params = new HashMap(); - } - List 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)object); - } - } catch (Exception e) { - logger.error("err",e); - } - } - Map 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 params, String module, SimpleEmployee employee) { - Double value = 0d; - List filterFormDatas = new ArrayList(); - if(express != null) { - if(params == null) { - params = new HashMap(); - } - - List formFields = bulidFreeFormService(ModuleSource.valueOf(module)).getFormFieldListByStatus(formId, null, employee); - if(formFields != null && formFields.size() > 0) { - for(FormField formField:formFields) { - boolean isput=false; - Iterator 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)object); - } - } catch (Exception e) { - logger.error("err",e); - } - } - Map 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 cndDataType, String moduleSource, SimpleEmployee employee) { - Double value=0d; - funcName=funcName.toLowerCase(); - List filterFormDatas=null; - List formulaFilterDataList=new ArrayList<>(); - for (int i=1;i 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 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 filterFormDataParamList=filterFormDataSearchService.conversionOldFilterFormDataToNew(filterFormDatas,employee); - logger.info("conversionOldFilterFormDataToNew函数统计转换条件:"+JSON.toJSONString(filterFormDataParamList)); - Map 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 paramMap, List filterFormDatas, SimpleEmployee employee, Long formId) { - List datas =null; - FormDataOption formDataOption=new FormDataOption(); - Page pageDatas=new Page(); - - JSONObject filter=new JSONObject(); - JSONArray filterArray=JSON.parseArray(JSON.toJSONString(filterFormDatas)); - - for(int i=0;i 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 page = new com.weaver.common.component.table.page.Page(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 tempDatas=wfcRequestListFormRest.getFormFilterRequestDatasByWfId(paramMap,formId,listSearchCondition,page,employee); -// List tempDatas=wfcRequestListFormRpc.getFormFilterRequestDatas(paramMap,formId,listSearchCondition,page,employee); -// return new Double(tempDatas.size()); - } - - // 封装高级搜索参数 - private Map assemblyParam(Long formId, SimpleEmployee employee) { - Map param = new HashMap(); - - 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 bulidDataType(List fieldIds, FormData formData, String module, - SimpleEmployee employee) { - Map dataMap = new HashMap(); - if(fieldIds != null && fieldIds.size() > 0 && formData != null) { - List dataDetails = formData.getDataDetails(); - Map> dataDetailMap = new HashMap>(); - 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 values = new ArrayList(); - values.add(dataDetail); - dataDetailMap.put(dataDetail.getFormField().getId(), values); - } - - } - } - Map 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 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 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 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 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 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 buildFilterParam(ExpressFormula dataExpressFormula, Long targetFormId, SimpleEmployee employee, FormData formData, String module) { - String moduleStr=module.toString(); - FormulaContext.get().setValue(moduleStr); - - Map expressMap=new HashMap<>(); - Map paramMap = Maps.newHashMap(); - if(dataExpressFormula==null) throw new RuntimeException("公式不存在"); - - try { - JSONObject paramJson= JSON.parseObject(dataExpressFormula.getParameter()); - List varList=null; - if(dataExpressFormula.getParameter()!=null){ - JSONArray paramArray=paramJson.getJSONArray("formulavars"); - varList=paramArray.toJavaList(FormulaVar.class); - List 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 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 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; - } - -} diff --git a/src/com/engine/salary/formlua/data/func/EqOperator.java b/src/com/engine/salary/formlua/data/func/EqOperator.java deleted file mode 100644 index 83ef15e15..000000000 --- a/src/com/engine/salary/formlua/data/func/EqOperator.java +++ /dev/null @@ -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 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("筛选条件[=]:左边必须是表单控件"); - } -} \ No newline at end of file diff --git a/src/com/engine/salary/formlua/data/func/LessMoreOperator.java b/src/com/engine/salary/formlua/data/func/LessMoreOperator.java deleted file mode 100644 index 35cf47591..000000000 --- a/src/com/engine/salary/formlua/data/func/LessMoreOperator.java +++ /dev/null @@ -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+"]:左边必须是数字控件或时间控件"); - } - -} diff --git a/src/com/engine/salary/formlua/data/func/LogicFunc.java b/src/com/engine/salary/formlua/data/func/LogicFunc.java deleted file mode 100644 index 655aaf249..000000000 --- a/src/com/engine/salary/formlua/data/func/LogicFunc.java +++ /dev/null @@ -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 and(Object... objs){ - List filterFormDatas = new ArrayList<>(); - if(objs != null && objs.length > 0) { - for(int i=0;i,>=,<,<=,LIKE,AND,OR'条件公式"); - } - } - } - return filterFormDatas; - } - - /** - * - * @param objs - * @return - */ - public static List or(Object... objs){ - List filterFormDatas = new ArrayList<>(); - if(objs != null && objs.length > 0) { - for(int i=0;i,>=,<,<=,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 contents = new ArrayList(); - 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 ids = new ArrayList(); - 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]:参数异常"); - } - } -} diff --git a/src/com/engine/salary/formlua/data/func/NotEqOperator.java b/src/com/engine/salary/formlua/data/func/NotEqOperator.java deleted file mode 100644 index 494e291a8..000000000 --- a/src/com/engine/salary/formlua/data/func/NotEqOperator.java +++ /dev/null @@ -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 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("筛选条件[!=]:左边必须是表单控件"); - } -} diff --git a/src/com/engine/salary/formlua/data/func/QLExpressContext.java b/src/com/engine/salary/formlua/data/func/QLExpressContext.java deleted file mode 100644 index 86cf3d8af..000000000 --- a/src/com/engine/salary/formlua/data/func/QLExpressContext.java +++ /dev/null @@ -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 implements - IExpressContext { - - private ApplicationContext context; - - public QLExpressContext(ApplicationContext aContext) { - this.context = aContext; - } - - public QLExpressContext(Map 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); - } - -} \ No newline at end of file diff --git a/src/com/engine/salary/formlua/data/func/QlExpressUtil.java b/src/com/engine/salary/formlua/data/func/QlExpressUtil.java deleted file mode 100644 index 8f254735d..000000000 --- a/src/com/engine/salary/formlua/data/func/QlExpressUtil.java +++ /dev/null @@ -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 context) - throws Exception { - DynamicParamsUtil.supportDynamicParams = true; - initRunner(runner); - IExpressContext 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; - } -} diff --git a/src/com/engine/salary/formlua/entity/parameter/ExcelFuncs.java b/src/com/engine/salary/formlua/entity/parameter/ExcelFuncs.java index 92ddf028d..437d8376e 100644 --- a/src/com/engine/salary/formlua/entity/parameter/ExcelFuncs.java +++ b/src/com/engine/salary/formlua/entity/parameter/ExcelFuncs.java @@ -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 getCompList(){ //比较操作符 List 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 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 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 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 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 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 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 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 getOtherFuncs(){ - List otherFuncs=new ArrayList<>(); - for(int i=0;i moduleFuncs=(List)result; - if(moduleFuncs.size()>0){ - otherFuncs.addAll(moduleFuncs); - } - } - } catch (Exception e) { - logger.error("err",e); - } - } - return otherFuncs; - } } diff --git a/src/com/engine/salary/formlua/entity/parameter/FuncDescUtil.java b/src/com/engine/salary/formlua/entity/parameter/FuncDescUtil.java index 1b0ea6889..d4e5fcee3 100644 --- a/src/com/engine/salary/formlua/entity/parameter/FuncDescUtil.java +++ b/src/com/engine/salary/formlua/entity/parameter/FuncDescUtil.java @@ -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 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。示例:
DATEADD('2016-12-21', 3) 结果: '2016-12-24'
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。
示例:
DATEDIF('2016-12-21', '2016-12-24') 结果: 3
DATEDIF('2016-12-24 20:00:00', '2016-12-25 20:00:00', 'H') 结果: 24")); - funcMap.put("DATEFORMAT",SystemEnv.getHtmlLabelName(97693,"将日期转为指定格式返回。 示例:
DATEFORMAT('2016-12-24', 'YY年MM月DD日') 结果: 2016年12月24日
yyyy 将年份显示为1900-9999
yy 将年份显示为00-99
mm 将月份显示为 01–12
dd 将日期显示为 01–31")); - funcMap.put("YEAR",SystemEnv.getHtmlLabelName(97694,"返回指定日期中的年。示例:
YEAR('2016-12-24') 结果: 2016")); - funcMap.put("MONTH",SystemEnv.getHtmlLabelName(97695,"返回指定日期中的月。示例:
MONTH('2016-12-24') 结果: 12")); - funcMap.put("DAY",SystemEnv.getHtmlLabelName(97696,"返回指定日期中的日。示例:
DAY('2016-12-24') 结果: 24")); - funcMap.put("HOUR",SystemEnv.getHtmlLabelName(97697,"返回指定日期中的小时。示例:
HOUR('2016-12-24 20:30:56') 结果: 20")); - funcMap.put("MINUTE",SystemEnv.getHtmlLabelName(97698,"返回指定日期中的分钟。示例:
MINUTE('2016-12-24 20:30:56') 结果: 30")); - funcMap.put("SECOND",SystemEnv.getHtmlLabelName(97699,"返回指定日期中的秒钟。示例:
SECOND('2016-12-24 20:30:56') 结果: 56")); - funcMap.put("WEEKNUM",SystemEnv.getHtmlLabelName(97700,"返回指定日期为第几周,从每年第1天开始算第1周。示例:
WEEKNUM('2016-12-24') 结果: 52")); - funcMap.put("WEEKDAY",SystemEnv.getHtmlLabelName(97701,"返回指定日期为星期几。返回值为0~6,代表周日~周六。示例:
WEEKDAY('2016-12-24') 结果: 6")); - funcMap.put("EOMONTH",SystemEnv.getHtmlLabelName(97702,"将某月最后一天日期返回。日期可以为指定日期也可以是日期参数,之前的月数用负数表示,之后的月数用正数表示。所输入月数需为整数。
示例:EOMONTH('2021-11-07', -2)
结果:2021-09-30")); - funcMap.put("NETWORKDAYSPI",SystemEnv.getHtmlLabelName(97703,"将指定日期(仅限的过去时间,最大支持跨度为365天)之间包含的工作日天数返回。注意:此函数只能选择过去的时间才可使用,跨度不能超过365天。当日期2小于日期1时,差值为负值。单位默认为日。
示例:想知道李四在2021-11-07和2021-11-12之间的工作日天数。
NETWORKDAYSPI('2021-11-07', '2021-11-12','李四')
结果:5")); - funcMap.put("MAXDATE", SystemEnv.getHtmlLabelName(100804, "取一组日期中的最大值。示例:
MAXDATE('2016-12-24', '2022-12-24') 结果: 2022-12-24")); - funcMap.put("MINDATE", SystemEnv.getHtmlLabelName(100806, "取一组日期中的最小值。示例:
MINDATE('2016-12-24', '2022-12-24') 结果: 2016-12-24")); - //日期中的当前时间操作 - funcMap.put("CURRYEAR", SystemEnv.getHtmlLabelName(101066, "取当前日期的年份。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRYEAR() 结果: 2022")); - funcMap.put("CURRMONTH", SystemEnv.getHtmlLabelName(101067, "取当前日期的月份。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRMONTH() 结果: 2")); - funcMap.put("CURRDAY", SystemEnv.getHtmlLabelName(101068, "取当前日期的天。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRDAY() 结果: 17")); - funcMap.put("CURRWEEK", SystemEnv.getHtmlLabelName(101069, "取当前日期是周几。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRWEEK() 结果: 4")); - funcMap.put("CURRHOUR", SystemEnv.getHtmlLabelName(101070, "取当前日期的小时。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRHOUR() 结果: 11")); - funcMap.put("CURRMINUTE", SystemEnv.getHtmlLabelName(101071, "取当前日期的分钟。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRMINUTE() 结果: 20")); - funcMap.put("CURRSECOND", SystemEnv.getHtmlLabelName(101072, "取当前日期的秒钟。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRSECOND() 结果: 30")); + protected final Logger logger = LoggerFactory.getLogger(FuncDescUtil.class); + Map funcMap = new HashMap(); - //逻辑函数 - funcMap.put("IF",SystemEnv.getHtmlLabelName(97704,"如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。示例:
IF({员工表.年龄} > 60, '退休', '在职')、IF({员工表.年龄} > 60, IF({员工表.性别} = {员工表.性别.女}, '退休', '在职'), '在职')")); - funcMap.put("AND",SystemEnv.getHtmlLabelName(97705,"所有条件均为真,则返回真,否则返回假。逻辑操作AND的函数模式。示例:
AND(2 = 2, 2 < 2)")); - funcMap.put("OR",SystemEnv.getHtmlLabelName(97706,"任意一个条件为真,则返回真,否则返回假。逻辑操作OR的函数模式。示例:
OR(2 = 2, 2 > 3)")); - funcMap.put("NOT",SystemEnv.getHtmlLabelName(97707,"对逻辑结果取反。示例:
NOT(2 > 3)")); - funcMap.put("IN",SystemEnv.getHtmlLabelName(97708,"任意类型的变量或常量等于一组同类型变量或常量结果中的任意一个,则返回真。示例:
IN(2, [2, 3, 4])")); - funcMap.put("LIKE",SystemEnv.getHtmlLabelName(97709,"文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。示例:
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。示例:
DATEADD('2016-12-21', 3) 结果: '2016-12-24'
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。
示例:
DATEDIF('2016-12-21', '2016-12-24') 结果: 3
DATEDIF('2016-12-24 20:00:00', '2016-12-25 20:00:00', 'H') 结果: 24")); + funcMap.put("DATEFORMAT", SalaryI18nUtil.getI18nLabel(97693, "将日期转为指定格式返回。 示例:
DATEFORMAT('2016-12-24', 'YY年MM月DD日') 结果: 2016年12月24日
yyyy 将年份显示为1900-9999
yy 将年份显示为00-99
mm 将月份显示为 01–12
dd 将日期显示为 01–31")); + funcMap.put("YEAR", SalaryI18nUtil.getI18nLabel(97694, "返回指定日期中的年。示例:
YEAR('2016-12-24') 结果: 2016")); + funcMap.put("MONTH", SalaryI18nUtil.getI18nLabel(97695, "返回指定日期中的月。示例:
MONTH('2016-12-24') 结果: 12")); + funcMap.put("DAY", SalaryI18nUtil.getI18nLabel(97696, "返回指定日期中的日。示例:
DAY('2016-12-24') 结果: 24")); + funcMap.put("HOUR", SalaryI18nUtil.getI18nLabel(97697, "返回指定日期中的小时。示例:
HOUR('2016-12-24 20:30:56') 结果: 20")); + funcMap.put("MINUTE", SalaryI18nUtil.getI18nLabel(97698, "返回指定日期中的分钟。示例:
MINUTE('2016-12-24 20:30:56') 结果: 30")); + funcMap.put("SECOND", SalaryI18nUtil.getI18nLabel(97699, "返回指定日期中的秒钟。示例:
SECOND('2016-12-24 20:30:56') 结果: 56")); + funcMap.put("WEEKNUM", SalaryI18nUtil.getI18nLabel(97700, "返回指定日期为第几周,从每年第1天开始算第1周。示例:
WEEKNUM('2016-12-24') 结果: 52")); + funcMap.put("WEEKDAY", SalaryI18nUtil.getI18nLabel(97701, "返回指定日期为星期几。返回值为0~6,代表周日~周六。示例:
WEEKDAY('2016-12-24') 结果: 6")); + funcMap.put("EOMONTH", SalaryI18nUtil.getI18nLabel(97702, "将某月最后一天日期返回。日期可以为指定日期也可以是日期参数,之前的月数用负数表示,之后的月数用正数表示。所输入月数需为整数。
示例:EOMONTH('2021-11-07', -2)
结果:2021-09-30")); + funcMap.put("NETWORKDAYSPI", SalaryI18nUtil.getI18nLabel(97703, "将指定日期(仅限的过去时间,最大支持跨度为365天)之间包含的工作日天数返回。注意:此函数只能选择过去的时间才可使用,跨度不能超过365天。当日期2小于日期1时,差值为负值。单位默认为日。
示例:想知道李四在2021-11-07和2021-11-12之间的工作日天数。
NETWORKDAYSPI('2021-11-07', '2021-11-12','李四')
结果:5")); + funcMap.put("MAXDATE", SalaryI18nUtil.getI18nLabel(100804, "取一组日期中的最大值。示例:
MAXDATE('2016-12-24', '2022-12-24') 结果: 2022-12-24")); + funcMap.put("MINDATE", SalaryI18nUtil.getI18nLabel(100806, "取一组日期中的最小值。示例:
MINDATE('2016-12-24', '2022-12-24') 结果: 2016-12-24")); + //日期中的当前时间操作 + funcMap.put("CURRYEAR", SalaryI18nUtil.getI18nLabel(101066, "取当前日期的年份。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRYEAR() 结果: 2022")); + funcMap.put("CURRMONTH", SalaryI18nUtil.getI18nLabel(101067, "取当前日期的月份。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRMONTH() 结果: 2")); + funcMap.put("CURRDAY", SalaryI18nUtil.getI18nLabel(101068, "取当前日期的天。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRDAY() 结果: 17")); + funcMap.put("CURRWEEK", SalaryI18nUtil.getI18nLabel(101069, "取当前日期是周几。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRWEEK() 结果: 4")); + funcMap.put("CURRHOUR", SalaryI18nUtil.getI18nLabel(101070, "取当前日期的小时。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRHOUR() 结果: 11")); + funcMap.put("CURRMINUTE", SalaryI18nUtil.getI18nLabel(101071, "取当前日期的分钟。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRMINUTE() 结果: 20")); + funcMap.put("CURRSECOND", SalaryI18nUtil.getI18nLabel(101072, "取当前日期的秒钟。示例:
假设当前时间为:2022年2月17日 11:20:30 ,CURRSECOND() 结果: 30")); - //文本函数 - funcMap.put("CONCAT",SystemEnv.getHtmlLabelName(97730,"可用于连接多个任意类型的文本、日期、数字变量或常量。示例:
CONCAT({总价}/10000, '万元')")); - funcMap.put("TEXT",SystemEnv.getHtmlLabelName(97731,"将变量转为文本。示例:
TEXT({当前数据.性别}) 结果: '男'")); - funcMap.put("VALUE",SystemEnv.getHtmlLabelName(97732,"将文本转为数字。示例:
VALUE('23') 结果: 23")); - funcMap.put("LEN",SystemEnv.getHtmlLabelName(97733,"返回文本的长度,中文、英文都算1个字符。示例:
LEN('大家好dajiahao') 结果: 12")); - funcMap.put("SEARCH",SystemEnv.getHtmlLabelName(97734,"在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。示例:
SEARCH('大家', '大家好大家好', 3) 结果: 4")); - funcMap.put("REPLACE",SystemEnv.getHtmlLabelName(97735,"在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。示例:
REPLACE('大家好大家好', 2, 3, 'dajia') 结果: '大dajia家好'")); - funcMap.put("REPT",SystemEnv.getHtmlLabelName(97736,"将文本重复指定次数。示例:
REPT('大家', 2) 结果: '大家大家'")); - funcMap.put("PAD",SystemEnv.getHtmlLabelName(97737,"将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。填充位置可用参数:'LEFT'、'RIGHT'。示例:
PAD('你好', 4, '你', 'LEFT') 结果: '你你你好'")); - funcMap.put("TRIM",SystemEnv.getHtmlLabelName(97738,"删除文本首尾的空格。示例:
TRIM(' 大家好 ') 结果: '大家好'")); - funcMap.put("LEFT",SystemEnv.getHtmlLabelName(97739,"从文本左侧开始,返回指定字符数的文字。示例:
LEFT('大家好', 2) 结果: '大家'")); - funcMap.put("RIGHT",SystemEnv.getHtmlLabelName(97740,"从文本右侧开始,返回指定字符数的文字。示例:
RIGHT('大家好', 2) 结果: '家好'")); - funcMap.put("MID",SystemEnv.getHtmlLabelName(97741,"从文本指定位置之后开始,返回指定字符数的文字。示例:
MID('大家好', 2, 1) 结果: '家'")); - funcMap.put("ISEMPTY",SystemEnv.getHtmlLabelName(97742,"变量为空或未填写,则返回真。示例:
ISEMPTY({员工表.电话})")); - funcMap.put("IDCARD",SystemEnv.getHtmlLabelName(97743,"从身份证号码中获取相关信息,比如:生日(BD)、年龄(AGE)、籍贯(NA)、性别(GENDER)。示例:
IDCARD( ‘43070319980706334X’ , ‘BD’ ) 结果: '1998-07-06'")); - funcMap.put("SCORE",SystemEnv.getHtmlLabelName(97744,"获取选项型控件(单选框、复选框、下拉菜单)分数。示例:SCORE({当前数据.单选框}) 结果:选项分数
注:未设置选项分数时,结果为0")); - funcMap.put("SUBSTRING", SystemEnv.getHtmlLabelName(97745,"字符截取函数,用于按起始位置截取字符。
示例:SUBSTRING('abcdefg',2,3)
结果:bc")); - funcMap.put("SUBSTITUE", SystemEnv.getHtmlLabelName(97746,"字符查找替换函数,替换字符中的所有关键词为新字符。
示例:SUBSTITUE('泛微移动办公','泛微','eteams')
结果:eteams移动办公")); - funcMap.put("LOWER", SystemEnv.getHtmlLabelName(97747,"将字符中的字母转为小写。
示例:LOWER('abc')
结果:ABC")); - funcMap.put("UPPER", SystemEnv.getHtmlLabelName(97748,"将字符中的字母转为大写。
示例:LOWER('ABC')
结果:abc")); - funcMap.put("EXACT", SystemEnv.getHtmlLabelName(97749,"比较两个字符是否相等,区分字母的大小写。
示例:EXACT('泛微Eteams','泛微eteams')
结果:false")); - funcMap.put("ISSTRING", SystemEnv.getHtmlLabelName(0,"判断是否是字符。
示例:ISSTRING('泛微Eteams')
结果:true")); + //逻辑函数 + funcMap.put("IF", SalaryI18nUtil.getI18nLabel(97704, "如果条件为真,则执行表达式1,为假则执行表达式2。条件中不可嵌套使用IF函数。示例:
IF({员工表.年龄} > 60, '退休', '在职')、IF({员工表.年龄} > 60, IF({员工表.性别} = {员工表.性别.女}, '退休', '在职'), '在职')")); + funcMap.put("AND", SalaryI18nUtil.getI18nLabel(97705, "所有条件均为真,则返回真,否则返回假。逻辑操作AND的函数模式。示例:
AND(2 = 2, 2 < 2)")); + funcMap.put("OR", SalaryI18nUtil.getI18nLabel(97706, "任意一个条件为真,则返回真,否则返回假。逻辑操作OR的函数模式。示例:
OR(2 = 2, 2 > 3)")); + funcMap.put("NOT", SalaryI18nUtil.getI18nLabel(97707, "对逻辑结果取反。示例:
NOT(2 > 3)")); + funcMap.put("IN", SalaryI18nUtil.getI18nLabel(97708, "任意类型的变量或常量等于一组同类型变量或常量结果中的任意一个,则返回真。示例:
IN(2, [2, 3, 4])")); + funcMap.put("LIKE", SalaryI18nUtil.getI18nLabel(97709, "文本类型的变量或常量包含一组文本类型变量或常量结果中的任意一个,则返回真。逻辑操作LIKE的函数模式。示例:
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,即只保留整数。
示例:ROUND(123.456,2),ROUND(123.456,0),ROUND(123.456,-2)
结果:依次为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,即只保留整数。
示例:ROUNDDOWN(76.9,0)
结果: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, "可用于连接多个任意类型的文本、日期、数字变量或常量。示例:
CONCAT({总价}/10000, '万元')")); + funcMap.put("TEXT", SalaryI18nUtil.getI18nLabel(97731, "将变量转为文本。示例:
TEXT({当前数据.性别}) 结果: '男'")); + funcMap.put("VALUE", SalaryI18nUtil.getI18nLabel(97732, "将文本转为数字。示例:
VALUE('23') 结果: 23")); + funcMap.put("LEN", SalaryI18nUtil.getI18nLabel(97733, "返回文本的长度,中文、英文都算1个字符。示例:
LEN('大家好dajiahao') 结果: 12")); + funcMap.put("SEARCH", SalaryI18nUtil.getI18nLabel(97734, "在指定文本中查找关键字,返回第一次出现关键字的字符位置,文本的第一个字记为1。未找到,返回0。搜索开始位置,表示从文本的第几个字符开始搜索,默认为1。示例:
SEARCH('大家', '大家好大家好', 3) 结果: 4")); + funcMap.put("REPLACE", SalaryI18nUtil.getI18nLabel(97735, "在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。示例:
REPLACE('大家好大家好', 2, 3, 'dajia') 结果: '大dajia家好'")); + funcMap.put("REPT", SalaryI18nUtil.getI18nLabel(97736, "将文本重复指定次数。示例:
REPT('大家', 2) 结果: '大家大家'")); + funcMap.put("PAD", SalaryI18nUtil.getI18nLabel(97737, "将原文本填充到指定长度,如果文本长度大于设置的长度,则不做任何操作。填充位置可用参数:'LEFT'、'RIGHT'。示例:
PAD('你好', 4, '你', 'LEFT') 结果: '你你你好'")); + funcMap.put("TRIM", SalaryI18nUtil.getI18nLabel(97738, "删除文本首尾的空格。示例:
TRIM(' 大家好 ') 结果: '大家好'")); + funcMap.put("LEFT", SalaryI18nUtil.getI18nLabel(97739, "从文本左侧开始,返回指定字符数的文字。示例:
LEFT('大家好', 2) 结果: '大家'")); + funcMap.put("RIGHT", SalaryI18nUtil.getI18nLabel(97740, "从文本右侧开始,返回指定字符数的文字。示例:
RIGHT('大家好', 2) 结果: '家好'")); + funcMap.put("MID", SalaryI18nUtil.getI18nLabel(97741, "从文本指定位置之后开始,返回指定字符数的文字。示例:
MID('大家好', 2, 1) 结果: '家'")); + funcMap.put("ISEMPTY", SalaryI18nUtil.getI18nLabel(97742, "变量为空或未填写,则返回真。示例:
ISEMPTY({员工表.电话})")); + funcMap.put("IDCARD", SalaryI18nUtil.getI18nLabel(97743, "从身份证号码中获取相关信息,比如:生日(BD)、年龄(AGE)、籍贯(NA)、性别(GENDER)。示例:
IDCARD( ‘43070319980706334X’ , ‘BD’ ) 结果: '1998-07-06'")); + funcMap.put("SCORE", SalaryI18nUtil.getI18nLabel(97744, "获取选项型控件(单选框、复选框、下拉菜单)分数。示例:SCORE({当前数据.单选框}) 结果:选项分数
注:未设置选项分数时,结果为0")); + funcMap.put("SUBSTRING", SalaryI18nUtil.getI18nLabel(97745, "字符截取函数,用于按起始位置截取字符。
示例:SUBSTRING('abcdefg',2,3)
结果:bc")); + funcMap.put("SUBSTITUE", SalaryI18nUtil.getI18nLabel(97746, "字符查找替换函数,替换字符中的所有关键词为新字符。
示例:SUBSTITUE('泛微移动办公','泛微','eteams')
结果:eteams移动办公")); + funcMap.put("LOWER", SalaryI18nUtil.getI18nLabel(97747, "将字符中的字母转为小写。
示例:LOWER('abc')
结果:ABC")); + funcMap.put("UPPER", SalaryI18nUtil.getI18nLabel(97748, "将字符中的字母转为大写。
示例:LOWER('ABC')
结果:abc")); + funcMap.put("EXACT", SalaryI18nUtil.getI18nLabel(97749, "比较两个字符是否相等,区分字母的大小写。
示例:EXACT('泛微Eteams','泛微eteams')
结果:false")); + funcMap.put("ISSTRING", SalaryI18nUtil.getI18nLabel(0, "判断是否是字符。
示例:ISSTRING('泛微Eteams')
结果:true")); - //查找函数 - funcMap.put("CHOOSE",SystemEnv.getHtmlLabelName(97756,"根据条件获取指定数据源中的全部数据。数据源支持选表单、表单中的字段。
示例:想知道税表中,收入大于15000的数值
CHOOSE({税表}, {税表.收入}>15000)
结果:返回税表中收入大于15000的集合")); - funcMap.put("MATCH",SystemEnv.getHtmlLabelName(97757,"将指定数值在指定数组区域中的位置返回。若数组中无指定值,返回null。
示例:MATCH(15000, [1000, 15000, 2000])
结果:1")); - funcMap.put("VLOOKUPS", SystemEnv.getHtmlLabelName(97758,"按列查找,返回所需值。常用于薪酬模块。根据条件获取查询参数所在列的返回参数的值。返回参数可填写多个,用英文逗号隔开。若查询不到返回null。
示例:VLOOKUPS({税表},{税表.收入},AND({税表.收入}>{税表.应纳税所得额下限},{税表.收入}<{税表.应纳税所得额上限}),[{税表.税率},{税表.速算扣除数}])
结果:按列查找返回税表中收入所在的收入区间所对应的税率和速算扣除数的数值")); + //数学函数 + funcMap.put("ROUND", SalaryI18nUtil.getI18nLabel(97750, "根据设置的小数位精确度,返回对数值四舍五入后的值。小数位精确度取值可为正整数,0,负整数。如果小数位精确度为正整数,针对小数点后的数据进行四舍五入;如果小数位精确度等于 0,返回最接近数值的整数;如果小数位精确度为负整数,针对小数点前的数据进行四舍五入,被舍掉的数据用0占位。小数位精确度不支持变量。小数位精确度默认为0,即只保留整数。
示例:ROUND(123.456,2),ROUND(123.456,0),ROUND(123.456,-2)
结果:依次为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,即只保留整数。
示例:ROUNDDOWN(76.9,0)
结果: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, "获取指定人员系统账号。
示例:GETHRMLOGINID({表单.张三})
结果:zhangsan@qq.com")); - funcMap.put("GETHRMWORKCODE", SystemEnv.getHtmlLabelName(100810, "获取指定人员编号。
示例:GETHRMWORKCODE({表单.张三})
结果:A001")); - funcMap.put("GETHRMMANAGER", SystemEnv.getHtmlLabelName(100812, "获取指定人员直接上级。
示例:GETHRMMANAGER({表单.张三})
结果:返回张三的直接上级")); - funcMap.put("GETHRMALLMANAGER", SystemEnv.getHtmlLabelName(100814, "获取指定人员所有上级。
示例:GETHRMMANAGER({表单.张三})
结果:返回张三的所有上级形成的数组")); - funcMap.put("GETHRMDEPARTMENT", SystemEnv.getHtmlLabelName(100816, "获取指定人员部门。
示例:GETHRMDEPARTMENT({表单.张三})
结果:返回张三的部门")); - funcMap.put("GETHRMSUBCOMPANY", SystemEnv.getHtmlLabelName(100818, "获取指定人员分部。
示例:GETHRMSUBCOMPANY({表单.张三})
结果:返回张三的分部")); - funcMap.put("GETDEPARTMENTNAME", SystemEnv.getHtmlLabelName(100820, "获取指定部门名称。
示例:GETDEPARTMENTNAME({表单.A部门})
结果:A部门")); - funcMap.put("GETDEPARTMENTCODE", SystemEnv.getHtmlLabelName(100822, "获取指定部门编号。
示例:GETDEPARTMENTCODE({表单.A部门})
结果:A001")); - funcMap.put("GETSUPERDEPARTMENT", SystemEnv.getHtmlLabelName(100824, "获取指定部门直接上级部门。
示例:GETDEPARTMENTCODE({表单.A部门})
结果:A部门的直接上级部门")); - funcMap.put("GETALLSUPERDEPARTMENT", SystemEnv.getHtmlLabelName(100826, "获取指定部门所有上级部门。
示例:GETALLSUPERDEPARTMENT({表单.A部门})
结果:A部门的所有上级部门形成的数组")); - funcMap.put("GETSUBCOMPANYNAME", SystemEnv.getHtmlLabelName(100828, "获取指定分部名称。
示例:GETSUBCOMPANYNAME({表单.A分部})
结果:A分部")); - funcMap.put("GETSUBCOMPANYCODE", SystemEnv.getHtmlLabelName(100830, "获取指定分部编号。
示例:GETSUBCOMPANYCODE({表单.A分部})
结果:B001")); - funcMap.put("GETSUPERSUBCOMPANY", SystemEnv.getHtmlLabelName(100832, "获取指定分部直接上级分部。
示例:GETSUPERSUBCOMPANY({表单.A分部})
结果:A分部的直接上级分部")); - funcMap.put("GETALLSUPERSUBCOMPANY", SystemEnv.getHtmlLabelName(100834, "获取指定分部所有上级分部。
示例:GETALLSUPERSUBCOMPANY({表单.A分部})
结果:A分部的所有上级分部形成的数组")); - funcMap.put("GETHRMNAME", SystemEnv.getHtmlLabelName(100834, "获取指定人员的姓名。
示例:GETHRMNAME({U:张三})
结果:张三")); - funcMap.put("GETHRMMOBILE", SystemEnv.getHtmlLabelName(100834, "获取指定人员的手机号码。
示例:GETHRMMOBILE({U:张三})
结果:13123232323")); + //查找函数 + funcMap.put("CHOOSE", SalaryI18nUtil.getI18nLabel(97756, "根据条件获取指定数据源中的全部数据。数据源支持选表单、表单中的字段。
示例:想知道税表中,收入大于15000的数值
CHOOSE({税表}, {税表.收入}>15000)
结果:返回税表中收入大于15000的集合")); + funcMap.put("MATCH", SalaryI18nUtil.getI18nLabel(97757, "将指定数值在指定数组区域中的位置返回。若数组中无指定值,返回null。
示例:MATCH(15000, [1000, 15000, 2000])
结果:1")); + funcMap.put("VLOOKUPS", SalaryI18nUtil.getI18nLabel(97758, "按列查找,返回所需值。常用于薪酬模块。根据条件获取查询参数所在列的返回参数的值。返回参数可填写多个,用英文逗号隔开。若查询不到返回null。
示例:VLOOKUPS({税表},{税表.收入},AND({税表.收入}>{税表.应纳税所得额下限},{税表.收入}<{税表.应纳税所得额上限}),[{税表.税率},{税表.速算扣除数}])
结果:按列查找返回税表中收入所在的收入区间所对应的税率和速算扣除数的数值")); - //财务函数 - funcMap.put("GETMONEY", SystemEnv.getHtmlLabelName(0, "将金额转换成中文金额大写。
示例:GETMONEY({1234})
结果:壹仟贰佰叁拾肆元整")); + //数据库函数 + funcMap.put("GETHRMLOGINID", SalaryI18nUtil.getI18nLabel(100808, "获取指定人员系统账号。
示例:GETHRMLOGINID({表单.张三})
结果:zhangsan@qq.com")); + funcMap.put("GETHRMWORKCODE", SalaryI18nUtil.getI18nLabel(100810, "获取指定人员编号。
示例:GETHRMWORKCODE({表单.张三})
结果:A001")); + funcMap.put("GETHRMMANAGER", SalaryI18nUtil.getI18nLabel(100812, "获取指定人员直接上级。
示例:GETHRMMANAGER({表单.张三})
结果:返回张三的直接上级")); + funcMap.put("GETHRMALLMANAGER", SalaryI18nUtil.getI18nLabel(100814, "获取指定人员所有上级。
示例:GETHRMMANAGER({表单.张三})
结果:返回张三的所有上级形成的数组")); + funcMap.put("GETHRMDEPARTMENT", SalaryI18nUtil.getI18nLabel(100816, "获取指定人员部门。
示例:GETHRMDEPARTMENT({表单.张三})
结果:返回张三的部门")); + funcMap.put("GETHRMSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100818, "获取指定人员分部。
示例:GETHRMSUBCOMPANY({表单.张三})
结果:返回张三的分部")); + funcMap.put("GETDEPARTMENTNAME", SalaryI18nUtil.getI18nLabel(100820, "获取指定部门名称。
示例:GETDEPARTMENTNAME({表单.A部门})
结果:A部门")); + funcMap.put("GETDEPARTMENTCODE", SalaryI18nUtil.getI18nLabel(100822, "获取指定部门编号。
示例:GETDEPARTMENTCODE({表单.A部门})
结果:A001")); + funcMap.put("GETSUPERDEPARTMENT", SalaryI18nUtil.getI18nLabel(100824, "获取指定部门直接上级部门。
示例:GETDEPARTMENTCODE({表单.A部门})
结果:A部门的直接上级部门")); + funcMap.put("GETALLSUPERDEPARTMENT", SalaryI18nUtil.getI18nLabel(100826, "获取指定部门所有上级部门。
示例:GETALLSUPERDEPARTMENT({表单.A部门})
结果:A部门的所有上级部门形成的数组")); + funcMap.put("GETSUBCOMPANYNAME", SalaryI18nUtil.getI18nLabel(100828, "获取指定分部名称。
示例:GETSUBCOMPANYNAME({表单.A分部})
结果:A分部")); + funcMap.put("GETSUBCOMPANYCODE", SalaryI18nUtil.getI18nLabel(100830, "获取指定分部编号。
示例:GETSUBCOMPANYCODE({表单.A分部})
结果:B001")); + funcMap.put("GETSUPERSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100832, "获取指定分部直接上级分部。
示例:GETSUPERSUBCOMPANY({表单.A分部})
结果:A分部的直接上级分部")); + funcMap.put("GETALLSUPERSUBCOMPANY", SalaryI18nUtil.getI18nLabel(100834, "获取指定分部所有上级分部。
示例:GETALLSUPERSUBCOMPANY({表单.A分部})
结果:A分部的所有上级分部形成的数组")); + funcMap.put("GETHRMNAME", SalaryI18nUtil.getI18nLabel(100834, "获取指定人员的姓名。
示例:GETHRMNAME({U:张三})
结果:张三")); + funcMap.put("GETHRMMOBILE", SalaryI18nUtil.getI18nLabel(100834, "获取指定人员的手机号码。
示例:GETHRMMOBILE({U:张三})
结果:13123232323")); - } - public String get(String key){ - if(funcMap.size()>0){ + //财务函数 + funcMap.put("GETMONEY", SalaryI18nUtil.getI18nLabel(0, "将金额转换成中文金额大写。
示例:GETMONEY({1234})
结果:壹仟贰佰叁拾肆元整")); + + } + + 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); + } } diff --git a/src/com/engine/salary/formlua/entity/parameter/ThreadLocalData.java b/src/com/engine/salary/formlua/entity/parameter/ThreadLocalData.java index 4a06cc07e..7e9c14289 100644 --- a/src/com/engine/salary/formlua/entity/parameter/ThreadLocalData.java +++ b/src/com/engine/salary/formlua/entity/parameter/ThreadLocalData.java @@ -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 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; } diff --git a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java index 150606a81..fa6bbd7bc 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeServiceImpl.java @@ -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)) { diff --git a/src/com/engine/salary/formlua/func/date/DateTimeTestServiceImpl.java b/src/com/engine/salary/formlua/func/date/DateTimeTestServiceImpl.java index 18031fbb7..bbdc37dec 100644 --- a/src/com/engine/salary/formlua/func/date/DateTimeTestServiceImpl.java +++ b/src/com/engine/salary/formlua/func/date/DateTimeTestServiceImpl.java @@ -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)){ diff --git a/src/com/engine/salary/formlua/func/find/FindFuncsServiceImpl.java b/src/com/engine/salary/formlua/func/find/FindFuncsServiceImpl.java index 347ad130e..7164fe9fd 100644 --- a/src/com/engine/salary/formlua/func/find/FindFuncsServiceImpl.java +++ b/src/com/engine/salary/formlua/func/find/FindFuncsServiceImpl.java @@ -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 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 filterDatas = conditionObj != null ? conditionObj.getFormulaFilterDataList() : Lists.newArrayList(); - SimpleEmployee user = formObj.getEmployee(); + DataCollectionEmployee user = formObj.getEmployee(); Object[] params = {formId+"", filterDatas, fieldIds, null,user}; diff --git a/src/com/engine/salary/formlua/util/ExcelParamUtil.java b/src/com/engine/salary/formlua/util/ExcelParamUtil.java index 10b20219c..8d576c7b5 100644 --- a/src/com/engine/salary/formlua/util/ExcelParamUtil.java +++ b/src/com/engine/salary/formlua/util/ExcelParamUtil.java @@ -1,16 +1,16 @@ package com.engine.salary.formlua.util; import com.alibaba.fastjson.JSONObject; +import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryformula.po.FormulaVar; import com.engine.salary.formlua.entity.parameter.DataType; import com.weaver.common.form.component.base.Component; import com.weaver.common.form.component.base.ComponentType; import com.weaver.common.form.conditionrule.FixedField; import com.weaver.common.form.metadata.ModuleSource; -import com.weaver.excel.formula.api.entity.FormulaVar; import com.weaver.excel.formula.entity.parameter.*; import com.weaver.excel.formula.entity.standard.execute.FixFieldType; -import com.weaver.teams.domain.user.SimpleEmployee; -import com.weaver.teams.util.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,1081 +24,1107 @@ import java.util.regex.Pattern; public class ExcelParamUtil { - protected static final Logger logger = LoggerFactory.getLogger(ExcelParamUtil.class); - public final static String[] NUMBERFIELD=new String[]{"NumberComponent","Money","Monitor","Raty","ProgressBar", FixFieldType.Num.toString(),DataType.NUMBER}; - public final static String[] DATEFIELD=new String[]{"DateComponent","DateInterval","TimeComponent",DataType.DATE}; - public final static String[] TEXTFIELD=new String[]{"Text","TextArea","Email","Phone","Mobile","IDCard","FileComponent","SerialNumber","PositionComponent","Paragraph",FixFieldType.Text.toString(),DataType.STRING}; - public final static String[] SELECTFIELD=new String[]{"ImageComponent","RadioBox","CheckBox","Select","ComboSelect","ImageRadioBox","ImageCheckBox","TreeSelect","MatrixComponent",FixFieldType.Select.toString(),"option","employee","department","subcompany","operator",DataType.OPTION}; - public final static String[] DATASOURCEFIELD=new String[]{"Employee","Department","Mainline","Task","Document","Workflow","AgendaComponent","FormComponent","CustomerComponent","ClueComponent","Subcompany", - "OrderComponent","ContactComponent","ChanceComponent","ProductionComponent","ContractComponent","ActivityComponent","WorkreportComponent","CompetitorComponent","KpiFlowComponent","Ebuilder","QuoteComponent","AttendComponent","DataSource", - FixFieldType.Department.toString(),FixFieldType.Employee.toString()}; + protected static final Logger logger = LoggerFactory.getLogger(ExcelParamUtil.class); + public final static String[] NUMBERFIELD = new String[]{"NumberComponent", "Money", "Monitor", "Raty", "ProgressBar", FixFieldType.Num.toString(), DataType.NUMBER}; + public final static String[] DATEFIELD = new String[]{"DateComponent", "DateInterval", "TimeComponent", DataType.DATE}; + public final static String[] TEXTFIELD = new String[]{"Text", "TextArea", "Email", "Phone", "Mobile", "IDCard", "FileComponent", "SerialNumber", "PositionComponent", "Paragraph", FixFieldType.Text.toString(), DataType.STRING}; + public final static String[] SELECTFIELD = new String[]{"ImageComponent", "RadioBox", "CheckBox", "Select", "ComboSelect", "ImageRadioBox", "ImageCheckBox", "TreeSelect", "MatrixComponent", FixFieldType.Select.toString(), "option", "employee", "department", "subcompany", "operator", DataType.OPTION}; + public final static String[] DATASOURCEFIELD = new String[]{"Employee", "Department", "Mainline", "Task", "Document", "Workflow", "AgendaComponent", "FormComponent", "CustomerComponent", "ClueComponent", "Subcompany", + "OrderComponent", "ContactComponent", "ChanceComponent", "ProductionComponent", "ContractComponent", "ActivityComponent", "WorkreportComponent", "CompetitorComponent", "KpiFlowComponent", "Ebuilder", "QuoteComponent", "AttendComponent", "DataSource", + FixFieldType.Department.toString(), FixFieldType.Employee.toString()}; - private static String[] funcArray= IllegalList.getInstance().getNameIllegalArray(); - private final static String[] NUMBERCOMPONENTS=new String[]{"NumberComponent","Money","Raty","ProgressBar","Monitor"}; - private static String[] numberTypes=new String[]{"Integer","integer","Long","Double","Float","float","int","double","long","float","bigdecimal","BigDecimal"}; - public final static String CHECKLEVEL_NULL="NULL"; - public final static String CHECKLEVEL_STRING="STRING"; + private static String[] funcArray = IllegalList.getInstance().getNameIllegalArray(); + private final static String[] NUMBERCOMPONENTS = new String[]{"NumberComponent", "Money", "Raty", "ProgressBar", "Monitor"}; + private static String[] numberTypes = new String[]{"Integer", "integer", "Long", "Double", "Float", "float", "int", "double", "long", "float", "bigdecimal", "BigDecimal"}; + public final static String CHECKLEVEL_NULL = "NULL"; + public final static String CHECKLEVEL_STRING = "STRING"; - /** - * 自定义脚本生成调用的逻辑 - * @param funcString - * @return - */ - public static String initFunc(String funcString){ - if(StringUtils.isEmpty(funcString)){ - return funcString; - } - int startIdx=funcString.indexOf("("); - int endIdx=funcString.indexOf(")"); - int funcIdx=funcString.indexOf("function"); - if(startIdx==-1 ){ - throw new RuntimeException("【语法错误】缺少左括号("); - }else if(endIdx == -1){ - throw new RuntimeException("【语法错误】缺少右括号)"); - }else if(funcIdx ==-1){ - throw new RuntimeException("【语法错误】缺少function关键字"); - } - String funcName=funcString.substring(funcIdx+8,startIdx).trim(); - String paramStr=funcString.substring(startIdx+1,endIdx); - if(paramStr.trim().equalsIgnoreCase("")){ - funcString+=funcName+"();"; - return funcString; - } - String[] paramStrArray=paramStr.split(","); - logger.info("总参数个数:"+paramStrArray.length); - String paramNames=""; - for (int i=0;i numberList=Arrays.asList(NUMBERFIELD); - List textList=Arrays.asList(TEXTFIELD); - List selectList=Arrays.asList(SELECTFIELD); - List dataSourceList=Arrays.asList(DATASOURCEFIELD); - List dateList=Arrays.asList(DATEFIELD); - if(numberList.contains(compnentKey)){ - return DataType.NUMBER; - }else if(textList.contains(compnentKey)){ - return DataType.STRING; - }else if(dateList.contains(compnentKey)){ - return DataType.STRING; - }else if(selectList.contains(compnentKey)){ - return DataType.OPTION; - }else if(dataSourceList.contains(compnentKey)){ - return DataType.OPTION; - }else { - return ""; - } - } + /** + * 判断控件所属的数据类型 + * + * @param compnentKey FormField中的ComponentKey + * @return + */ + public static String findType(String compnentKey) { + List numberList = Arrays.asList(NUMBERFIELD); + List textList = Arrays.asList(TEXTFIELD); + List selectList = Arrays.asList(SELECTFIELD); + List dataSourceList = Arrays.asList(DATASOURCEFIELD); + List dateList = Arrays.asList(DATEFIELD); + if (numberList.contains(compnentKey)) { + return DataType.NUMBER; + } else if (textList.contains(compnentKey)) { + return DataType.STRING; + } else if (dateList.contains(compnentKey)) { + return DataType.STRING; + } else if (selectList.contains(compnentKey)) { + return DataType.OPTION; + } else if (dataSourceList.contains(compnentKey)) { + return DataType.OPTION; + } else { + return ""; + } + } - public static String findDataType(String compnentKey){ - List numberList=Arrays.asList(NUMBERFIELD); - List textList=Arrays.asList(TEXTFIELD); - List selectList=Arrays.asList(SELECTFIELD); - List dataSourceList=Arrays.asList(DATASOURCEFIELD); - List dateList=Arrays.asList(DATEFIELD); - if(numberList.contains(compnentKey)){ - return DataType.NUMBER; - }else if(textList.contains(compnentKey)){ - return DataType.STRING; - }else if(dateList.contains(compnentKey)){ - return DataType.STRING; - }else if(selectList.contains(compnentKey)){ - return DataType.OPTION; - }else if(dataSourceList.contains(compnentKey)){ - return DataType.OPTION; - }else { - return DataType.STRING; - } - } - public static String findTestDataType(String compnentKey){ - List numberList=Arrays.asList(NUMBERFIELD); - List textList=Arrays.asList(TEXTFIELD); - List selectList=Arrays.asList(SELECTFIELD); - List dataSourceList=Arrays.asList(DATASOURCEFIELD); - List dateList=Arrays.asList(DATEFIELD); - if(numberList.contains(compnentKey)){ - return DataType.NUMBER; - }else if(textList.contains(compnentKey)){ - return DataType.STRING; - }else if(dateList.contains(compnentKey)){ - return DataType.DATE; - }else if(selectList.contains(compnentKey)){ - return DataType.OPTION; - }else if(dataSourceList.contains(compnentKey)){ - return DataType.OPTION; - }else { - return DataType.STRING; - } - } - /** - * 判断变量是否为空 - * @param objects - * @return - */ - public static boolean checkIsNull(Object... objects){ - String checkLevel=objects[objects.length-1].toString(); - List formulavars=new ArrayList<>(); - for (int i=0;i numberList = Arrays.asList(NUMBERFIELD); + List textList = Arrays.asList(TEXTFIELD); + List selectList = Arrays.asList(SELECTFIELD); + List dataSourceList = Arrays.asList(DATASOURCEFIELD); + List dateList = Arrays.asList(DATEFIELD); + if (numberList.contains(compnentKey)) { + return DataType.NUMBER; + } else if (textList.contains(compnentKey)) { + return DataType.STRING; + } else if (dateList.contains(compnentKey)) { + return DataType.STRING; + } else if (selectList.contains(compnentKey)) { + return DataType.OPTION; + } else if (dataSourceList.contains(compnentKey)) { + return DataType.OPTION; + } else { + return DataType.STRING; + } + } - for (Object object:formulavars){ - switch (checkLevel){ - case CHECKLEVEL_NULL: - if(null==object){ - return true; - } - break; - case CHECKLEVEL_STRING: - if(null==object){ - return true; - } - if(object instanceof String || object instanceof Character){ - if(object.toString().trim().equals("")){ - return true; - } - } - break; - } + public static String findTestDataType(String compnentKey) { + List numberList = Arrays.asList(NUMBERFIELD); + List textList = Arrays.asList(TEXTFIELD); + List selectList = Arrays.asList(SELECTFIELD); + List dataSourceList = Arrays.asList(DATASOURCEFIELD); + List dateList = Arrays.asList(DATEFIELD); + if (numberList.contains(compnentKey)) { + return DataType.NUMBER; + } else if (textList.contains(compnentKey)) { + return DataType.STRING; + } else if (dateList.contains(compnentKey)) { + return DataType.DATE; + } else if (selectList.contains(compnentKey)) { + return DataType.OPTION; + } else if (dataSourceList.contains(compnentKey)) { + return DataType.OPTION; + } else { + return DataType.STRING; + } + } - } - return false; - } + /** + * 判断变量是否为空 + * + * @param objects + * @return + */ + public static boolean checkIsNull(Object... objects) { + String checkLevel = objects[objects.length - 1].toString(); + List formulavars = new ArrayList<>(); + for (int i = 0; i < objects.length; i++) { + Object object = objects[i]; + if (object instanceof Array) { + Object[] subArray = (Object[]) object; + for (int j = 0; j < subArray.length; j++) { + formulavars.add(subArray[j]); + } + } else { + formulavars.add(object); + } + } - /** - * 替换所有中文参数为Key - * @param sql - * @param replaceArray - * @return - */ - public static String replaceAllParam(String sql,String[] replaceArray){ - String partternStr="\\{.+?\\}{1}?"; - Pattern pt=Pattern.compile(partternStr); - Matcher matcher=pt.matcher(sql); + for (Object object : formulavars) { + switch (checkLevel) { + case CHECKLEVEL_NULL: + if (null == object) { + return true; + } + break; + case CHECKLEVEL_STRING: + if (null == object) { + return true; + } + if (object instanceof String || object instanceof Character) { + if (object.toString().trim().equals("")) { + return true; + } + } + break; + } - int loop=0; - while (matcher.find()){ - String matherString=matcher.group(); - matherString=matherString.replaceAll("(\\{|\\})",""); - String replaceStr=replaceArray[loop]; - sql=sql.replaceFirst(matherString,replaceStr); - loop++; - } - return sql; - } + } + return false; + } - /** - * 找到聚合函数的条件参数 - * @param sql - * @return - */ - public static List findAggParam(String sql){ - List list=new LinkedList<>(); - String partternStr="(COUNT|SUM|MIN|MAX|AVG){1}\\(+.+?\\)+"; - Pattern pt=Pattern.compile(partternStr); - Matcher matcher=pt.matcher(sql); - while (matcher.find()){ - String aggStr=matcher.group(); - aggStr=aggStr.replaceAll("(COUNT|SUM|MIN|MAX|AVG){1}",""); - String[] paramArray=aggStr.split(",",2); - if(paramArray.length==2){ - String cndParam=paramArray[1]; - cndParam=cndParam.substring(0,cndParam.length()-1); - list.add(cndParam); - } - } + /** + * 替换所有中文参数为Key + * + * @param sql + * @param replaceArray + * @return + */ + public static String replaceAllParam(String sql, String[] replaceArray) { + String partternStr = "\\{.+?\\}{1}?"; + Pattern pt = Pattern.compile(partternStr); + Matcher matcher = pt.matcher(sql); + + int loop = 0; + while (matcher.find()) { + String matherString = matcher.group(); + matherString = matherString.replaceAll("(\\{|\\})", ""); + String replaceStr = replaceArray[loop]; + sql = sql.replaceFirst(matherString, replaceStr); + loop++; + } + return sql; + } + + /** + * 找到聚合函数的条件参数 + * + * @param sql + * @return + */ + public static List findAggParam(String sql) { + List list = new LinkedList<>(); + String partternStr = "(COUNT|SUM|MIN|MAX|AVG){1}\\(+.+?\\)+"; + Pattern pt = Pattern.compile(partternStr); + Matcher matcher = pt.matcher(sql); + while (matcher.find()) { + String aggStr = matcher.group(); + aggStr = aggStr.replaceAll("(COUNT|SUM|MIN|MAX|AVG){1}", ""); + String[] paramArray = aggStr.split(",", 2); + if (paramArray.length == 2) { + String cndParam = paramArray[1]; + cndParam = cndParam.substring(0, cndParam.length() - 1); + list.add(cndParam); + } + } - return list; - } + return list; + } - /** - * 替换聚合函数的条件参数,一般是从规则库返回过来的条件语句 - * @param sql - * @param replaceArray - * @return - */ - public static String replaceAggParam(String sql,List replaceArray){ - String partternStr="(COUNT|SUM|MIN|MAX|AVG){1}\\(.+?\\){1}?"; - Pattern pt=Pattern.compile(partternStr); - Matcher matcher=pt.matcher(sql); - String paramPattStr="\\(.+?\\){1}?"; - Pattern ppatt=Pattern.compile(paramPattStr); - int loop=0; - while (matcher.find()){ - String matherString=matcher.group(); - String[] paramStrArray=matherString.replaceAll("(\\(|\\))","").split(","); - String newmatherString=matherString.replace(paramStrArray[1],"{"+replaceArray.get(loop)+"}"); - sql=sql.replace(matherString,newmatherString); - loop++; - } - return sql; - } + /** + * 替换聚合函数的条件参数,一般是从规则库返回过来的条件语句 + * + * @param sql + * @param replaceArray + * @return + */ + public static String replaceAggParam(String sql, List replaceArray) { + String partternStr = "(COUNT|SUM|MIN|MAX|AVG){1}\\(.+?\\){1}?"; + Pattern pt = Pattern.compile(partternStr); + Matcher matcher = pt.matcher(sql); + String paramPattStr = "\\(.+?\\){1}?"; + Pattern ppatt = Pattern.compile(paramPattStr); + int loop = 0; + while (matcher.find()) { + String matherString = matcher.group(); + String[] paramStrArray = matherString.replaceAll("(\\(|\\))", "").split(","); + String newmatherString = matherString.replace(paramStrArray[1], "{" + replaceArray.get(loop) + "}"); + sql = sql.replace(matherString, newmatherString); + loop++; + } + return sql; + } + public static void checkParamArrayDataType(List formulavars) { + for (FormulaVar formulaVar : formulavars) { + if (formulaVar.getComponentKey() != null && !formulaVar.getComponentKey().equals("")) { + String componentKey = formulaVar.getComponentKey(); + Arrays.sort(NUMBERCOMPONENTS); + int searchIdx = Arrays.binarySearch(NUMBERCOMPONENTS, componentKey); + if (searchIdx >= 0) { + formulaVar.setFieldType("Number"); + } + Arrays.sort(ReturnType.CHECK_TYPE); + if (Arrays.binarySearch(ReturnType.CHECK_TYPE, componentKey) >= 0) { + formulaVar.setFieldType("String"); + } + if (formulaVar.getOptionId() != null) { + formulaVar.setFieldType("String"); + } + } - public static void checkParamArrayDataType(List formulavars){ - for (FormulaVar formulaVar:formulavars){ - if(formulaVar.getComponentKey()!=null&&!formulaVar.getComponentKey().equals("")){ - String componentKey=formulaVar.getComponentKey(); - Arrays.sort(NUMBERCOMPONENTS); - int searchIdx=Arrays.binarySearch(NUMBERCOMPONENTS,componentKey); - if(searchIdx>=0){ - formulaVar.setFieldType("Number"); - } - Arrays.sort(ReturnType.CHECK_TYPE); - if(Arrays.binarySearch(ReturnType.CHECK_TYPE,componentKey)>=0){ - formulaVar.setFieldType("String"); - } - if(formulaVar.getOptionId()!=null){ - formulaVar.setFieldType("String"); - } - } - - } - } + } + } - /** - * 替换语句中的参数为参数列表中的Key - * @param sql - * @param formulaVars - * @return - */ - public static String replaceAllParam(String sql,List formulaVars){ - if(null==formulaVars){ - return sql; - } - //正则表达式匹配所有用 { } 括号包起来的变量,然后跟参数列表中的参数一一对应做替换 - String partternStr="\\{.+?\\}{1}?"; - Pattern pt=Pattern.compile(partternStr); - Matcher matcher=pt.matcher(sql); + /** + * 替换语句中的参数为参数列表中的Key + * + * @param sql + * @param formulaVars + * @return + */ + public static String replaceAllParam(String sql, List formulaVars) { + if (null == formulaVars) { + return sql; + } + //正则表达式匹配所有用 { } 括号包起来的变量,然后跟参数列表中的参数一一对应做替换 + String partternStr = "\\{.+?\\}{1}?"; + Pattern pt = Pattern.compile(partternStr); + Matcher matcher = pt.matcher(sql); - int loop=0; - //替换逻辑 - while (matcher.find()){ - String matherString=matcher.group(); - //替换特殊字符 - matherString=matherString.replace("{",""); - matherString=matherString.replace("}",""); - matherString=matherString.replace("(","\\("); - matherString=matherString.replace(")","\\)"); - matherString=matherString.replaceAll("\\+","\\\\+"); - matherString=matherString.replaceAll("\\-","\\\\-"); - matherString=matherString.replaceAll("\\*","\\\\*"); - matherString=matherString.replaceAll("\\/","\\\\/"); - if(formulaVars!=null&&loop") - .replace("<","<"); - return formatStr; - } + /** + * 替换参数 + * + * @param sourceString + * @return + */ + public static String replaceParam(String sourceString) { + String formatStr = sourceString.replace(">", ">") + .replace("<", "<"); + return formatStr; + } - /** - * 过滤 除了数字外的其他参数类型 - * @param param - * @return - */ - public static boolean inNumber(Object param){ - boolean r=false; - Class[] paramClasses=new Class[]{Integer.class,Double.class,Float.class,Long.class,Short.class}; - for(int i=0;i numberList=Arrays.asList(numberTypes); - if(typeAllName.equals("Character")){ - return "String"; - }else if(numberList.contains(typeAllName.toLowerCase())){ - return "Number"; - } - return typeAllName; - } + /** + * 获取参数名 + * + * @param typeAllName + * @return + */ + public static String getParamType(String typeAllName) { + int fnameIdx = typeAllName.lastIndexOf("."); + typeAllName = typeAllName.substring(fnameIdx + 1); + List numberList = Arrays.asList(numberTypes); + if (typeAllName.equals("Character")) { + return "String"; + } else if (numberList.contains(typeAllName.toLowerCase())) { + return "Number"; + } + return typeAllName; + } - /** - * 获取参数类型 - * @param - * @return - */ - public static String getParamType(Object dataType){ - if(dataType instanceof DataType){ - DataType data=(DataType)dataType; - String filedType=data.getDataType(); - filedType=filedType.toLowerCase(); + /** + * 获取参数类型 + * + * @param + * @return + */ + public static String getParamType(Object dataType) { + if (dataType instanceof DataType) { + DataType data = (DataType) dataType; + String filedType = data.getDataType(); + filedType = filedType.toLowerCase(); - switch (filedType){ - case "number": - filedType= ParamType.DOUBLE.getName(); - break; - case "string": - filedType=ParamType.STRING.getName(); - break; - case "boolean": - filedType=ParamType.BOOLEAN.getName(); - break; - case "select": - filedType=ParamType.STRING.getName(); - break; - case "text": - filedType=ParamType.STRING.getName(); - break; - case "employee": - filedType= ParamType.STRING.getName(); - break; - case "department": - filedType=ParamType.STRING.getName(); - break; - case "integer": - filedType=ParamType.DOUBLE.getName(); - break; - case "double": - filedType=ParamType.DOUBLE.getName(); - break; - case "float": - filedType=ParamType.DOUBLE.getName(); - break; - case "int": - filedType=ParamType.DOUBLE.getName(); - break; - case "long": - filedType=ParamType.DOUBLE.getName(); - break; - case "bigdecimal": - filedType=ParamType.DOUBLE.getName(); - break; + switch (filedType) { + case "number": + filedType = ParamType.DOUBLE.getName(); + break; + case "string": + filedType = ParamType.STRING.getName(); + break; + case "boolean": + filedType = ParamType.BOOLEAN.getName(); + break; + case "select": + filedType = ParamType.STRING.getName(); + break; + case "text": + filedType = ParamType.STRING.getName(); + break; + case "employee": + filedType = ParamType.STRING.getName(); + break; + case "department": + filedType = ParamType.STRING.getName(); + break; + case "integer": + filedType = ParamType.DOUBLE.getName(); + break; + case "double": + filedType = ParamType.DOUBLE.getName(); + break; + case "float": + filedType = ParamType.DOUBLE.getName(); + break; + case "int": + filedType = ParamType.DOUBLE.getName(); + break; + case "long": + filedType = ParamType.DOUBLE.getName(); + break; + case "bigdecimal": + filedType = ParamType.DOUBLE.getName(); + break; - } - return filedType; - }else { - return getParamType(dataType.getClass().getName()); - } - } + } + return filedType; + } else { + return getParamType(dataType.getClass().getName()); + } + } - /** - * 从DataType中获取值 - * @param object - * @return - */ - public static List getParamContent(Object object){ - List dataList=new ArrayList<>(); - if(object!=null){ - if(object instanceof DataType){ - DataType data=(DataType)object; - dataList.add(getDataTypeContent(data)); - return dataList; - }else if(object instanceof List){ - List sourceDataList=(List)object; - for (Object paramObj:sourceDataList){ - if(paramObj instanceof DataType){ - DataType pramDataType=(DataType)paramObj; - dataList.add(pramDataType.getContent()); - }else{ - dataList.add(paramObj); - } - } - return dataList; - }else if(object instanceof Object[]){ - Object[] sourceDataList=(Object[]) object; - for (Object paramObj:sourceDataList){ - if(paramObj instanceof DataType){ - DataType pramDataType=(DataType)paramObj; - dataList.add(pramDataType.getContent()); - }else{ - dataList.add(paramObj); - } - } - return dataList; - }else { - dataList.add(object); - return dataList; - } - } - dataList.add(object); - return dataList; - } - public static Object getDataTypeContent(DataType dataType){ - String properType=""; - Object content=null; - if(StringUtils.isNotEmpty(dataType.getComponentKey())){ - properType=dataType.getComponentKey(); - }else if(StringUtils.isNotEmpty(dataType.getDataType())){ - properType=dataType.getDataType(); - } - switch (findType(properType)){ - case DataType.NUMBER: - case DataType.STRING: - case DataType.DATE: - content=dataType.getContent(); - break; - case DataType.OPTION: - content=dataType.getContent(); - break; - } - return content; - } + /** + * 从DataType中获取值 + * + * @param object + * @return + */ + public static List getParamContent(Object object) { + List dataList = new ArrayList<>(); + if (object != null) { + if (object instanceof DataType) { + DataType data = (DataType) object; + dataList.add(getDataTypeContent(data)); + return dataList; + } else if (object instanceof List) { + List sourceDataList = (List) object; + for (Object paramObj : sourceDataList) { + if (paramObj instanceof DataType) { + DataType pramDataType = (DataType) paramObj; + dataList.add(pramDataType.getContent()); + } else { + dataList.add(paramObj); + } + } + return dataList; + } else if (object instanceof Object[]) { + Object[] sourceDataList = (Object[]) object; + for (Object paramObj : sourceDataList) { + if (paramObj instanceof DataType) { + DataType pramDataType = (DataType) paramObj; + dataList.add(pramDataType.getContent()); + } else { + dataList.add(paramObj); + } + } + return dataList; + } else { + dataList.add(object); + return dataList; + } + } + dataList.add(object); + return dataList; + } - /** - * 获取JSON的content内容 - * @param object - * @return - */ - public static Object getParamContent(Object object,String funcType){ - Object result=null; - if(object instanceof DataType){ - DataType dataType=(DataType)object; - switch (dataType.getDataType()){ - case DataType.DATE: - if(dataType.getContent()==null||dataType.getContent().equals("")){ - return ""; - } - String format= DateUtil.buildFormat(dataType.getContent().toString()); - SimpleDateFormat formatter = new SimpleDateFormat(format); - try { - Date date=formatter.parse(dataType.getContent().toString()); - result=funcType.equalsIgnoreCase("string")?dataType.getContent():date.getTime(); - } catch (ParseException e) { - logger.error("err",e); - } - break; - case DataType.NUMBER: - if(null==dataType.getContent()||dataType.getContent().equals("")){ - return 0; - } - if(funcType.equalsIgnoreCase("string")){ - result=dataType.getContent(); + public static Object getDataTypeContent(DataType dataType) { + String properType = ""; + Object content = null; + if (StringUtils.isNotEmpty(dataType.getComponentKey())) { + properType = dataType.getComponentKey(); + } else if (StringUtils.isNotEmpty(dataType.getDataType())) { + properType = dataType.getDataType(); + } + switch (findType(properType)) { + case DataType.NUMBER: + case DataType.STRING: + case DataType.DATE: + content = dataType.getContent(); + break; + case DataType.OPTION: + content = dataType.getContent(); + break; + } + return content; + } - }else { - if(!RegularUtil.isNumber(dataType.getContent())){ - return 0; - } - if(dataType.getContent().toString().indexOf(".")>=0){ + /** + * 获取JSON的content内容 + * + * @param object + * @return + */ + public static Object getParamContent(Object object, String funcType) { + Object result = null; + if (object instanceof DataType) { + DataType dataType = (DataType) object; + switch (dataType.getDataType()) { + case DataType.DATE: + if (dataType.getContent() == null || dataType.getContent().equals("")) { + return ""; + } + String format = DateUtil.buildFormat(dataType.getContent().toString()); + SimpleDateFormat formatter = new SimpleDateFormat(format); + try { + Date date = formatter.parse(dataType.getContent().toString()); + result = funcType.equalsIgnoreCase("string") ? dataType.getContent() : date.getTime(); + } catch (ParseException e) { + logger.error("err", e); + } + break; + case DataType.NUMBER: + if (null == dataType.getContent() || dataType.getContent().equals("")) { + return 0; + } + if (funcType.equalsIgnoreCase("string")) { + result = dataType.getContent(); + + } else { + if (!RegularUtil.isNumber(dataType.getContent())) { + return 0; + } + if (dataType.getContent().toString().indexOf(".") >= 0) { // result=Double.parseDouble(dataType.getContent().toString()); - result=new BigDecimal(dataType.getContent().toString()); - }else if(dataType.getContent().toString().length()<=9){ - result=Integer.parseInt(dataType.getContent().toString()); - }else { - result=Long.parseLong(dataType.getContent().toString()); - } - } - break; - case DataType.STRING: - if(null==dataType.getContent()){ - result=""; - }else { - result=dataType.getContent().toString().trim(); - } + result = new BigDecimal(dataType.getContent().toString()); + } else if (dataType.getContent().toString().length() <= 9) { + result = Integer.parseInt(dataType.getContent().toString()); + } else { + result = Long.parseLong(dataType.getContent().toString()); + } + } + break; + case DataType.STRING: + if (null == dataType.getContent()) { + result = ""; + } else { + result = dataType.getContent().toString().trim(); + } - break; - case DataType.OPTION: - if(funcType.equalsIgnoreCase("string")){ - if(StringUtils.isNotEmpty(dataType.getOptionContent())){ - result=dataType.getOptionContent(); - }else { - result=""; - } + break; + case DataType.OPTION: + if (funcType.equalsIgnoreCase("string")) { + if (StringUtils.isNotEmpty(dataType.getOptionContent())) { + result = dataType.getOptionContent(); + } else { + result = ""; + } - }else { - result=dataType.getContent(); - } - break; - case DataType.BOOL: - result=dataType.getContent(); - break; - default: - if(dataType.getContent()==null){ - return ""; - } - result=dataType.getContent().toString(); - break; - } - }else if(object instanceof Date){ - Date date=(Date)object; - result=date.getTime(); - }else { - if(funcType.equalsIgnoreCase(DataType.BOOL)){ - result=object==null?false:object; - }else if(object instanceof Boolean){ - result=object; - }else if(object instanceof Integer || object instanceof Double || object instanceof Long || object instanceof BigDecimal){ - result=object; - }else { - result=object==null?"":object+""; - } + } else { + result = dataType.getContent(); + } + break; + case DataType.BOOL: + result = dataType.getContent(); + break; + default: + if (dataType.getContent() == null) { + return ""; + } + result = dataType.getContent().toString(); + break; + } + } else if (object instanceof Date) { + Date date = (Date) object; + result = date.getTime(); + } else { + if (funcType.equalsIgnoreCase(DataType.BOOL)) { + result = object == null ? false : object; + } else if (object instanceof Boolean) { + result = object; + } else if (object instanceof Integer || object instanceof Double || object instanceof Long || object instanceof BigDecimal) { + result = object; + } else { + result = object == null ? "" : object + ""; + } - } - return result; - } + } + return result; + } - /** - * 获取参数的数据类型,从DataType中获取或者直接获取 - * @param object - * @return - */ - public static String checkParamType(Object object){ - String typeName=null; - if(object instanceof DataType){ - DataType dataType=(DataType)object; - typeName= dataType.getDataType(); - }else { - typeName= ExcelParamUtil.getParamType(object.getClass().getName()); - } - return typeName; - } + /** + * 获取参数的数据类型,从DataType中获取或者直接获取 + * + * @param object + * @return + */ + public static String checkParamType(Object object) { + String typeName = null; + if (object instanceof DataType) { + DataType dataType = (DataType) object; + typeName = dataType.getDataType(); + } else { + typeName = ExcelParamUtil.getParamType(object.getClass().getName()); + } + return typeName; + } - /** - * 运行公式时的参数设置 - * @param formulavars - * @param expressMap - * @return - */ - public static Map buildParam(List formulavars, Map expressMap){ - checkParamArrayDataType(formulavars);//检查控件类型,设置相应控件对应的数据类型 - for(FormulaVar formulaVar:formulavars){ - DataType dataType=new DataType(); - String key=null; - if(formulaVar.getFormId()!=null&&formulaVar.getFieldId()==null){ - key="form"+formulaVar.getFormId(); - }else if(formulaVar.getFieldId()!=null&&formulaVar.getOptionId()==null){ - String fieldId=formulaVar.getFieldId().toString(); - key="field"+fieldId; - dataType.setFieldId(fieldId); - }else if(formulaVar.getOptionId()!=null){ - key="option"+formulaVar.getOptionId(); - dataType.setContent(formulaVar.getOptionId()); - }else { - key="option"+formulaVar.getOptionId(); - } + /** + * 运行公式时的参数设置 + * + * @param formulavars + * @param expressMap + * @return + */ + public static Map buildParam(List formulavars, Map expressMap) { + checkParamArrayDataType(formulavars);//检查控件类型,设置相应控件对应的数据类型 + for (FormulaVar formulaVar : formulavars) { + DataType dataType = new DataType(); + String key = null; + if (formulaVar.getFormId() != null && formulaVar.getFieldId() == null) { + key = "form" + formulaVar.getFormId(); + } else if (formulaVar.getFieldId() != null && formulaVar.getOptionId() == null) { + String fieldId = formulaVar.getFieldId().toString(); + key = "field" + fieldId; + dataType.setFieldId(fieldId); + } else if (formulaVar.getOptionId() != null) { + key = "option" + formulaVar.getOptionId(); + dataType.setContent(formulaVar.getOptionId()); + } else { + key = "option" + formulaVar.getOptionId(); + } - Arrays.sort(funcArray); - int sidx= Arrays.binarySearch(funcArray,key); - if( sidx>=0 ){ - throw new RuntimeException("变量名非法"); - } - if(formulaVar.getOptionId()!=null){ - dataType.setDataType(DataType.OPTION); - } - if(expressMap.containsKey(key)){ - String newKey= ExcelParamUtil.randomNumber()+"_"+key; - expressMap.put(newKey,dataType); - formulaVar.setKey(newKey); - }else { - expressMap.put(key,dataType); - } - } + Arrays.sort(funcArray); + int sidx = Arrays.binarySearch(funcArray, key); + if (sidx >= 0) { + throw new RuntimeException("变量名非法"); + } + if (formulaVar.getOptionId() != null) { + dataType.setDataType(DataType.OPTION); + } + if (expressMap.containsKey(key)) { + String newKey = ExcelParamUtil.randomNumber() + "_" + key; + expressMap.put(newKey, dataType); + formulaVar.setKey(newKey); + } else { + expressMap.put(key, dataType); + } + } - return expressMap; - } + return expressMap; + } - /*** - * 验证函数时构建参数设置参数值 - * 把FormulaVar类型的参数封装成DataType类型参数 - * @param formulavars 入参类型 - * @param expressMap 返回Map - * @return - */ - public static Map buildLocalParam(List formulavars, Map expressMap, SimpleEmployee employee){ + /*** + * 验证函数时构建参数设置参数值 + * 把FormulaVar类型的参数封装成DataType类型参数 + * @param formulavars 入参类型 + * @param expressMap 返回Map + * @return + */ + public static Map buildLocalParam(List formulavars, Map expressMap, DataCollectionEmployee employee) { - checkParamArrayDataType(formulavars);//检查控件类型,设置相应控件对应的数据类型 - for(FormulaVar formulaVar:formulavars){ - DataType dataType=new DataType(); - dataType.setScore(0d); - dataType.setName((null==formulaVar.getName() || formulaVar.getName().equals(""))?formulaVar.getParent():formulaVar.getName()); - dataType.setFieldId(formulaVar.getFieldId()!=null?formulaVar.getFieldId().toString():null); - String key=null; - if(formulaVar.getModule()!=null&&!formulaVar.getModule().equals("")){ - try { - dataType.setModule(formulaVar.getModule()); - } catch (IllegalArgumentException e) { - logger.error("err",e); - dataType.setModule(formulaVar.getModule()); - } - } - dataType.setFormId(formulaVar.getFormId()!=null?Long.parseLong(formulaVar.getFormId()):null); - if(formulaVar.getName()!=null&&formulaVar.getName().equals("当前操作人")){ - key=formulaVar.getKey(); - formulaVar.setContent(employee.getUserId().toString()); - dataType.setContent(formulaVar.getContent()); - dataType.setText(formulaVar.getContent()); - dataType.setDataType(DataType.OPTION); - }else{ - if(formulaVar.getFormId()!=null&&formulaVar.getFieldId()==null&&formulaVar.getOptionId()==null){ - key="form"+formulaVar.getFormId().toString(); - ThreadLocalData threadLocalData=new ThreadLocalData(); - threadLocalData.setEmployee(employee); - threadLocalData.setModuleSource(ModuleSource.biaoge); - ParamContext.get().setValue(formulaVar.getFormId().toString(),threadLocalData); - }else if(formulaVar.getFieldId()!=null&&formulaVar.getOptionId()==null){ - String fieldId=formulaVar.getFieldId().toString(); - key="field"+fieldId; - dataType.setFieldId(fieldId); - }else if(formulaVar.getOptionId()!=null){ - key="option"+formulaVar.getOptionId().toString(); - dataType.setContent(formulaVar.getOptionId()); - dataType.setText(formulaVar.getName()); - dataType.setFormId(null); - }else { - key="option"+formulaVar.getOptionId().toString(); - } - } + checkParamArrayDataType(formulavars);//检查控件类型,设置相应控件对应的数据类型 + for (FormulaVar formulaVar : formulavars) { + DataType dataType = new DataType(); + dataType.setScore(0d); + dataType.setName((null == formulaVar.getName() || formulaVar.getName().equals("")) ? formulaVar.getParent() : formulaVar.getName()); + dataType.setFieldId(formulaVar.getFieldId() != null ? formulaVar.getFieldId().toString() : null); + String key = null; + if (formulaVar.getModule() != null && !formulaVar.getModule().equals("")) { + try { + dataType.setModule(formulaVar.getModule()); + } catch (IllegalArgumentException e) { + logger.error("err", e); + dataType.setModule(formulaVar.getModule()); + } + } + dataType.setFormId(formulaVar.getFormId() != null ? Long.parseLong(formulaVar.getFormId()) : null); + if (formulaVar.getName() != null && formulaVar.getName().equals("当前操作人")) { + key = formulaVar.getKey(); + formulaVar.setContent(employee.getUserId().toString()); + dataType.setContent(formulaVar.getContent()); + dataType.setText(formulaVar.getContent()); + dataType.setDataType(DataType.OPTION); + } else { + if (formulaVar.getFormId() != null && formulaVar.getFieldId() == null && formulaVar.getOptionId() == null) { + key = "form" + formulaVar.getFormId().toString(); + ThreadLocalData threadLocalData = new ThreadLocalData(); + threadLocalData.setEmployee(employee); + threadLocalData.setModuleSource(ModuleSource.biaoge); + ParamContext.get().setValue(formulaVar.getFormId().toString(), threadLocalData); + } else if (formulaVar.getFieldId() != null && formulaVar.getOptionId() == null) { + String fieldId = formulaVar.getFieldId().toString(); + key = "field" + fieldId; + dataType.setFieldId(fieldId); + } else if (formulaVar.getOptionId() != null) { + key = "option" + formulaVar.getOptionId().toString(); + dataType.setContent(formulaVar.getOptionId()); + dataType.setText(formulaVar.getName()); + dataType.setFormId(null); + } else { + key = "option" + formulaVar.getOptionId().toString(); + } + } - Arrays.sort(funcArray); - int sidx= Arrays.binarySearch(funcArray,key); - if( sidx>=0 ){ - throw new RuntimeException("变量名非法"); - } - if(formulaVar.getOptionId()!=null){ - dataType.setDataType(DataType.OPTION); - } + Arrays.sort(funcArray); + int sidx = Arrays.binarySearch(funcArray, key); + if (sidx >= 0) { + throw new RuntimeException("变量名非法"); + } + if (formulaVar.getOptionId() != null) { + dataType.setDataType(DataType.OPTION); + } - if(StringUtils.isEmpty(dataType.getDataType())){ - String typeKey=null; - if(StringUtils.isNotEmpty(formulaVar.getFieldType())){ - typeKey=formulaVar.getFieldType(); - }else if(StringUtils.isNotEmpty(formulaVar.getType())){ - typeKey=formulaVar.getType(); - }else if(StringUtils.isNotEmpty(formulaVar.getFieldType())){ - typeKey=formulaVar.getFieldType(); - } - dataType.setDataType(ExcelParamUtil.findTestDataType(typeKey)); - } - if(StringUtils.isEmpty(dataType.getComponentKey())){ - dataType.setComponentKey(formulaVar.getComponentKey()); - } - if(expressMap.containsKey(key)){ - String newKey=key+ ExcelParamUtil.randomNumber(); - formulaVar.setKey(newKey); - dataType.setAggCndKey(key); - expressMap.put(newKey,dataType); - }else { - expressMap.put(key,dataType); - } - } + if (StringUtils.isEmpty(dataType.getDataType())) { + String typeKey = null; + if (StringUtils.isNotEmpty(formulaVar.getFieldType())) { + typeKey = formulaVar.getFieldType(); + } else if (StringUtils.isNotEmpty(formulaVar.getType())) { + typeKey = formulaVar.getType(); + } else if (StringUtils.isNotEmpty(formulaVar.getFieldType())) { + typeKey = formulaVar.getFieldType(); + } + dataType.setDataType(ExcelParamUtil.findTestDataType(typeKey)); + } + if (StringUtils.isEmpty(dataType.getComponentKey())) { + dataType.setComponentKey(formulaVar.getComponentKey()); + } + if (expressMap.containsKey(key)) { + String newKey = key + ExcelParamUtil.randomNumber(); + formulaVar.setKey(newKey); + dataType.setAggCndKey(key); + expressMap.put(newKey, dataType); + } else { + expressMap.put(key, dataType); + } + } - return expressMap; - } + return expressMap; + } - /** - * 格式化变量为数字 - * @param - */ - public static Object convertParamValToNumber(Object op1){ - BigDecimal oop1=new BigDecimal(ExcelParamUtil.getParamContent(op1,"string").toString()); - return oop1; - } - /** - * 格式化参数 - * @param op1 - * @param op2 - * @return - */ - public static List converParamValue(Object op1,Object op2){ - List list=new ArrayList<>(); + /** + * 格式化变量为数字 + * + * @param + */ + public static Object convertParamValToNumber(Object op1) { + BigDecimal oop1 = new BigDecimal(ExcelParamUtil.getParamContent(op1, "string").toString()); + return oop1; + } + + /** + * 格式化参数 + * + * @param op1 + * @param op2 + * @return + */ + public static List converParamValue(Object op1, Object op2) { + List list = new ArrayList<>(); - if(op1 instanceof DataType){ - list.add(op1); - DataType op1Data=(DataType)op1; - if(!(op2 instanceof DataType)&&op1Data.getDataType().toLowerCase().equals("date")){ - DataType dataType=new DataType(); - dataType.setDataType(DataType.STRING); - dataType.setContent(op2); - list.add(dataType); - }else if(op2 instanceof DataType&&op1Data.getDataType().toLowerCase().equals("date")){ - DataType dataType=(DataType)op2; - dataType.setDataType(DataType.STRING); - list.add(dataType); - }else{ - list.add(op2); - } + if (op1 instanceof DataType) { + list.add(op1); + DataType op1Data = (DataType) op1; + if (!(op2 instanceof DataType) && op1Data.getDataType().toLowerCase().equals("date")) { + DataType dataType = new DataType(); + dataType.setDataType(DataType.STRING); + dataType.setContent(op2); + list.add(dataType); + } else if (op2 instanceof DataType && op1Data.getDataType().toLowerCase().equals("date")) { + DataType dataType = (DataType) op2; + dataType.setDataType(DataType.STRING); + list.add(dataType); + } else { + list.add(op2); + } - }else if(op2 instanceof DataType){ - DataType op2Data=(DataType)op2; - if(!(op1 instanceof DataType)&&op2Data.getDataType().toLowerCase().equals("date")){ - DataType dataType=new DataType(); - dataType.setDataType(DataType.STRING); - dataType.setContent(op1); - list.add(dataType); - }else if(op1 instanceof DataType&&op2Data.getDataType().toLowerCase().equals("date")){ - DataType dataType=(DataType)op1; - dataType.setDataType(DataType.STRING); - list.add(dataType); - }else { - list.add(op1); - } - list.add(op2); - }else { - list.add(op1); - list.add(op2); - } + } else if (op2 instanceof DataType) { + DataType op2Data = (DataType) op2; + if (!(op1 instanceof DataType) && op2Data.getDataType().toLowerCase().equals("date")) { + DataType dataType = new DataType(); + dataType.setDataType(DataType.STRING); + dataType.setContent(op1); + list.add(dataType); + } else if (op1 instanceof DataType && op2Data.getDataType().toLowerCase().equals("date")) { + DataType dataType = (DataType) op1; + dataType.setDataType(DataType.STRING); + list.add(dataType); + } else { + list.add(op1); + } + list.add(op2); + } else { + list.add(op1); + list.add(op2); + } - return list; - } + return list; + } - /** - * 统一处理参数类型不一致问题 - * @param typeName - * @return - */ - public static String checkParamType(String typeName){ - typeName=typeName.toLowerCase(); - switch (typeName){ - case "option": - typeName=ParamType.STRING.getName(); - break; - case "date": - typeName=DataType.STRING; - break; - case "number": - typeName=DataType.NUMBER; - break; - case "string": - typeName=ParamType.STRING.getName(); - break; - case "boolean": - typeName=ParamType.BOOLEAN.getName(); - break; - case "select": - typeName=ParamType.STRING.getName(); - break; - case "text": - typeName=ParamType.STRING.getName(); - break; - case "employee": - typeName=ParamType.STRING.getName(); - break; - case "department": - typeName=ParamType.STRING.getName(); - break; - case "integer": - typeName=DataType.NUMBER; - break; - case "double": - typeName=DataType.NUMBER; - break; - case "float": - typeName=DataType.NUMBER; - break; - case "int": - typeName=DataType.NUMBER; - break; - case "long": - typeName=DataType.NUMBER; - break; - case "bigdecimal": - typeName=DataType.NUMBER; - break; + /** + * 统一处理参数类型不一致问题 + * + * @param typeName + * @return + */ + public static String checkParamType(String typeName) { + typeName = typeName.toLowerCase(); + switch (typeName) { + case "option": + typeName = ParamType.STRING.getName(); + break; + case "date": + typeName = DataType.STRING; + break; + case "number": + typeName = DataType.NUMBER; + break; + case "string": + typeName = ParamType.STRING.getName(); + break; + case "boolean": + typeName = ParamType.BOOLEAN.getName(); + break; + case "select": + typeName = ParamType.STRING.getName(); + break; + case "text": + typeName = ParamType.STRING.getName(); + break; + case "employee": + typeName = ParamType.STRING.getName(); + break; + case "department": + typeName = ParamType.STRING.getName(); + break; + case "integer": + typeName = DataType.NUMBER; + break; + case "double": + typeName = DataType.NUMBER; + break; + case "float": + typeName = DataType.NUMBER; + break; + case "int": + typeName = DataType.NUMBER; + break; + case "long": + typeName = DataType.NUMBER; + break; + case "bigdecimal": + typeName = DataType.NUMBER; + break; - } - return typeName; - } - public static String getKeyString(Object obj){ - if(obj instanceof JSONObject){ - JSONObject jsonObject=(JSONObject)obj; - return jsonObject.getString("key"); - }else { - return obj.toString(); - } - } - /** - * 替换变量的错误位置 - * @param startIdx - * @param endIdx - * @param excuteStr - */ - public static Map replaceErrorPlace(int startIdx,int endIdx,String errorFunc,String excuteStr,Map paramMap){ - Map kvMap=loopMap(paramMap); - Map replaceMap=new HashMap<>(); - String excuteLeftStr=excuteStr.substring(0,startIdx); - if(!excuteLeftStr.equals("")){ - Iterator wordItaretor=kvMap.keySet().iterator(); - while (wordItaretor.hasNext()){ - String key=wordItaretor.next(); - String name=kvMap.get(key); - if(excuteLeftStr.indexOf(key)>=0){ - String newStr=excuteLeftStr.replaceAll(key,name); - startIdx=startIdx-(excuteLeftStr.length()-newStr.length()); - } - } + } + return typeName; + } - } - if(kvMap.get(errorFunc)!=null){ - endIdx=startIdx+kvMap.get(errorFunc).length()-1; - }else { - endIdx=startIdx+errorFunc.length()-1; - } + public static String getKeyString(Object obj) { + if (obj instanceof JSONObject) { + JSONObject jsonObject = (JSONObject) obj; + return jsonObject.getString("key"); + } else { + return obj.toString(); + } + } - replaceMap.put("startIdx",startIdx); - replaceMap.put("endIdx",endIdx); - return replaceMap; - } + /** + * 替换变量的错误位置 + * + * @param startIdx + * @param endIdx + * @param excuteStr + */ + public static Map replaceErrorPlace(int startIdx, int endIdx, String errorFunc, String excuteStr, Map paramMap) { + Map kvMap = loopMap(paramMap); + Map replaceMap = new HashMap<>(); + String excuteLeftStr = excuteStr.substring(0, startIdx); + if (!excuteLeftStr.equals("")) { + Iterator wordItaretor = kvMap.keySet().iterator(); + while (wordItaretor.hasNext()) { + String key = wordItaretor.next(); + String name = kvMap.get(key); + if (excuteLeftStr.indexOf(key) >= 0) { + String newStr = excuteLeftStr.replaceAll(key, name); + startIdx = startIdx - (excuteLeftStr.length() - newStr.length()); + } + } - public static Map loopMap(Map paramMap){ - Map kvMap=new HashMap<>(); + } + if (kvMap.get(errorFunc) != null) { + endIdx = startIdx + kvMap.get(errorFunc).length() - 1; + } else { + endIdx = startIdx + errorFunc.length() - 1; + } - Set set=paramMap.keySet(); - Iterator iterator=set.iterator(); - while (iterator.hasNext()){ - String key=iterator.next(); - DataType dataType=(DataType)paramMap.get(key); - kvMap.put(key,dataType.getName()); - } - return kvMap; - } + replaceMap.put("startIdx", startIdx); + replaceMap.put("endIdx", endIdx); + return replaceMap; + } - public static boolean isNumber(Object object){ - String type= ExcelParamUtil.getParamType(object.getClass().getName()); - Arrays.sort(numberTypes); - if(Arrays.binarySearch(numberTypes,type)>=0){ - return true; - } - return false; - } + public static Map loopMap(Map paramMap) { + Map kvMap = new HashMap<>(); - public static String randomNumber(){ - int max=1000,min=1; - long randomNum = System.currentTimeMillis(); - int ran3 = (int) (randomNum%(max-min)+min); - return ran3+""; - } + Set set = paramMap.keySet(); + Iterator iterator = set.iterator(); + while (iterator.hasNext()) { + String key = iterator.next(); + DataType dataType = (DataType) paramMap.get(key); + kvMap.put(key, dataType.getName()); + } + return kvMap; + } - /** - * 长度不够则添加元素的字符串拼接 - * @param chars 将要拼接的字符 - * @param sourceStr 源字符 - * @param targetLength 目标字符长度 - * @param place 位置在左还是右 - * @return - */ - public static String appendString(String chars, String sourceStr, int targetLength, String place){ - StringBuilder builder = new StringBuilder(sourceStr); + public static boolean isNumber(Object object) { + String type = ExcelParamUtil.getParamType(object.getClass().getName()); + Arrays.sort(numberTypes); + if (Arrays.binarySearch(numberTypes, type) >= 0) { + return true; + } + return false; + } - while (true){ - //长度相等,不做处理 - if(builder.length() == targetLength){ - break; - }else if(builder.length() > targetLength){ - //源字符长度大于目标长度则截取 - int length = builder.length() - targetLength; + public static String randomNumber() { + int max = 1000, min = 1; + long randomNum = System.currentTimeMillis(); + int ran3 = (int) (randomNum % (max - min) + min); + return ran3 + ""; + } - if("LEFT".equals(place)){ - String tempStr = builder.substring(length, builder.length()); - builder.replace(0, builder.length(), tempStr); - }else { - String tempStr = builder.substring(0, targetLength); - builder.replace(0, builder.length(), tempStr); - } - break; - } + /** + * 长度不够则添加元素的字符串拼接 + * + * @param chars 将要拼接的字符 + * @param sourceStr 源字符 + * @param targetLength 目标字符长度 + * @param place 位置在左还是右 + * @return + */ + public static String appendString(String chars, String sourceStr, int targetLength, String place) { + StringBuilder builder = new StringBuilder(sourceStr); - //源字符长度小于目标长度则不断拼接 - if("LEFT".equals(place)){ - builder.insert(0, chars.replaceAll(",","")); - }else { - builder.append(chars.replaceAll(",","")); - } - } - return builder.toString(); - } + while (true) { + //长度相等,不做处理 + if (builder.length() == targetLength) { + break; + } else if (builder.length() > targetLength) { + //源字符长度大于目标长度则截取 + int length = builder.length() - targetLength; - public static FormulaVar getFixFieldVar(List list, String key){ - FormulaVar formulaVar=new FormulaVar(); - for (FixedField fixedField:list){ - if(fixedField.getKey().equals(key)){ - Component component=(Component)fixedField.getMatchs().get(0); - ComponentType componentType=component.getComponentKey(); - if(componentType.equals(ComponentType.Text)){ + if ("LEFT".equals(place)) { + String tempStr = builder.substring(length, builder.length()); + builder.replace(0, builder.length(), tempStr); + } else { + String tempStr = builder.substring(0, targetLength); + builder.replace(0, builder.length(), tempStr); + } + break; + } - } - } - } - return formulaVar; - } + //源字符长度小于目标长度则不断拼接 + if ("LEFT".equals(place)) { + builder.insert(0, chars.replaceAll(",", "")); + } else { + builder.append(chars.replaceAll(",", "")); + } + } + return builder.toString(); + } - public static String findAggCndStr(String sql,Map paramMap){ - String partternStr="(COUNT|SUM|MIN|MAX|AVG|count|sum|min|max)+\\(+(.)+\\)+"; - Pattern pattern = Pattern.compile(partternStr); - Matcher matcher = pattern.matcher(sql ); - int i=0; - while (matcher.find()) { - String cnd = matcher.group(); - String[] cndArray=cnd.split(",",2); - if(cndArray.length==2){ - String realCnd=cndArray[1].substring(0,cndArray[1].length()-1); - String key="cnd"+i+Math.abs(realCnd.hashCode())+""; - sql=sql.replace(realCnd,key); - realCnd=realCnd.replace("{",""); - realCnd=realCnd.replace("}",""); - paramMap.put(key,realCnd); - } - i++; - } - return sql; - } + public static FormulaVar getFixFieldVar(List list, String key) { + FormulaVar formulaVar = new FormulaVar(); + for (FixedField fixedField : list) { + if (fixedField.getKey().equals(key)) { + Component component = (Component) fixedField.getMatchs().get(0); + ComponentType componentType = component.getComponentKey(); + if (componentType.equals(ComponentType.Text)) { + + } + } + } + return formulaVar; + } + + public static String findAggCndStr(String sql, Map paramMap) { + String partternStr = "(COUNT|SUM|MIN|MAX|AVG|count|sum|min|max)+\\(+(.)+\\)+"; + Pattern pattern = Pattern.compile(partternStr); + Matcher matcher = pattern.matcher(sql); + int i = 0; + while (matcher.find()) { + String cnd = matcher.group(); + String[] cndArray = cnd.split(",", 2); + if (cndArray.length == 2) { + String realCnd = cndArray[1].substring(0, cndArray[1].length() - 1); + String key = "cnd" + i + Math.abs(realCnd.hashCode()) + ""; + sql = sql.replace(realCnd, key); + realCnd = realCnd.replace("{", ""); + realCnd = realCnd.replace("}", ""); + paramMap.put(key, realCnd); + } + i++; + } + return sql; + } - /** - * 执行语句的断句算法,通过计算小括号的数量进行断句断点的确定,然后拆分语句 - * @param sql - */ - public static String spliteSql(String sql,Map paramMap){ - List strList=new ArrayList<>(); - int pointIdx=0; - char[] charArray=sql.toCharArray(); - int leftBrakets=0; - char brackeLeft='('; - char brackeRight=')'; - boolean find=false; - for (int i=0;i=0?cndArray[0].length():0); - replaceSql+=cndArray[0]+findAggCndStr(realCnd,paramMap); - } + /** + * 执行语句的断句算法,通过计算小括号的数量进行断句断点的确定,然后拆分语句 + * + * @param sql + */ + public static String spliteSql(String sql, Map paramMap) { + List strList = new ArrayList<>(); + int pointIdx = 0; + char[] charArray = sql.toCharArray(); + int leftBrakets = 0; + char brackeLeft = '('; + char brackeRight = ')'; + boolean find = false; + for (int i = 0; i < charArray.length; i++) { + char charstr = charArray[i]; + if (charstr == brackeLeft) { + find = true; + leftBrakets++; + } + if (leftBrakets != 0 && charstr == brackeRight) { + leftBrakets--; + } + if (find && leftBrakets == 0) { + pointIdx = i; + break; + } + } + pointIdx += 1; + if (pointIdx == sql.length()) { + strList.add(sql.substring(0, pointIdx)); + } else { + strList.add(sql.substring(0, pointIdx)); + strList.add(sql.substring(pointIdx)); + } + String replaceSql = ""; + for (String s : strList) { + String[] cndArray = s.split("(COUNT|SUM|MIN|MAX|count|sum|min|max)"); + if (cndArray.length == 2) { + if (cndArray[0].equals("")) { + replaceSql += findAggCndStr(s, paramMap); + } else { + String realCnd = s.substring(cndArray[0].length() - 1 >= 0 ? cndArray[0].length() : 0); + replaceSql += cndArray[0] + findAggCndStr(realCnd, paramMap); + } - }else { - replaceSql+=findAggCndStr(s,paramMap); - } + } else { + replaceSql += findAggCndStr(s, paramMap); + } - } - sql=replaceSql; - return sql; - } + } + sql = replaceSql; + return sql; + } } diff --git a/src/com/engine/salary/formlua/util/ExcelStandardUtil.java b/src/com/engine/salary/formlua/util/ExcelStandardUtil.java index 45489e83d..ba3cb6da8 100644 --- a/src/com/engine/salary/formlua/util/ExcelStandardUtil.java +++ b/src/com/engine/salary/formlua/util/ExcelStandardUtil.java @@ -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 replaceAllParam(String sql, List localVars,List dataVars, SimpleEmployee employee){ + public static Map replaceAllParam(String sql, List localVars,List 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 replaceAllParamForTest(String sql, List formulaVars, SimpleEmployee employee){ + public static Map replaceAllParamForTest(String sql, List 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 dataVars,SimpleEmployee employee){ + private static DataType transFormulaVarToDataType(FormulaVar localFormulaVar,List dataVars,DataCollectionEmployee employee){ DataType dataType =new DataType(); if(localFormulaVar == null){ return null; diff --git a/src/com/engine/salary/formlua/util/TestUtil.java b/src/com/engine/salary/formlua/util/TestUtil.java index 1fcab01eb..3e8e39ed2 100644 --- a/src/com/engine/salary/formlua/util/TestUtil.java +++ b/src/com/engine/salary/formlua/util/TestUtil.java @@ -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); diff --git a/src/com/engine/salary/formlua/util/standard/ExcelTransUtil.java b/src/com/engine/salary/formlua/util/standard/ExcelTransUtil.java deleted file mode 100644 index fb3d4422a..000000000 --- a/src/com/engine/salary/formlua/util/standard/ExcelTransUtil.java +++ /dev/null @@ -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 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 dataOptions){ - return commonBuildField(sourceId,fieldId,excelDataType,module,dataOptions,null); - } - private static FormulaVar commonBuildField(Long sourceId,Long fieldId,ExcelDataType excelDataType,String module,List 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 transFieldForForm(List formDataDetailList,Long layoutId, Long sourceId, ModuleSource module,SimpleEmployee simpleEmployee){ - List formulaVarList=new ArrayList<>(); - if(formDataDetailList!=null && formDataDetailList.size()>0){ - - Map fieldMap = bulidFreeFormService(module).getFieldMapByFormId(sourceId, simpleEmployee); - FormulaVar formulaVar =null; - Map 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 formDataOptions=formDataDetail.getDataOptions(); - List 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() 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 transField(List formDataDetailList,Long layoutId, Long sourceId, ModuleSource module,SimpleEmployee simpleEmployee){ - List formulaVarList=new ArrayList<>(); - if(formDataDetailList!=null && formDataDetailList.size()>0){ - - Map 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 formDataOptions=formDataDetail.getDataOptions(); - List 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()); - } - -} diff --git a/src/com/engine/salary/remote/attend/cmd/GetKQReportCmd.java b/src/com/engine/salary/remote/attend/cmd/GetKQReportCmd.java index 632802719..f1d3b612d 100644 --- a/src/com/engine/salary/remote/attend/cmd/GetKQReportCmd.java +++ b/src/com/engine/salary/remote/attend/cmd/GetKQReportCmd.java @@ -95,7 +95,7 @@ public class GetKQReportCmd extends AbstractCommonCommand> { 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> { // } // 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> { 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> { 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> { 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> { 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> { 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()); diff --git a/src/com/engine/salary/service/RemoteExcelService.java b/src/com/engine/salary/service/RemoteExcelService.java index 8081451ee..d65e6197d 100644 --- a/src/com/engine/salary/service/RemoteExcelService.java +++ b/src/com/engine/salary/service/RemoteExcelService.java @@ -7,22 +7,22 @@ import java.util.List; import java.util.Map; public interface RemoteExcelService { -// ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List filterFormDataList, Map extendParam, SimpleEmployee employee); +// ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List filterFormDataList, Map extendParam, DataCollectionEmployee employee); // -// ExcelPage categoryList(ExcelPage page, Map extendParam, SimpleEmployee employee); +// ExcelPage categoryList(ExcelPage page, Map extendParam, DataCollectionEmployee employee); List fieldList(String sourceId, Map extendParam); List> fieldGroupList(Map extendParam); -// ExcelPage dataSourceList(String categoryId, ExcelPage page, Map extendParam, SimpleEmployee employee); +// ExcelPage dataSourceList(String categoryId, ExcelPage page, Map extendParam, DataCollectionEmployee employee); // -// List findProperData(String dataId, String fieldId, String fieldType, Map extendParam, SimpleEmployee employee); +// List findProperData(String dataId, String fieldId, String fieldType, Map extendParam, DataCollectionEmployee employee); // -// List choose(String sourceId, List filterFormDataList, Map extendParam, SimpleEmployee employee); +// List choose(String sourceId, List filterFormDataList, Map extendParam, DataCollectionEmployee employee); // -// List vlookups(String sourceId, List filterFormDataList, List returnFields, Map extendParam, SimpleEmployee employee); +// List vlookups(String sourceId, List filterFormDataList, List returnFields, Map extendParam, DataCollectionEmployee employee); // -// Map findSourceName(String Module, List idList, Map extendParam, SimpleEmployee employee); +// Map findSourceName(String Module, List idList, Map extendParam, DataCollectionEmployee employee); } diff --git a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java index edeb2ed77..716150827 100644 --- a/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpDeductionServiceImpl.java @@ -161,7 +161,7 @@ public class AddUpDeductionServiceImpl extends Service implements AddUpDeduction //日期范围选项 // List dateOptions = new ArrayList(); -// 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"); diff --git a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java index f3b04ecf1..e7a2ad739 100644 --- a/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java +++ b/src/com/engine/salary/service/impl/AddUpSituationServiceImpl.java @@ -144,7 +144,7 @@ public class AddUpSituationServiceImpl extends Service implements AddUpSituation // // //日期范围选项 // List dateOptions = new ArrayList(); -// 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"); diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index 93b7c17ea..53591543c 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -79,12 +79,12 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic // @Override // public ExcelResult aggregation(AggFunc func, String sourceId, String fieldId, List filterFormDataList, Map extendParam, -// SimpleEmployee employee) { +// DataCollectionEmployee employee) { // return null; // } // @Override -// public ExcelPage categoryList(ExcelPage page, Map extendParam, SimpleEmployee employee) { +// public ExcelPage categoryList(ExcelPage page, Map extendParam, DataCollectionEmployee employee) { // log.info("page: {}", JsonUtil.toJsonString(page)); // List categories = Lists.newArrayList(); // FormulaCategory category = new FormulaCategory(); @@ -201,7 +201,7 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic } // @Override -// public ExcelPage dataSourceList(String categoryId, ExcelPage page, Map extendParam, SimpleEmployee employee) { +// public ExcelPage dataSourceList(String categoryId, ExcelPage page, Map 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 findProperData(String dataId, String fieldId, String fieldType, Map extendParam, SimpleEmployee employee) { +// public List findProperData(String dataId, String fieldId, String fieldType, Map extendParam, DataCollectionEmployee employee) { // return null; // } // // @Override -// public List choose(String sourceId, List filterFormDataList, Map extendParam, SimpleEmployee employee) { +// public List choose(String sourceId, List filterFormDataList, Map extendParam, DataCollectionEmployee employee) { // return null; // } // //// @Override // public List vlookups(String sourceId, List filterFormDataList, List returnFields, Map extendParam, -// SimpleEmployee employee) { +// DataCollectionEmployee employee) { // log.info("sourceId: {}, filterFormDataList: {}, returnFields: {}", sourceId, JsonUtil.toJsonString(filterFormDataList), JsonUtil.toJsonString(returnFields)); // Map columnMap = Maps.newHashMap(); // for (Field declaredField : SalaryFormulaTaxRateDTO.class.getDeclaredFields()) { @@ -257,12 +257,12 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic // } // // @Override -// public Map findSourceName(String Module, List idList, Map extendParam, SimpleEmployee employee) { +// public Map findSourceName(String Module, List idList, Map extendParam, DataCollectionEmployee employee) { // return null; // } // //// @Override -//// public List getFieldData(String dataId, List fieldIds, SimpleEmployee employee) { +//// public List getFieldData(String dataId, List fieldIds, DataCollectionEmployee employee) { //// return null; //// } // diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 11bb3bd78..9ffd25384 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1129,8 +1129,8 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // return excelSheetData; // } // List employeeIds = SalaryEntityUtil.properties(salaryCheckResultRecords, SalaryCheckResultRecordPO::getEmployeeId, Collectors.toList()); -// List simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds); -// Map simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, SimpleEmployee::getEmployeeId, SimpleEmployee::getUsername); +// List simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIds); +// Map simpleEmployeeMap = SalaryEntityUtil.convert2Map(simpleEmployees, DataCollectionEmployee::getEmployeeId, DataCollectionEmployee::getUsername); // List expressFormulas = getSalaryFormulaService(user).listExpressFormula(Collections.singleton(checkResult.getFormulaId())); // Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula); // for (SalaryCheckResultRecordPO salaryCheckResultRecord : salaryCheckResultRecords) { diff --git a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java index 01bfb5162..d2672d07c 100644 --- a/src/com/engine/salary/service/impl/SalarySendServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalarySendServiceImpl.java @@ -1014,13 +1014,13 @@ public class SalarySendServiceImpl extends Service implements SalarySendService // // // 获取所有人员信息 // List ids = enableSendList.stream().map(e->Long.valueOf(e.get("employeeId").toString())).collect(Collectors.toList()); -// List allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey); +// List allEmployees = hrmCommonEmployeeService.getEmployeeByIds(ids, currentTenantKey); // List listDTOS = JSONArray.parseArray(salaryTemplate.getSalaryItemSetting(), SalaryTemplateSalaryItemSetListDTO.class); // Optional optionalEmployeeInformation = listDTOS.stream().filter(e -> SalaryTemplateSalaryItemSetGroupConstant.EMPLOYEE_INFO_GROUP_ID.equals(e.getGroupId())).findFirst(); // SalaryTemplateSalaryItemSetListDTO employeeInformation = optionalEmployeeInformation.orElse(null); // Map employeeField = SalaryAcctResultBO.buildEmployeeFieldName(); // enableSendList.forEach(e -> { -// Optional optionalSimpleEmployee = allEmployees.stream().filter(f->f.getEmployeeId().equals(Long.valueOf(e.get("employeeId").toString()))).findFirst(); +// Optional 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); // } diff --git a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java index 1bf1bc94c..ec95ac03b 100644 --- a/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java +++ b/src/com/engine/salary/service/impl/TaxDeclarationDetailServiceImpl.java @@ -111,7 +111,7 @@ public class TaxDeclarationDetailServiceImpl extends Service implements TaxDecla List taxDeclarationDetailPOS = listByTaxDeclarationIdAndEmployeeIds(queryParam.getTaxDeclarationId(), employeeIdPage); // 查询人员 List simpleEmployees = getSalaryEmployeeService().listByIds(employeeIdPage); - // List simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIdPage.getRecords(), tenantKey); + // List simpleEmployees = hrmCommonEmployeeService.getEmployeeByIds(employeeIdPage.getRecords(), tenantKey); // 转换成列表dto TaxDeclarationBO.buildDetailListDTO(queryParam.getTaxDeclarationId(), dtoPage, taxDeclarationDetailPOS, simpleEmployees); } diff --git a/src/com/engine/salary/util/SalaryI18nUtil.java b/src/com/engine/salary/util/SalaryI18nUtil.java index a28a7124d..f7d9272ce 100644 --- a/src/com/engine/salary/util/SalaryI18nUtil.java +++ b/src/com/engine/salary/util/SalaryI18nUtil.java @@ -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); // } } diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 51319b339..c1916b13f 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -606,7 +606,7 @@ public class SalaryAcctController { // @ApiOperation("校验异常导出") // @WeaPermission // public WeaResult> exportCheckResult(@RequestBody @Validated SalaryCheckResultExportParam exportParam) { -// SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); +// DataCollectionEmployee simpleEmployee = UserContext.getCurrentUser(); // String tenantKey = TenantContext.getCurrentTenantKey(); // String eteamsId = TenantRpcContext.getEteamsId(); // Map map = salaryAcctExcelWrapper.exportCheckResult(exportParam, simpleEmployee, tenantKey, eteamsId); @@ -617,7 +617,7 @@ public class SalaryAcctController { // @ApiOperation("校验异常明细导出") // @WeaPermission // public WeaResult> exportCheckResultDetail(@RequestParam(value = "checkResultId") Long checkResultId) { -// SimpleEmployee simpleEmployee = UserContext.getCurrentUser(); +// DataCollectionEmployee simpleEmployee = UserContext.getCurrentUser(); // String tenantKey = TenantContext.getCurrentTenantKey(); // String eteamsId = TenantRpcContext.getEteamsId(); // Map map = salaryAcctExcelWrapper.exportCheckResultDetail(checkResultId, simpleEmployee, tenantKey, eteamsId); diff --git a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java index 8270743ba..2494e6f45 100644 --- a/src/com/engine/salary/wrapper/OtherDeductionWrapper.java +++ b/src/com/engine/salary/wrapper/OtherDeductionWrapper.java @@ -108,7 +108,7 @@ public class OtherDeductionWrapper extends Service { // // //日期范围选项 // List dateOptions = new ArrayList(); -// 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"); diff --git a/src/com/engine/salary/wrapper/SalaryAcctExcelWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctExcelWrapper.java index a7fee0472..6c2db9bd7 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctExcelWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctExcelWrapper.java @@ -102,7 +102,7 @@ public class SalaryAcctExcelWrapper extends Service { // * @return // */ // public Map 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 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"); diff --git a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java index 1b4a210fd..4ddaf69b5 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctResultWrapper.java @@ -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) {