yuxc
2023-08-01 edb1fca3ed219065caaaa79f4964d4d81402148d
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -425,6 +425,8 @@
//      //设置编码需要的默认属性的内容
        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());
@@ -740,7 +742,7 @@
                conditionMap.put(queryKey, queryValue);
            } else {
                //为空的时候不代表不校验,只是不去除相关的信息
                conditionMap.put("t." + attrId, value);
                conditionMap.put("t." + attrId, "'" +value+ "'");
            }
        }
    }
@@ -1409,7 +1411,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<>();
@@ -3287,7 +3298,7 @@
         throw new VciBaseException("传入业务类型未查询到相应字段信息,请检查!");
      }
      Set<String> existFild = allAttributeByBtmId.getData().getAttributes().stream().map(btmTypeAttributeVO -> {
         return btmTypeAttributeVO.getId();
         return btmTypeAttributeVO.getId().toLowerCase();
      }).collect(Collectors.toSet());
      //将bean转为map,mybatis统一处理
        List<Map<String, String>> maps = new ArrayList<>();
@@ -3374,7 +3385,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());
@@ -3384,16 +3395,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);
@@ -3406,7 +3417,7 @@
        bo.setId("");
        bo.setName("");
        bo.setDescription("");
        bo.setOwner(userName);
        bo.setOwner("1");
//      bo.setCheckinby(userName);
        bo.setCopyFromVersion("");
//      this.initTypeAttributeValue(bo,btmTypeVO);
@@ -3661,7 +3672,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);