From 2871cb99e018f6bf9e2ef76a424a1429a7c818f0 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期四, 13 七月 2023 11:40: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 |  139 ++++++++++++++++++----------------------------
 1 files changed, 54 insertions(+), 85 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 d7b784b..641216d 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
@@ -412,10 +412,15 @@
         switchDateAttrOnOrder(templateVO, orderDTO);
         //9.鐢熸垚缂栫爜鐨勪俊鎭�
 //		ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
-        BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid());
+        BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmTypeId());
 //		//榛樿鐨勫睘鎬ч兘涓嶇敤浠庡墠绔嫹璐�
 //		//璁剧疆缂栫爜闇�瑕佺殑榛樿灞炴�х殑鍐呭
         copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false);
+		cbo.setOid(VciBaseUtil.getPk());
+		cbo.setCreateTime(new Date());
+		cbo.setLastModifyTime(new Date());
+		cbo.setCreator(AuthUtil.getUser().getUserName());
+		cbo.setLastModifier(AuthUtil.getUser().getUserName());
 //		//TODO:鍥犱负榛樿鐨勫睘鎬ч兘涓嶆嫹璐濓紝鐩墠闆嗗洟鐮佸彨name锛屽苟娌℃湁浠嶥TO鎷疯礉鍒癱bo閲屻�傚鍔犱竴涓崟鐙鐞嗭紝浠ュ悗鍐嶇湅瑕佷笉瑕佽皟鏁�
         cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName());
 //		//end -- modify by lihang @20220407
@@ -645,7 +650,7 @@
 
         if (!CollectionUtils.isEmpty(conditionMap)) {
 //			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()));
+            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("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
@@ -799,35 +804,27 @@
 //		BeanUtils.
 //		BeanUtils.copyProperties(orderDTO.getData(),cbo);
 //		cbo.setMaterialtype(Short.valueOf("1001"));
-//		orderDTO.getData().forEach((key, value) -> {
-//			if (!edit || (!checkUnAttrUnEdit(key) &&
-//				!VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
-//				try {
-//					cbo.setAttributeValue(key, value);
-//				} catch (Exception e) {
-//					logger.error("璁剧疆灞炴�х殑鍊奸敊璇�", e);
-//				}
-//			}
-//		});
+		orderDTO.getData().forEach((key, value) -> {
+			if (!edit || (!checkUnAttrUnEdit(key) &&
+				!VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(key))) {
+				try {
+					cbo.getData().put(cbo.getData().containsKey(key.toUpperCase())?key.toUpperCase():key, value);
+				} catch (Exception e) {
+					logger.error("璁剧疆灞炴�х殑鍊奸敊璇�", e);
+				}
+			}
+		});
 //		BeanMap beanMap = BeanMap.create(cbo);
 //		beanMap.putAll(orderDTO.getData());
 
         try {
-
-            BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(BaseModel.class, orderDTO.getData()), cbo);
-            Map<String, String> data = new HashMap<>();
-            data.put(CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
-            data.put(CODE_TEMPLATE_OID_FIELD, templateVO.getOid());
-            data.put(CODE_FULL_PATH_FILED, fullPath);
-            cbo.setData(data);
-            cbo.setOid(VciBaseUtil.getPk());
-            cbo.setCreateTime(new Date());
+			Map<String, String> data = new HashMap<>();
+            data.put(cbo.getData().containsKey(CODE_CLASSIFY_OID_FIELD.toUpperCase())?CODE_CLASSIFY_OID_FIELD.toUpperCase():CODE_CLASSIFY_OID_FIELD, classifyFullInfo.getCurrentClassifyVO().getOid());
+            data.put(cbo.getData().containsKey(CODE_TEMPLATE_OID_FIELD.toUpperCase())?CODE_TEMPLATE_OID_FIELD.toUpperCase():CODE_TEMPLATE_OID_FIELD, templateVO.getOid());
+            data.put(cbo.getData().containsKey(CODE_FULL_PATH_FILED.toUpperCase())?CODE_FULL_PATH_FILED.toUpperCase():CODE_FULL_PATH_FILED, fullPath);
+            cbo.getData().putAll(data);
             cbo.setLastModifyTime(new Date());
-            cbo.setCreator(AuthUtil.getUser().getUserName());
             cbo.setLastModifier(AuthUtil.getUser().getUserName());
-//			cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid());
-//			cbo.setTemplateOid(templateVO.getOid());
-//			cbo.setCodeclsfpath(fullPath);
             cbo.setTs(new Date());
             if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) {
                 //TODO 鍏堝啓鍥哄畾锛屽悗闈㈢敓鍛藉懆鏈熷ソ浜嗗湪缂栧啓
@@ -1278,7 +1275,7 @@
             conditionMap.putAll(andConditionMap);
             PageHelper pageHelper = new PageHelper(-1);
             pageHelper.addDefaultDesc("id");
-            return queryGrid(fullInfoBO.getTopClassifyVO().getBtmtypeid(), templateVO, conditionMap, pageHelper);
+            return queryGrid(fullInfoBO.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, pageHelper);
         }
         return new DataGrid<>();
     }
@@ -1299,11 +1296,11 @@
             //璇存槑宸茬粡瀛樺湪
             return resembleRuleService.getObjectByOid(currentClassifyVO.getCodeResembleRuleOid());
         }
-        if (StringUtils.isBlank(currentClassifyVO.getParentcodeclassifyoid())) {
+        if (StringUtils.isBlank(currentClassifyVO.getParentCodeClassifyOid())) {
             return null;
         }
         Map<String, CodeClassifyVO> classifyVOMap = fullInfoBO.getParentClassifyVOs().stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
-        return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentcodeclassifyoid(), null));
+        return getUseResembleRule(fullInfoBO, classifyVOMap.getOrDefault(currentClassifyVO.getParentCodeClassifyOid(), null));
     }
 
     /**
@@ -2103,22 +2100,15 @@
 //		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
         //鎵句笟鍔$被鍨嬶紝鐒跺悗浣跨敤涓婚敭鍘昏幏鍙栨暟鎹簱閲岀殑鏁版嵁
-        List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), orderDTO.getOid());
+        List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), orderDTO.getOid());
 
         if (CollectionUtils.isEmpty(cbos)) {
             throw new VciBaseException(DATA_OID_NOT_EXIST);
         }
-//		QueryWrapper<CodeWupin> btmWrapper = new QueryWrapper<>();
-//		btmWrapper.eq("OID",orderDTO.getOid());
-//		CodeWupin cbo = codeWupinMapper.selectOne(btmWrapper);
         BaseModel cbo = cbos.get(0);
-//		CodeClstemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
-//		CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid());
-
-        if (cbo != null) {
+        if (cbo == null) {
             throw new VciBaseException(DATA_OID_NOT_EXIST);
         }
-//		ClientBusinessObject cbo = cbos.get(0);
         if (!cbo.getTs().toString().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) {
             throw new VciBaseException("鏁版嵁涓嶆槸鏈�鏂扮殑锛屽彲鑳戒粬浜哄凡缁忎慨鏀癸紝璇峰埛鏂板悗鍐嶈瘯");
         }
@@ -2128,9 +2118,16 @@
 
         //娉ㄦ剰妯℃澘涓嶈兘浣跨敤鏁版嵁瀛樺偍鐨勬椂鍊欑殑妯℃澘锛屽洜涓哄彲鑳戒細鍙樺寲
 
-        //1. 鍒ゆ柇蹇呰緭椤�
+		String codeClassifyOid=cbo.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase());
+		orderDTO.setCodeClassifyOid(codeClassifyOid);
+//		CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
+//		CodeClassifyTemplateVO templateVO= this.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid());
+
+
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
-        checkRequiredAttrOnOrder(templateVO, orderDTO);
+		orderDTO.setTemplateOid(templateVO.getOid());
+		//1. 鍒ゆ柇蹇呰緭椤�
+		checkRequiredAttrOnOrder(templateVO, orderDTO);
         //2.鍏堟敞鍏ワ紝鍐嶇粍鍚堬紝鏈�鍚庢牎楠�
         switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO);
         //3.澶勭悊缁勫悎瑙勫垯銆傜粍鍚堣鍒欎笉鑳戒娇鐢ㄧ紪鐮佺殑灞炴�э紝鍥犱负缂栫爜鐨勭敓鎴愬彲鑳芥槸闇�瑕佸睘鎬х殑
@@ -2147,46 +2144,18 @@
         copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true);
         //浼佷笟鐮佸拰闆嗗洟鐮佺殑涓嶄慨鏀�
         cbo.setDescription(orderDTO.getDescription());
-        cbo.setName(orderDTO.getName());
+//        cbo.setName(orderDTO.getName());
         try {
             cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription()) ? "" : orderDTO.getDescription());
             cbo.setName(orderDTO.getName());
-////			cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription());
-//			cbo.setAttributeValue("name", orderDTO.getName());
         } catch (Exception e) {
             e.printStackTrace();
         }
+//		cbo.getData().putAll(orderDTO.getData());
         cbo.setLastModifyTime(new Date());
         cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId()));
-        updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), Collections.singletonList(cbo));
-//		codeWupinMapper.updateById(cbo);
-//
-//		List<CodeWupinEntity> cboList = new ArrayList<>();
-//
-//		//澶囨敞
-//		cbo.setDescription(orderDTO.getDescription());
-//		cboList.add(cbo);
-////
-////		cboList.add(cbo);
-//		List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(),cboList);
-//
-//
-//		List<String> charList = new ArrayList<>();
-//		for (CodeWupinEntity wupinEntity : cboList) {
-//			charList.add(wupinEntity.getId());
-//		}
-//		batchSaveSelectChar(templateVO, charList);
-//		return codeList.size() > 0 ? codeList.get(0) : "";
-
-
-        //淇敼鐨勬椂鍊欙紝缂栫爜鏄笉鍙樼殑
-//		BatchCBO batchCBO = new BatchCBO();
-//		batchCBO.getUpdateCbos().add(cbo);
-//		List<ClientBusinessObject> cboList = new ArrayList<>();
-//		cboList.add(cbo);
-//		boService.persistenceBatch(batchCBO);
+        updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), Collections.singletonList(cbo));
         batchSaveSelectChar(templateVO, Collections.singletonList(cbo));
-//		batchSaveSelectChar(templateVO, Arrays.asList(cbo.getId()));
     }
 
     /**
@@ -2210,7 +2179,7 @@
         oidCollection.stream().forEach(oids -> {
             Map<String, String> conditionMap = new HashMap<>();
 //			conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")");
-            List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), oids);
+            List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), oids);
 //				boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap);
             cboList.addAll(cbos);
         });
@@ -2236,10 +2205,10 @@
 //		batchCBO.getDeleteCbos().addAll(cboList);
 //		WebUtil.setPersistence(false);
 //		batchCBO.copyFromOther(
-        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList());
+        productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId(), deleteBatchDTO.getOidList());
 //		baseMapper.deleteBatchIds(cboList);
         //浣跨敤浼犲叆鐨勪笟鍔$被鍨嬫煡璇㈣〃
-        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid()));
+        R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmTypeId()));
         if (!listR.isSuccess() || listR.getData().size() == 0) {
             throw new VciBaseException("浼犲叆涓氬姟绫诲瀷鏈煡璇㈠埌鐩稿簲琛ㄥ崟锛岃妫�鏌ワ紒");
         }
@@ -2306,10 +2275,10 @@
         //4. 鏌ヨ鐨勬椂鍊欙紝鐩存帴浣跨敤codeclsfpath鏉ユ煡璇�
         CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(codeClassifyOid);
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
-        if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmtypeid())) {
+        if (topClassifyVO == null || StringUtils.isBlank(topClassifyVO.getBtmTypeId())) {
             throw new VciBaseException("褰撳墠涓婚搴撳垎绫绘病鏈夐《灞傚垎绫伙紝鎴栬�呴《灞傚垎绫绘病鏈夎缃笟鍔$被鍨�");
         }
-        String btmTypeId = topClassifyVO.getBtmtypeid();
+        String btmTypeId = topClassifyVO.getBtmTypeId();
         if (StringUtils.isBlank(btmTypeId)) {
             return new DataGrid<>("杩欎釜鍒嗙被鎵�灞為《灞傚垎绫绘病鏈夋坊鍔犱笟鍔$被鍨�");
         }
@@ -2376,7 +2345,7 @@
             throw new VciBaseException(DATA_OID_NOT_EXIST);
         }
 
-        List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
+        List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0])));
 //		cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")");
 //		List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap);
         if (CollectionUtils.isEmpty(cboList)) {
@@ -2432,7 +2401,7 @@
             batchSaveSelectChar(firstTemplateVO, cboList);
         });
 //		boService.persistenceBatch(batchCBO);
-        updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), updateList);
+        updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmTypeId(), updateList);
         return R.success("鎿嶄綔鎴愬姛锛�");
     }
 
@@ -2608,7 +2577,7 @@
     public CodeRuleVO getCodeRuleByClassifyOid(String codeClassifyOid) {
         VciBaseUtil.alertNotNull(codeClassifyOid, "鍒嗙被鐨勪富閿�");
         CodeClassifyVO classifyVO = classifyService.getObjectByOid(codeClassifyOid);
-        String codeRuleOid = classifyVO.getCoderuleoid();
+        String codeRuleOid = classifyVO.getCodeRuleOid();
         if (StringUtils.isBlank(codeRuleOid)) {
             //寰�涓婃壘
             CodeClassifyFullInfoBO fullInfo = classifyService.getClassifyFullInfo(codeClassifyOid);
@@ -2628,8 +2597,8 @@
     public CodeRuleVO getCodeRuleByClassifyFullInfo(CodeClassifyFullInfoBO fullInfoBO) {
         //寰�涓婃壘
         String codeRuleOid = "";
-        if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCoderuleoid())) {
-            codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCoderuleoid();
+        if (StringUtils.isNotBlank(fullInfoBO.getCurrentClassifyVO().getCodeRuleOid())) {
+            codeRuleOid = fullInfoBO.getCurrentClassifyVO().getCodeRuleOid();
         } else {
             if (CollectionUtils.isEmpty(fullInfoBO.getParentClassifyVOs())) {
                 //璇存槑宸茬粡鏄渶楂樺眰绾�,
@@ -2639,8 +2608,8 @@
             //浠庢渶楂樼殑level寮�濮嬭幏鍙�
             for (int i = 0; i < parentClassifyVOList.size(); i++) {
                 CodeClassifyVO record = parentClassifyVOList.get(i);
-                if (StringUtils.isNotBlank(record.getCoderuleoid())) {
-                    codeRuleOid = record.getCoderuleoid();
+                if (StringUtils.isNotBlank(record.getCodeRuleOid())) {
+                    codeRuleOid = record.getCodeRuleOid();
                     break;
                 }
             }
@@ -2663,7 +2632,7 @@
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid);
         //涓轰簡闃叉妯℃澘涓婄殑涓氬姟绫诲瀷涓庡垎绫讳笂涓嶅搴�
         CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid());
-        String btmId = topClassifyVO.getBtmtypeid();
+        String btmId = topClassifyVO.getBtmTypeId();
         //鏌ヨ鏁版嵁
         Map<String, String> conditionMap = new HashMap<>();
         conditionMap.put("t.oid", oid);
@@ -3423,7 +3392,7 @@
 
         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"
+                + " and lastv =" + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 and "
                 + lcstatusSql + namesql + codesql + ") t where rownum <=" + num1 + ") where rn >=" + num2
         );
         List<BaseModel> baseModels = new ArrayList<>();
@@ -3467,7 +3436,7 @@
         }
         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"
+                + "and lastv = " + VciBaseUtil.toInSql(baseQueryObject.getConditionMap().get("lastv").toString())) + " and" : "where") + SPACE + "1=1 and "
                 + lcstatusSql + namesql + codesql
         );
         IPage<BaseModel> objectDataGrid = new Page<>();

--
Gitblit v1.9.3