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