From f879ddd80a2bd267a0a575ef03f76d3ec2ae1504 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 04 一月 2024 11:42:22 +0800
Subject: [PATCH] bug列表269:集成日志查询bug修改。 270:关键属性校验,去掉多线程之后请求响应非常慢(之前报错线程阻塞的bug改成单线程导致非常慢,现在又改回ForJoinPool方式限制线程生成数量实现多线程并行,提升执行效率)。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   75 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 16 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 1e18849..9ea8b4d 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
@@ -68,6 +68,7 @@
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.log.annotation.OperateLog;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
@@ -87,6 +88,8 @@
 import java.beans.PropertyDescriptor;
 import java.lang.reflect.Method;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZonedDateTime;
@@ -453,8 +456,14 @@
 					throw new VciBaseException("鏇存柊鏁版嵁鍑洪敊锛岄噸璇曪紒"+r.getMsg());
 				}
 			}
+			// 鍒氬ソ椤哄簭鏄竴鑷寸殑锛屾墍浠ョ洿鎺ユ寜鐓odeallcode鐨勯『搴忔潵鎷夸笟鍔℃暟鎹�
+			int i = -1;
 			for (CodeAllCode codeCbo : codeCbos) {
 				codeCbo.setLcStatus(baseModelDTO.getLcStatus());
+				// 濡傛灉鏄洖鏀讹紝灏遍渶瑕佸皢涓氬姟鏁版嵁瀛樺偍鍒扮爜鍊艰〃涓�
+				if(baseModelDTO.getLcStatus().equals(FrameWorkDefaultValueConstant.FRAMEWORK_RELEASE_TAKEBACK)){
+					codeCbo.setBusinessData(JSON.toJSONString(baseModels.get(++i)));
+				}
 			}
 			codeAllCodeService.updateBatchById(codeCbos);
 
@@ -505,6 +514,7 @@
         CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid());
         CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid());
         CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid());
+		final BladeUser user = AuthUtil.getUser();
         //1.鍒ゆ柇瑙勫垯涓櫎浜嗘祦姘寸爜娈碉紝鏄惁鏈夊叾浠栫爜娈�
         checkSecValueOnOrder(ruleVO, orderDTO);
         //2.鍒ゆ柇蹇呰緭椤�
@@ -535,13 +545,13 @@
 		//cbo.setCreator(String.valueOf(AuthUtil.getUser().getUserId()));銆�
 		if(authUser) {
 			// 瑕佹眰鏄剧ず璐﹀彿锛屾墍浠ュ仛浜嗘洿鏀�
-			cbo.setCreator(String.valueOf(AuthUtil.getUser().getAccount()));
-			cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getAccount()));
+			cbo.setCreator(String.valueOf(user.getAccount()));
+			cbo.setLastModifier(String.valueOf(user.getAccount()));
 		}else{
 			cbo.setCreator(orderDTO.getCreator());
 			cbo.setLastModifier(orderDTO.getLastModifier());
 		}
-		cbo.setTenantId(AuthUtil.getTenantId());
+		cbo.setTenantId(user.getTenantId());
 		if(StringUtils.isNotBlank(orderDTO.getLcStatus())||StringUtils.isNotBlank(orderDTO.getData().get("lcStatus"))){
 			cbo.setLcStatus(StringUtils.isNotBlank(orderDTO.getLcStatus())?orderDTO.getLcStatus():orderDTO.getData().get("lcStatus"));
 		}
@@ -554,7 +564,7 @@
         cbo.setDescription(orderDTO.getDescription());
         cboList.add(cbo);
 
-        List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList);
+        List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(), cboList,user);
 
         batchSaveSelectChar(templateVO, cboList);
         return codeList.size() > 0 ? codeList.get(0) : "";
@@ -1164,10 +1174,7 @@
 							"order by to_char(CREATETIME, 'mm')";
 			//鏌ヨ鍑洪渶瑕佸鐞嗙殑鏁版嵁
 			List<Map> maps = commonsMapper.selectBySql(sql);
-			if(maps.size() == 0){
-				throw new ServiceException("浼犲叆绫诲瀷["+ datum.getName() + ":" +
-					datum.getId() +"]鏈煡鍒扮浉鍏崇粺璁℃暟鎹紝璇风‘璁�!!!!");
-			}
+
 			//褰撳勾姣忔湀鏈堜唤涔嬪墠涔嬪拰
 			List<Integer> monthCount = new ArrayList<>(12);
 			//褰撳勾姣忔湀鐨勬湀浠芥暟鎹�
@@ -1175,12 +1182,16 @@
 			//鑾峰彇褰撳墠鏈堢殑鏁板瓧
 			Calendar instance = Calendar.getInstance();
 			int nowmonth = instance.get(Calendar.MONTH) + 1;
+			if(maps.size() == 0){
+				nowmonth = 0;
+			}
 			//浠�1鍒�12鏈堣繘琛屽鐞�
 			for (Integer i = 1; i <= 12; i++) {
 				//褰撳墠鏈堝悗鎵�鏈夋暟鎹缃负0
 				if(i>nowmonth){
 					monthCount.add(0);
 					month.add(0);
+					continue;
 				}
 				//褰撳墠鏈堜唤涔嬪墠涔嬪拰
 				Integer count = 0;
@@ -2585,12 +2596,24 @@
                 }
                 DateConverter dateConverter = new DateConverter();
                 if (VciFieldTypeEnum.VTDateTime.equals(fieldTypeEnum)) {
-                    //瀹為檯涓婏紝鏁版嵁搴撻兘鏄痶imestamp鐨勭被鍨�.
-                    dateConverter.setAsText(value);
-                    return "to_date('" + dateConverter.getAsText(VciDateUtil.DateTimeFormat) + "','" + DATETIME_FORMAT + "')";
+                    //瀹為檯涓婏紝鏁版嵁搴撻兘鏄痶imestamp鐨勭被鍨�. TODO:铏界劧娌¤兘瑙e喅鏌ヨ鏃ユ湡鐨勯棶棰橈紝浣嗘槸鑳芥殏鏃惰В鍐虫姤閿欓棶棰�
+					if(value.contains("*")){
+						value = value.replace("*","%");
+						return "'" + value + "'";
+					}else{
+						value = value.replace("*","");
+						dateConverter.setAsText(value);
+						return "to_date('" + dateConverter.getAsText(VciDateUtil.DateTimeFormat) + "','" + DATETIME_FORMAT + "')";
+					}
                 } else if (VciFieldTypeEnum.VTDate.equals(fieldTypeEnum)) {
-                    dateConverter.setAsText(value);
-                    return "to_date('" + dateConverter.getAsText(VciDateUtil.DateFormat) + "','" + DATE_FORMAT + "')";
+					if(value.contains("*")){
+						value = value.replace("*","%");
+						return "'" + value + "'";
+					}else {
+						value = value.replace("*","");
+						dateConverter.setAsText(value);
+						return "to_date('" + dateConverter.getAsText(VciDateUtil.DateFormat) + "','" + DATE_FORMAT + "')";
+					}
                 } else if (VciFieldTypeEnum.VTDouble.equals(fieldTypeEnum)
                         || VciFieldTypeEnum.VTLong.equals(fieldTypeEnum)
                         || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) {
@@ -2957,7 +2980,17 @@
         }
         conditionMap.put("t.lastr", "1");
         conditionMap.put("t.lastv", "1");
-        return queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
+		DataGrid<Map<String, String>> mapDataGrid = queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
+		//澶勭悊杩斿洖鏁版嵁涓庢ā鏉挎暟鎹厤缃殑瀛楁涓嶄竴鏍烽棶棰�
+		templateVO.getAttributes().stream().forEach(e->{
+			for (Map<String, String> datum : mapDataGrid.getData()) {
+				if(datum.containsKey(e.getId().toLowerCase()) && !datum.containsKey(e.getId())){
+					datum.put(e.getId(),datum.get(e.getId().toLowerCase()));
+					datum.remove(e.getId().toLowerCase());
+				}
+			}
+		});
+		return mapDataGrid;
 //        List<String> selectFieldList = templateVO.getAttributes().stream().map(CodeClassifyTemplateAttrVO::getId).collect(Collectors.toList());
 //        //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
 //        List<String> finalSelectFieldList = selectFieldList;
@@ -3400,6 +3433,16 @@
         dataList.add(cbo);
         wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true);
         R<List<Map<String, String>>> result = R.data(Collections.singletonList(cbo));
+		//澶勭悊杩斿洖鏁版嵁涓庢ā鏉挎暟鎹厤缃殑瀛楁涓嶄竴鏍烽棶棰�
+		templateVO.getAttributes().stream().forEach(e->{
+			for (Map<String, String> datum : result.getData()) {
+				if(datum.containsKey(e.getId().toLowerCase()) && !datum.containsKey(e.getId())){
+					datum.put(e.getId(),datum.get(e.getId().toLowerCase()));
+					datum.remove(e.getId().toLowerCase());
+				}
+			}
+		});
+
         //鎴戜滑瑕佺湅鏄惁涓嶆槸鍗囩増鐨勶紝鍗囩増鐨勮瘽锛岄渶瑕佸姣斾笉鐩哥瓑鐨勫睘鎬�
 /*        String copy = cbo.get("copyfromversion");
 //		if (StringUtils.isBlank(copy)) {
@@ -4174,7 +4217,7 @@
         bo.setFirstV("1");
         bo.setLastV("1");
         bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId());
-        bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"0":listR.getData().get(0).getVersionRule());
+        bo.setVersionRule("".equals(listR.getData().get(0).getVersionRule())?"1":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()));
@@ -4195,7 +4238,7 @@
         bo.setId("");
         bo.setName("");
         bo.setDescription("");
-        bo.setOwner("1");
+        bo.setOwner(AuthUtil.getUser().getUserId().toString());
 //		bo.setCheckinby(userName);
         bo.setCopyFromVersion("");
 //		this.initTypeAttributeValue(bo,btmTypeVO);

--
Gitblit v1.9.3