Merge branch 'release/2.9.6.2310.01' into release/个税版本
This commit is contained in:
commit
026fa54a0e
|
|
@ -36,6 +36,7 @@ public class QlExpress {
|
|||
|
||||
static {
|
||||
runner = new ExpressRunner(true, false);
|
||||
runner.setShortCircuit(true);
|
||||
}
|
||||
|
||||
private static boolean isInitialRunner = false;
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ public class EqOperator extends OperatorEqualsLessMore {
|
|||
}
|
||||
}
|
||||
// buildFilterParam(result,op1,op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class GreaterEqOperator extends OperatorEqualsLessMore {
|
|||
result.setContent(false);
|
||||
}
|
||||
// Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
public GreaterEqOperator(String aAliasName, String aName, String aErrorInfo) {
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public class GreaterOperator extends OperatorEqualsLessMore {
|
|||
result.setContent(false);
|
||||
}
|
||||
// Compareutils.buildLessMoreFilterParam(result, this.name, op1, op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
public GreaterOperator(String aName) {
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ public class LessEqOperator extends OperatorEqualsLessMore {
|
|||
result.setContent(false);
|
||||
}
|
||||
// Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
public LessEqOperator(String aName) {
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ public class LessOperator extends OperatorEqualsLessMore {
|
|||
result.setContent(false);
|
||||
}
|
||||
// Compareutils.buildLessMoreFilterParam(result,this.name,op1,op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
public LessOperator(String aName) {
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class NotEqueOperator extends OperatorEqualsLessMore {
|
|||
result.setContent(false);
|
||||
}
|
||||
// Compareutils.buildNotEqFilterParam(result, op1, op2);
|
||||
return result;
|
||||
return result.getContent();
|
||||
}
|
||||
|
||||
public NotEqueOperator(String aName) {
|
||||
|
|
|
|||
|
|
@ -16,82 +16,83 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
|
||||
public class IfOperator extends OperatorIf {
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
@Override
|
||||
public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception {
|
||||
Integer number= IgnoreParamFilter.getSetFuncNumber("IF");
|
||||
if(list==null ||list.length !=3){
|
||||
JSONObject errorJson= ErrorUtil.buildError("IF",number,number,"IF函数只允许三个参数");
|
||||
throw new ExcelRunTimeException("IF函数只允许三个参数");
|
||||
}
|
||||
Object obj = list.get(0).getObject(parent);
|
||||
logger.info("IF参数:"+ JSON.toJSONString(obj));
|
||||
boolean isDataTypeBool=false;
|
||||
DataType boolDtaType=null;
|
||||
if(obj!=null && obj instanceof DataType){
|
||||
boolDtaType=(DataType)obj;
|
||||
if(boolDtaType.getContent() !=null && ( boolDtaType.getContent() instanceof Boolean )){
|
||||
isDataTypeBool=true;
|
||||
obj=boolDtaType.getContent();
|
||||
}else{
|
||||
switch (obj+""){
|
||||
case "true":
|
||||
obj=true;
|
||||
isDataTypeBool=true;
|
||||
break;
|
||||
case "false":
|
||||
obj=false;
|
||||
isDataTypeBool=true;
|
||||
break;
|
||||
default:
|
||||
isDataTypeBool=false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}else if(obj instanceof Boolean){
|
||||
isDataTypeBool=true;
|
||||
}
|
||||
if (obj == null) {
|
||||
JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数参数不能为空");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
} else if (!(obj instanceof Boolean) && (! (obj instanceof DataType) )) {
|
||||
JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数判断条件必须是真假值");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
}else if(!isDataTypeBool){
|
||||
JSONObject errorJson=ErrorUtil.buildError("IF",number,number,"IF函数判断条件必须是真假值");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
}else {
|
||||
if (((Boolean)obj).booleanValue() == true){
|
||||
OperateData operateData=list.get(1);
|
||||
Object object=operateData.getObject(parent);
|
||||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@Override
|
||||
public OperateData executeInner(InstructionSetContext parent, ArraySwap list) throws Exception {
|
||||
Integer number = IgnoreParamFilter.getSetFuncNumber("IF");
|
||||
if (list == null || list.length != 3) {
|
||||
JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数只允许三个参数");
|
||||
throw new ExcelRunTimeException("IF函数只允许三个参数");
|
||||
}
|
||||
Object obj = list.get(0).getObject(parent);
|
||||
logger.info("IF参数:" + JSON.toJSONString(obj));
|
||||
boolean isDataTypeBool = false;
|
||||
DataType boolDtaType = null;
|
||||
if (obj != null && obj instanceof DataType) {
|
||||
boolDtaType = (DataType) obj;
|
||||
if (boolDtaType.getContent() != null && (boolDtaType.getContent() instanceof Boolean)) {
|
||||
isDataTypeBool = true;
|
||||
obj = boolDtaType.getContent();
|
||||
} else {
|
||||
switch (obj + "") {
|
||||
case "true":
|
||||
obj = true;
|
||||
isDataTypeBool = true;
|
||||
break;
|
||||
case "false":
|
||||
obj = false;
|
||||
isDataTypeBool = true;
|
||||
break;
|
||||
default:
|
||||
isDataTypeBool = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else if (obj instanceof Boolean) {
|
||||
isDataTypeBool = true;
|
||||
}
|
||||
if (obj == null) {
|
||||
JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数参数不能为空");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
} else if (!(obj instanceof Boolean) && (!(obj instanceof DataType))) {
|
||||
JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数判断条件必须是真假值");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
} else if (!isDataTypeBool) {
|
||||
JSONObject errorJson = ErrorUtil.buildError("IF", number, number, "IF函数判断条件必须是真假值");
|
||||
throw new RuntimeException(errorJson.getString("msg"));
|
||||
} else {
|
||||
if (((Boolean) obj).booleanValue() == true) {
|
||||
OperateData operateData = list.get(1);
|
||||
Object object = operateData.getObject(parent);
|
||||
// if(object instanceof DataType){
|
||||
// String type= ExcelParamUtil.getParamType(object);
|
||||
// if(type.equalsIgnoreCase("date")){
|
||||
// object=ExcelParamUtil.getParamContent(object,"string");
|
||||
// }
|
||||
// }
|
||||
OperateData operateData1=new OperateData(ExcelParamUtil.getParamContent(object,""),operateData.getType(parent));
|
||||
return operateData1;
|
||||
}else{
|
||||
OperateData operateData=list.get(2);
|
||||
Object object=operateData.getObject(parent);
|
||||
OperateData operateData1 = new OperateData(ExcelParamUtil.getParamContent(object, ""), operateData.getType(parent));
|
||||
return operateData1;
|
||||
} else {
|
||||
OperateData operateData = list.get(2);
|
||||
Object object = operateData.getObject(parent);
|
||||
// if(object instanceof DataType){
|
||||
// String type=ExcelParamUtil.getParamType(object);
|
||||
// if(type.equalsIgnoreCase("date")){
|
||||
// object=ExcelParamUtil.getParamContent(object,"string");
|
||||
// }
|
||||
// }
|
||||
OperateData operateData1=new OperateData(ExcelParamUtil.getParamContent(object,""),operateData.getType(parent));
|
||||
return operateData1;
|
||||
}
|
||||
}
|
||||
}
|
||||
OperateData operateData1 = new OperateData(ExcelParamUtil.getParamContent(object, ""), operateData.getType(parent));
|
||||
return operateData1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public IfOperator(String aName) {
|
||||
super(aName);
|
||||
}
|
||||
public IfOperator(String aName) {
|
||||
super(aName);
|
||||
}
|
||||
|
||||
public IfOperator(String aAliasName, String aName, String aErrorInfo) {
|
||||
super(aAliasName, aName, aErrorInfo);
|
||||
}
|
||||
public IfOperator(String aAliasName, String aName, String aErrorInfo) {
|
||||
super(aAliasName, aName, aErrorInfo);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@ import com.engine.salary.formlua.entity.parameter.DataType;
|
|||
|
||||
|
||||
public interface LogicService {
|
||||
public DataType not(Object... object);
|
||||
public Boolean not(Object... object);
|
||||
|
||||
public DataType isEmpty(Object... objs);
|
||||
public Boolean isEmpty(Object... objs);
|
||||
|
||||
public DataType isTrue(Object... objs);
|
||||
public Boolean isTrue(Object... objs);
|
||||
|
||||
public DataType isFalse(Object... objs);
|
||||
public Boolean isFalse(Object... objs);
|
||||
|
||||
public DataType and(Object... objs);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@Override
|
||||
public DataType not(Object... objects) {
|
||||
public Boolean not(Object... objects) {
|
||||
DataType resultdataType = new DataType();
|
||||
resultdataType.setDataType(DataType.BOOL);
|
||||
Class[] typeObjects = new Class[]{boolean.class};
|
||||
|
|
@ -32,7 +32,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
Object object = objects[0];
|
||||
if (object == null) {
|
||||
resultdataType.setContent(false);
|
||||
return resultdataType;
|
||||
return false;
|
||||
}
|
||||
Boolean cnd;
|
||||
if (object instanceof DataType) {
|
||||
|
|
@ -43,11 +43,11 @@ public class LogicServiceImpl implements LogicService {
|
|||
}
|
||||
|
||||
resultdataType.setContent(!cnd);
|
||||
return resultdataType;
|
||||
return (Boolean) resultdataType.getContent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataType isEmpty(Object... objs) {
|
||||
public Boolean isEmpty(Object... objs) {
|
||||
int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.ISEMPTY.toString());
|
||||
if (objs.length != 1) {
|
||||
throw new RuntimeException("ISEMPTY函数只允许一个参数");
|
||||
|
|
@ -57,7 +57,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
DataType dataType = new DataType();
|
||||
dataType.setDataType(DataType.BOOL);
|
||||
dataType.setContent(true);
|
||||
return dataType;
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < objs.length; i++) {
|
||||
Object obj = objs[i];
|
||||
|
|
@ -65,7 +65,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
DataType dataType = new DataType();
|
||||
dataType.setDataType(DataType.BOOL);
|
||||
dataType.setContent(true);
|
||||
return dataType;
|
||||
return true;
|
||||
}
|
||||
if (obj instanceof DataType) {
|
||||
DataType objDataType = (DataType) obj;
|
||||
|
|
@ -86,11 +86,11 @@ public class LogicServiceImpl implements LogicService {
|
|||
DataType dataType = new DataType();
|
||||
dataType.setDataType(DataType.BOOL);
|
||||
dataType.setContent(result);
|
||||
return dataType;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataType isTrue(Object... objects) {
|
||||
public Boolean isTrue(Object... objects) {
|
||||
int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.TRUE.toString());
|
||||
if (objects.length > 0) {
|
||||
throw new RuntimeException("TRUE函数不能有参数");
|
||||
|
|
@ -98,11 +98,11 @@ public class LogicServiceImpl implements LogicService {
|
|||
DataType dataType = new DataType();
|
||||
dataType.setDataType(DataType.BOOL);
|
||||
dataType.setContent(true);
|
||||
return dataType;
|
||||
return (Boolean) dataType.getContent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DataType isFalse(Object... objects) {
|
||||
public Boolean isFalse(Object... objects) {
|
||||
int number = IgnoreParamFilter.getSetFuncNumber(FuncNames.FALSE.toString());
|
||||
if (objects.length > 0) {
|
||||
JSONObject errorJson = ErrorUtil.buildError(FuncNames.FALSE.toString(), number, number, "FALSE函数不能有参数");
|
||||
|
|
@ -111,7 +111,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
DataType dataType = new DataType();
|
||||
dataType.setDataType(DataType.BOOL);
|
||||
dataType.setContent(false);
|
||||
return dataType;
|
||||
return (Boolean) dataType.getContent();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -335,7 +335,7 @@ public class LogicServiceImpl implements LogicService {
|
|||
} else {
|
||||
value = param;
|
||||
}
|
||||
if (Objects.equals(source.toString(),value.toString())) {
|
||||
if (Objects.equals(source.toString(), value.toString())) {
|
||||
result = objects[i + 1];
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue