From e31c2d72f186602747e38e3ed54eba774a3aeeb2 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期二, 05 十二月 2023 17:42:30 +0800
Subject: [PATCH] 1、数据更改的升版方法进行添加修改码值表的创建数据oid为最新数据的oid。

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java |   47 +++++++++++++++++++----------------------------
 1 files changed, 19 insertions(+), 28 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
index 28765c9..9ec2f60 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -6,13 +6,11 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.protobuf.ServiceException;
-import com.vci.ubcs.code.applyjtcodeservice.entity.DockingPreAttrMapping;
 import com.vci.ubcs.code.applyjtcodeservice.feign.IMdmInterJtClient;
 import com.vci.ubcs.code.applyjtcodeservice.vo.DockingPreAttrMappingVO;
 import com.vci.ubcs.code.bo.AttributeValue;
 import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO;
 import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO;
-import com.vci.ubcs.code.constant.MdmEngineConstant;
 import com.vci.ubcs.code.dto.*;
 import com.vci.ubcs.code.entity.CodeAllCode;
 import com.vci.ubcs.code.enumpack.CodeDefaultLC;
@@ -71,6 +69,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import java.beans.BeanInfo;
 import java.beans.Introspector;
 import java.beans.PropertyDescriptor;
@@ -88,7 +87,6 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.CopyOnWriteArraySet;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 import static com.alibaba.druid.util.FnvHash.Constants.LIMIT;
@@ -199,9 +197,9 @@
 	private SaveLogUtil saveLogUtil;
 
 	/**
-	 * 瀵煎嚭鐨勫崄涓囨潯
+	 * 瀹㈡埛鐜板満excel涓鸿�佺増鏈紝瀵煎嚭鐨勬�绘暟闄愬埗涓�65535
 	 */
-	public static final int EXPORT_LIMIT = 100000;
+	public static final int EXPORT_LIMIT = 65535;
 
 	/**
 	 * 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓�
@@ -612,6 +610,7 @@
 		ExcelUtil.writeDataToFile(excelName,eo);
 		return excelName;
 	}
+
 	/**
 	 * 鑾峰彇鐮佹瀹藉害
 	 * @param codeClassifyOid
@@ -1274,6 +1273,7 @@
 			throw e;
 		}
 	}
+
 	/**
 	 * 瀵煎叆鎵归噺缂栬緫鏁版嵁
 	 *
@@ -1282,6 +1282,7 @@
 	 * @param file            excel鏂囦欢鐨勪俊鎭�
 	 * @return 鏈夐敊璇俊鎭殑excel
 	 */
+	@Transactional
 	@Override
 	public CodeImProtRusultVO batchImportEdit(String codeClassifyOid, String classifyAttr,File file) throws  Throwable{
 		VciBaseUtil.alertNotNull(codeClassifyOid,"鍒嗙被鐨勪富閿�");
@@ -1328,7 +1329,7 @@
 				titleRowData.remove(titleRowData.size()-1);
 				templateVO= templateVOList.get(0);
 			}catch (Throwable e){
-				throw  new VciBaseException(e.getMessage());
+				throw new ServiceException(e.getMessage());
 			}
 
 			CodeClassifyTemplateVO finalTemplateVO = templateVO;
@@ -1355,23 +1356,13 @@
 				//鎴戜滑浣跨敤鍜屼笟鍔$被鍨嬬殑鏉ユ煡璇�
 				List<Map> cbosB = commonsMapper.selectBySql(sqlBO.getSqlUnPage());
 				if(cbosB.size() == 0){
-					throw  new ServiceException("缂栫爜锛�"+ sheetRowData.getData().get(0) + ",鏈兘鏌ヨ鍒扮浉鍏虫暟鎹��");
+					throw new ServiceException("缂栫爜锛�"+ sheetRowData.getData().get(0) + ",鏈兘鏌ヨ鍒扮浉鍏虫暟鎹��");
 				}
 				excelToCboEdit(fieldIndexMap, sheetRowData, orderDTO, cbosB.get(0));
 				orderDTO.setCopyFromVersion(orderDTO.getOid());
 				orderDTO.setOid(null);
 				try {
 					mdmEngineService.upSaveCode(orderDTO);
-					List<Map> newCbos = commonsMapper.selectBySql(sqlBO.getSqlUnPage());
-					//瀵圭爜鍊艰〃杩涜澶勭悊鏇挎崲鍒涘缓鏁版嵁鐨刼id
-					QueryWrapper<CodeAllCode> wrapper = new QueryWrapper<>();
-					wrapper.eq("CREATECODEOID",orderDTO.getCopyFromVersion());
-					List<CodeAllCode> codeAllCodes = codeAllCodeService.selectByWrapper(wrapper);
-					codeAllCodes.get(0).setCreateCodeOid(newCbos.get(0).get("OID").toString());
-					codeAllCodes.get(0).setLastModifyTime(new Date());
-					codeAllCodes.get(0).setTs(new Date());
-					codeAllCodes.get(0).setLastModifier(AuthUtil.getUser().getUserName());
-					codeAllCodeService.updateBatchById(codeAllCodes);
 				} catch (Throwable e) {
 					log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
 					errorMap.put(sheetRowData.getRowIndex(), ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage());
@@ -1836,10 +1827,10 @@
 			tableName = VciBaseUtil.getTableName(btmTypeId);
 		}
 
-		String countSql = "select count(*) from " + tableName +" where 1=1" +
+		String countSql = "select count(*) from (select * FROM " + tableName +" where 1=1" +
 			" and lastr = '1'" +
 			" and lastv='1'" +
-			" and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%'";
+			" and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%' {}";
 
 		//鍏堟煡璇㈡�绘暟
 		int total = 0;
@@ -1853,8 +1844,7 @@
 				thisPage.setSort(exportAttrDTO.getSort());
 				thisPage.setOrder(exportAttrDTO.getOrder());
 				thisPage.addDefaultDesc("createTime");
-
-				total += commonsMapper.queryCountBySql(countSql);
+				total += commonsMapper.queryCountBySql(StringUtil.format(countSql," limit " + exportAttrDTO.getLimit() +" offset "+ i +")subquery;"));
 			}
 		}else{
 			total = commonsMapper.queryCountBySql(countSql);
@@ -2119,7 +2109,8 @@
 				}).collect(Collectors.toList());
 				List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList;
 				Map<String, CodeRuleVO> finalRuleVOMap = ruleVOMap;
-				ruleRowIndexMap.keySet().parallelStream().forEach(ruleOid -> {
+				// TODO锛� 澶氱嚎绋嬫祦濂楀绾跨▼娴侊紝鏈夊潙锛屾垜鎶婅繖鍎挎敼浜�
+				ruleRowIndexMap.keySet().stream().forEach(ruleOid -> {
 					List <BaseModel>dataCBOList=new CopyOnWriteArrayList<>();
 					List<String> rowIndexList = ruleRowIndexMap.get(ruleOid);
 					List<ClientBusinessObject> thisCbos = needSaveCboList.stream().filter(cbo -> rowIndexList.contains(cbo.getAttributeValue(IMPORT_ROW_INDEX)) && !errorMap.containsKey(cbo.getAttributeValue(IMPORT_ROW_INDEX))).collect(Collectors.toList());
@@ -2501,7 +2492,6 @@
 						resultDataObjectDetailDO.setErrorid("0");
 					}
 					resultDataObjectDetailDO.setId(sourceOid);
-
 					resultDataObjectDetailDO.setMsg(msg);
 					resultDataObjectDetailDOs.add(resultDataObjectDetailDO);
 					//澶勭悊浼犻�佺殑鏁版嵁涓叧閿睘鎬ч噸澶嶇殑锛岀洿鎺ユ嬁鍒板凡缁忕敵璇峰埌缂栫爜鐨勬暟鎹紪鐮佺洿鎺ュ皢璧嬬粰鍏抽敭灞炴�ч噸澶嶇殑鏁版嵁
@@ -3347,7 +3337,7 @@
 			String oid=rowData.getOid();
 			String rowNumber=rowData.getRowIndex();
 			ClientBusinessObject cbo = new ClientBusinessObject();
-			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId());
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),null);
 			rowData.getData().forEach((index,value)->{
 				String field = fieldIndexMap.get(index);
 				if(StringUtils.isBlank(field)){
@@ -3453,7 +3443,7 @@
 		String fullPath = getFullPath(classifyFullInfo);
 		codeImprotDataVO.getDatas().stream().forEach(rowData -> {
 			ClientBusinessObject cbo=new ClientBusinessObject();
-			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId());
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),null);
 			rowData.forEach((field,value)->{
 				try {
 					cbo.setAttributeValueWithNoCheck(field,value);
@@ -3507,7 +3497,7 @@
 							String fullPath,boolean newCode){
 		rowDataList.stream().forEach(rowData -> {
 			ClientBusinessObject cbo=new ClientBusinessObject();
-			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId());
+			DefaultAttrAssimtUtil.addDefaultAttrAssimt(cbo, classifyFullInfo.getTopClassifyVO().getBtmTypeId(),null);
 			rowData.getData().forEach((index,value)->{
 					String field = fieldIndexMap.get(index);
 				if (StringUtils.isBlank(field)) {
@@ -4270,6 +4260,7 @@
 		Map<String,List<BaseModel>> indexTODataMap=new ConcurrentHashMap<>();
 		// 鏌ヨ涓嶉渶瑕佸弬涓庡叧閿睘鎬ф牎楠岀殑闄よ嚜宸变互澶栫殑鎵�鏈夊垎绫籵id
 		final String isParticipateCheckOids = classifyService.selectLeafByParentClassifyOid(classifyFullInfo.getTopClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO().getOid());
+		final HttpServletRequest request = org.springblade.core.tool.utils.WebUtil.getRequest();
 		List<ClientBusinessObject> repeatDataMap = cboList.parallelStream().filter(cbo -> {
 			//姣忚閮藉緱鏌ヨ.濡傛灉鍏朵腑鍑虹幇浜嗛敊璇紝鎴戜滑灏辩洿鎺ユ姏鍑哄紓甯革紝鍏朵綑鐨勬樉绀�
 			//VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
@@ -4295,7 +4286,7 @@
 					List<BaseModel> newCboList = new ArrayList<>();
 					newDataList.stream().forEach(stringStringMap -> {
 						BaseModel baseModel=new BaseModel();
-						DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel);
+						DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(stringStringMap,baseModel,request);
 						baseModel.setData(stringStringMap);
 						newCboList.add(baseModel);
 					});
@@ -4521,7 +4512,7 @@
 		List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>();
 		oldDataMap.stream().forEach(dataMap->{
 			ClientBusinessObject clientBusinessObject=new ClientBusinessObject();
-			DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject);
+			DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject,null);
 			for (String key:dataMap.keySet()){
 				Object value= dataMap.getOrDefault(key,"");
 				clientBusinessObject.setAttributeValue(key.toLowerCase(Locale.ROOT),value==null?"":value.toString());

--
Gitblit v1.9.3