From e395049f60b14ffbc89c98ad3d6f322d6878e6a7 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 01 十一月 2023 19:31:20 +0800 Subject: [PATCH] bug列表156(主数据数据更改时,数据版本规则未按照规则升版)bug修改,157(数据更改,第二次对数据进行更改时,报错的bug,业务逻辑存在问题) --- Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IRevisionRuleService.java | 8 ++ Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/RevisionRuleServiceImpl.java | 21 ++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 54 +++++++++++------ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java | 2 Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml | 9 +++ Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java | 13 ++++ Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java | 16 ++++- Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java | 2 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleFallback.java | 5 + 9 files changed, 104 insertions(+), 26 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java index 0faa41c..7d5aae0 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleClient.java @@ -47,6 +47,10 @@ */ String GET_BY_IDS = API_PREFIX + "/revision-rule/get-by-ids"; /** + * 鑻辨枃鍚嶇О鏌ヨ + */ + String GET_BY_ID = API_PREFIX + "/revision-rule/get-by-id"; + /** * 涓婚敭鎵归噺鏌ヨ */ String GET_BY_OIDS = API_PREFIX + "/revision-rule/get-by-oids"; @@ -91,4 +95,13 @@ */ @GetMapping(GET_BY_OIDS) R<List<RevisionRuleVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection); + + /** + * 鏍规嵁id鑾峰彇鐗堟湰瑙勫垯 + * @param id + * @return + */ + @GetMapping(GET_BY_ID) + R<RevisionRuleVO> selectById(@RequestParam("id") String id); + } diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleFallback.java index 68ab067..aa1ccb3 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleFallback.java +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IRevisionRuleFallback.java @@ -73,4 +73,9 @@ public R<List<RevisionRuleVO>> listBtmTypeByOidCollection(Collection<String> pkBtmTypeCollection) { return R.fail("鑾峰彇鏁版嵁澶辫触"); } + + @Override + public R<RevisionRuleVO> selectById(String id) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } } diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java index 4647cee..36562a7 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/revision/model/BaseModel.java @@ -96,7 +96,7 @@ private Date ts; /** - * 鎵�鏈夌潃 + * 鎵�鏈夎�� */ private String owner; diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java index 86c4727..03b4688 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/mapper/CommonsMapper.java @@ -62,6 +62,8 @@ */ Map<String,Object> getNextRevision(@Param("tableName")String tableName,@Param("nameoid") String nameoid); + Map<String,Object> getCurrentRevision(@Param("tableName")String tableName,@Param("nameoid") String nameoid); + // Integer updateByTaleAndOid(@Param("tableName")String tableName, @Param("nameoid") String nameoid, @Param("lcStatus") String lcStatus); } 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 68a43ff..140a5ab 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 @@ -135,6 +135,11 @@ */ @Resource IEnumClient enumClient; + /** + * 鐗堟湰瑙勫垯鏈嶅姟 + */ + @Resource + private IRevisionRuleClient revisionRuleClient; /** * 鍏紡鐨勬湇鍔� @@ -172,12 +177,7 @@ */ @Autowired private IBtmTypeClient btmTypeClient; - /** - * 鐗堟湰瑙勫垯鐨勬湇鍔� - */ - @Resource - private IRevisionRuleClient revisionRuleClient; -// + /** * 閫氱敤鏌ヨ */ @@ -433,9 +433,9 @@ checkEnumOnOrder(templateVO, orderDTO); //8.澶勭悊鏃堕棿鏍煎紡锛屽湪鏁版嵁搴撻噷闈笉璁烘槸瀛楃涓茶繕鏄棩鏈熸牸寮忥紝閮戒娇鐢ㄧ浉鍚岀殑鏍煎紡瀛樺偍 switchDateAttrOnOrder(templateVO, orderDTO); - //9.鐢熸垚缂栫爜鐨勪俊鎭� -// ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()); - BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()); + //9.鐢熸垚缂栫爜鐨勪俊鎭� 锛屽垵濮嬪寲涓氬姟绫诲瀷锛氱紦瀛樺厛鍙栨秷锛屽洜涓虹増鏈鍒欎細鍑虹幇鍙樺姩鐨勬儏鍐垫墍浠ユ棤娉曚娇鐢ㄧ紦瀛� + // BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()); + BaseModel cbo = createBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId().trim().toLowerCase()); //榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐� //璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭 copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false); @@ -1563,7 +1563,6 @@ conditionMap.put(queryKey, QueryOptionConstant.OR + queryValue); } } - /** * 鏌ヨ缂栫爜鏁版嵁鐨勫垪琛� @@ -2964,7 +2963,7 @@ wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true); R<List<Map<String, String>>> result = R.data(Collections.singletonList(cbo)); //鎴戜滑瑕佺湅鏄惁涓嶆槸鍗囩増鐨勶紝鍗囩増鐨勮瘽锛岄渶瑕佸姣斾笉鐩哥瓑鐨勫睘鎬� - String copy = cbo.get("copyfromversion"); +/* String copy = cbo.get("copyfromversion"); // if (StringUtils.isBlank(copy)) { // copy = cbo.getAttributeValue("copyfromversion"); // } @@ -2983,11 +2982,12 @@ Map<String, String> difFieldMap = new HashMap<>(); Map<String, String> finalOldData = oldData; cbo.forEach((key, value) -> { - String oldValue = finalOldData.getOrDefault(key, ""); - if (value == null) { + // 杩欏効oldmap涓殑鍏ㄦ槸澶у啓锛岃�宑bo涓殑鍏ㄦ槸灏忓啓鎵�浠ヤ細鎷夸笉鍒板彧锛岃繖鍎跨洿鎺ュ鐞嗘垚灏忓啓鎷夸笉鍒板氨鐢ㄥぇ鍐欐嬁 + String oldValue = String.valueOf(finalOldData.getOrDefault(key.toUpperCase(Locale.ROOT), finalOldData.getOrDefault(key, ""))); + if (value == null || value == "null") { value = ""; } - if (oldValue == null) { + if (oldValue == null || oldValue == "null") { oldValue = ""; } if (!value.equalsIgnoreCase(oldValue)) { @@ -2998,7 +2998,7 @@ difFieldList.add(difFieldMap); result.setData(difFieldList); } - } + }*/ return result; } @@ -4102,6 +4102,7 @@ toBo.setNameOid(fromBo.getNameOid()); toBo.setBtmname(fromBo.getBtmname()); toBo.setLastR(String.valueOf(1)); + // 鍗囩増灏咶irstR淇敼涓�0 toBo.setFirstR(String.valueOf(0)); toBo.setFirstV(String.valueOf(1)); toBo.setLastV(String.valueOf(1)); @@ -4112,13 +4113,28 @@ toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount())); toBo.setLastModifyTime(new Date()); toBo.setRevisionRule(fromBo.getRevisionRule()); - toBo.setVersionRule(fromBo.getVersionRule());R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname())); + toBo.setVersionRule(fromBo.getVersionRule()); + //鏌ヨ涓氬姟绫诲瀷淇℃伅锛屽彲浠ヨ幏鍙栧埌鐗堟湰瑙勫垯淇℃伅锛坮evisionRuleId锛� + 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()); + //Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid()); + /* + TODO:杩欐槸涓�涓緟鍚庢湡瀹屽杽鐨勫姛鑳斤紝鐩墠瀹炵幇鏂瑰紡鏄紝鍏堟煡璇㈠嚭褰撳墠鏁版嵁鐨勫ぇ鐗堟湰瑙勫垯锛� + 鐒跺悗鍐嶆煡璇笟鍔¤〃浣跨敤鐨勮鍒欑殑姝ラ暱鏄灏戠劧鍚庤绠楀嚭璇ュ崌鐗堜负澶氬皯 + */ + Map<String, Object> nextRevision = commonsMapper.getCurrentRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid()); + R<RevisionRuleVO> revisionRuleVOR = revisionRuleClient.selectById(listR.getData().get(0).getRevisionRuleId()); + String revisionval = nextRevision.get("REVISIONVAL").toString(); + // 鏈煡璇㈠埌鐗堟湰瑙勫垯锛岄粯璁ょ洿鎺ョ粰澶х増鏈姞涓� + if(!revisionRuleVOR.isSuccess() || Func.isEmpty(revisionRuleVOR.getData())){ + revisionval = String.valueOf((Integer.parseInt(revisionval)+1)); + }else { + revisionval = String.valueOf(Integer.parseInt(revisionval)+revisionRuleVOR.getData().getSerialStep()); + } + toBo.setRevisionValue(revisionval); + toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString())); toBo.setVersionSeq(Integer.valueOf(nextRevision.get("VERSIONSEQ").toString())); toBo.setVersionValue(nextRevision.get("VERSIONVAL").toString()); toBo.setLctid(fromBo.getLctid()); diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml index eb6db99..f557aba 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/resources/mapper/CommonsMapper.xml @@ -82,4 +82,13 @@ where nameoid = #{nameoid} </select> + <select id="getCurrentRevision" resultType="map" > + select max(revisionSeq) revisionSeq, + max(RevisionValue) revisionVal, + max(VersionSeq) VersionSeq, + max(VersionValue) VersionVal + from ${tableName} + where nameoid = #{nameoid} + </select> + </mapper> diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java index aeca2c2..434e040 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/RevisionRuleClient.java @@ -15,10 +15,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.BeanUtil; import org.springframework.cglib.beans.BeanMap; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.*; @@ -106,4 +103,15 @@ public R<List<RevisionRuleVO>> listBtmTypeByOidCollection(Collection<String> oidCollection) { return R.data(service.listRevisionRuleByOidCollection(oidCollection)); } + + /** + * 鏍规嵁id鑾峰彇鐗堟湰瑙勫垯 + * @param id + * @return + */ + @Override + public R<RevisionRuleVO> selectById(@RequestParam("id") String id) { + return R.data(service.getReversionRuleById(id)); + } + } diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IRevisionRuleService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IRevisionRuleService.java index b331197..7e5f848 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IRevisionRuleService.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IRevisionRuleService.java @@ -195,4 +195,12 @@ * @return 鎵ц缁撴灉 */ List<BtmTypeVO> getApplyRange(String id); + + /** + * 鏍规嵁id鑾峰彇鐗堟湰瑙勫垯 + * @param id + * @return + */ + RevisionRuleVO getReversionRuleById(String id); + } diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/RevisionRuleServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/RevisionRuleServiceImpl.java index 73b1f4b..2c098e3 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/RevisionRuleServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/RevisionRuleServiceImpl.java @@ -1,6 +1,7 @@ package com.vci.ubcs.omd.service.impl; import com.alibaba.cloud.commons.lang.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -34,6 +35,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.sql.Wrapper; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -510,7 +512,6 @@ return ""; } - /** * 鏇挎崲鍓嶇紑鍜屽悗缂� * @param ruleValue 褰撳墠鐗堟湰鐨勫�� @@ -537,7 +538,8 @@ /** * 鍒嗛〉鏌ヨ * - * @param baseQueryObject 鏌ヨ瀵硅薄 + * @param condition 鏌ヨ瀵硅薄 + * @param query 鍒嗛〉瀵硅薄 * @return 鏌ヨ缁撴灉 * @throws VciBaseException 鏌ヨ鍑洪敊鏃舵姏鍑哄紓甯� */ @@ -557,4 +559,19 @@ VciBaseUtil.alertNotNull(id,"鐗堟湰瑙勫垯鑻辨枃鍚嶇О"); return BtmTypeWrapper.build().listEntityVO(btmTypeMapper.selectList(Wrappers.<BtmType>query().lambda().eq(BtmType::getRevisionRuleId,id))); } + + /** + * 鏍规嵁id鑾峰彇鐗堟湰瑙勫垯 + * @param id + * @return + */ + @Override + public RevisionRuleVO getReversionRuleById(String id) { + LambdaQueryWrapper<RevisionRule> wrapper = Wrappers.<RevisionRule>query() + .lambda().eq(RevisionRule::getId, id) + .last("limit 1"); + RevisionRule revisionRule = baseMapper.selectOne(wrapper); + return RevisionRuleWrapper.build().entityVO(revisionRule); + } + } -- Gitblit v1.9.3