From 54f35ae7866dac5c497372b68d03309c7eae9424 Mon Sep 17 00:00:00 2001 From: dangsn <dangsn@chicecm.com> Date: 星期三, 02 八月 2023 18:15:07 +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 | 85 ++++++++++++++++++++++++++++++++---------- 1 files changed, 64 insertions(+), 21 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 805f22c..e6df324 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 @@ -360,15 +360,10 @@ throw new VciBaseException("鏈煡璇㈠埌鐩稿叧鏁版嵁銆�"); } //杩橀渶瑕佷慨鏀筧llCode鐨勭敓鍛藉懆鏈� -// 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) { @@ -381,8 +376,11 @@ for (BaseModel baseModel : baseModels) { baseModel.setLcStatus(baseModelDTO.getLcStatus()); } - updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels); - } + R r = updateBatchByBaseModel(baseModelDTO.getBtmname(), baseModels); + if(!r.isSuccess()){ + throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg()); + } + } for (CodeAllCode codeCbo : codeCbos) { codeCbo.setLcStatus(baseModelDTO.getLcStatus()); } @@ -425,6 +423,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()); @@ -2357,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 )"); @@ -2707,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); }); @@ -3352,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); @@ -3383,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()); @@ -3393,17 +3397,15 @@ 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().toLowerCase())); if(revisionRuleVO.getData().size() != 0 ){ bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode()); + }else{ + bo.setRevisionValue("1"); } } bo.setRevisionSeq(1); @@ -3417,7 +3419,7 @@ bo.setId(""); bo.setName(""); bo.setDescription(""); - bo.setOwner(userName); + bo.setOwner("1"); // bo.setCheckinby(userName); bo.setCopyFromVersion(""); // this.initTypeAttributeValue(bo,btmTypeVO); @@ -3672,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); -- Gitblit v1.9.3