|
@@ -1,13 +1,26 @@
|
|
|
package com.diagbot.facade;
|
|
|
|
|
|
+import com.diagbot.dto.MedClassMedDTO;
|
|
|
import com.diagbot.dto.RuleDTO;
|
|
|
+import com.diagbot.entity.ResultBill;
|
|
|
import com.diagbot.enums.LexiconEnum;
|
|
|
+import com.diagbot.util.BeanUtil;
|
|
|
+import com.diagbot.util.ListUtil;
|
|
|
+import com.diagbot.util.StringUtil;
|
|
|
import com.diagbot.vo.RuleVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Random;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @Description:
|
|
@@ -18,8 +31,28 @@ import java.util.List;
|
|
|
public class MedRuleConvertFacade {
|
|
|
@Autowired
|
|
|
private KlRuleFacade klRuleFacade;
|
|
|
+ @Autowired
|
|
|
+ private KlRelationFacade klRelationFacade;
|
|
|
|
|
|
- public void billCommon() {
|
|
|
+ @Autowired
|
|
|
+ private LisConfigFacade lisConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private PacsConfigFacade pacsConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private DrugConfigFacade drugConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private DiseaseConfigFacade diseaseConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private OperationConfigFacade operationConfigFacade;
|
|
|
+ @Autowired
|
|
|
+ private TransfusionConfigFacade transfusionConfigFacade;
|
|
|
+
|
|
|
+ public List<ResultBill> billCommon(Long hospitalId) {
|
|
|
+ List<ResultBill> retList = Lists.newLinkedList();
|
|
|
+ List<ResultBill> inputList = Lists.newLinkedList();
|
|
|
+ List<ResultBill> medicineList = Lists.newLinkedList();
|
|
|
+ List<ResultBill> billMappingList = Lists.newLinkedList();
|
|
|
+ List<ResultBill> conflictMappingList = Lists.newLinkedList();
|
|
|
|
|
|
RuleVO ruleVO = new RuleVO();
|
|
|
ruleVO.setRuleType(1);
|
|
@@ -30,6 +63,163 @@ public class MedRuleConvertFacade {
|
|
|
LexiconEnum.PacsSubName.getKey() }));
|
|
|
|
|
|
List<RuleDTO> list = klRuleFacade.getRules(ruleVO);
|
|
|
+
|
|
|
+ if (ListUtil.isEmpty(list)) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Map<String, Map<String, List<Long>>>> lisConfigMap = lisConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+ Map<String, Map<String, List<Long>>> pacsConfigMap = pacsConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+ Map<String, Map<String, Map<String, List<Long>>>> drugConfigMap = drugConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+ Map<String, Map<String, List<Long>>> diseaseConfigMap = diseaseConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+ Map<String, Map<String, List<Long>>> operationConfigMap = operationConfigFacade.getUniqueConfigMap(hospitalId, null, null);
|
|
|
+
|
|
|
+ for (RuleDTO record : list) {
|
|
|
+ ResultBill resultBill = new ResultBill();
|
|
|
+ resultBill.setBillType(1);
|
|
|
+
|
|
|
+ resultBill.setBillItemName(record.getRuleLibName());
|
|
|
+ resultBill.setBillItemTypeCode(record.getRuleLibType());
|
|
|
+ resultBill.setBillItemType(record.getRuleLibTypeName());
|
|
|
+ resultBill.setBillItemHisName("");
|
|
|
+ resultBill.setBillItemHisDetailName("");
|
|
|
+
|
|
|
+ resultBill.setConflictItemName(record.getRuleBaseLibName());
|
|
|
+ resultBill.setConflictItemTypeCode(record.getRuleBaseLibType());
|
|
|
+ resultBill.setConflictItemType(record.getRuleBaseLibTypeName());
|
|
|
+ resultBill.setConflictItemHisName("");
|
|
|
+ resultBill.setConflictItemHisDetailName("");
|
|
|
+
|
|
|
+ resultBill.setMessage("");
|
|
|
+ resultBill.setConflictItemRange(0);
|
|
|
+
|
|
|
+ //比较关系
|
|
|
+ if (StringUtil.isNotBlank(record.getRuleBaseMinOperator())
|
|
|
+ && StringUtil.isNotBlank(record.getRuleBaseMaxOperator())) {
|
|
|
+ //上下限比较
|
|
|
+ if (record.getRuleBaseMaxValue() >= record.getRuleBaseMinValue()) {
|
|
|
+ ResultBill valResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(resultBill, valResult);
|
|
|
+ valResult.setInputValue(random(new BigDecimal(record.getRuleBaseMinValue()),
|
|
|
+ new BigDecimal(record.getRuleBaseMaxValue()),
|
|
|
+ (record.getRuleBaseMaxOperator().equals("<=") ? true : false),
|
|
|
+ (record.getRuleBaseMinOperator().equals(">=") ? true : false)).toString());
|
|
|
+ valResult.setUnit(StringUtil.isNotBlank(record.getRuleBaseMinUnit()) ? record.getRuleBaseMinUnit()
|
|
|
+ : (StringUtil.isNotBlank(record.getRuleBaseMaxUnit()) ? record.getRuleBaseMaxUnit() : ""));
|
|
|
+ inputList.add(valResult);
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ ResultBill minResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(resultBill, minResult);
|
|
|
+ minResult.setConflictItemRange(1);
|
|
|
+ minResult.setInputValue(random(null,
|
|
|
+ new BigDecimal(record.getRuleBaseMinValue()),
|
|
|
+ false,
|
|
|
+ (record.getRuleBaseMinOperator().equals(">=") ? true : false)).toString());
|
|
|
+ minResult.setUnit(StringUtil.isNotBlank(record.getRuleBaseMinUnit()) ? record.getRuleBaseMinUnit() : "");
|
|
|
+ inputList.add(minResult);
|
|
|
+
|
|
|
+ ResultBill maxResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(resultBill, maxResult);
|
|
|
+ maxResult.setConflictItemRange(1);
|
|
|
+ maxResult.setInputValue(random(new BigDecimal(record.getRuleBaseMaxValue()),
|
|
|
+ null,
|
|
|
+ (record.getRuleBaseMaxOperator().equals("<=") ? true : false),
|
|
|
+ null).toString());
|
|
|
+ maxResult.setUnit(StringUtil.isNotBlank(record.getRuleBaseMaxUnit()) ? record.getRuleBaseMaxUnit() : "");
|
|
|
+ inputList.add(maxResult);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (StringUtil.isNotBlank(record.getRuleBaseMinOperator())
|
|
|
+ && StringUtil.isBlank(record.getRuleBaseMaxOperator())) {
|
|
|
+ ResultBill minResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(resultBill, minResult);
|
|
|
+ minResult.setInputValue(random(null,
|
|
|
+ new BigDecimal(record.getRuleBaseMinValue()),
|
|
|
+ false,
|
|
|
+ (record.getRuleBaseMinOperator().equals(">=") ? true : false)).toString());
|
|
|
+ minResult.setUnit(StringUtil.isNotBlank(record.getRuleBaseMinUnit()) ? record.getRuleBaseMinUnit() : "");
|
|
|
+ inputList.add(minResult);
|
|
|
+ } else if (StringUtil.isBlank(record.getRuleBaseMinOperator())
|
|
|
+ && StringUtil.isNotBlank(record.getRuleBaseMaxOperator())) {
|
|
|
+ ResultBill maxResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(resultBill, maxResult);
|
|
|
+ maxResult.setInputValue(random(new BigDecimal(record.getRuleBaseMaxValue()),
|
|
|
+ null,
|
|
|
+ (record.getRuleBaseMaxOperator().equals("<=") ? true : false),
|
|
|
+ null).toString());
|
|
|
+ maxResult.setUnit(StringUtil.isNotBlank(record.getRuleBaseMaxUnit()) ? record.getRuleBaseMaxUnit() : "");
|
|
|
+ inputList.add(maxResult);
|
|
|
+ } else if (StringUtil.isNotBlank(record.getRuleBaseEqOperator())) {
|
|
|
+ resultBill.setInputValue(new BigDecimal(record.getRuleBaseEqValue()).toString());
|
|
|
+ resultBill.setUnit(StringUtil.isNotBlank(record.getRuleBaseEqUnit()) ? record.getRuleBaseEqUnit() : "");
|
|
|
+ inputList.add(resultBill);
|
|
|
+ } else {
|
|
|
+ inputList.add(resultBill);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //药品分类扩展
|
|
|
+ List<MedClassMedDTO> medClassMedList = klRelationFacade.getMedClassMedList();
|
|
|
+ Map<String, List<String>> medClassMedMap =
|
|
|
+ medClassMedList.stream().collect(Collectors.groupingBy(MedClassMedDTO::getMedClassLibName,
|
|
|
+ HashMap::new,
|
|
|
+ Collectors.mapping(MedClassMedDTO::getMedLibName, Collectors.toList())));
|
|
|
+ for (ResultBill result : inputList) {
|
|
|
+ if (result.getConflictItemTypeCode().equals(LexiconEnum.MedChemClass.getKey())
|
|
|
+ || result.getConflictItemTypeCode().equals(LexiconEnum.MedZhiLiaoClass.getKey())
|
|
|
+ || result.getConflictItemTypeCode().equals(LexiconEnum.MedYaoLiClass.getKey())) {
|
|
|
+ List<String> medicines = medClassMedMap.get(result.getConflictItemName());
|
|
|
+ if (ListUtil.isNotEmpty(medicines)) {
|
|
|
+ for (String med : medicines) {
|
|
|
+ ResultBill medResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(result, medResult);
|
|
|
+ medResult.setReferenceValue("药品类别_" + result.getConflictItemTypeCode() + "_" + result.getConflictItemType() + "_" + result.getConflictItemName());
|
|
|
+ medResult.setConflictItemName(med);
|
|
|
+ medResult.setConflictItemTypeCode(LexiconEnum.Medicine.getKey());
|
|
|
+ medResult.setConflictItemType(LexiconEnum.Medicine.getName());
|
|
|
+ medicineList.add(medResult);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ result.setSuccess(0);
|
|
|
+ result.setMessage(result.getMessage() + result.getConflictItemName() + "(" + result.getConflictItemType() + ")缺少相关药品通用名称;");
|
|
|
+ medicineList.add(result);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ medicineList.add(result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //术语映射-开单项映射
|
|
|
+ for (ResultBill result : medicineList) {
|
|
|
+ if (result.getBillItemTypeCode().equals(LexiconEnum.Medicine.getKey())) {
|
|
|
+ billMappingList.addAll(getMappingResult_medicine(result, drugConfigMap, 1));
|
|
|
+ } else if (result.getBillItemTypeCode().equals(LexiconEnum.Operation.getKey())) {
|
|
|
+ billMappingList.addAll(getMappingResult(result, operationConfigMap, 1));
|
|
|
+ } else if (result.getBillItemTypeCode().equals(LexiconEnum.LisName.getKey())) {
|
|
|
+ billMappingList.addAll(getMappingResult_lis(result, lisConfigMap, 1));
|
|
|
+ } else if (result.getBillItemTypeCode().equals(LexiconEnum.PacsName.getKey())) {
|
|
|
+ billMappingList.addAll(getMappingResult(result, pacsConfigMap, 1));
|
|
|
+ } else if (result.getBillItemTypeCode().equals(LexiconEnum.PacsSubName.getKey())) {
|
|
|
+ billMappingList.addAll(getMappingResult(result, pacsConfigMap, 1));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //术语映射-禁忌项映射
|
|
|
+ for (ResultBill result : billMappingList) {
|
|
|
+ if (result.getConflictItemTypeCode().equals(LexiconEnum.Disease.getKey())) {
|
|
|
+ conflictMappingList.addAll(getMappingResult(result, diseaseConfigMap, 2));
|
|
|
+ } else if (result.getConflictItemTypeCode().equals(LexiconEnum.Medicine.getKey())) {
|
|
|
+ conflictMappingList.addAll(getMappingResult_medicine(result, drugConfigMap, 2));
|
|
|
+ } else if (result.getConflictItemTypeCode().equals(LexiconEnum.LisName.getKey())) {
|
|
|
+ conflictMappingList.addAll(getMappingResult_lis(result, lisConfigMap, 2));
|
|
|
+ } else if (result.getConflictItemTypeCode().equals(LexiconEnum.PacsName.getKey())) {
|
|
|
+ conflictMappingList.addAll(getMappingResult(result, pacsConfigMap, 2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return retList;
|
|
|
}
|
|
|
|
|
|
public void billTransfusion() {
|
|
@@ -39,4 +229,215 @@ public class MedRuleConvertFacade {
|
|
|
|
|
|
List<RuleDTO> list = klRuleFacade.getRules(ruleVO);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param result
|
|
|
+ * @param configMap
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<ResultBill> getMappingResult(ResultBill result,Map<String,Map<String,List<Long>>> configMap,Integer type) {
|
|
|
+ List<ResultBill> retList = Lists.newLinkedList();
|
|
|
+ if (configMap == null || configMap.size() == 0) {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getBillItemType() + ")映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getConflictItemType() + ")映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+ String keyName = "";
|
|
|
+ if (type.equals(1)) {
|
|
|
+ keyName = result.getBillItemName();
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ keyName = result.getConflictItemName();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> hisNames = configMap.containsKey(keyName)
|
|
|
+ ? new ArrayList<>(configMap.get(keyName).keySet())
|
|
|
+ : new ArrayList<>();
|
|
|
+ if (ListUtil.isNotEmpty(hisNames)) {
|
|
|
+ for (String hisName : hisNames) {
|
|
|
+ ResultBill bmResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(result, bmResult);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ bmResult.setBillItemHisName(hisName);
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ bmResult.setConflictItemHisName(hisName);
|
|
|
+ }
|
|
|
+ retList.add(bmResult);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getBillItemName() + "(" + result.getBillItemType() + ")缺少医院端映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getConflictItemName() + "(" + result.getConflictItemType() + ")缺少医院端映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ }
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param result
|
|
|
+ * @param configMap
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<ResultBill> getMappingResult_medicine(ResultBill result,Map<String,Map<String,Map<String,List<Long>>>> configMap,Integer type) {
|
|
|
+ List<ResultBill> retList = Lists.newLinkedList();
|
|
|
+ if (configMap == null || configMap.size() == 0) {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getBillItemType() + ")映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getConflictItemType() + ")映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+ String keyName = "";
|
|
|
+ if (type.equals(1)) {
|
|
|
+ keyName = result.getBillItemName();
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ keyName = result.getConflictItemName();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> hisNames = configMap.containsKey(keyName)
|
|
|
+ ? configMap.get(keyName).values().stream().map(i -> i.keySet()).flatMap(Collection::stream).distinct().collect(Collectors.toList())
|
|
|
+ : new ArrayList<>();
|
|
|
+ if (ListUtil.isNotEmpty(hisNames)) {
|
|
|
+ for (String hisName : hisNames) {
|
|
|
+ ResultBill bmResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(result, bmResult);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ bmResult.setBillItemHisName(hisName);
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ bmResult.setConflictItemHisName(hisName);
|
|
|
+ }
|
|
|
+ retList.add(bmResult);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getBillItemName() + "(" + result.getBillItemType() + ")缺少医院端映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getConflictItemName() + "(" + result.getConflictItemType() + ")缺少医院端映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ }
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param result
|
|
|
+ * @param configMap
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<ResultBill> getMappingResult_lis(ResultBill result,Map<String,Map<String,Map<String,List<Long>>>> configMap,Integer type) {
|
|
|
+ List<ResultBill> retList = Lists.newLinkedList();
|
|
|
+ if (configMap == null || configMap.size() == 0) {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getBillItemType() + ")映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + "请维护术语(" + result.getConflictItemType() + ")映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+ String keyName = "";
|
|
|
+ if (type.equals(1)) {
|
|
|
+ keyName = result.getBillItemName();
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ keyName = result.getConflictItemName();
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Map<String, List<Long>>> subConfigMap = configMap.get(keyName);
|
|
|
+ if (subConfigMap == null || subConfigMap.size() == 0) {
|
|
|
+ result.setSuccess(0);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getBillItemName() + "(" + result.getBillItemType() + ")缺少医院端映射;");
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ result.setMessage(result.getMessage() + result.getConflictItemName() + "(" + result.getConflictItemType() + ")缺少医院端映射;");
|
|
|
+ }
|
|
|
+ retList.add(result);
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (Map.Entry<String, Map<String, List<Long>>> subEntry : subConfigMap.entrySet()) {
|
|
|
+ subEntry.getValue().keySet().forEach(detailName -> {
|
|
|
+ ResultBill bmResult = new ResultBill();
|
|
|
+ BeanUtil.copyProperties(result, bmResult);
|
|
|
+ if (type.equals(1)) {
|
|
|
+ bmResult.setBillItemHisName(subEntry.getKey());
|
|
|
+ bmResult.setConflictItemHisDetailName(detailName);
|
|
|
+ } else if (type.equals(2)) {
|
|
|
+ bmResult.setConflictItemHisName(subEntry.getKey());
|
|
|
+ bmResult.setConflictItemHisDetailName(detailName);
|
|
|
+ }
|
|
|
+ retList.add(bmResult);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return retList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成随机数
|
|
|
+ *
|
|
|
+ * @param min
|
|
|
+ * @param max
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public BigDecimal random(BigDecimal min, BigDecimal max, Boolean minBoundary, Boolean maxBoundary) {
|
|
|
+ if (min == null) {
|
|
|
+ min = BigDecimal.ZERO;
|
|
|
+ }
|
|
|
+ if (max == null) {
|
|
|
+ max = min.add(BigDecimal.TEN);
|
|
|
+ }
|
|
|
+ BigDecimal randomVal = new BigDecimal(Math.random() * (max.doubleValue() - min.doubleValue()) + min.doubleValue());
|
|
|
+ BigDecimal random_dec = randomVal.setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //是否包含边界值
|
|
|
+ if (!minBoundary || maxBoundary) {
|
|
|
+ random_dec.add(new BigDecimal(0.01d));
|
|
|
+ }
|
|
|
+ return random_dec;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成随机-整数
|
|
|
+ *
|
|
|
+ * @param min
|
|
|
+ * @param max
|
|
|
+ * @param minBoundary
|
|
|
+ * @param maxBoundary
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Integer random_int(Integer min, Integer max, Boolean minBoundary, Boolean maxBoundary) {
|
|
|
+ if (min == null) {
|
|
|
+ min = 0;
|
|
|
+ }
|
|
|
+ if (max == null) {
|
|
|
+ max = min + 10;
|
|
|
+ }
|
|
|
+
|
|
|
+ Random random = new Random();
|
|
|
+ Integer random_int = random.nextInt(max - min) + min;
|
|
|
+
|
|
|
+ //是否包含边界值
|
|
|
+ if (!minBoundary || maxBoundary) {
|
|
|
+ random_int++;
|
|
|
+ }
|
|
|
+ return random_int;
|
|
|
+ }
|
|
|
}
|