暂时取消因子中的计算公式,现默认三种求和型、均值型、求和取整。优化一些代码

This commit is contained in:
cjw 2024-04-09 14:05:19 +08:00
parent b0533dc6c3
commit ab1d958e49
17 changed files with 47 additions and 218 deletions

View File

@ -64,5 +64,6 @@ public interface CacheNames {
* 在线用户 * 在线用户
*/ */
String ONLINE_TOKEN = "online_tokens"; String ONLINE_TOKEN = "online_tokens";
String SYS_QUESTION_ANSWER = "scale:question_answer#3d";
} }

View File

@ -10,7 +10,8 @@ package org.dromara.common.core.utils;
import java.util.Random; import java.util.Random;
public class PasswordGenerator { public class PasswordGenerator {
private static final String CHAR_SET = "0123456789"; //private static final String CHAR_SET = "0123456789";
private static final String CHAR_SET = "abcdefghijklmnopqrstuvwxyz0123456789";
private static final int DEFAULT_PASSWORD_LENGTH = 6; private static final int DEFAULT_PASSWORD_LENGTH = 6;
public static String generatePassword(int length) { public static String generatePassword(int length) {
@ -30,4 +31,7 @@ public class PasswordGenerator {
return generatePassword(DEFAULT_PASSWORD_LENGTH); return generatePassword(DEFAULT_PASSWORD_LENGTH);
} }
public static void main(String[] args) {
System.out.println(generatePassword(6));
}
} }

View File

@ -65,38 +65,4 @@ public class SysEvaluationConclusionController extends BaseController {
return R.ok(sysEvaluationConclusionService.queryById(id)); return R.ok(sysEvaluationConclusionService.queryById(id));
} }
// /**
// * 新增量测结果
// */
// @SaCheckPermission("scale:evaluationConclusion:add")
// @Log(title = "量测结果", businessType = BusinessType.INSERT)
// @RepeatSubmit()
// @PostMapping()
// public R<Void> add(@Validated(AddGroup.class) @RequestBody SysEvaluationConclusionBo bo) {
// return toAjax(sysEvaluationConclusionService.insertByBo(bo));
// }
// /**
// * 修改量测结果
// */
// @SaCheckPermission("scale:evaluationConclusion:edit")
// @Log(title = "量测结果", businessType = BusinessType.UPDATE)
// @RepeatSubmit()
// @PutMapping()
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysEvaluationConclusionBo bo) {
// return toAjax(sysEvaluationConclusionService.updateByBo(bo));
// }
// /**
// * 删除量测结果
// *
// * @param ids 主键串
// */
// @SaCheckPermission("scale:evaluationConclusion:remove")
// @Log(title = "量测结果", businessType = BusinessType.DELETE)
// @DeleteMapping("/{ids}")
// public R<Void> remove(@NotEmpty(message = "主键不能为空")
// @PathVariable Long[] ids) {
// return toAjax(sysEvaluationConclusionService.deleteWithValidByIds(List.of(ids), true));
// }
} }

View File

@ -65,38 +65,4 @@ public class SysEvaluationRecordController extends BaseController {
return R.ok(sysEvaluationRecordService.queryById(recordId)); return R.ok(sysEvaluationRecordService.queryById(recordId));
} }
// /**
// * 新增量测记录
// */
// @SaCheckPermission("evaluation:record:add")
// @Log(title = "量测记录", businessType = BusinessType.INSERT)
// @RepeatSubmit()
// @PostMapping()
// public R<Long> add(@Validated(AddGroup.class) @RequestBody SysEvaluationRecordBo bo) {
// return R.ok(sysEvaluationRecordService.insertByBo(bo));
// }
// /**
// * 修改量测记录
// */
// @SaCheckPermission("scale:evaluationRecord:edit")
// @Log(title = "量测记录", businessType = BusinessType.UPDATE)
// @RepeatSubmit()
// @PutMapping()
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysEvaluationRecordBo bo) {
// return toAjax(sysEvaluationRecordService.updateByBo(bo));
// }
// /**
// * 删除量测记录
// *
// * @param recordIds 主键串
// */
// @SaCheckPermission("scale:evaluationRecord:remove")
// @Log(title = "量测记录", businessType = BusinessType.DELETE)
// @DeleteMapping("/{recordIds}")
// public R<Void> remove(@NotEmpty(message = "主键不能为空")
// @PathVariable Long[] recordIds) {
// return toAjax(sysEvaluationRecordService.deleteWithValidByIds(List.of(recordIds), true));
// }
} }

View File

@ -44,16 +44,6 @@ public class SysScalePublishController extends BaseController {
return sysScalePublishService.queryPageList(bo, pageQuery); return sysScalePublishService.queryPageList(bo, pageQuery);
} }
// /**
// * 导出量表发布列表
// */
// @SaCheckPermission("scale:publish:export")
// @Log(title = "量发布", businessType = BusinessType.EXPORT)
// @PostMapping("/export")
// public void export(SysScalePublishBo bo, HttpServletResponse response) {
// List<SysScalePublishVo> list = sysScalePublishService.queryList(bo);
// ExcelUtil.exportExcel(list, "量表发布", SysScalePublishVo.class, response);
// }
/** /**
* 获取量表发布详细信息 * 获取量表发布详细信息

View File

@ -1,11 +1,13 @@
package org.dromara.scale.domain; package org.dromara.scale.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
/** /**
* 测评因子对象 sys_scale_factor * 测评因子对象 sys_scale_factor
@ -36,15 +38,15 @@ public class SysScaleFactor extends BaseEntity {
* 因子所属量表id * 因子所属量表id
*/ */
private Long scaleId; private Long scaleId;
/**
* 分数范围及结果提示
*/
private String factorResult;
/** /**
* 因子分计算公式 * 计算类型
*/ */
private Long formulaId; private Integer ruleType;
/**
* 权重
*/
private BigDecimal weight;
} }

View File

@ -38,11 +38,6 @@ public class SysScaleFactorRange extends BaseEntity {
*/ */
private Long factorId; private Long factorId;
/**
* 分数范围及结果提示
*/
private String factorResult;
/** /**
* 范围低阈值 * 范围低阈值
*/ */

View File

@ -10,6 +10,7 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.scale.domain.SysScaleFactor; import org.dromara.scale.domain.SysScaleFactor;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -42,16 +43,15 @@ public class SysScaleFactorBo extends BaseEntity {
private Long scaleId; private Long scaleId;
/** /**
* 分数范围及结果提示 * 计算类型
*/ */
@NotBlank(message = "分数范围及结果提示不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "计算类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String factorResult; private Integer ruleType;
/** /**
* 因子分计算公式 * 权重
*/ */
@NotNull(message = "因子分计算公式不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "权重不能为空", groups = { AddGroup.class, EditGroup.class })
private Long formulaId; private BigDecimal weight;
private List<Long> questionIds; private List<Long> questionIds;

View File

@ -39,12 +39,6 @@ public class SysScaleFactorRangeBo extends BaseEntity {
@NotNull(message = "因子所属量表id不能为空", groups = { AddGroup.class, EditGroup.class }) @NotNull(message = "因子所属量表id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long factorId; private Long factorId;
/**
* 分数范围及结果提示
*/
@NotBlank(message = "分数范围及结果提示不能为空", groups = { AddGroup.class, EditGroup.class })
private String factorResult;
/** /**
* 范围低阈值 * 范围低阈值
*/ */

View File

@ -1,16 +1,14 @@
package org.dromara.scale.domain.vo; package org.dromara.scale.domain.vo;
import org.dromara.scale.domain.SysScaleFactor;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.scale.domain.SysScaleFactor;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ -53,21 +51,14 @@ public class SysScaleFactorVo implements Serializable {
private String scaleTitle; private String scaleTitle;
/** /**
* 分数范围及结果提示 * 计算类型
*/ */
@ExcelProperty(value = "分数范围及结果提示") private Integer ruleType;
private String factorResult;
/** /**
* 因子分计算公式 * 权重
*/ */
@ExcelProperty(value = "因子分计算公式") private BigDecimal weight;
private Long formulaId;
/**
* 因子公式名称
*/
private String formulaName;
/** /**
* 问题id列表 * 问题id列表

View File

@ -5,7 +5,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.bo.SysEvaluationConclusionBo; import org.dromara.scale.domain.bo.SysEvaluationConclusionBo;
import org.dromara.scale.domain.vo.SysEvaluationConclusionVo; import org.dromara.scale.domain.vo.SysEvaluationConclusionVo;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -31,18 +30,5 @@ public interface ISysEvaluationConclusionService {
*/ */
List<SysEvaluationConclusionVo> queryList(SysEvaluationConclusionBo bo); List<SysEvaluationConclusionVo> queryList(SysEvaluationConclusionBo bo);
/**
* 新增量测结果
*/
Boolean insertByBo(SysEvaluationConclusionBo bo);
/**
* 修改量测结果
*/
Boolean updateByBo(SysEvaluationConclusionBo bo);
/**
* 校验并批量删除量测结果信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
} }

View File

@ -5,7 +5,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.bo.SysEvaluationRecordBo; import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
import org.dromara.scale.domain.vo.SysEvaluationRecordVo; import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -36,13 +35,5 @@ public interface ISysEvaluationRecordService {
*/ */
Long insertByBo(SysEvaluationRecordBo bo); Long insertByBo(SysEvaluationRecordBo bo);
/**
* 修改量测记录
*/
Boolean updateByBo(SysEvaluationRecordBo bo);
/**
* 校验并批量删除量测记录信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
} }

View File

@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.SysEvaluationConclusion; import org.dromara.scale.domain.SysEvaluationConclusion;
@ -14,7 +13,6 @@ import org.dromara.scale.mapper.SysEvaluationConclusionMapper;
import org.dromara.scale.service.ISysEvaluationConclusionService; import org.dromara.scale.service.ISysEvaluationConclusionService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -68,30 +66,6 @@ public class SysEvaluationConclusionServiceImpl implements ISysEvaluationConclus
return lqw; return lqw;
} }
/**
* 新增量测结果
*/
@Override
public Boolean insertByBo(SysEvaluationConclusionBo bo) {
SysEvaluationConclusion add = MapstructUtils.convert(bo, SysEvaluationConclusion.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改量测结果
*/
@Override
public Boolean updateByBo(SysEvaluationConclusionBo bo) {
SysEvaluationConclusion update = MapstructUtils.convert(bo, SysEvaluationConclusion.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
@ -99,14 +73,4 @@ public class SysEvaluationConclusionServiceImpl implements ISysEvaluationConclus
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
/**
* 批量删除量测结果
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
} }

View File

@ -15,7 +15,6 @@ import org.dromara.scale.mapper.SysEvaluationRecordMapper;
import org.dromara.scale.service.ISysEvaluationRecordService; import org.dromara.scale.service.ISysEvaluationRecordService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -86,15 +85,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
return add.getRecordId(); return add.getRecordId();
} }
/**
* 修改量测记录
*/
@Override
public Boolean updateByBo(SysEvaluationRecordBo bo) {
SysEvaluationRecord update = MapstructUtils.convert(bo, SysEvaluationRecord.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/** /**
* 保存前的数据校验 * 保存前的数据校验
@ -103,14 +94,5 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
//TODO 做一些数据校验,如唯一约束 //TODO 做一些数据校验,如唯一约束
} }
/**
* 批量删除量测记录
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
} }

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.constant.CacheNames;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@ -17,6 +18,7 @@ import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import org.dromara.scale.mapper.SysScaleAnswerMapper; import org.dromara.scale.mapper.SysScaleAnswerMapper;
import org.dromara.scale.mapper.SysScaleQuestionMapper; import org.dromara.scale.mapper.SysScaleQuestionMapper;
import org.dromara.scale.service.ISysScaleAnswerService; import org.dromara.scale.service.ISysScaleAnswerService;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
@ -113,7 +115,7 @@ public class SysScaleAnswerServiceImpl implements ISysScaleAnswerService {
} }
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Cacheable(cacheNames = CacheNames.SYS_QUESTION_ANSWER, key = "#scaleId")
@Override @Override
public List<QuestionAnswerVo> queryQuestionAnswerListByScaleId(Long scaleId) { public List<QuestionAnswerVo> queryQuestionAnswerListByScaleId(Long scaleId) {
LambdaQueryWrapper<SysScaleQuestion> questionLqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysScaleQuestion> questionLqw = Wrappers.lambdaQuery();

View File

@ -63,7 +63,6 @@ public class SysScaleFactorRangeServiceImpl implements ISysScaleFactorRangeServi
LambdaQueryWrapper<SysScaleFactorRange> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysScaleFactorRange> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getRangeName()), SysScaleFactorRange::getRangeName, bo.getRangeName()); lqw.like(StringUtils.isNotBlank(bo.getRangeName()), SysScaleFactorRange::getRangeName, bo.getRangeName());
lqw.eq(bo.getFactorId() != null, SysScaleFactorRange::getFactorId, bo.getFactorId()); lqw.eq(bo.getFactorId() != null, SysScaleFactorRange::getFactorId, bo.getFactorId());
lqw.eq(StringUtils.isNotBlank(bo.getFactorResult()), SysScaleFactorRange::getFactorResult, bo.getFactorResult());
lqw.eq(bo.getMinValue() != null, SysScaleFactorRange::getMinValue, bo.getMinValue()); lqw.eq(bo.getMinValue() != null, SysScaleFactorRange::getMinValue, bo.getMinValue());
lqw.eq(bo.getMaxValue() != null, SysScaleFactorRange::getMaxValue, bo.getMaxValue()); lqw.eq(bo.getMaxValue() != null, SysScaleFactorRange::getMaxValue, bo.getMaxValue());
lqw.eq(StringUtils.isNotBlank(bo.getEvalDesc()), SysScaleFactorRange::getEvalDesc, bo.getEvalDesc()); lqw.eq(StringUtils.isNotBlank(bo.getEvalDesc()), SysScaleFactorRange::getEvalDesc, bo.getEvalDesc());

View File

@ -1,33 +1,31 @@
package org.dromara.scale.service.impl; package org.dromara.scale.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.SysScale; import org.dromara.scale.domain.SysScale;
import org.dromara.scale.domain.SysScaleFormula; import org.dromara.scale.domain.SysScaleFactor;
import org.dromara.scale.domain.SysScaleQuestion; import org.dromara.scale.domain.SysScaleQuestion;
import org.dromara.scale.domain.bo.SysScaleQuestionBo; import org.dromara.scale.domain.bo.SysScaleFactorBo;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.vo.SysScaleQuestionVo; import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import org.dromara.scale.mapper.SysScaleFactorMapper;
import org.dromara.scale.mapper.SysScaleFormulaMapper; import org.dromara.scale.mapper.SysScaleFormulaMapper;
import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.mapper.SysScaleQuestionMapper; import org.dromara.scale.mapper.SysScaleQuestionMapper;
import org.springframework.stereotype.Service;
import org.dromara.scale.domain.bo.SysScaleFactorBo;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.SysScaleFactor;
import org.dromara.scale.mapper.SysScaleFactorMapper;
import org.dromara.scale.service.ISysScaleFactorService; import org.dromara.scale.service.ISysScaleFactorService;
import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -70,8 +68,8 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
SysScale sysScale = scaleMapper.selectById(record.getScaleId()); SysScale sysScale = scaleMapper.selectById(record.getScaleId());
record.setScaleTitle(sysScale.getScaleTitle()); record.setScaleTitle(sysScale.getScaleTitle());
SysScaleFormula sysScaleFormula = scaleFormulaMapper.selectById(record.getFormulaId()); //SysScaleFormula sysScaleFormula = scaleFormulaMapper.selectById(record.getFormulaId());
record.setFormulaName(sysScaleFormula.getFormulaName()); //record.setFormulaName(sysScaleFormula.getFormulaName());
} }
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -90,8 +88,6 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
LambdaQueryWrapper<SysScaleFactor> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysScaleFactor> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getFactorName()), SysScaleFactor::getFactorName, bo.getFactorName()); lqw.like(StringUtils.isNotBlank(bo.getFactorName()), SysScaleFactor::getFactorName, bo.getFactorName());
lqw.eq(bo.getScaleId() != null, SysScaleFactor::getScaleId, bo.getScaleId()); lqw.eq(bo.getScaleId() != null, SysScaleFactor::getScaleId, bo.getScaleId());
lqw.eq(StringUtils.isNotBlank(bo.getFactorResult()), SysScaleFactor::getFactorResult, bo.getFactorResult());
lqw.eq(bo.getFormulaId() != null, SysScaleFactor::getFormulaId, bo.getFormulaId());
return lqw; return lqw;
} }