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

This commit is contained in:
钱涛 2023-10-23 10:07:24 +08:00
commit 026fa54a0e
10 changed files with 88 additions and 86 deletions

View File

@ -36,6 +36,7 @@ public class QlExpress {
static {
runner = new ExpressRunner(true, false);
runner.setShortCircuit(true);
}
private static boolean isInitialRunner = false;

View File

@ -154,7 +154,7 @@ public class EqOperator extends OperatorEqualsLessMore {
}
}
// buildFilterParam(result,op1,op2);
return result;
return result.getContent();
}
/**

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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;
}