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-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 35 insertions(+), 19 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 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());

--
Gitblit v1.9.3