From 2024d0f570d9da956e792746992852749c06227c Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期二, 11 七月 2023 14:30:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 170 +++++++++++++++++++++++++++++++++----------------------- 1 files changed, 101 insertions(+), 69 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 55fac7f..d7b784b 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -3,9 +3,9 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; @@ -55,6 +55,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; @@ -362,6 +363,9 @@ // 鍥炴敹闇�瑕佷笟鍔℃暟鎹垹闄� 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())); } else { for (BaseModel baseModel : baseModels) { @@ -643,6 +647,9 @@ // final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " t where 1 = 1 "}; R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getTopClassifyVO().getBtmtypeid())); // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); + if (!listR.isSuccess() || listR.getData().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } final String[] sql = {"select count(*) from " + listR.getData().get(0).getTableName() + " t where 1 = 1 "}; conditionMap.forEach((key, value) -> { sql[0] += " and " + key + " = " + value; @@ -1218,7 +1225,8 @@ fieldVO.setTemplet(attrVO.getTableDisplayJs()); } if (StringUtils.isBlank(fieldVO.getTemplet()) && VciFieldTypeEnum.VTBoolean.name().equalsIgnoreCase(attrVO.getAttributeDataType())) { - fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}"); + fieldVO.setTemplet("function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'鏄�':'鍚�'}"); +// fieldVO.setTemplet("function(d){return $webUtil.formateBoolean(d." + fieldVO.getField() + ");}"); } fieldVO.setOptionJsMap(eventJsMap); fieldVO.setStyle(attrVO.getTableDisplayStyle()); @@ -1577,7 +1585,7 @@ List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter( s -> StringUtils.isNotBlank(s.getReferBtmId()) || StringUtils.isNotBlank(s.getReferConfig()) ).collect(Collectors.toList()); - Map<String/**鍙傜収鐨勫睘鎬�**/, String/**瀹為檯鐨勫瓧娈�**/> referFieldMap = new HashMap<>(); + Map<String/**鍙傜収鐨勫睘鎬�**/, String/**瀹為檯鐨勫瓧娈�**/> referFieldMap = new ConcurrentHashMap<>(); if (!CollectionUtils.isEmpty(referAttrVOs)) { referAttrVOs.parallelStream().forEach(attrVO -> { UIFormReferVO referVO = null; @@ -1592,6 +1600,9 @@ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referVO.getReferType())); // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); + if (!listR.isSuccess() || listR.getData().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } String referTable = listR.getData().get(0).getTableName(); // String referTable = "pl_code_classify"; String referTableNick = attrVO.getId() + "0"; @@ -1610,11 +1621,7 @@ }); } R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getDefaultAttrByBtmId(btmType); -// Optional.ofNullable(allAttributeByBtmId.getData()).orElseGet(allAttributeByBtmId.getData().getAttributes()).stream().forEach(attrId -> { -// if (!selectFieldList.contains(attrId.getOid()) && !"secretgrade".equalsIgnoreCase(attrId.getOid())) { -// selectFieldList.add(attrId.getOid()); -// } -// }); + if (allAttributeByBtmId.getData() != null) { for (BtmTypeAttributeVO attribute : allAttributeByBtmId.getData().getAttributes()) { if (!selectFieldList.contains(attribute.getId()) && !"secretgrade".equalsIgnoreCase(attribute.getId())) { @@ -1692,6 +1699,9 @@ } // String tableName = VciBaseUtil.getTableName(btmType); R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); + if (!listR.isSuccess() || listR.getData().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); String tableName = listR.getData().get(0).getTableName(); String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(",")) @@ -1861,13 +1871,13 @@ return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE; } } else { - if (referFieldMap.containsKey(key)) { - //璇存槑鏄弬鐓х殑锛屾垜浠弬鐓х殑鏌ヨ閮借涓烘槸瀛楃涓诧紝濡傛灉鏄椂闂存牸寮忕殑鏌ヨ鑲畾鏈夐棶棰橈紝 - String selectKey = referFieldMap.get(key); - return getSqlByValue(selectKey, value, null, btmType); - } else { - return getSqlByValue(key, value, attrVOMap, btmType); - } +// if (referFieldMap.containsKey(key)) { +// //璇存槑鏄弬鐓х殑锛屾垜浠弬鐓х殑鏌ヨ閮借涓烘槸瀛楃涓诧紝濡傛灉鏄椂闂存牸寮忕殑鏌ヨ鑲畾鏈夐棶棰橈紝 +// String selectKey = referFieldMap.get(key); +// return getSqlByValue(selectKey, value, null, btmType); +// } else { + return getSqlByValue(key, value, attrVOMap, btmType); +// } } } return ""; @@ -1921,7 +1931,7 @@ } if (field.contains(".") && attrVOMap != null && attrVOMap.containsKey(field.split("\\.")[0].toLowerCase(Locale.ROOT))) { //鏄弬鐓� - return value; + return "'" + value + "'"; } else { return value; } @@ -1945,13 +1955,13 @@ || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) { return value; } else { - return value; + return "'" + value + "'"; } } else { if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) { return value; } - return value; + return "'" + value + "'"; } } @@ -2075,9 +2085,7 @@ .append(SPACE) .append(QueryOptionConstant.EQUAL) .append(SPACE) - //.append("'") .append(value); - // .append("'"); } sql.append(SPACE); return sql.toString(); @@ -2232,7 +2240,7 @@ // baseMapper.deleteBatchIds(cboList); //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid())); - if (listR.getData().size() == 0) { + if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), @@ -2438,27 +2446,27 @@ */ @Override public R markDataPassing(String oid, String btmName, Boolean pass) { - VciBaseUtil.alertNotNull(oid, "涓氬姟鏁版嵁涓婚敭", btmName, "涓氬姟绫诲瀷", pass, "鏍囪绫诲瀷"); - boolean flag = true; - try { - List<BaseModel> datas = selectByTypeAndOid(btmName, oid); - if (datas.size() == 0) { - return R.fail(DATA_OID_NOT_EXIST); - } - datas.stream().forEach(data->data.getData().put("PASSING",String.valueOf(pass))); - R r = updateBatchByBaseModel(btmName, datas); - if(!r.isSuccess()){ - flag = false; - } - } catch (Exception e) { - flag = false; - e.printStackTrace(); - } - if (flag) { - return R.success("鏍囪鎴愬姛锛�"); - } else { - return R.fail("鏍囪澶辫触锛�"); - } + VciBaseUtil.alertNotNull(oid, "涓氬姟鏁版嵁涓婚敭", btmName, "涓氬姟绫诲瀷", pass, "鏍囪绫诲瀷"); + boolean flag = true; + try { + List<BaseModel> datas = selectByTypeAndOid(btmName, oid); + if (datas.size() == 0) { + return R.fail(DATA_OID_NOT_EXIST); + } + datas.stream().forEach(data -> data.getData().put("PASSING", String.valueOf(pass))); + R r = updateBatchByBaseModel(btmName, datas); + if (!r.isSuccess()) { + flag = false; + } + } catch (Exception e) { + flag = false; + e.printStackTrace(); + } + if (flag) { + return R.success("鏍囪鎴愬姛锛�"); + } else { + return R.fail("鏍囪澶辫触锛�"); + } } /** @@ -2770,18 +2778,18 @@ } List<String> oidList = VciBaseUtil.str2List(conditionMap.get("oid")); - List<BaseModel> cbos = selectByTypeAndOid(btmType,conditionMap.get("oid")); + List<BaseModel> cbos = selectByTypeAndOid(btmType, conditionMap.get("oid")); if (CollectionUtils.isEmpty(cbos)) { throw new VciBaseException("鏈壘鍒颁笟鍔℃暟鎹�"); } - BaseModel cbo = cbos.get(0); + BaseModel cbo = cbos.get(0); String templateOid = cbo.getData().get("CODETEMPLATEOID"); QueryWrapper<CodeClassifyTemplate> codeClassifyTemplateWrapper = new QueryWrapper<>(); codeClassifyTemplateWrapper.eq("oid", templateOid); List<CodeClassifyTemplate> templateDOList = templateService.list(codeClassifyTemplateWrapper); - QueryWrapper<CodeClassifyTemplateAttr> codeClassifyTemplateAttrWrapper = new QueryWrapper<>(); + QueryWrapper<CodeClassifyTemplateAttr> codeClassifyTemplateAttrWrapper = new QueryWrapper<>(); codeClassifyTemplateAttrWrapper.eq("CLASSIFYTEMPLATEOID", templateOid); List<CodeClassifyTemplateAttr> attrDOList = codeClassifyTemplateAttrService.list(codeClassifyTemplateAttrWrapper); @@ -3097,12 +3105,12 @@ uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0); if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) { List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData(); -// List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId); -// if (operationVOS == null) { -// operationVOS = new ArrayList<>(); -// } -// //鏌ヨ鎵╁睍鎸夐挳 -// List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid); + // List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId); + // if (operationVOS == null) { + // operationVOS = new ArrayList<>(); + // } + // //鏌ヨ鎵╁睍鎸夐挳 + // List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid); List<SmOperationVO> operationVOS = new ArrayList<>(); if (!CollectionUtils.isEmpty(buttonVOS)) { for (int i = 0; i < buttonVOS.size(); i++) { @@ -3169,7 +3177,7 @@ public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) { //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); - if (listR.getData().size() == 0) { + if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } //灏哹ean杞负map,mybatis缁熶竴澶勭悊 @@ -3196,7 +3204,7 @@ //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); - if (listR.getData().size() == 0) { + if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } //鏌ヨ鏁版嵁 @@ -3254,6 +3262,9 @@ */ public BaseModel createBaseModel(String boName) { R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName)); + if (!listR.isSuccess() || listR.getData().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } String userName = String.valueOf(AuthUtil.getUser().getUserId()); BaseModel bo = new BaseModel(); // bo.setOid(VciBaseUtil.getPk()); @@ -3321,7 +3332,7 @@ public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) { //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃 R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); - if (listR.getData().size() == 0) { + if (!listR.isSuccess() || listR.getData().size() == 0) { throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } //灏哹ean杞负map,mybatis缁熶竴澶勭悊 @@ -3351,10 +3362,16 @@ * @return 鍒楄〃鏁版嵁 */ @Override - public Page<BaseModel>referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) { -// checkReferConfig(referConfigVO); + public IPage<BaseModel> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) throws VciBaseException { + //checkReferConfig(referConfigVO); //浣跨敤涓氬姟绫诲瀷鏌ヨ R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType()); + if (allAttributeByBtmId.getCode() != 200) { + throw new ServiceException("涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�"); + } + if (Func.isEmpty(allAttributeByBtmId.getData())) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } BtmTypeVO btmTypeVO = allAttributeByBtmId.getData(); /** * 鍔犱笂鏌ヨ鏈�鏂扮増娆� @@ -3369,9 +3386,13 @@ BtmTypeLcStatusConstant.RELEASE_LIFE_CYCLE.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) { baseQueryObject.getConditionMap().put(VciQueryWrapperForDO.LC_STATUS_FIELD, CodeDefaultLC.RELEASED.getValue()); } + R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referConfigVO.getReferType())); - if (listR.getData().size() == 0) { - throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + if (listR.getCode() != 200) { + throw new ServiceException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "涓氬姟绫诲瀷feign鎺ュ彛璋冪敤閿欒锛�"); + } + if (listR.getData().isEmpty()) { + throw new VciBaseException(Func.isNotBlank(listR.getMsg()) ? listR.getMsg() : "浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); } String namesql = ""; if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("name"))) { @@ -3389,15 +3410,20 @@ String lcstatusSql = ""; if (StringUtils.isNotBlank(baseQueryObject.getConditionMap().get("lcstatus"))) { - lcstatusSql = "and lcstatus =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lcstatus")); + lcstatusSql = "lcstatus =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lcstatus")); } +// String where = ""; + +// if (StringUtils.isNotBlank(codesql) || StringUtils.isNotBlank(lcstatusSql) || StringUtils.isNotBlank(namesql)) { +// where = "where "; +// } String num1 = baseQueryObject.getPage() * baseQueryObject.getLimit() + ""; String num2 = ((baseQueryObject.getPage()) - 1) * baseQueryObject.getLimit() + 1 + ""; - List<Map> maps = commonsMapper.selectBySql("select * from ( select rownum rn, t.* from (select * from " + listR.getData().get(0).getTableName() - + " where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString()) - + "and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString()) + List<Map> maps = commonsMapper.selectBySql("select * from ( select rownum rn, t.* from (select * from " + listR.getData().get(0).getTableName() + SPACE + + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString()) + + " and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1" + lcstatusSql + namesql + codesql + ") t where rownum <=" + num1 + ") where rn >=" + num2 ); List<BaseModel> baseModels = new ArrayList<>(); @@ -3439,15 +3465,18 @@ } catch (Exception e) { throw new VciBaseException("鏌ヨ澶辫触锛�" + e.getMessage()); } - int total = commonsMapper.queryCountBySql("select count(*) from " + listR.getData().get(0).getTableName() - + " where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString()) - + "and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString()) + int total = commonsMapper.queryCountBySql("select count(*) from " + listR.getData().get(0).getTableName() + SPACE + + (StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId()) ? (" where lastr = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastr").toString()) + + "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1" + lcstatusSql + namesql + codesql ); - Page<BaseModel>page=new Page<>(); - page.setRecords(baseModels); - page.setTotal(total); - return page; + IPage<BaseModel> objectDataGrid = new Page<>(); + objectDataGrid.setPages(baseQueryObject.getPage()); + objectDataGrid.setCurrent(baseQueryObject.getPage()); + objectDataGrid.setRecords(baseModels); + objectDataGrid.setSize(baseQueryObject.getLimit()); + objectDataGrid.setTotal(total); + return objectDataGrid; } /** @@ -3575,6 +3604,9 @@ toBo.setVersionRule(fromBo.getVersionRule()); // RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal); R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname())); + if (!listR.isSuccess() || listR.getData().size() == 0) { + throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒"); + } Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid()); toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString())); toBo.setRevisionValue(nextRevision.get("REVISIONVAL").toString()); -- Gitblit v1.9.3