dangsn
2023-08-02 54f35ae7866dac5c497372b68d03309c7eae9424
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -22,6 +22,9 @@
import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO;
import com.vci.ubcs.code.vo.pagemodel.UITablePageVO;
import com.vci.ubcs.code.vo.pagemodel.*;
import com.vci.ubcs.flow.core.entity.ProcessStageAttr;
import com.vci.ubcs.flow.core.feign.IMDMIFlowAttrClient;
import com.vci.ubcs.flow.core.vo.ProcessStageAttrVO;
import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant;
import com.vci.ubcs.omd.cache.EnumCache;
import com.vci.ubcs.omd.feign.*;
@@ -38,6 +41,7 @@
import com.vci.ubcs.starter.util.UBCSSqlKeyword;
import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
import com.vci.ubcs.starter.web.constant.RegExpConstant;
import com.vci.ubcs.starter.web.constant.VciSystemVarConstants;
import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
import com.vci.ubcs.starter.web.enumpck.UserSecretEnum;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
@@ -66,6 +70,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.beans.BeanInfo;
@@ -278,6 +283,11 @@
     * 替换字符
     */
    public static final String SPECIAL_CHAR = "VCI";
   /**
    * 主数据流程阶段服务
    */
   @Autowired
   private IMDMIFlowAttrClient imdmiFlowAttrClient;
//   @Autowired
//   private CodeOsbtmtypeMapper codeOsbtmtypeMapper;----
@@ -349,36 +359,32 @@
        if (baseModels.size() == 0) {
            throw new VciBaseException("未查询到相关数据。");
        }
        // 待完善
        List<BtmTypeVO> cboList = null;  // btmTypeClient.selectList(wrapper);
        //还需要修改allCode的生命周期
//      Map<String, String> conditionMap = new HashMap<>();
        QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>();
        allCodeWrapper.eq("createcodebtm", baseModelDTO.getBtmname());
        allCodeWrapper.in("createcodeoid", oids);
//      conditionMap.put("createcodeoid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
//      conditionMap.put("createcodebtm", baseModelDTO.getBtmname());
        List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);
//      List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap);
        // 回收需要业务数据删除
        List<CodeAllCode> codeCbos = codeAllCodeService.selectByWrapper(allCodeWrapper);// 回收需要业务数据删除
        if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) {
            R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname()));
            if (!listR.isSuccess() || listR.getData().size() == 0) {
                throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
            }
            commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()));
         // 直接删除,不给状态
         commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()));
         // commonsMapper.updateByTaleAndOid(listR.getData().get(0).getTableName(), VciBaseUtil.toInSql(baseModelDTO.getOid()),CodeDefaultLC.TASK_BACK.getValue());
        } else {
            for (BaseModel baseModel : baseModels) {
                baseModel.setLcStatus(baseModelDTO.getLcStatus());
            }
            updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
            // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus());
        }
         R r = updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels);
         if(!r.isSuccess()){
            throw new VciBaseException("更新数据出错,重试!"+r.getMsg());
         }
      }
        for (CodeAllCode codeCbo : codeCbos) {
            codeCbo.setLcStatus(baseModelDTO.getLcStatus());
        }
        codeAllCodeService.updateBatchById(codeCbos);
        // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus());
    }
    /**
@@ -417,10 +423,13 @@
//      //设置编码需要的默认属性的内容
        copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
      cbo.setOid(VciBaseUtil.getPk());
      cbo.setRevisionOid(VciBaseUtil.getPk());
      cbo.setNameOid(VciBaseUtil.getPk());
      cbo.setCreateTime(new Date());
      cbo.setLastModifyTime(new Date());
      cbo.setCreator(AuthUtil.getUser().getUserName());
      cbo.setLastModifier(AuthUtil.getUser().getUserName());
      cbo.setTenantId(AuthUtil.getTenantId());
//      //TODO:因为默认的属性都不拷贝,目前集团码叫name,并没有从DTO拷贝到cbo里。增加一个单独处理,以后再看要不要调整
        cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
//      //end -- modify by lihang @20220407
@@ -731,7 +740,7 @@
                conditionMap.put(queryKey, queryValue);
            } else {
                //为空的时候不代表不校验,只是不去除相关的信息
                conditionMap.put("t." + attrId, value);
                conditionMap.put("t." + attrId, "'" +value+ "'");
            }
        }
    }
@@ -908,7 +917,7 @@
//                  baseModels.stream().forEach(model-> {
                        try {
                            map = VciBaseUtil.convertBean2Map(cbo);
                            map = VciBaseUtil.convertBean2Map(cbo,null);
                        } catch (Exception e) {
                            throw new VciBaseException("类型转换错误:" + e.getMessage());
                        }
@@ -934,6 +943,26 @@
            }
        }
    }
   /**
    * 封装开关的内容,常用于导出
    * @param dataMap 数据的内容
    * @param templateVO 模板的显示
    */
   @Override
   public void wrapperBoolean(List<Map<String, String>> dataMap, CodeClassifyTemplateVO templateVO){
      List<String> booleanAttributes = templateVO.getAttributes().stream().filter(s -> VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(s.getAttributeDataType())).map(s -> s.getId().toLowerCase(Locale.ROOT)).collect(Collectors.toList());
      if(!CollectionUtils.isEmpty(booleanAttributes)){
         dataMap.stream().forEach(data -> {
            booleanAttributes.stream().forEach(attrId->{
               if(data.containsKey(attrId)){
                  String value = data.get(attrId);
                  data.put(attrId,BooleanEnum.TRUE.getValue().equalsIgnoreCase(value)?"是":"否");
               }
            });
         });
      }
   }
    @Override
    public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) {
@@ -1380,7 +1409,16 @@
    public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) {
        CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper);
//      List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
        List<Map<String, String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
      List<Map<String, String>> maps = null;
      try {
         maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage());
      }catch (Exception e){
         String errorMessage = e.getMessage();
         if (errorMessage.contains("无法解析的成员访问表达式")) {
            throw new ServiceException("缺少"+errorMessage.substring(errorMessage.indexOf("[t.") + 1, errorMessage.indexOf("]"))+"字段");
         }
         throw new ServiceException(e.getMessage());
      }
        DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
        List<Map<String, String>> dataList = new ArrayList<>();
@@ -1388,7 +1426,7 @@
            maps.stream().forEach(map -> {
                Map<String, String> data = new HashMap<>();
                for (String s : map.keySet()) {
                    data.put(s.toLowerCase(Locale.ROOT), String.valueOf(map.get(s)));
                    data.put(s.toLowerCase(Locale.ROOT), map.get(s)==null?null:String.valueOf(map.get(s)));
                }
//            map.forEach((key, value) -> {
//               data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value));
@@ -1995,7 +2033,7 @@
        }
        R<BtmTypeVO> r = btmTypeClient.getDefaultAttrByBtmId(btmType);
        List<BtmTypeAttributeVO> attributes = r.getData().getAttributes();
        if (r.getCode() != 200 || attributes.isEmpty()) {
        if (!r.isSuccess() || attributes.isEmpty()) {
            return false;
        }
        return attributes.stream().anyMatch(item -> item.getId().equals(selectKey));
@@ -2016,13 +2054,21 @@
            sql.append("t.");
        }
        if (value.startsWith(QueryOptionConstant.IN)) {
            sql.append(selectKey)
            if(value.startsWith(QueryOptionConstant.IN+"('") && value.endsWith("')")){
            sql.append(selectKey)
               .append(SPACE)
               .append("in")
               .append(SPACE)
               .append(value.replace(QueryOptionConstant.IN, ""));
         }else{
            sql.append(selectKey)
                    .append(SPACE)
                    .append("in")
                    .append(SPACE)
                    .append("(")
                    .append(value.replace(QueryOptionConstant.IN, ""))
                    .append(")");
         }
        } else if (value.startsWith(QueryOptionConstant.NOTIN)) {
            sql.append(selectKey)
                    .append(SPACE)
@@ -2311,7 +2357,7 @@
//         conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY)
            conditionMap.put("t." + CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " +
                    btmTypeClient.selectByIdCollection(Collections.singletonList(MdmBtmTypeConstant.CODE_CLASSIFY))
                    btmTypeClient.selectByIdCollection(Collections.singletonList("classify"))
                            .getData().get(0).getTableName() + " where lcstatus='" + FrameWorkDefaultValueConstant
                    .FRAMEWORK_DATA_ENABLED + "' start with parentCodeClassifyOid = '" + codeClassifyOid +
                    "' CONNECT BY PRIOR OID = parentCodeClassifyOid )");
@@ -2661,7 +2707,7 @@
        cbosB.stream().forEach(map -> {
            Map<String, String> data = new HashMap<>();
            for (Object o : map.keySet()) {
                data.put(((String) o).toLowerCase(Locale.ROOT), String.valueOf(map.get(o)));
                data.put(((String) o).toLowerCase(Locale.ROOT), map.get(o)==null?"":String.valueOf(map.get(o)));
            }
            cbos.add(data);
        });
@@ -2856,6 +2902,51 @@
        wrapperResemble(templateVO, uiInfoVO);
        return uiInfoVO;
    }
   /**
    * 使用分类的主键获取表格的定义-ubcs后修改获取流程阶段熟悉获取方法
    * @param codeClassifyOid
    * @param templateId
    * @param taskId
    * @param modelKey
    * @return
    */
   public MdmUIInfoVO getTableDefineByClassifyOid_v2(String codeClassifyOid,String templateId,String taskId,String modelKey) {
      MdmUIInfoVO uiInfoVO = new MdmUIInfoVO();
      CodeClassifyTemplateVO templateVO = getUsedTemplateByClassifyOid(codeClassifyOid);
      uiInfoVO.setTemplateVO(templateVO);
      UITableDefineVO uiTableDefineVO = wrapperTableDefineByTemplate(templateVO, true);
      R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
      List<ProcessStageAttrVO> stageAttrVOS = r.getData();
      List<String> attrList = new ArrayList<>();
      stageAttrVOS.stream().forEach(attr->{
         attrList.add(attr.getAttrId());
      });
      uiTableDefineVO.getCols().stream().forEach(list -> {
         List<UITableFieldVO> visiableTableField = new ArrayList<>();
         visiableTableField = list.stream().filter(col ->
            attrList.stream().anyMatch(s -> StringUtils.equalsIgnoreCase(col.getField(), s) ||
               (StringUtils.equalsIgnoreCase(col.getFieldType(), "combox") && StringUtils.equalsIgnoreCase(col.getSortField(), s))
               || (StringUtils.equalsIgnoreCase(col.getFieldType(), "refer") && StringUtils.equalsIgnoreCase(col.getQueryField(), s))
            )).collect(Collectors.toList());
         visiableTableField.stream().forEach(vo -> {
            uiTableDefineVO.setHasEditor(true);
            if ("refer".equalsIgnoreCase(vo.getFieldType())) {
               setReferConfig2EditConfig(vo);
            } else if ("combox".equalsIgnoreCase(vo.getFieldType())) {
               setComboxConfig2EditConfig(vo);
            } else if (StringUtils.isNotBlank(vo.getDateFormate())) {
               vo.setEdit("date");
            } else {
               vo.setEdit(vo.getFieldType());
            }
         });
      });
      uiInfoVO.setTableDefineVO(uiTableDefineVO);
      wrapperResemble(templateVO, uiInfoVO);
      return uiInfoVO;
   }
    /**
     * 模板属性转换为表格定义的信息
@@ -3122,6 +3213,33 @@
        }
        return uiInfoVO;
    }
    @Override
   public MdmUIInfoVO getFlowUIInfoByClassifyOid(String codeClassifyOid, String functionId,String templateId,String taskId,String modelKey){
//      MdmUIInfoVO uiInfoVO = getTableDefineByClassifyOid_v2(codeClassifyOid,templateId,taskId,modelKey);
      MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid));
      R<List<ProcessStageAttrVO>> r = imdmiFlowAttrClient.ssslist(templateId,modelKey,taskId);
      List<ProcessStageAttrVO> stageAttrVOS = r.getData();
      Set<String> attrSet = new HashSet<>();
      stageAttrVOS.stream().forEach(attr->{
         attrSet.add(attr.getAttrId());
      });
      try {
         UITableDefineVO tableDefineVO = uiInfoVO.getTableDefineVO();
         List<List<UITableFieldVO>> tableFieldVOs = tableDefineVO.getCols();
         List<UITableFieldVO> uiTableFieldVOS = tableFieldVOs.get(0);
         uiTableFieldVOS.stream().forEach(ui->{
//            if(!attrSet.contains(ui.getField())){
//               ui.setEdit(null);
//               ui.setEditConfig(null);
//            }
         });
      }catch (Exception e){
         throw new ServiceException("模板没有定义属性,读取表头失败!");
      }
      return uiInfoVO;
   }
    /**
     * 使用分类主键获取工具栏中的按钮信息
@@ -3172,11 +3290,19 @@
        if (!listR.isSuccess() || listR.getData().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
        }
        //将bean转为map,mybatis统一处理
      //获取当前业务类型所有字段用来做对比
      R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
      if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
         throw new VciBaseException("传入业务类型未查询到相应字段信息,请检查!");
      }
      Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
         return btmTypeAttributeVO.getId().toLowerCase();
      }).collect(Collectors.toSet());
      //将bean转为map,mybatis统一处理
        List<Map<String, String>> maps = new ArrayList<>();
        baseModels.stream().forEach(model -> {
            try {
                maps.add(VciBaseUtil.convertBean2Map(model));
                maps.add(VciBaseUtil.convertBean2Map(model,existFild));
            } catch (Exception e) {
                throw new VciBaseException("类型转换错误:" + e.toString());
            }
@@ -3226,14 +3352,18 @@
                                && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())) {
                            setter.invoke(obj, ((BigDecimal) map.get(property.getName().toUpperCase())).intValue());
                            map.remove(property.getName().toUpperCase());
                        } else if (map.get(property.getName().toUpperCase()) != null) {
                            setter.invoke(obj, map.get(property.getName().toUpperCase()));
                        } else if (map.containsKey(property.getName().toUpperCase())) {
                     if(setter.getParameterTypes()[0].getSimpleName().equals("String")){
                        setter.invoke(obj, map.get(property.getName().toUpperCase()) == null ? null:String.valueOf(map.get(property.getName().toUpperCase())));
                     }else{
                        setter.invoke(obj, map.get(property.getName().toUpperCase()));
                     }
                            map.remove(property.getName().toUpperCase());
                        }
                    }
                }
                for (Object key : map.keySet()) {
                    map.put(key, String.valueOf(map.get(key)));
                    map.put(key, map.get(key) == null ? null : String.valueOf(map.get(key)));
                }
                ((BaseModel) obj).setData(map);
@@ -3257,7 +3387,7 @@
        if (!listR.isSuccess() || listR.getData().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
        }
        String userName = String.valueOf(AuthUtil.getUser().getUserId());
//        String userName = String.valueOf(AuthUtil.getUser().getUserId());
        BaseModel bo = new BaseModel();
//      bo.setOid(VciBaseUtil.getPk());
//      bo.setRevisionid(VciBaseUtil.getPk());
@@ -3267,16 +3397,16 @@
        bo.setFirstR("1");
        bo.setFirstV("1");
        bo.setLastV("1");
        bo.setCreator(userName);
        bo.setCreateTime(new Date());
        bo.setLastModifier(userName);
        bo.setLastModifyTime(new Date());
        bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId());
        bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule()));
        bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"0":listR.getData().get(0).getVersionRule());
        if (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())) {
            R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient
                    .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId()));
            bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
                    .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId().toLowerCase()));
            if(revisionRuleVO.getData().size() != 0 ){
            bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode());
         }else{
            bo.setRevisionValue("1");
         }
        }
        bo.setRevisionSeq(1);
        bo.setVersionSeq(1);
@@ -3289,7 +3419,7 @@
        bo.setId("");
        bo.setName("");
        bo.setDescription("");
        bo.setOwner(userName);
        bo.setOwner("1");
//      bo.setCheckinby(userName);
        bo.setCopyFromVersion("");
//      this.initTypeAttributeValue(bo,btmTypeVO);
@@ -3327,12 +3457,20 @@
        if (!listR.isSuccess() || listR.getData().size() == 0) {
            throw new VciBaseException("传入业务类型未查询到相应表单,请检查!");
        }
      //获取当前业务类型所有字段用来做对比
      R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(btmType);
      if (!allAttributeByBtmId.isSuccess() || allAttributeByBtmId.getData().getAttributes().size() == 0) {
         throw new VciBaseException("传入业务类型未查询到相应字段信息,请检查!");
      }
      Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
         return btmTypeAttributeVO.getId();
      }).collect(Collectors.toSet());
        //将bean转为map,mybatis统一处理
        List<Map<String, String>> maps = new ArrayList<>();
        baseModels.stream().forEach(model -> {
            try {
                maps.add(VciBaseUtil.convertBean2Map(model));
                maps.add(VciBaseUtil.convertBean2Map(model,existFild));
            } catch (Exception e) {
                throw new VciBaseException("类型转换错误:" + e.getMessage());
            }
@@ -3358,7 +3496,7 @@
        //checkReferConfig(referConfigVO);
        //使用业务类型查询
        R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType());
        if (allAttributeByBtmId.getCode() != 200) {
        if (!allAttributeByBtmId.isSuccess()) {
            throw new ServiceException("业务类型feign接口调用错误!");
        }
        if (Func.isEmpty(allAttributeByBtmId.getData())) {
@@ -3380,7 +3518,7 @@
        }
        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referConfigVO.getReferType()));
        if (listR.getCode() != 200) {
        if (!listR.isSuccess()) {
            throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "业务类型feign接口调用错误!");
        }
        if (listR.getData().isEmpty()) {
@@ -3536,7 +3674,48 @@
        } else {
            if (StringUtils.isNotBlank(referConfigVO.getParentFieldName()) && StringUtils.isNotBlank(queryObject.getParentOid())) {
                queryObject.getConditionMap().put(referConfigVO.getParentFieldName(), queryObject.getParentOid());
            }
            //查询全部的信息
            String parentOidSql = "";
            if (StringUtils.isNotBlank(referConfigVO.getParentValue())) {
               String temp = referConfigVO.getParentValue();
               if (temp.startsWith(QueryOptionConstant.IN)) {
                  temp = temp.substring((QueryOptionConstant.IN).length()).trim();
                  parentOidSql = " in " + "('" + queryObject.getParentOid() + "')";
               } else if (temp.startsWith(QueryOptionConstant.NOTIN)) {
                  parentOidSql = " not in " + "('" + queryObject.getParentOid() + "')";
               } else if (temp.startsWith(QueryOptionConstant.NOTEQUAL)) {
                  temp = temp.substring((QueryOptionConstant.NOTEQUAL).length()).trim();
                  parentOidSql = QueryOptionConstant.NOTEQUAL + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               } else if (temp.startsWith(QueryOptionConstant.MORETHAN)) {
                  temp = temp.substring((QueryOptionConstant.MORETHAN).length()).trim();
                  parentOidSql = QueryOptionConstant.MORETHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               } else if (temp.startsWith(QueryOptionConstant.MORE)) {
                  temp = temp.substring((QueryOptionConstant.MORE).length()).trim();
                  parentOidSql = QueryOptionConstant.MORE + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               } else if (temp.startsWith(QueryOptionConstant.LESSTHAN)) {
                  temp = temp.substring((QueryOptionConstant.LESSTHAN).length()).trim();
                  parentOidSql = QueryOptionConstant.LESSTHAN + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               } else if (temp.startsWith(QueryOptionConstant.LESS)) {
                  temp = temp.substring((QueryOptionConstant.LESS).length()).trim();
                  parentOidSql = QueryOptionConstant.LESS + " " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               } else if (temp.startsWith(QueryOptionConstant.ISNOTNULL)) {
                  parentOidSql = " is not null";
               } else if (temp.startsWith(QueryOptionConstant.ISNULL)) {
                  parentOidSql = " is  null";
               } else if (temp.contains("*")) {
                  parentOidSql = " like " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'").replace("*", "%");
               } else {
                  parentOidSql = " = " + ((temp.startsWith("'") && temp.endsWith("'")) ? temp : "'" + temp + "'");
               }
            }
            //查询全部的信息
            queryObject.getConditionMap().put("oid", QueryOptionConstant.IN + "(select oid from " +
               getTableName(referConfigVO.getReferType()) +
               " START WITH " + referConfigVO.getParentFieldName() + " " +
               parentOidSql +
               " CONNECT BY PRIOR " + oidFieldName + " = " + referConfigVO.getParentFieldName() + ")");
         }
        }
        LambdaQueryWrapper<CodeClassify> lqw = new LambdaQueryWrapper<>();
        String sql = queryObject.getConditionMap().get("oid").substring(3);