From edf6f5f6aedf7797861b088ad1058f75d2074ce1 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期一, 17 七月 2023 23:37:24 +0800 Subject: [PATCH] 批量申请bug修复 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 49 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 35 insertions(+), 14 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 5cfa714..e1611d5 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 @@ -8,7 +8,6 @@ import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.entity.CodeAllCode; -import com.vci.ubcs.code.entity.CodeClassify; import com.vci.ubcs.code.enumpack.CodeDefaultLC; import com.vci.ubcs.code.enumpack.CodeLevelTypeEnum; import com.vci.ubcs.code.lifecycle.CodeAllCodeLC; @@ -33,7 +32,6 @@ import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.LocalFileUtil; -import com.vci.ubcs.starter.util.MdmBtmTypeConstant; import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; @@ -41,7 +39,6 @@ import com.vci.ubcs.starter.web.pagemodel.*; import com.vci.ubcs.starter.web.toolmodel.DateConverter; import com.vci.ubcs.starter.web.util.*; -import lombok.AllArgsConstructor; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.map.HashedMap; @@ -51,7 +48,6 @@ import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.RichTextString; import org.apache.poi.ss.usermodel.Workbook; -import org.springblade.core.cache.utils.CacheUtil; import org.springblade.core.redis.cache.BladeRedis; import org.springblade.core.tool.api.R; import org.springframework.beans.BeanUtils; @@ -68,6 +64,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; import static com.alibaba.druid.util.FnvHash.Constants.LIMIT; @@ -1455,8 +1452,8 @@ @Override public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) { - - boolean success=true; + WriteExcelOption eo = new WriteExcelOption(); + AtomicBoolean success= new AtomicBoolean(true); codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> { List<SheetRowData> rowDataList = new ArrayList<>(); List<ClientBusinessObject>cboList=new ArrayList<>(); @@ -1573,7 +1570,7 @@ log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); thisCbos.stream().forEach(cbo -> { String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); - errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡"); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage()); }); } } @@ -1595,14 +1592,34 @@ try { productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList); } catch (Exception e) { - e.printStackTrace(); + log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e); + needSaveCboList.stream().forEach(cbo -> { + String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX); + errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage()); + }); } //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰 engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList); } } + if(errorMap.size()>0) { + success.set(false); + LinkedList<WriteExcelData> excelDataList = new LinkedList<>(); + excelDataList.add(new WriteExcelData(0, 0, "閿欒淇℃伅")); + final int[] index = {1}; + errorMap.forEach((key,v)->{ + excelDataList.add(new WriteExcelData(index[0]++, 0, "绗�"+(Integer.parseInt(key)+1)+"琛屾暟鎹細"+v)); + }); + eo.addSheetDataList(codeClassifyTemplateVO.getName() + "瀵煎叆妯℃澘", excelDataList); + } }); - return R.success(isImprot?"鎵归噺鍘嗗彶瀵煎叆鎴愬姛":"鎵归噺鐢宠鎴愬姛"); + if(!success.get()){ + String excelName = LocalFileUtil.getDefaultTempFolder() + File.separator + (isImprot?"鎵归噺鍘嗗彶閿欒淇℃伅.xls":"鎵归噺鐢宠閿欒淇℃伅.xls"); + ExcelUtil.writeDataToFile(excelName,eo); + return R.fail(excelName); + }else { + return R.success(isImprot ? "鎵归噺鍘嗗彶瀵煎叆鎴愬姛" : "鎵归噺鐢宠鎴愬姛"); + } } /*** @@ -2723,6 +2740,7 @@ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); } + cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); @@ -2779,6 +2797,7 @@ Integer userSecret = VciBaseUtil.getCurrentUserSecret(); cbo.setAttributeValue(SECRET_FIELD,String.valueOf((userSecret==null || userSecret ==0)? UserSecretEnum.NONE.getValue():userSecret)); } + cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); }else{ //姝ゆ椂杩樻病鏈夎浆鎹㈣矾寰� //cbo.setAttributeValue(CODE_FULL_PATH_FILED, childOidPathMap.getOrDefault(rowData.getData().getOrDefault(CODE_CLASSIFY_OID_FIELD,""),fullPath)); @@ -3624,13 +3643,15 @@ } } private List<ClientBusinessObject> ChangeMapTOClientBusinessObjects(List<Map<String,String>> oldDataMap){ - List<ClientBusinessObject> clientBusinessObjectList=new CopyOnWriteArrayList<>(); - oldDataMap.parallelStream().forEach(dataMap->{ + List<ClientBusinessObject> clientBusinessObjectList=new ArrayList<>(); + oldDataMap.stream().forEach(dataMap->{ ClientBusinessObject clientBusinessObject=new ClientBusinessObject(); DefaultAttrAssimtUtil.copplyDefaultAttrAssimt(dataMap,clientBusinessObject); - dataMap.forEach((key,value)->{ - clientBusinessObject.setAttributeValue(key,value); - }); + for (String key:dataMap.keySet()){ + Object value= dataMap.getOrDefault(key,""); + clientBusinessObject.setAttributeValue(key,value.toString()); + } + clientBusinessObjectList.add(clientBusinessObject); }); return clientBusinessObjectList; } -- Gitblit v1.9.3