| | |
| | | * @return Sql语句 |
| | | */ |
| | | private String getConditionSql(String key, String value, Map<String/**参照的属性**/, String/**实际的属性**/> referFieldMap, Map<String, CodeClassifyTemplateAttrVO> attrVOMap,String btmType) { |
| | | /*if (!Func.hasEmpty(new Object[]{key,value}) && !key.endsWith("_ignore")) { |
| | | if (!Func.hasEmpty(new Object[]{key,value}) && !key.endsWith("_ignore")) { |
| | | if (key.endsWith("_like")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_like"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | //说明还是参照里面的,我们默认这种情况下都是字符串吧,因为参照的属性不一定用的平台的属性池里的,所以大部分情况下,显示的属性都是字符串吧 |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+"concat(" + value + ",%)" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%" + value + "%)" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+"concat(" + getStringValueInWhere(field, value, attrVOMap) + ",%)" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + "%)" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notequal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " != '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + " != " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " != " + getStringValueInWhere(field, value, attrVOMap); |
| | | } |
| | | } else if (key.endsWith("_likeleft")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeleft"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+value+")" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%"+value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+getStringValueInWhere(field, value, attrVOMap)+")" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_likeright")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeright"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat("+value+",%)" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + value + "%" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat("+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notlike")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notlike"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "concat(%,concat("+value+",%)" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "concat(%,concat"+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "%"+getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_ge")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_ge"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " >= '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + " >= " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " >= '" + getStringValueInWhere(value, field, attrVOMap) + "'" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_le")) { |
| | | //说明是<=的。我们需要先获取一下 |
| | | String field = UBCSSqlKeyword.getColumn(key, "_le"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " <= '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + " <= " + value + "" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " <= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " <= " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_gt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_gt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "> '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "> " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "> '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "> " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_lt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_lt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "< '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "< " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "< '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "< " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_datege")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datege"); |
| | |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | }else { |
| | | }else if(key.endsWith("_equal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_equal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; |
| | | return referFieldMap.get(field) + SPACE + "= " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap)+ "'" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } |
| | | *//*else { |
| | | }else { |
| | | if (referFieldMap.containsKey(key)) { |
| | | //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题, |
| | | String selectKey = referFieldMap.get(key); |
| | |
| | | } else { |
| | | return getSqlByValue(key, value, attrVOMap,btmType); |
| | | } |
| | | }*//* |
| | | } |
| | | } |
| | | return "";*/ |
| | | return ""; |
| | | |
| | | if (key.endsWith("_begin")) { |
| | | /*if (key.endsWith("_begin")) { |
| | | //说明是>=的。我们需要先获取一下 |
| | | String field = (key.substring(0, key.length() - 6).toLowerCase().trim()); |
| | | if (referFieldMap.containsKey(field)) { |
| | |
| | | } else { |
| | | return getSqlByValue(key, value, attrVOMap,btmType); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | } |
| | | |
| | |
| | | deleteBatchDTO.getCodeClassifyOid(), "主题库分类的主键"); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(deleteBatchDTO.getCodeClassifyOid()); |
| | | //找业务类型,然后使用主键去获取数据库里的数据 |
| | | Collection<String> oidCollection = null; |
| | | Collection<String> oidCollection = new ArrayList<>(); |
| | | for (Collection<String> strings : VciBaseUtil.switchCollectionForOracleIn(deleteBatchDTO.getOidList())) { |
| | | oidCollection.addAll(strings); |
| | | } |
| | | |
| | | List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection); |
| | | // List<ClientBusinessObject> cboList = new ArrayList<>(); |
| | | // oidCollection.stream().forEach(oids -> { |
| | | // Map<String, String> conditionMap = new HashMap<>(); |
| | | // List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection); |
| | | List<BaseModel> cboList = new ArrayList<>(); |
| | | oidCollection.stream().forEach(oids -> { |
| | | Map<String, String> conditionMap = new HashMap<>(); |
| | | // conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")"); |
| | | // List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap); |
| | | // cboList.addAll(cbos); |
| | | // }); |
| | | List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),oids); |
| | | // boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap); |
| | | cboList.addAll(cbos); |
| | | }); |
| | | if (CollectionUtils.isEmpty(cboList)) { |
| | | throw new VciBaseException("数据全部在系统中不存在"); |
| | | } |
| | | List<CodeWupin> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); |
| | | List<BaseModel> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(editCBOs)) { |
| | | CodeWupin cbo = editCBOs.get(0); |
| | | BaseModel cbo = editCBOs.get(0); |
| | | throw new VciBaseException("编码为{0}等共{1}条数据的状态不是[{2}],不允许删除", new String[]{cbo.getId(), String.valueOf(editCBOs.size()), CodeDefaultLC.EDITING.getText()}); |
| | | } |
| | | |
| | | //只能删除自己创建的数据 |
| | | String userId = AuthUtil.getUser().getUserName(); |
| | | for (CodeWupin clientBusinessObject : cboList) { |
| | | String userId = String.valueOf(AuthUtil.getUser().getUserId()); |
| | | for (BaseModel clientBusinessObject : cboList) { |
| | | String creator = clientBusinessObject.getCreator(); |
| | | if (!userId.equalsIgnoreCase(creator)) { |
| | | throw new VciBaseException("编码为" + clientBusinessObject.getId() + "的数据不是当前用户创建,不能删除!"); |
| | |
| | | // WebUtil.setPersistence(false); |
| | | // batchCBO.copyFromOther( |
| | | productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList()); |
| | | baseMapper.deleteBatchIds(cboList); |
| | | // baseMapper.deleteBatchIds(cboList); |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid())); |
| | | if (listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), |
| | | "'"+(StringUtils.join(cboList.stream().map(BaseModel::getOid).collect(Collectors.toSet()),"','"))+"'"); |
| | | // ); |
| | | // WebUtil.setPersistence(true); |
| | | // boService.persistenceBatch(batchCBO); |