Compare commits
2 Commits
797827afe2
...
021f6c087b
| Author | SHA1 | Date | |
|---|---|---|---|
| 021f6c087b | |||
| 51c7748c8c |
@@ -92,6 +92,14 @@ public class BusinessAssayTaskDetailController implements BusinessControllerMark
|
||||
return success(BeanUtils.toBean(pageResult, BusinessAssayTaskDetailRespVO.class));
|
||||
}
|
||||
|
||||
@GetMapping("/list")
|
||||
@Operation(summary = "获得检测任务分配明细分页")
|
||||
@PreAuthorize("@ss.hasPermission('qms:business-assay-task-detail:query')")
|
||||
public CommonResult<List<BusinessAssayTaskDetailExtendRespVO>> getBusinessAssayTaskDetailList(@Valid BusinessAssayTaskDetailReqVO reqVO) {
|
||||
List<BusinessAssayTaskDetailExtendRespVO> resultList = businessAssayTaskDetailService.getBusinessAssayTaskDetailList(reqVO);
|
||||
return success(resultList);
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出检测任务分配明细 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('qms:business-assay-task-detail:export')")
|
||||
|
||||
@@ -24,9 +24,18 @@ public class BusinessAssayReportDataPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "样品编号")
|
||||
private String sampleCode;
|
||||
|
||||
@Schema(description = "数据来源")
|
||||
private String dataSource;
|
||||
|
||||
@Schema(description = "分析数据")
|
||||
private String assayData;
|
||||
|
||||
@Schema(description = "是否已全部上报")
|
||||
private Integer isAllReported;
|
||||
|
||||
@Schema(description = "已上报数据来源")
|
||||
private String reportedSource;
|
||||
|
||||
@Schema(description = "流程code")
|
||||
private String reportFlowCode;
|
||||
|
||||
@@ -31,10 +31,19 @@ public class BusinessAssayReportDataRespVO {
|
||||
@Schema(description = "样品编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("样品编号")
|
||||
private String sampleCode;
|
||||
|
||||
@Schema(description = "数据来源")
|
||||
private String dataSource;
|
||||
|
||||
@Schema(description = "分析数据")
|
||||
@ExcelProperty("分析数据")
|
||||
private String assayData;
|
||||
|
||||
@Schema(description = "是否已全部上报")
|
||||
private Integer isAllReported;
|
||||
|
||||
@Schema(description = "已上报数据来源")
|
||||
private String reportedSource;
|
||||
|
||||
@Schema(description = "流程code")
|
||||
@ExcelProperty("流程code")
|
||||
|
||||
@@ -27,9 +27,18 @@ public class BusinessAssayReportDataSaveReqVO {
|
||||
@Schema(description = "样品编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "样品编号不能为空")
|
||||
private String sampleCode;
|
||||
|
||||
@Schema(description = "数据来源")
|
||||
private String dataSource;
|
||||
|
||||
@Schema(description = "分析数据")
|
||||
private String assayData;
|
||||
|
||||
@Schema(description = "是否已全部上报")
|
||||
private Integer isAllReported;
|
||||
|
||||
@Schema(description = "已上报数据来源")
|
||||
private String reportedSource;
|
||||
|
||||
@Schema(description = "流程code")
|
||||
private String reportFlowCode;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||
|
||||
/**
|
||||
* <b>BusinessAssayTaskDetailExtendRespVO</b>
|
||||
* <p>
|
||||
* 更新历史:
|
||||
* <pre> 版本 更新时间 更新者 更新内容<hr/>
|
||||
* V1.0 2025年10月17日 wxr Add</pre>
|
||||
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
|
||||
* </p>
|
||||
* @author 王兴荣<wxr@wangxingrong.com>
|
||||
* @version V1.0
|
||||
* @since 2025年10月17日
|
||||
*/
|
||||
public class BusinessAssayTaskDetailExtendRespVO extends BusinessAssayTaskDetailRespVO {
|
||||
|
||||
}
|
||||
@@ -52,10 +52,25 @@ public class BusinessAssayReportDataDO extends BusinessBaseDO {
|
||||
@TableField("SMP_CD")
|
||||
private String sampleCode;
|
||||
/**
|
||||
* 数据来源
|
||||
*/
|
||||
@TableField("DAT_SRC")
|
||||
private String dataSource;
|
||||
/**
|
||||
* 分析数据
|
||||
*/
|
||||
@TableField("ASY_DAT")
|
||||
private String assayData;
|
||||
/**
|
||||
* 是否已全部上报(0-否,1-是)
|
||||
*/
|
||||
@TableField("IS_ALL_RPOD")
|
||||
private Integer isAllReported;
|
||||
/**
|
||||
* 已上报数据来源
|
||||
*/
|
||||
@TableField("RPOD_SRC")
|
||||
private String reportedSource;
|
||||
/**
|
||||
* 流程code
|
||||
*/
|
||||
|
||||
@@ -25,7 +25,10 @@ public interface BusinessAssayReportDataMapper extends BaseMapperX<BusinessAssay
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getConfigSampleReportId, reqVO.getConfigSampleReportId())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getSampleCode, reqVO.getSampleCode())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getDataSource, reqVO.getDataSource())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getAssayData, reqVO.getAssayData())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getIsAllReported, reqVO.getIsAllReported())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getReportedSource, reqVO.getReportedSource())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getReportFlowCode, reqVO.getReportFlowCode())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getDocumentDataId, reqVO.getDocumentDataId())
|
||||
.eqIfPresent(BusinessAssayReportDataDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.zt.plat.module.qms.business.bus.dal.mapper;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||
@@ -34,6 +35,23 @@ public interface BusinessAssayTaskDetailMapper extends BaseMapperX<BusinessAssay
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getRemark, reqVO.getRemark())
|
||||
.orderByDesc(BusinessAssayTaskDetailDO::getId));
|
||||
}
|
||||
|
||||
default List<BusinessAssayTaskDetailExtendRespVO> selectList(BusinessAssayTaskDetailReqVO reqVO) {
|
||||
return selectJoinList(BusinessAssayTaskDetailExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDetailDO>()
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getSampleId, reqVO.getSampleId())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getTaskNo, reqVO.getTaskNo())
|
||||
.likeIfPresent(BusinessAssayTaskDetailDO::getSampleName, reqVO.getSampleName())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getSampleCode, reqVO.getSampleCode())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getCupNumber, reqVO.getCupNumber())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getDataSourceType, reqVO.getDataSourceType())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getSortNo, reqVO.getSortNo())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getRollbackStatus, reqVO.getRollbackStatus())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||
.betweenIfPresent(BusinessAssayTaskDetailDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(BusinessAssayTaskDetailDO::getRemark, reqVO.getRemark())
|
||||
.orderByDesc(BusinessAssayTaskDetailDO::getId));
|
||||
}
|
||||
|
||||
default List<BusinessAssayTaskDetailDO> selectByBusinessAssayTaskId(Long businessAssayTaskId) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDetailDO>()
|
||||
|
||||
@@ -2,14 +2,10 @@ package com.zt.plat.module.qms.business.bus.service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailPageReqVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailRespVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailSaveReqVO;
|
||||
import jakarta.validation.*;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||
import com.zt.plat.framework.common.pojo.PageParam;
|
||||
|
||||
/**
|
||||
* 检测任务分配明细 Service 接口
|
||||
@@ -63,4 +59,12 @@ public interface BusinessAssayTaskDetailService {
|
||||
*/
|
||||
PageResult<BusinessAssayTaskDetailDO> getBusinessAssayTaskDetailPage(BusinessAssayTaskDetailPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得检测任务分配明细列表
|
||||
*
|
||||
* @param reqVO 分页查询
|
||||
* @return 检测任务分配明细列表
|
||||
*/
|
||||
List<BusinessAssayTaskDetailExtendRespVO> getBusinessAssayTaskDetailList(BusinessAssayTaskDetailReqVO reqVO);
|
||||
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
package com.zt.plat.module.qms.business.bus.service;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailPageReqVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailRespVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDetailSaveReqVO;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -90,4 +88,9 @@ public class BusinessAssayTaskDetailServiceImpl implements BusinessAssayTaskDeta
|
||||
return businessAssayTaskDetailMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusinessAssayTaskDetailExtendRespVO> getBusinessAssayTaskDetailList(BusinessAssayTaskDetailReqVO reqVO) {
|
||||
return businessAssayTaskDetailMapper.selectList(reqVO);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.ql.util.express.DefaultContext;
|
||||
import com.ql.util.express.ExpressRunner;
|
||||
import com.zt.plat.framework.common.exception.ServiceException;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@@ -46,12 +47,14 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessTeamAssessmentMapp
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectAssessmentDO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportFieldDO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigRuleDO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigSubSampleDO;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectAssessmentMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodProjectMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigProjectMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigReportFieldMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigReportTypeMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigRuleMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSampleReportMapper;
|
||||
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigSubSampleMapper;
|
||||
import com.zt.plat.module.qms.core.qlexpress.cmp.AllowanceCalculatorComponent;
|
||||
@@ -669,11 +672,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
||||
|
||||
}
|
||||
|
||||
@Resource
|
||||
private ConfigRuleMapper configRuleMapper;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject modifyParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId, Long businessSubSampleAssessmentId, List<Long> businessAssayProjectDataIds) {
|
||||
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectById(businessSubSampleAssessmentId);
|
||||
|
||||
//计算平均值
|
||||
ConfigRuleDO calculateAverageValue = configRuleMapper.selectLatestConfigRuleByCode("calculateAverageValue");
|
||||
|
||||
BusinessAssayProjectDataReqVO businessAssayProjectDataSearch = new BusinessAssayProjectDataReqVO();
|
||||
businessAssayProjectDataSearch.setBusinessSubSampleId(businessSubSampleId);
|
||||
businessAssayProjectDataSearch.setConfigAssayMethodId(configAssayMethodId);
|
||||
@@ -699,8 +708,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
||||
|
||||
// 获取小数精度
|
||||
int elementScale = businessSubSampleAssessmentDO.getDecimalPosition();
|
||||
// 计算代表值(均值或差值)
|
||||
BigDecimal representativeValue = calculateRepresentativeValue(sortedValues, elementScale);
|
||||
// 计算代表值(均值\)
|
||||
// BigDecimal representativeValue = calculateRepresentativeValue(sortedValues, elementScale);
|
||||
DefaultContext<String, Object> context = new DefaultContext<>();
|
||||
context.put("values", sortedValues);
|
||||
context.put("scale", elementScale);
|
||||
BigDecimal representativeValue = null;
|
||||
try {
|
||||
representativeValue = (BigDecimal) expressRunner.execute(calculateAverageValue.getExpression(), context, null, false, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
//设置判定值
|
||||
businessSubSampleAssessmentDO.setAssessmentValue(representativeValue.toPlainString());
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.*;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigRuleDO;
|
||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
@@ -32,4 +33,8 @@ public interface ConfigRuleMapper extends BaseMapperX<ConfigRuleDO> {
|
||||
.orderByDesc(ConfigRuleDO::getId));
|
||||
}
|
||||
|
||||
default ConfigRuleDO selectLatestConfigRuleByCode(String code) {
|
||||
return selectOne(new LambdaQueryWrapperX<ConfigRuleDO>()
|
||||
.eq(ConfigRuleDO::getCode, code).eq(ConfigRuleDO::getIsLast, QmsCommonConstant.YES));
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import com.ql.util.express.ExpressRunner;
|
||||
import com.zt.plat.module.qms.core.qlexpress.function.RoundToScaleHalfEven;
|
||||
|
||||
@Configuration
|
||||
public class QlExpressRuleEngineConfig {
|
||||
@@ -12,6 +13,7 @@ public class QlExpressRuleEngineConfig {
|
||||
public ExpressRunner expressRunner() {
|
||||
//需要高精度计算支持
|
||||
ExpressRunner expressRunner = new ExpressRunner(true, false);
|
||||
expressRunner.addFunction("roundToScale", new RoundToScaleHalfEven());
|
||||
return expressRunner;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.zt.plat.module.qms.core.qlexpress.function;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
import com.ql.util.express.Operator;
|
||||
|
||||
public class RoundToScaleHalfEven extends Operator {
|
||||
|
||||
@Override
|
||||
public Object executeInner(Object[] list) throws Exception {
|
||||
if (list.length != 2) {
|
||||
throw new Exception("roundToScale函数需要2个参数:数值和小数位数");
|
||||
}
|
||||
|
||||
double value = Double.parseDouble(list[0].toString());
|
||||
int scale = Integer.parseInt(list[1].toString());
|
||||
|
||||
BigDecimal bd = BigDecimal.valueOf(value);
|
||||
bd = bd.setScale(scale, RoundingMode.HALF_EVEN);
|
||||
return bd;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.zt.plat.module.qms;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.ql.util.express.DefaultContext;
|
||||
import com.ql.util.express.ExpressRunner;
|
||||
import com.ql.util.express.IExpressContext;
|
||||
import com.zt.plat.module.qms.core.qlexpress.function.RoundToScaleHalfEven;
|
||||
|
||||
public class QLExpressRunnerTest {
|
||||
|
||||
@Test
|
||||
void roundToScaleTest() throws Exception {
|
||||
ExpressRunner expressRunner = new ExpressRunner(true, false);
|
||||
expressRunner.addFunction("roundToScale", new RoundToScaleHalfEven());
|
||||
String express_3 = "roundToScale(0.2434, 3)";
|
||||
Object result_3 = expressRunner.execute(express_3, null, null, false, false);
|
||||
System.out.println("四舍0.2434 :" + result_3);
|
||||
String express_4 = "roundToScale(0.2416, 3)";
|
||||
Object result_4 = expressRunner.execute(express_4, null, null, false, false);
|
||||
System.out.println("六入0.2416 :" + result_4);
|
||||
String express_1 = "roundToScale(0.2445, 3)";
|
||||
Object result_1 = expressRunner.execute(express_1, null, null, false, false);
|
||||
System.out.println("偶不变0.2445 :" + result_1);
|
||||
String express_2 = "roundToScale(0.2455, 3)";
|
||||
Object result_2 = expressRunner.execute(express_2, null, null, false, false);
|
||||
System.out.println("奇变0.2445 :" + result_2);
|
||||
}
|
||||
|
||||
@Test
|
||||
void calculateAverageValueTest() throws Exception {
|
||||
ExpressRunner expressRunner = new ExpressRunner(true, false);
|
||||
|
||||
/**
|
||||
String exp = ""
|
||||
+ "function abc(int a, int b) {"
|
||||
+ " return a + b;"
|
||||
+ "}"
|
||||
+ "return abc(1 + 100, 2 * 100)";
|
||||
IExpressContext<String, Object> context = new DefaultContext<>();
|
||||
Object result = expressRunner.execute(exp, context, null, false, false);
|
||||
System.out.println(result);
|
||||
**/
|
||||
//
|
||||
// String express = """
|
||||
// function calculateAverageValue(values, elementScale) {
|
||||
// if (values == null || values.size() == 0) return roundToScale(0, elementScale);
|
||||
// if (values.size() == 1) return roundToScale(values.get(0), elementScale);
|
||||
// sum = reduce(values, 0, "a + b");
|
||||
// return roundToScale(sum / values.size(), elementScale);
|
||||
// }
|
||||
// calculateAverageValue(values, elementScale);
|
||||
// """;
|
||||
String express = """
|
||||
if (values == null || values.size() == 0) return roundToScale(0, scale);
|
||||
if (values.size() == 1) return roundToScale(values.get(0), scale);
|
||||
sum = 0;
|
||||
for(int i = 0; i < values.size(); i = i + 1) {
|
||||
sum = sum + values.get(i);
|
||||
}
|
||||
return roundToScale(sum / values.size(), scale);
|
||||
""";
|
||||
|
||||
expressRunner.addFunction("roundToScale", new RoundToScaleHalfEven());
|
||||
|
||||
List<BigDecimal> valuesList = new ArrayList<>();
|
||||
// valuesList.add(new BigDecimal("0.2445"));
|
||||
// valuesList.add(new BigDecimal("0.5435"));
|
||||
// valuesList.add(new BigDecimal("0.8436"));
|
||||
valuesList.add(new BigDecimal("2.05"));
|
||||
valuesList.add(new BigDecimal("2.05"));
|
||||
valuesList.add(new BigDecimal("0"));
|
||||
|
||||
int elementScale = 2;
|
||||
|
||||
DefaultContext<String, Object> context = new DefaultContext<>();
|
||||
context.put("values", valuesList);
|
||||
context.put("scale", elementScale);
|
||||
Object result = expressRunner.execute(express, context, null, false, false);
|
||||
System.out.println(result);
|
||||
|
||||
|
||||
String[] names = expressRunner.getOutVarNames(express);
|
||||
for(String s:names){
|
||||
System.out.println("var : " + s);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user