From d23181c2f673a6f911a61572099cebb84a84d2d8 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 18 八月 2023 10:22:33 +0800
Subject: [PATCH] 用户管理 新增bug
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 519 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 414 insertions(+), 105 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 ad6059a..0bd2aaa 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,9 +6,9 @@
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.dto.CodeExportAttrDTO;
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;
@@ -20,6 +20,7 @@
import com.vci.ubcs.code.vo.webserviceModel.attrmap.DataObjectVO;
import com.vci.ubcs.code.vo.webserviceModel.attrmap.RowDatas;
import com.vci.ubcs.code.vo.webserviceModel.result.xml.XMLResultDataObjectDetailDO;
+import com.vci.ubcs.file.util.VciZipUtil;
import com.vci.ubcs.omd.feign.IBtmTypeClient;
import com.vci.ubcs.omd.feign.IWebSecretClient;
import com.vci.ubcs.omd.vo.BtmTypeVO;
@@ -33,18 +34,13 @@
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;
import com.vci.ubcs.starter.web.enumpck.VciFieldTypeEnum;
-import com.vci.ubcs.starter.web.pagemodel.DataGrid;
-import com.vci.ubcs.starter.web.pagemodel.KeyValue;
-import com.vci.ubcs.starter.web.pagemodel.PageHelper;
-import com.vci.ubcs.starter.web.pagemodel.UIFormReferVO;
+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;
@@ -56,6 +52,7 @@
import org.apache.poi.ss.usermodel.Workbook;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -70,6 +67,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;
@@ -156,11 +154,18 @@
*/
@Autowired
private IBtmTypeClient btmTypeClient;
+
/***
* 瀵嗙骇鏈嶅姟
*/
@Resource
private IWebSecretClient secretService;
+
+ /**
+ * 瀵煎嚭鐨勫崄涓囨潯
+ */
+ public static final int EXPORT_LIMIT = 100000;
+
/**
* 鎵归噺鐢宠锛氶�夊彇閫変腑鍒嗙被涓嬬殑鎵�鏈夋ā鏉垮叧閿睘鎬э紝鐩镐技灞炴�э紝蹇呭~灞炴�э紝鍐欏叆execl涓�
*
@@ -183,38 +188,40 @@
//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
- List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
- !DEFAULT_ATTR_LIST.contains(s.getId())
- && StringUtils.isBlank(s.getComponentRule())
- && StringUtils.isBlank(s.getClassifyInvokeAttr())
- && (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
- ).collect(Collectors.toList());
- if(CollectionUtils.isEmpty(templateAttrVOS)){
- throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
- }
- templateAttrVOS.stream().forEach(codetemplateAttr ->{
- String field=codetemplateAttr.getId();
- String name=codetemplateAttr.getName();
- CodeClassifyTemplateAttrVO codeBaseAttributeDTO=new CodeClassifyTemplateAttrVO();
- boolean res=(StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup())&& codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
- ||(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
- ||(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
- ||(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
- if(allFieldToOutNameMap.containsKey(name)){//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
- codeBaseAttributeDTO= allFieldToOutNameMap.get(name);
- if(StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())){
- codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
- }
- if(StringUtils.isNotBlank(codetemplateAttr.getRequireFlag())&&Boolean.parseBoolean(codetemplateAttr.getRequireFlag())){
- codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
- }
- if(StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag())&&Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())){
- codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
- }
- }else if(res){
- allFieldToOutNameMap.put(name,codetemplateAttr);
+ if(!CollectionUtils.isEmpty(templateVO.getAttributes())) {
+ List<CodeClassifyTemplateAttrVO> templateAttrVOS = templateVO.getAttributes().stream().filter(s ->
+ !DEFAULT_ATTR_LIST.contains(s.getId())
+ && StringUtils.isBlank(s.getComponentRule())
+ && StringUtils.isBlank(s.getClassifyInvokeAttr())
+ && (VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
+ ).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(templateAttrVOS)){
+ throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
}
- });
+ templateAttrVOS.stream().forEach(codetemplateAttr -> {
+ String field = codetemplateAttr.getId();
+ String name = codetemplateAttr.getName();
+ CodeClassifyTemplateAttrVO codeBaseAttributeDTO = new CodeClassifyTemplateAttrVO();
+ boolean res = (StringUtils.isNotBlank(codetemplateAttr.getAttributeGroup()) && codetemplateAttr.getAttributeGroup().equals(BATCHADD_EXCEPORT_ATTR_TYPE))//鍩烘湰灞炴�у瓧娈垫樉绀�
+ || (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag()))//鍏抽敭灞炴�х殑瀛樺叆
+ || (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) //鐩镐技灞炴�х殑瀛樺叆
+ || (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag()));
+ if (allFieldToOutNameMap.containsKey(name)) {//濡傛灉瀛樺湪鐨勮瘽鍒欓渶瑕佹牴鎹叿浣撶殑鍘昏祴鍊�
+ codeBaseAttributeDTO = allFieldToOutNameMap.get(name);
+ if (StringUtils.isNotBlank(codetemplateAttr.getKeyAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getKeyAttrFlag())) {
+ codeBaseAttributeDTO.setKeyAttrFlag(codetemplateAttr.getKeyAttrFlag());//灞炴�у叧閿睘鎬�
+ }
+ if (StringUtils.isNotBlank(codetemplateAttr.getRequireFlag()) && Boolean.parseBoolean(codetemplateAttr.getRequireFlag())) {
+ codeBaseAttributeDTO.setRequireFlag(codetemplateAttr.getRequireFlag());//灞炴�у繀濉」
+ }
+ if (StringUtils.isNotBlank(codetemplateAttr.getSameRepeatAttrFlag()) && Boolean.parseBoolean(codetemplateAttr.getSameRepeatAttrFlag())) {
+ codeBaseAttributeDTO.setSameRepeatAttrFlag(codetemplateAttr.getSameRepeatAttrFlag());//灞炴�х浉浼煎睘鎬�
+ }
+ } else if (res) {
+ allFieldToOutNameMap.put(name, codetemplateAttr);
+ }
+ });
+ }
});
//鏁寸悊濂芥墍鏈夋ā鏉块渶瑕佸啓鍏xecl鐨勫睘鎬т俊鎭�
Workbook workbook = new HSSFWorkbook();
@@ -363,16 +370,23 @@
//鍙傜収鐨勮嚜琛岃緭鍏ュ悕绉�
//鍒嗙被娉ㄥ叆鐨勪笉鐢紝閮芥槸瀵煎叆鍚庤嚜鍔ㄥ鐞嗙殑
//缂栫爜锛岀姸鎬佺瓑瀛楁涓嶅鍏�
- List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateVO.getAttributes().stream().filter(s ->
+ List<CodeClassifyTemplateAttrVO> codeClassifyTemplateAttrVOList=codeClassifyTemplateVO.getAttributes();
+ if(!CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) {
+ if (CollectionUtils.isEmpty(codeClassifyTemplateAttrVOList)) {
+ throw new VciBaseException("妯℃澘娌℃湁閰嶇疆灞炴��");
+ }
+ }
+ List<CodeClassifyTemplateAttrVO> templateAttrVOS = codeClassifyTemplateAttrVOList.stream().filter(s ->
!DEFAULT_ATTR_LIST.contains(s.getId())
&& StringUtils.isBlank(s.getComponentRule())
&& StringUtils.isBlank(s.getClassifyInvokeAttr())
&& (isHistory || VciBaseUtil.getBoolean(s.getFormDisplayFlag()))
).collect(Collectors.toList());
- if(CollectionUtils.isEmpty(templateAttrVOS)){
- throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
- }
+ if (CollectionUtils.isEmpty(templateAttrVOS)) {
+ throw new VciBaseException("妯℃澘娌℃湁閰嶇疆浠讳綍銆愯〃鍗曟樉绀恒�戜负銆愭槸銆戠殑灞炴��");
+ }
+
List<CodeClassifyTemplateAttrVO> idAttrVOList = codeClassifyTemplateVO.getAttributes().stream().filter(s -> s.getId().equalsIgnoreCase(CODE_FIELD)).collect(Collectors.toList());
LinkedList<WriteExcelData> excelDataList = new LinkedList<>();
Workbook workbook = new HSSFWorkbook();
@@ -675,7 +689,7 @@
//鐩镐技鏍¢獙
Map<String,String>resembleMap=new HashMap<>();
List<DataResembleVO> dataResembleVOS=new ArrayList<>();
- String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmtypeid();
+ String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmTypeId();
bathcResembleQuery(codeClassifyOid,templateVO,needSaveCboList,resembleMap,btmtypeid,dataResembleVOS);
if(resembleMap.size()>0) {
if(!CollectionUtils.isEmpty(dataResembleVOS)) {
@@ -975,7 +989,7 @@
//鐩镐技鏍¢獙
Map<String, String> resembleMap = new HashMap<>();
List<DataResembleVO> dataResembleVOS = new ArrayList<>();
- String btmtypeid = classifyFullInfo.getTopClassifyVO().getBtmtypeid();
+ String btmtypeid = classifyFullInfo.getTopClassifyVO().getBtmTypeId();
bathcResembleQuery(templateVO.getCodeclassifyoid(), templateVO, needSaveCboList, resembleMap, btmtypeid, dataResembleVOS);
if (resembleMap.size() > 0) {
if (!CollectionUtils.isEmpty(dataResembleVOS)) {
@@ -1016,7 +1030,7 @@
thisCbos.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
BeanUtil.convert(clientBusinessObject,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
+ //baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
dataCBOList.add(baseModel);
dataCBOIdList.add(baseModel);
});
@@ -1030,9 +1044,14 @@
String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡");
});
+
}
}
});
+ if (errorMap.size() > 0) {
+ isExport = true;
+ }
+ createWriteExcelData(rowDataList, errorMap, new ArrayList<>(), titleRowData, shetNameMap, finalTemplateVO);
engineService.batchSaveSelectChar(templateVO, dataCBOIdList);
}
}
@@ -1061,7 +1080,19 @@
return codeImProtRusultVO;
}
+ /*private void converBaseModels(List<ClientBusinessObject> clientBusinessObjects,List<BaseModel>dataCBOList){
+ clientBusinessObjects.stream().forEach(clientBusinessObject -> {
+ BaseModel baseModel=new BaseModel();
+ BeanUtil.convert(clientBusinessObject,baseModel);
+ Map<String,String> dataMap=new HashMap<>();
+ clientBusinessObject.getHisAttrValList()
+ baseModel.setData(VciBaseUtil.objectToMapString(baseModel));
+ AttributeValue[] newAttributeValue= clientBusinessObject.getNewAttrValList();
+ dataCBOList.add(baseModel);
+ });
+
+ }*/
/***
* 浠巈xecl閲屾瀯寤哄璞�
* @param rowDataList
@@ -1298,7 +1329,7 @@
//鐩镐技鏍¢獙
Map<String,String>resembleMap=new HashMap<>();
List<DataResembleVO> dataResembleVOS=new ArrayList<>();
- String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmtypeid();
+ String btmtypeid= classifyFullInfo.getTopClassifyVO().getBtmTypeId();
bathcResembleQuery(orderDTO.getCodeClassifyOid(),templateVO,needSaveCboList,resembleMap,btmtypeid,dataResembleVOS);
if(resembleMap.size()>0) {
isCreateUUid=true;
@@ -1338,7 +1369,7 @@
cboList.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
BeanUtil.convert(clientBusinessObject,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
+ //baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
dataCBOList.add(baseModel);
dataCBOIdList.add(baseModel.getOid());
});
@@ -1362,8 +1393,7 @@
public List<CodeImportTemplateVO> gridclassifys(String redisOid) {
List<CodeImportTemplateVO> codeImportTemplateVOs=new ArrayList<>();
VciBaseUtil.alertNotNull(redisOid,"鍒嗙被",redisOid,"鍒嗙被缂撳瓨涓婚敭");
-
- List<CodeImportTemplateVO> redisServiceCacheObjects=bladeRedis.lRange(redisOid,0,-1);
+ List<CodeImportTemplateVO> redisServiceCacheObjects=bladeRedis.get(redisOid);
if(redisServiceCacheObjects!=null){
codeImportTemplateVOs= redisServiceCacheObjects;
}
@@ -1379,7 +1409,7 @@
@Override
public DataGrid<Map<String, String>> gridDatas(String codeClssifyOid, String redisOid) {
VciBaseUtil.alertNotNull(redisOid,"瀵煎叆鐩镐技鏁版嵁",redisOid,"鏁版嵁缂撳瓨涓婚敭");
- List<CodeImprotDataVO> codeImprotDataVOs = bladeRedis.lRange(redisOid+"-"+codeClssifyOid,0,-1);
+ List<CodeImprotDataVO> codeImprotDataVOs = bladeRedis.get(redisOid+"-"+codeClssifyOid);
// redisService.getCacheList(redisOid+"-"+codeClssifyOid);
CodeImprotDataVO codeImprotDataVO=new CodeImprotDataVO();
if(!CollectionUtils.isEmpty(codeImprotDataVOs)){
@@ -1413,7 +1443,7 @@
@Override
public DataGrid<Map<String,String>> gridRowResemble(String oid,String redisOid){
VciBaseUtil.alertNotNull(redisOid,"瀵煎叆鐩镐技鏁版嵁",redisOid,"鏁版嵁缂撳瓨涓婚敭");
- List<DataResembleVO> codeImprotDataVOs = bladeRedis.lRange(redisOid,0,-1);;
+ List<DataResembleVO> codeImprotDataVOs = bladeRedis.get(redisOid);;
DataGrid<Map<String, String>> dataGrid = new DataGrid<>();
List<Map<String, String>> dataList = new ArrayList<>();
@@ -1432,9 +1462,229 @@
return dataGrid;
}
+ /**
+ * 瀵煎嚭涓婚搴撶殑鏁版嵁
+ *
+ * @param exportAttrDTO 瀵煎嚭鐩稿叧鐨勯厤缃紝蹇呴』瑕佹湁涓婚搴撳垎绫荤殑涓婚敭
+ * @return 瀵煎嚭鐨別xcel鐨勬枃浠�
+ */
+ @Override
+ public String exportCode(CodeExportAttrDTO exportAttrDTO) {
+ VciBaseUtil.alertNotNull(exportAttrDTO,"瀵煎嚭鐨勯厤缃�",exportAttrDTO.getCodeClassifyOid(),"涓婚搴撳垎绫荤殑涓婚敭");
+ CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(exportAttrDTO.getCodeClassifyOid());
+ //鑾峰彇鏈�鏂扮殑妯℃澘
+ CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(exportAttrDTO.getCodeClassifyOid());
+ //鍏堟煡璇㈡暟鎹�
+ String btmTypeId = classifyFullInfo.getTopClassifyVO().getBtmTypeId();
+ Map<String, String> conditionMap = exportAttrDTO.getConditionMap();
+ if(conditionMap == null){
+ conditionMap = new HashMap<>();
+ }
+ if(conditionMap.containsKey(VciQueryWrapperForDO.OID_FIELD)){
+ conditionMap.put(VciQueryWrapperForDO.OID_FIELD,QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(conditionMap.get(VciQueryWrapperForDO.OID_FIELD)) + ")");
+ }
+ PageHelper pageHelper = new PageHelper(exportAttrDTO.getLimit()==null?-1:exportAttrDTO.getLimit());
+ pageHelper.setPage(exportAttrDTO.getPage()==null?1:exportAttrDTO.getPage());
+ pageHelper.setSort(exportAttrDTO.getSort());
+ pageHelper.setOrder(exportAttrDTO.getOrder());
+
+ pageHelper.addDefaultDesc("createTime");
+ conditionMap.put("codeclsfpath","*" + exportAttrDTO.getCodeClassifyOid() + "*");
+ conditionMap.put("lastr", "1");
+ conditionMap.put("lastv", "1");
+
+ R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Arrays.asList(btmTypeId));
+ String tableName = "";
+ if(listR.isSuccess() && !listR.getData().isEmpty()){
+ tableName = Func.isNotBlank(listR.getData().get(0).getTableName()) ? listR.getData().get(0).getTableName():VciBaseUtil.getTableName(btmTypeId);
+ }else{
+ tableName = VciBaseUtil.getTableName(btmTypeId);
+ }
+
+ String countSql = "select count(*) from " + tableName +" where 1=1" +
+ " and lastr = '1'" +
+ " and lastv='1'" +
+ " and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%'";
+
+ //鍏堟煡璇㈡�绘暟
+ int total = 0;
+ if(exportAttrDTO.getEndPage()!=null && exportAttrDTO.getEndPage()>0
+ &&exportAttrDTO.getPage() !=null && exportAttrDTO.getPage() >0
+ &&exportAttrDTO.getEndPage()>exportAttrDTO.getPage()){
+ //浠庡灏戦〉鍒板灏戦〉鐨勬煡璇㈡柟寮忥紝
+ for(int i = exportAttrDTO.getPage() ;i <= exportAttrDTO.getEndPage();i++){
+ PageHelper thisPage = new PageHelper(exportAttrDTO.getLimit()==null?-1:exportAttrDTO.getLimit());
+ thisPage.setPage(exportAttrDTO.getPage()==null?1:exportAttrDTO.getPage());
+ thisPage.setSort(exportAttrDTO.getSort());
+ thisPage.setOrder(exportAttrDTO.getOrder());
+ thisPage.addDefaultDesc("createTime");
+
+ total += commonsMapper.queryCountBySql(countSql);
+ }
+ }else{
+
+ total = commonsMapper.queryCountBySql(countSql);
+ }
+ List<String> selectFieldList = new ArrayList<>();
+ if(!CollectionUtils.isEmpty(exportAttrDTO.getAttrIdIndexMap())){
+ selectFieldList = exportAttrDTO.getAttrIdIndexMap().values().stream().map(s->s.toLowerCase(Locale.ROOT)).collect(Collectors.toList());
+ }else{
+ selectFieldList = templateVO.getAttributes().stream().filter(s->VciBaseUtil.getBoolean(s.getFormDisplayFlag())
+ ||VciBaseUtil.getBoolean(s.getTableDisplayFlag())).map(s->s.getId().toLowerCase(Locale.ROOT)).collect(Collectors.toList());
+ }
+ //鍙傜収璁╁钩鍙扮洿鎺ユ煡璇㈠氨琛�
+ List<String> finalSelectFieldList = selectFieldList;
+ List<CodeClassifyTemplateAttrVO> referAttrVOs = templateVO.getAttributes().stream().filter(
+ s -> StringUtils.isNotBlank(s.getReferBtmId())
+ &&
+ (finalSelectFieldList.size() ==0 || finalSelectFieldList.contains(s.getId().toLowerCase(Locale.ROOT)))
+ ).collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(referAttrVOs)){
+ for (int i = 0; i < referAttrVOs.size(); i++) {
+ selectFieldList.add(referAttrVOs.get(i).getId() + ".name");
+ }
+ }
+ List<String> excelNameList = new CopyOnWriteArrayList<>();
+ String tempFolder = LocalFileUtil.getDefaultTempFolder();
+ if(total>EXPORT_LIMIT){
+ //鍒嗙粍鏉ユ墽琛�
+ int queryCount = (total-total%EXPORT_LIMIT)/EXPORT_LIMIT;
+ if(total%EXPORT_LIMIT>0){
+ queryCount = queryCount + 1;
+ }
+ List<Integer> indexList = new ArrayList<>();
+ for (int i = 0; i <queryCount ; i++) {
+ indexList.add(i);
+ }
+ Map<String, String> finalConditionMap = conditionMap;
+ //骞惰鏌ヨ鐪嬬湅
+ SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
+ indexList.stream().forEach(index->{
+ //绾跨▼鐨勬柟寮忥紝鎵�浠ラ渶瑕佽缃綋鍓嶇敤鎴�
+ VciBaseUtil.setCurrentUserSessionInfo(sessionInfo);
+ PageHelper thisPage = new PageHelper(EXPORT_LIMIT);
+ thisPage.setPage(index+1);
+ thisPage.setSort(exportAttrDTO.getSort());
+ thisPage.setOrder(exportAttrDTO.getOrder());
+ thisPage.addDefaultDesc("createTime");
+ selectDataAndExportExcelName(btmTypeId, finalConditionMap,thisPage,finalSelectFieldList,
+ classifyFullInfo,templateVO,exportAttrDTO,
+ excelNameList,tempFolder,index);
+ });
+ }else{
+ pageHelper.setLimit(total);
+ pageHelper.setPage(1);
+ selectDataAndExportExcelName(btmTypeId,conditionMap,pageHelper,finalSelectFieldList,
+ classifyFullInfo,templateVO,exportAttrDTO,
+ excelNameList,tempFolder,1);
+ }
+ if(excelNameList.size() ==0){
+ throw new VciBaseException("娌℃湁鏁版嵁鍙互琚鍑�");
+ }
+ if(excelNameList.size() == 1){
+ return excelNameList.get(0);
+ }
+ //鏄涓紝鎴戜滑闇�瑕佹墦鎴愬帇缂╁寘
+ String zipFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + classifyFullInfo.getCurrentClassifyVO().getId() + "_" + classifyFullInfo.getCurrentClassifyVO().getName() + "_瀵煎嚭_" + excelNameList.size()+".zip";
+ VciZipUtil zipUtil = new VciZipUtil();
+ File file = new File(tempFolder);
+ zipUtil.addFileToZip(file,zipFileName);
+ File[] files = file.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ LocalFileUtil.deleteTempFile(files[i],false);
+ }
+ LocalFileUtil.deleteTempFile(file,true);
+ return zipFileName;
+ }
+
+ /**
+ * 鏌ヨ鏁版嵁骞跺鍑哄埌excel
+ * @param btmTypeId 涓氬姟绫诲瀷
+ * @param conditionMap 鏌ヨ鏉′欢
+ * @param pageHelper 鍒嗛〉
+ * @param selectFieldList 鏌ヨ鐨勫瓧娈�
+ * @param classifyFullInfo 鍒嗙被鐨勫叏閮ㄤ俊鎭�
+ * @param templateVO 妯℃澘鐨勪俊鎭�
+ * @param exportAttrDTO 瀵煎嚭鐨勫睘鎬�
+ * @param excelNameList excel鐨勬枃浠跺悕绉�
+ * @param tempFolder 涓存椂鏂囦欢澶�
+ * @param excelIndex excel鐨勯『搴�
+ */
+ private void selectDataAndExportExcelName(String btmTypeId, Map<String, String> conditionMap, PageHelper pageHelper, List<String> selectFieldList,
+ CodeClassifyFullInfoBO classifyFullInfo, CodeClassifyTemplateVO templateVO, CodeExportAttrDTO exportAttrDTO,
+ List<String> excelNameList, String tempFolder,
+ Integer excelIndex) {
+ DataGrid<Map<String, String>> dataGrid = engineService.queryGrid(btmTypeId, templateVO, conditionMap, pageHelper);
+ if(dataGrid == null || CollectionUtils.isEmpty(dataGrid.getData())){
+ return;
+ }
+ //杞崲鏁版嵁
+ List<Map<String, String>> dataMap = dataGrid.getData();
+ //灏佽鏌ヨ鍑烘潵鐨勬暟鎹�
+ engineService.wrapperData(dataMap, templateVO, selectFieldList,false);
+ //modify by weidy@2022-09-27
+ //鍥犱负鍦ㄥ垪琛ㄥ拰琛ㄥ崟鐨勬樉绀虹殑鏃跺�欙紝鎴戜滑鐨勫紑鍏崇被鍨嬮〉闈細澶勭悊锛屼絾鏄湪瀵煎嚭鐨勬椂鍊欙紝鎴戜滑闇�瑕佸皢true鍜宖alse閮芥浛鎹㈡垚涓枃
+ engineService.wrapperBoolean(dataMap,templateVO);
+ Map<String, CodeClassifyTemplateAttrVO> attrVOMap = templateVO.getAttributes().stream().filter(s->selectFieldList.contains(s.getId().toLowerCase(Locale.ROOT))).collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t));
+ Map<Integer, String> attrIdIndexMap = exportAttrDTO.getAttrIdIndexMap();
+ if (CollectionUtils.isEmpty(attrIdIndexMap)) {
+ attrIdIndexMap = templateVO.getAttributes().stream().filter(s->selectFieldList.contains(s.getId().toLowerCase(Locale.ROOT))).collect(Collectors.toMap(s -> s.getOrderNum(), t -> t.getId()));
+ }
+ List<Integer> indexList = attrIdIndexMap.keySet().stream().sorted().collect(Collectors.toList());
+
+ String excelName = tempFolder + File.separator +
+ classifyFullInfo.getCurrentClassifyVO().getId() + "_" + classifyFullInfo.getCurrentClassifyVO().getName() + "_瀵煎嚭_" + excelIndex + ".xls";
+ try {
+ new File(excelName).createNewFile();
+ } catch (Throwable e) {
+ throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelName}, e);
+ }
+ excelNameList.add(excelName);
+ List<WriteExcelData> excelDataList = new ArrayList<>();
+ Workbook workbook = new HSSFWorkbook();
+ for (int i = 0; i < indexList.size(); i++) {
+ String attrId = attrIdIndexMap.get(indexList.get(i)).toLowerCase(Locale.ROOT);
+ if (attrVOMap.containsKey(attrId)) {
+ CodeClassifyTemplateAttrVO attrVO = attrVOMap.get(attrId);
+ Object text = attrVO.getName();
+ text = exportKeyAndRequired(workbook,attrVO,text);
+ WriteExcelData excelData = new WriteExcelData(0, i, text);
+ if(text instanceof RichTextString){
+ excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex()));
+ }
+ excelDataList.add(excelData);
+ }
+ }
+ final Integer[] rowIndex = {0};
+ Map<Integer, String> finalAttrIdIndexMap = attrIdIndexMap;
+ dataMap.stream().forEach(data -> {
+ rowIndex[0]++;
+ for (int i = 0; i < indexList.size(); i++) {
+ Integer index = indexList.get(i);
+ String attrId = finalAttrIdIndexMap.get(index).toLowerCase(Locale.ROOT);
+ if (attrVOMap.containsKey(attrId)) {
+ CodeClassifyTemplateAttrVO attrVO = attrVOMap.get(attrId);
+ if (StringUtils.isNotBlank(attrVO.getEnumId()) || StringUtils.isNotBlank(attrVO.getEnumString())) {
+ attrId = attrId + "Text";
+ }
+ if (StringUtils.isNotBlank(attrVO.getReferBtmId()) || StringUtils.isNotBlank(attrVO.getReferConfig())) {
+ attrId = attrId + "name";
+ }
+ if(VciQueryWrapperForDO.LC_STATUS_FIELD.equalsIgnoreCase(attrId)){
+ attrId = VciQueryWrapperForDO.LC_STATUS_FIELD_TEXT.toLowerCase(Locale.ROOT);
+ }
+ excelDataList.add(new WriteExcelData(rowIndex[0], i, data.getOrDefault(attrId, "")));
+ }
+ }
+ });
+ WriteExcelOption excelOption = new WriteExcelOption(excelDataList);
+ ExcelUtil.writeDataToFile(excelName, excelOption);
+ }
+
@Override
public R batchImportData(List<CodeImprotSaveDatVO> codeImprotSaveDatVOList, String classifyAttr, boolean isImprot) {
- List<BaseModel> dataCBOList=new ArrayList<>();
+ WriteExcelOption eo = new WriteExcelOption();
+ AtomicBoolean success= new AtomicBoolean(true);
codeImprotSaveDatVOList.stream().forEach(codeImprotSaveDatVO -> {
List<SheetRowData> rowDataList = new ArrayList<>();
List<ClientBusinessObject>cboList=new ArrayList<>();
@@ -1473,19 +1723,31 @@
String fullPath = getFullPath(classifyFullInfo);
excelToCbo(classifyFullInfo,fieldIndexMap,rowDataList, codeClassifyTemplateVO,cboList,fullPath,!isImprot);
Map<String,String> errorMap=new HashMap<>();
+ Map<String/**璺緞**/, CodeClassifyVO> pathMap=new HashMap<>() ;
+ //鏍¢獙缂栫爜瑙勫垯鍜岀爜娈垫槸鍚︽纭�
+ Map<String, List<String>> ruleRowIndexMap = new ConcurrentHashMap<>();
+ Map<String, CodeRuleVO> ruleVOMap =new ConcurrentHashMap<>();
if(isImprot) {
Map<String/**涓婚敭**/, String/**璺緞**/> childOidPathMap = getChildClassifyPathMap(classifyFullInfo, fullPath);
//閮借浆鎹㈠畬浜嗐�傞渶瑕佹壒閲忔鏌�
//鎵炬墍鏈夌殑鍒嗙被璺緞,闇�瑕佹牎楠岃矾寰勬槸鍚︽纭紝鏄惁閮藉湪褰撳墠鐨勫垎绫荤殑涓嬬骇
List<CodeClassifyVO> childClassifyVOs = classifyService.listChildrenClassify(orderDTO.getCodeClassifyOid(), true, classifyAttr, true);
- Map<String/**璺緞**/, CodeClassifyVO> pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t));
+ pathMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getPath().startsWith("#") ? s.getPath().substring(1) : s.getPath(), t -> t));
Map<String/**涓婚敭**/, CodeClassifyVO> classifyVOMap = Optional.ofNullable(childClassifyVOs).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
classifyVOMap.put(classifyFullInfo.getCurrentClassifyVO().getOid(), classifyFullInfo.getCurrentClassifyVO());
pathMap.put("#current#", classifyFullInfo.getCurrentClassifyVO());
//鎴戜滑闇�瑕佸垽鏂繖浜涘垎绫荤殑妯℃澘鏄笉鏄竴鏍风殑锛屽彧闇�瑕佹牎楠岋紝涓嶇敤鑾峰彇
//妫�鏌ュ垎绫荤殑璺緞
checkClassifyPathInHistory(cboList, errorMap, pathMap, childOidPathMap);
+ //妫�鏌ヨ鍒�
+ Map<String/**鍒嗙被涓婚敭**/, String/**瑙勫垯涓婚敭**/> ruleOidMap = new ConcurrentHashMap<String, String>();
+ List<String> unExistRuleClassifyOidList = new CopyOnWriteArrayList<>();
+ checkRuleOidInHistory(classifyVOMap, ruleOidMap, unExistRuleClassifyOidList);
+ ruleVOMap = ruleService.listCodeRuleByIds(ruleOidMap.values(), true).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t));
+
+ checkSecLengthInHistory(cboList, classifyVOMap, ruleVOMap, ruleOidMap, errorMap, ruleRowIndexMap);
}
+
//鍒嗙被娉ㄥ叆
batchSwitchClassifyAttrOnOrder(attrVOS,cboList,classifyFullInfo,isImprot);
//boolean
@@ -1515,38 +1777,80 @@
//4.鏍¢獙瑙勫垯
batchCheckVerifyOnOrder(attrVOS, cboList,errorMap);
-
- //SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
- List<ClientBusinessObject>needSaveCboList = cboList.stream().filter(cbo -> {
- String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
- return !errorMap.containsKey(rowIndex);
- }).collect(Collectors.toList());
-
- log.info("鍒嗙被锛�"+classifyFullInfo.getCurrentClassifyVO().getName()+"鏁版嵁:"+needSaveCboList.size());
- if (!CollectionUtils.isEmpty(needSaveCboList)) {
-// List<BaseModel> dataCBOList=new ArrayList<>();
- needSaveCboList.stream().forEach(clientBusinessObject -> {
- BaseModel baseModel=new BaseModel();
- BeanUtil.convert(clientBusinessObject,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
- dataCBOList.add(baseModel);
-// allNeedSaveCboList.add(baseModel);
- });
- try {
- //9.鎴戜滑澶勭悊涓氬姟鏁版嵁
- if (isImprot) {
- productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, null, dataCBOList);
- }else {
- productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList);
+ if(isImprot){
+ List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> {
+ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ return !errorMap.containsKey(rowIndex);
+ }).collect(Collectors.toList());
+ List<ClientBusinessObject> finalNeedSaveCboList = needSaveCboList;
+ Map<String, CodeRuleVO> finalRuleVOMap = ruleVOMap;
+ ruleRowIndexMap.keySet().parallelStream().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());
+ if (!CollectionUtils.isEmpty(thisCbos)) {
+ thisCbos.stream().forEach(clientBusinessObject -> {
+ BaseModel baseModel = new BaseModel();
+ BeanUtil.convert(clientBusinessObject, baseModel);
+ dataCBOList.add(baseModel);
+ });
+ try {
+ productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, finalRuleVOMap.get(ruleOid), null, dataCBOList);
+ } catch (Throwable e) {
+ //success=false;
+ log.error("鎵归噺浜х敓缂栫爜鐨勬椂鍊欏嚭閿欎簡", e);
+ thisCbos.stream().forEach(cbo -> {
+ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ errorMap.put(rowIndex, errorMap.getOrDefault(rowIndex, "") + ";绯荤粺閿欒锛屽瓨鍌ㄦ暟鎹殑鏃跺�欏嚭閿欎簡:"+e.getMessage());
+ });
+ }
}
- } catch (Exception e) {
- e.printStackTrace();
+ engineService.batchSaveSelectChar(codeClassifyTemplateVO, dataCBOList);
+ });
+ }else {
+ List<BaseModel> dataCBOList=new ArrayList<>();
+ List<ClientBusinessObject> needSaveCboList = cboList.stream().filter(cbo -> {
+ String rowIndex = cbo.getAttributeValue(IMPORT_ROW_INDEX);
+ return !errorMap.containsKey(rowIndex);
+ }).collect(Collectors.toList());
+ log.info("鍒嗙被锛�" + classifyFullInfo.getCurrentClassifyVO().getName() + "鏁版嵁:" + needSaveCboList.size());
+ if (!CollectionUtils.isEmpty(needSaveCboList)) {
+ needSaveCboList.stream().forEach(clientBusinessObject -> {
+ BaseModel baseModel = new BaseModel();
+ BeanUtil.convert(clientBusinessObject, baseModel);
+ dataCBOList.add(baseModel);
+ });
+ try {
+ productCodeService.productCodeAndSaveData(classifyFullInfo, codeClassifyTemplateVO, ruleVO, orderDTO.getSecDTOList(), dataCBOList);
+ } catch (Exception e) {
+ 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);
}
}
- //濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳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 ? "鎵归噺鍘嗗彶瀵煎叆鎴愬姛" : "鎵归噺鐢宠鎴愬姛");
+ }
}
/***
@@ -1776,7 +2080,7 @@
});
//鍏抽敭鐔熸倝鏇存敼
if (!CollectionUtils.isEmpty(editBoList)) {
- engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),editBoList);//淇濆瓨鏁版嵁
+ engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),editBoList);//淇濆瓨鏁版嵁
}
errorMap.putAll(errorKeyMap);
}
@@ -1802,7 +2106,7 @@
needSaveCboList.stream().forEach(clientBusinessObject -> {
BaseModel baseModel=new BaseModel();
BeanUtil.convert(clientBusinessObject,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(clientBusinessObject));
+ //(VciBaseUtil.objectToMapString(clientBusinessObject));
dataCBOList.add(baseModel);
allNeedSaveCboList.add(baseModel.getOid());
});
@@ -1811,7 +2115,7 @@
//濡傛灉鏄紪鐮佺敓鎴愬け璐ワ紝鍒欑洿鎺ュ氨澶辫触浜嗭紝鍏朵粬鐨勫垽鏂嚭鏉ユ湁閿欒鐨勬垜浠兘缁熶竴杩斿洖鍒癳xcel閲岄潰
engineService.batchSaveSelectChar(templateVO, dataCBOList);
// if(!isProcess){
- needSaveCboList.stream().forEach(needSaveCbo->{
+ dataCBOList.stream().forEach(needSaveCbo->{
XMLResultDataObjectDetailDO resultDataObjectDetailDO=new XMLResultDataObjectDetailDO();
resultDataObjectDetailDO.setCode(needSaveCbo.getId());
String oid=needSaveCbo.getOid();
@@ -1898,7 +2202,7 @@
String tableName ="";
try {
R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
- if(r.getCode()!=200) {
+ if(!r.isSuccess()) {
throw new Throwable(r.getMsg());
}
BtmTypeVO btmTypeVO = r.getData();
@@ -2004,7 +2308,7 @@
BaseModel baseModel=new BaseModel();
BeanUtil.convert(cbo,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(cbo));
+ //baseModel.setData(VciBaseUtil.objectToMapString(cbo));
updateList.add(baseModel);
}else if(operation.equals("delete")){//濡傛灉鍦ㄦ祦绋嬩腑涓嶅厑璁稿垹闄わ紝涓嶅湪娴佺▼涓姸鎬佷负鍙戝竷鎴栬�呭仠鐢ㄧ殑鏁版嵁涓嶅厑璁稿垹闄わ紝灏嗗叾鏇存敼涓哄仠鐢紝鍏朵粬鐨勬儏鍐电洿鎺ュ垹闄�
// if(finalIsProcess){
@@ -2045,7 +2349,7 @@
BaseModel baseModel=new BaseModel();
BeanUtil.convert(cbo,baseModel);
- baseModel.setData(VciBaseUtil.objectToMapString(cbo));
+ //baseModel.setData(VciBaseUtil.objectToMapString(cbo));
updateList.add(baseModel);
}catch (VciBaseException e) {
e.printStackTrace();
@@ -2072,7 +2376,7 @@
}else {
//瀛樺偍鏁版嵁
try {
- engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),updateList);
+ engineService.updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmTypeId(),updateList);
codeAllCodeService.saveBatch(codeAllCodeList);
if(deleteList.size()>0) {
commonsMapper.deleteByTaleAndOid(tableName, VciBaseUtil.array2String(deleteList.toArray(new String[]{})));
@@ -2199,7 +2503,7 @@
//娌℃湁闄愬埗鍒嗙被锛屼絾鏄竴涓ā鏉垮彧鍙兘鍦ㄤ竴涓笟鍔$被鍨嬮噷闈紝鎵�浠ョ洿鎺ユ煡璇㈣繖涓笟鍔$被鍨嬪嵆鍙�
if (!CollectionUtils.isEmpty(conditionMap)) {
- final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()) + " where 1 = 1 "};
+ final String[] sql = {"select count(*) from " + VciBaseUtil.getTableName(classifyFullInfo.getTopClassifyVO().getBtmTypeId()) + " where 1 = 1 "};
conditionMap.forEach((key, value) -> {
sql[0] += " and " + key + " = " + value;
});
@@ -2539,7 +2843,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());
rowData.getData().forEach((index,value)->{
String field = fieldIndexMap.get(index);
if(StringUtils.isBlank(field)){
@@ -2644,7 +2948,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());
rowData.forEach((field,value)->{
try {
cbo.setAttributeValueWithNoCheck(field,value);
@@ -2667,6 +2971,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));
@@ -2696,7 +3001,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());
rowData.getData().forEach((index,value)->{
String field = fieldIndexMap.get(index);
if (StringUtils.isBlank(field)) {
@@ -2723,6 +3028,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));
@@ -3004,7 +3310,7 @@
String tableName ="";
try {
R<BtmTypeVO> r = btmTypeClient.getAllAttributeByBtmId(templateVO.getBtmTypeId());
- if(r.getCode()!=200) {
+ if(!r.isSuccess()) {
throw new Throwable(r.getMsg());
}
BtmTypeVO btmTypeVO = r.getData();
@@ -3360,7 +3666,7 @@
engineService.wrapperKeyAttrConditionMap(value, keyRuleVO, attrId, trim, ignoreCase, ignoreWidth, trimAll, conditionMap);
});
if (!CollectionUtils.isEmpty(ketAttrMap)) {
- CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), templateVO, conditionMap, null);
+ CodeTemplateAttrSqlBO sqlBO = engineService.getSqlByTemplateVO(classifyFullInfo.getTopClassifyVO().getBtmTypeId(), templateVO, conditionMap, null);
boolean isKeyCheck= commonsMapper.queryCountBySql(sqlBO.getSqlCount()) > 0;
if(isKeyCheck){
List<Map<String,String>> newDataList= commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlUnPage());
@@ -3429,12 +3735,12 @@
List<String> unExistRuleClassifyOidList ){
if(!CollectionUtils.isEmpty(classifyVOMap)){
classifyVOMap.values().parallelStream().forEach(classifyVO->{
- if(StringUtils.isNotBlank(classifyVO.getCoderuleoid())){
- ruleOidMap.put(classifyVO.getOid(),classifyVO.getCoderuleoid());
+ if(StringUtils.isNotBlank(classifyVO.getCodeRuleOid())){
+ ruleOidMap.put(classifyVO.getOid(),classifyVO.getCodeRuleOid());
}else{
//閫掑綊鎵句笂绾�
List<String> ruleOidList = new ArrayList<>();
- recursionRule(classifyVOMap,classifyVO.getParentcodeclassifyoid(),ruleOidList);
+ recursionRule(classifyVOMap,classifyVO.getParentCodeClassifyOid(),ruleOidList);
if(!CollectionUtils.isEmpty(ruleOidList)){
ruleOidMap.put(classifyVO.getOid(),ruleOidList.get(0));
}else{
@@ -3454,11 +3760,11 @@
private void recursionRule(Map<String, CodeClassifyVO> classifyVOMap,String classifyOid,List<String> ruleOidList){
if(classifyVOMap.containsKey(classifyOid)){
CodeClassifyVO classifyVO = classifyVOMap.get(classifyOid);
- if(StringUtils.isNotBlank(classifyVO.getCoderuleoid())){
- ruleOidList.add(classifyVO.getCoderuleoid());
+ if(StringUtils.isNotBlank(classifyVO.getCodeRuleOid())){
+ ruleOidList.add(classifyVO.getCodeRuleOid());
return;
}else{
- recursionRule(classifyVOMap,classifyVO.getParentcodeclassifyoid(),ruleOidList);
+ recursionRule(classifyVOMap,classifyVO.getParentCodeClassifyOid(),ruleOidList);
}
}else{
Map<String, CodeClassifyVO> parentClassifyVOMap=new HashMap<>();
@@ -3568,13 +3874,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;
}
@@ -3999,4 +4307,5 @@
}
}
}
+
}
--
Gitblit v1.9.3