From e4acc9a8820222ce47d4dffe0d4e8153f1369279 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期一, 28 十月 2024 15:01:12 +0800
Subject: [PATCH] 密级管理查询,保存接口上传
---
Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 871 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 782 insertions(+), 89 deletions(-)
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
index 4b51876..b1486a2 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java
@@ -1,33 +1,55 @@
package com.vci.web.service.impl;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ZipUtil;
import com.vci.bo.ItemSeniorQueryBO;
import com.vci.common.utility.ObjectUtility;
+import com.vci.constant.FrameWorkLangCodeConstant;
import com.vci.corba.common.PLException;
+import com.vci.corba.omd.qtm.QTD;
+import com.vci.corba.omd.qtm.QTInfo;
import com.vci.corba.portal.PortalService.GetPagePortalVIArrayByPageInfoResult;
import com.vci.corba.portal.data.PortalVI;
-import com.vci.dto.PRMDTO;
-import com.vci.dto.PRMItemDTO;
-import com.vci.dto.PortalVIDTO;
+import com.vci.dto.*;
import com.vci.model.*;
import com.vci.pagemodel.*;
+import com.vci.po.PortalVIPO;
+import com.vci.po.QTDPO;
+import com.vci.starter.poi.bo.ReadExcelOption;
+import com.vci.starter.poi.bo.WriteExcelData;
+import com.vci.starter.poi.bo.WriteExcelOption;
+import com.vci.starter.poi.util.ExcelUtil;
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.BaseQueryObject;
import com.vci.starter.web.pagemodel.BaseResult;
import com.vci.starter.web.pagemodel.DataGrid;
+import com.vci.starter.web.util.LocalFileUtil;
import com.vci.starter.web.util.VciBaseUtil;
+import com.vci.starter.word.bo.WordMergeStartTableDataBO;
+import com.vci.starter.word.util.WordUtil;
import com.vci.web.enumpck.ItemTypeEnum;
import com.vci.web.enumpck.PortalVIType;
import com.vci.web.enumpck.PortalVITypeFlag;
+import com.vci.web.other.BtmQTExportData;
+import com.vci.web.service.OsAttributeServiceI;
import com.vci.web.service.OsPortalVIServiceI;
+import com.vci.web.service.OsQuereyTemplateServiceI;
import com.vci.web.util.PlatformClientUtil;
import com.vci.web.util.UITools;
+import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.*;
import java.util.*;
-import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Function;
import java.util.stream.Collectors;
/*
@@ -38,18 +60,31 @@
@Service
public class OsPortalVIServiceImpl implements OsPortalVIServiceI {
/**
+ * 鏃ュ織
+ */
+ private Logger logger = LoggerFactory.getLogger(getClass());
+ /**
* 鍔犺浇鑷韩
*/
@Autowired(required = false)
@Lazy
private OsPortalVIServiceI self;
-
+ /**
+ * 鍔犺浇鑷韩
+ */
+ @Autowired(required = false)
+ private OsAttributeServiceI osAttributeService;
/**
* 骞冲彴鐨勮皟鐢ㄥ伐鍏风被
*/
@Autowired
private PlatformClientUtil platformClientUtil;
+ /**
+ * 鏌ヨ妯℃澘鏈嶅姟
+ */
+ @Autowired
+ private OsQuereyTemplateServiceI quereyTemplateServiceI;
@Override
public void clearCache() {
@@ -72,29 +107,32 @@
}
String viName=StringUtils.isBlank(conditionMap.get("viName"))?"":conditionMap.get("viName");
String viTypeLabel=StringUtils.isBlank(conditionMap.get("viType"))?"":conditionMap.get("viType");
- PortalVIType portalVIType= PortalVIType.getByLabel(viTypeLabel);
+ PortalVIType portalVIType= PortalVIType.getByName(viTypeLabel);
Short viType=-1;
if(portalVIType!=null){
viType=portalVIType.getIntVal();
}
String viTypeFlagLabel=StringUtils.isBlank(conditionMap.get("viTypeFlag"))?"":conditionMap.get("viTypeFlag");
- PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByLabel(viTypeFlagLabel);
+ PortalVITypeFlag portalVITypeFlag= PortalVITypeFlag.getByName(viTypeFlagLabel);
Short viTypeFlag=-1;
if(portalVITypeFlag!=null){
viTypeFlag=portalVITypeFlag.getIntVal();
}
long pageIndex=baseQueryObject.getPage();
long pageSize=baseQueryObject.getLimit();
+ if(pageSize==-1){
+ pageSize=25;
+ }
DataGrid<PortalVIVO> dataGrid = new DataGrid<>();
try {
- GetPagePortalVIArrayByPageInfoResult pagePortalVIArrayByPageInfoResult= platformClientUtil.getPortalService().getPagePortalVIArrayByPageInfo(typeName,viName,viType,viTypeFlag,pageIndex,pageSize);
+ GetPagePortalVIArrayByPageInfoResult pagePortalVIArrayByPageInfoResult = platformClientUtil.getPortalService().getPagePortalVIArrayByPageInfo(typeName,viName,viType,viTypeFlag,pageIndex,pageSize);
if(pagePortalVIArrayByPageInfoResult.total>0) {
PortalVI[] portalVIS = pagePortalVIArrayByPageInfoResult.returnValue;
- List<PortalVIVO> portalVIVOS= portalVIDOO2VOS(Arrays.asList(portalVIS));
+ List<PortalVIVO> portalVIVOS = portalVIDOO2VOS(Arrays.asList(portalVIS));
dataGrid.setData(portalVIVOS);
dataGrid.setTotal(pagePortalVIArrayByPageInfoResult.total);
}else{
- dataGrid = new DataGrid<>("娌掓湁鏌ヨ鍒版暟鎹�");
+ dataGrid = new DataGrid<>();
}
} catch (PLException e) {
e.printStackTrace();
@@ -110,9 +148,33 @@
* @throws PLException
*/
@Override
- public BaseResult add(PortalVIDTO portalVIDTO) throws VciBaseException {
- return savePortalVIDTO(portalVIDTO,false);
+ public BaseResult addSave(PortalVIDTO portalVIDTO) throws VciBaseException {
+ return savePortalVIDTO(portalVIDTO,false);
}
+
+ /**
+ * 鏍规嵁琛ㄥ崟id鑾峰彇鍏蜂綋鏁版嵁
+ * @param id
+ * @param viType
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ public PortalVIVO getPortalVIById(String id,String viType) throws PLException {
+ VciBaseUtil.alertNotNull(id,"涓婚敭");
+ String lableName=PortalVIType.Form.getLabel();
+ if(PortalVIType.Table.getName()==viType){
+ lableName=PortalVIType.Table.getLabel();
+ }
+ PortalVIVO portalVIVO = new PortalVIVO();
+ PortalVI portalVI = platformClientUtil.getPortalService().getPortalVIById(id);
+ if(portalVI==null||StringUtils.isBlank(portalVI.id)){
+ throw new VciBaseException("鏍规嵁涓婚敭鏈煡璇㈠埌鏁版嵁");
+ }
+ portalVIVO=portalVIDOO2VO(portalVI);
+ return portalVIVO;
+ }
+
/***
* 琛ㄥ崟/琛ㄦ牸鏇存敼
* @param portalVIDTO
@@ -120,45 +182,500 @@
* @throws PLException
*/
@Override
- public BaseResult edit(PortalVIDTO portalVIDTO) throws VciBaseException {
+ public BaseResult editSave(PortalVIDTO portalVIDTO) throws VciBaseException {
return savePortalVIDTO(portalVIDTO,true);
}
- private BaseResult savePortalVIDTO(PortalVIDTO portalVIDTO,boolean isEdit) {
+ @Override
+ public boolean delete(DeletePortalVIDTOList portalVIDTOList) throws PLException {
+ if(portalVIDTOList==null||CollectionUtils.isEmpty(portalVIDTOList.getPortalVIDTOList())){
+ // VciBaseUtil.alertNotNull("鍒犻櫎鐨勫璞�");
+ throw new PLException("1001",new String[]{"璇烽�夋嫨瑕佸垹闄ょ殑瀵硅薄锛亇"});
+ }
+ try {
+ for(PortalVIDTO portalVIDTO:portalVIDTOList.getPortalVIDTOList()) {
+ boolean formFlag = false;
+ short viType = portalVIDTO.getViType();
+ String typeName = portalVIDTO.getTypeName();
+ String viewName = portalVIDTO.getViName();
+ String id = portalVIDTO.getId();
+ if (viType == PortalVIType.Form.getIntVal()) {
+ // 鍒ゆ柇璇ヨ〃鍗曟槸鍚﹀湪琛ㄦ牸涓寮曠敤
+ formFlag = platformClientUtil.getPortalService().judgeDeleteButton(id, typeName);
+ if (formFlag) {
+ throw new Throwable(viewName + "琛ㄥ崟宸茬粡鍦ㄨ〃鏍间腑琚紩鐢紝璇烽噸鏂伴�夋嫨瑕佸垹闄ょ殑瀵硅薄!");
+ }
+ }
+ // 鍒ゆ柇璇ヨ〃鍗曟垨琛ㄦ牸鏄惁鍦║I瀹氫箟鏃惰寮曠敤
+ formFlag = platformClientUtil.getPortalService().judgeUpdateButton(viType, viewName, typeName);
+ if (formFlag) {
+ throw new Throwable(viewName + "鏁版嵁宸茬粡琚玌I缁勪欢寮曠敤锛岃閲嶆柊閫夋嫨瑕佸垹闄ょ殑瀵硅薄!");
+ }
+ UITools.getService().deletePortalVIByID(id);
+ }
+ }catch (Throwable e){
+ String exceptionMessage = "鍒犻櫎琛ㄥ崟鏃跺嚭鐜伴敊璇紝鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ throw new PLException("100",new String[]{exceptionMessage});
+ }
+ return true;
+ }
+
+ @Override
+ public boolean delete(String ids) throws PLException {
+ VciBaseUtil.alertNotNull(ids,"涓婚敭");
+ List<String> idsList= VciBaseUtil.str2List(ids);
+ List<PortalVI> PortalVIList= new ArrayList<>();
+ DeletePortalVIDTOList portalVIDTOList=new DeletePortalVIDTOList();
+ idsList.stream().forEach(id->{
+ PortalVI portalVI= null;
+ try {
+ portalVI = platformClientUtil.getPortalService().getPortalVIById(id);
+ PortalVIList.add(portalVI);
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+ });
+ portalVIDTOList.setPortalVIDTOList(portalVIO2DTOS(PortalVIList));
+ return delete(portalVIDTOList);
+ }
+
+ /**
+ * 琛ㄥ崟/琛ㄦ牸鍏嬮殕
+ * @param clonePortalVIDTOList
+ * @return
+ * @throws VciBaseException
+ */
+ @Override
+ public boolean clone(ClonePortalVIDTOList clonePortalVIDTOList) throws VciBaseException {
+ if(clonePortalVIDTOList == null || CollectionUtils.isEmpty(clonePortalVIDTOList.getClonePortalVIDTOList())){
+ throw new VciBaseException("璇烽�夋嫨瑕佸厠闅嗙殑瀵硅薄!");
+ }
+ try {
+ String typeName=clonePortalVIDTOList.getClonePortalVIDTOList().get(0).getTypeName();
+ PortalVI[] portalVIS= platformClientUtil.getPortalService().getPortalVIArrayByTypeName(typeName);
+ Map<String, PortalVIVO> PortalVIMap=new HashMap<>();
+ if(!CollectionUtils.isEmpty(Arrays.asList(portalVIS))) {
+ List<PortalVIVO> portalVIVOS = portalVIDOO2VOS(Arrays.asList(portalVIS));
+ PortalVIMap =portalVIVOS.stream().collect(Collectors.toMap(PortalVIVO::getViName, Function.identity()));
+ }
+ List<PortalVI> portalVIList=new ArrayList<>();
+ for (ClonePortalVIDTO clonedestObject : clonePortalVIDTOList.getClonePortalVIDTOList()) {
+ String viName = clonedestObject.getViName();
+ PortalVIDTO portalVIDTO = clonedestObject.getOldPortalVIDTO();
+ short typeFlag = clonedestObject.getTypeFlag();
+ if (viName != null) {
+ VciBaseUtil.alertNotNull(viName, "鍏嬮殕鍚嶇О涓嶅厑璁镐负绌�");
+ //throw new PLException("1001",new String[]{"璇烽�夋嫨瑕佸垹闄ょ殑瀵硅薄锛亇"});
+ if( PortalVIMap.containsKey(viName)){
+ throw new VciBaseException("鍏嬮殕鍚嶇О"+viName+"宸插瓨鍦紝璇锋牳瀵癸紒");
+ }
+ PortalVI portalVI = UITools.getService().getPortalVIById(portalVIDTO.getId());
+ portalVI.id = ObjectUtility.getNewObjectID36();
+ portalVI.viName = viName;
+ //濡傛灉鍏嬮殕閫夋嫨浜嗕笟鍔$被鍨嬪垯鎷疯礉鍒版柊鐨勪笟鍔$被鍨嬩笅
+ if (StringUtils.isNotBlank(typeName)) {
+ portalVI.typeName = typeName;
+ }
+ if (typeFlag == PortalVITypeFlag.BtmType.getIntVal() || typeFlag == PortalVITypeFlag.LinkType.getIntVal()) {
+ portalVI.typeFlag = typeFlag;
+ }
+ platformClientUtil.getPortalService().savePortalVI(portalVI);
+ portalVIList.add(portalVI);
+ }
+ }
+ }catch (PLException e){
+ throw new VciBaseException("鍏嬮殕鍑虹幇寮傚父:"+e.getMessage());
+ }
+ return true;
+ }
+
+ @Override
+ public String exportToExcel(Collection<String> idList) {
+ String defaultTempFolder = LocalFileUtil.getDefaultTempFolder();
+ String xfileName="export.xls";
+ List<WriteExcelData> rowDataList = new ArrayList<>();
+ List<WriteExcelData> qtRowDataList = new ArrayList<>();
+ //VciBaseUtil.alertNotNull(idList);
+ List<PortalVIDTO> portalVIDTOList= listByIds(idList);
+ final int index=0;
+
+ String excelFileName = defaultTempFolder + File.separator + xfileName;
+ File excelFile = new File(excelFileName);
+ try {
+ excelFile.createNewFile();
+ }catch (Throwable e){
+ String msg = "鍦ㄥ垱寤篹xcel鏂囦欢鐨勬椂鍊欏嚭鐜颁簡閿欒";
+ if(logger.isErrorEnabled()){
+ logger.error(msg,e);
+ }
+ throw new VciBaseException(msg+",{0}",new String[]{excelFileName},e);
+ }
+
+
+ rowDataList.add(new WriteExcelData(index, 0, "涓氬姟绫诲瀷鍚嶇О"));
+ rowDataList.add(new WriteExcelData(index, 1, "鍚嶇О"));
+ rowDataList.add(new WriteExcelData(index, 2, "涓氬姟绫诲瀷"));
+ rowDataList.add(new WriteExcelData(index, 3, "琛ㄥ崟绫诲瀷"));
+ rowDataList.add(new WriteExcelData(index, 4, "閰嶇疆鏂囨湰"));
+ rowDataList.add(new WriteExcelData(index, 5, "灞炴��"));
+ rowDataList.add(new WriteExcelData(index, 6, "鏌ヨ妯℃澘鍚嶇О"));
+ rowDataList.add(new WriteExcelData(index, 7, "鏌ヨ妯℃澘閰嶇疆鏂囨湰"));
+ rowDataList.add(new WriteExcelData(index, 8, "鏌ヨ妯℃澘涓氬姟绫诲瀷"));
+
+
+ qtRowDataList.add(new WriteExcelData(index, 0, "涓氬姟绫诲瀷鍚嶇О"));
+ qtRowDataList.add(new WriteExcelData(index, 1, "閾炬帴绫诲瀷鍚嶇О"));
+ qtRowDataList.add(new WriteExcelData(index, 2, "鏌ヨ妯℃澘瀹氫箟鍚嶇О"));
+ qtRowDataList.add(new WriteExcelData(index, 3, "灞炴��"));
+
+ if(!CollectionUtils.isEmpty(portalVIDTOList)){
+ final int[] rowIndex = {1};
+ boolean isLink=PortalVITypeFlag.LinkType.getIntVal()== portalVIDTOList.get(0).getTypeFlag()?true:false;
+ try {
+ BaseResult baseResult= quereyTemplateServiceI.queryTemplateList( portalVIDTOList.get(0).getTypeName(),isLink);
+ if(baseResult.isSuccess()){
+ final int[] rowIndex1 = {1};
+ Collection< QTD> qtdList= baseResult.getData();
+ if(!CollectionUtils.isEmpty(qtdList)){
+ qtdList.stream().forEach(qtd -> {
+ qtRowDataList.add(new WriteExcelData(rowIndex1[0], 0, qtd.btmName));
+ qtRowDataList.add(new WriteExcelData(rowIndex1[0], 1, qtd.linkTypeName));
+ qtRowDataList.add(new WriteExcelData(rowIndex1[0], 2, qtd.name));
+ qtRowDataList.add(new WriteExcelData(rowIndex1[0], 3, VciBaseUtil.array2String(qtd.abNames)));
+ rowIndex1[0]++;
+ });
+
+ }
+ }
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+ portalVIDTOList.stream().forEach(portalVIDTO -> {
+ //鍏堟槸鍚嶇О
+ rowDataList.add(new WriteExcelData(rowIndex[0], 0, portalVIDTO.getTypeName()));//涓氬姟绫诲瀷鍚嶇О
+ rowDataList.add(new WriteExcelData(rowIndex[0], 1, portalVIDTO.getViName()));//鍚嶇О
+ rowDataList.add(new WriteExcelData(rowIndex[0], 2, PortalVITypeFlag.getByIntVal(portalVIDTO.getTypeFlag()).getLabel()));//涓氬姟绫诲瀷
+ rowDataList.add(new WriteExcelData(rowIndex[0], 3,PortalVIType.getByIntVal(portalVIDTO.getViType()).getLabel()));//琛ㄥ崟绫诲瀷
+ try {
+ String prmText=UITools.getPRMText(prmDOO2VIS(portalVIDTO.getPrm(),portalVIDTO.getViType()));
+ String prmTextFileName= ObjectUtility.getNewObjectID36() + ".txt";
+ String prmTextFileNameAllName = xfileName + "." + prmTextFileName;
+ if (portalVIDTO.getViType() == PortalVIType.Table.getIntVal()) {//濡傛灉瀵煎叆鐨則able锛屽垯闇�瑕佹牎楠岃〃鏍煎叧鑱旂殑琛ㄥ崟鏄惁瀛樺湪锛屽鏋滀笉瀛樺湪鍒欏湪execl涓槸鍚﹀瓨鍦�
+ PortalVI[] pvs = platformClientUtil.getPortalService().getPortalVIArrayByTypeName(portalVIDTO.getTypeName());
+ PRMDTO prmdto= portalVIDTO.getPrm();
+ List<PRMItemDTO> prmItemDTOS= prmdto.getPrmItemList();
+ if (!CollectionUtils.isEmpty(Arrays.asList(pvs))) {
+ Optional.ofNullable(prmItemDTOS).orElseGet(()->new ArrayList<>()).stream().forEach(prmItemDTO -> {
+ Arrays.stream(pvs).forEach(pv -> {
+ if (prmItemDTO.getItemInObj().equals(pv.typeName + ":" + pv.viName)) {
+ prmItemDTO.setItemInObj(pv.id);
+ }
+ });
+
+ });
+ }
+ }
+ writeDataToFile(defaultTempFolder,prmTextFileNameAllName,prmText);
+ rowDataList.add(new WriteExcelData(rowIndex[0], 4,prmTextFileName));//閰嶇疆鏂囨湰
+
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ String attributeStr="";
+ try {
+ List<OsAttributeVO> osAttributeVOList=osAttributeService.getOsAttributeVOSByBtName(portalVIDTO.getTypeName(),portalVIDTO.getTypeFlag(),false);
+ if(!CollectionUtils.isEmpty(osAttributeVOList)){
+ List<String> filedList= osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList());
+ attributeStr=VciBaseUtil.array2String(filedList.toArray(new String[]{}));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ rowDataList.add(new WriteExcelData(rowIndex[0], 5, attributeStr));//灞炴��
+ String qtName="";
+ try {
+ QTInfo qt = platformClientUtil.getQTDService().getQT(portalVIDTO.getPrm().getFormQtName());
+ qtName=qt.qtName;
+ rowDataList.add(new WriteExcelData(rowIndex[0], 6,qtName));//鏌ヨ妯℃澘鍚嶇О
+ String qtFileName = ObjectUtility.getNewObjectID36() + ".txt";
+ String qtFileNameAllName = xfileName + "." + qtFileName;
+ writeDataToFile(defaultTempFolder,qtFileNameAllName,qt.qtText);
+ rowDataList.add(new WriteExcelData(rowIndex[0], 7, qtFileName));//鏌ヨ妯℃澘閰嶇疆鏂囨湰
+ rowDataList.add(new WriteExcelData(rowIndex[0], 8, qt.btmName));//鏌ヨ妯℃澘涓氬姟绫诲瀷
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+
+ rowIndex[0]++;
+ });
+ }
+
+
+ /* String excelTemplateFileName = "/excelTemplate/dataBaseExport.xls";
+ if(this.getClass().getResource(excelTemplateFileName) == null){
+ throw new VciBaseException("璇疯仈绯荤鐞嗗憳锛岀郴缁熶腑缂哄皯{0}杩欎釜妯℃澘鏂囦欢",new String[]{excelTemplateFileName});
+ }
+ try {
+ ExcelUtil.copyFileFromJar(excelTemplateFileName,excelFile);
+ //杩欎釜鏂规硶浼氬叧闂枃浠舵祦
+ }catch (Throwable e){
+ String msg = "浠庢ā鏉挎枃浠舵嫹璐濆埌鐩爣鏂囦欢鍑虹幇浜嗛敊璇�";
+ if(logger.isErrorEnabled()){
+ logger.error(msg,e);
+ }
+ throw new VciBaseException(msg+",{0}",new String[]{excelFileName},e);
+ }*/
+ try{
+ WriteExcelOption excelOption = new WriteExcelOption();
+ excelOption.addSheetDataList("portalvi",rowDataList);
+ excelOption.addSheetDataList("QTD",qtRowDataList);
+ ExcelUtil.writeDataToFile(excelFile,excelOption);
+ }catch (Throwable e){
+ String msg = "鎶婃暟鎹啓鍏ュ埌excel鏂囦欢涓嚭鐜伴敊璇�";
+ if(logger.isErrorEnabled()){
+ logger.error(msg,e);
+ }
+ throw new VciBaseException(msg+",{0}",new String[]{excelFileName},e);
+ }
+ File zip = ZipUtil.zip(defaultTempFolder);
+ FileUtil.del(defaultTempFolder + File.separator);
+ //鏈�鍚庤繑鍥瀍xcel鏂囦欢鍚嶇О
+ return zip.getAbsoluteFile().getAbsolutePath();
+ }
+
+ @Override
+ public BaseResult importData(File file)throws Throwable{
+ if (file == null) {
+ return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"鏃犲鍏ョ殑鏂囦欢"});
+ }
+ try {
+ File unzip = ZipUtil.unzip(file);
+ String filePath=unzip.getAbsolutePath() + File.separator + "export.xls";
+ File btmExcel = new File(filePath);
+ List<PortalVIPO> portalVIPOList=new ArrayList<>();
+ List<QTDPO> QTDPOPOList=new ArrayList<>();
+ try {
+ ReadExcelOption PortalVIPOReadExcelOption=new ReadExcelOption();
+ PortalVIPOReadExcelOption.setSheetName("portalvi");
+ PortalVIPOReadExcelOption.setSheetIndex(0);
+ portalVIPOList = ExcelUtil.readDataObjectFromExcel(btmExcel, PortalVIPO.class,PortalVIPOReadExcelOption);
+ //浠巈xecl鑾峰彇鏌ヨ妯℃澘瀹氫箟.
+ /* ReadExcelOption QTDPOReadExcelOption=new ReadExcelOption();
+ QTDPOReadExcelOption.setSheetName("QTD");
+ QTDPOReadExcelOption.setSheetIndex(1);
+ QTDPOPOList = ExcelUtil.readDataObjectFromExcel(btmExcel, QTDPO.class,QTDPOReadExcelOption);*/
+ }catch (VciBaseException e){
+ throw new Throwable("璇诲彇execl鏁版嵁鍑洪敊锛�"+e.getMessage());
+ }
+ List<PortalVI> portalVIList=new ArrayList<>();
+ if(!CollectionUtils.isEmpty(portalVIPOList)){
+ Map<String,String>formNameMap=new HashMap<>();
+ StringBuffer checkInObj=new StringBuffer();
+ StringBuffer checkPortalVI=new StringBuffer();
+ List<String> sjkExitsList=new ArrayList<>();
+ portalVIPOList.stream().forEach(portalVIPO -> {
+ PortalVI portalVI=new PortalVI();
+ String ploid = ObjectUtility.getNewObjectID36();
+ portalVI.id=ploid;
+ portalVI.viName=portalVIPO.getViName();
+ portalVI.typeName=portalVIPO.getTypeName();
+ portalVI.viType=PortalVIType.getByLabel(portalVIPO.getViTypeText()).getIntVal();
+ portalVI.typeFlag=PortalVITypeFlag.getByLabel(portalVIPO.getTypeFlagText()).getIntVal();
+ String fileName= portalVIPO.getPrmFileName();
+ String prmStr = readLines(filePath+"."+fileName);
+ try {
+ PortalVI[] pvs = platformClientUtil.getPortalService().getPortalVIArrayByTypeName(portalVI.typeName);
+ if (portalVI.viType == PortalVIType.Table.getIntVal()) {//濡傛灉瀵煎叆鐨則able锛屽垯闇�瑕佹牎楠岃〃鏍煎叧鑱旂殑琛ㄥ崟鏄惁瀛樺湪锛屽鏋滀笉瀛樺湪鍒欏湪execl涓槸鍚﹀瓨鍦�
+ formNameMap.put(portalVI.typeName + ":" + portalVI.viName, ploid);
+ PRMDO prmObj = UITools.getPRM(prmStr);
+ List<PRMItemDO> prmItemList = prmObj.getPrmItemList();
+
+ if (!CollectionUtils.isEmpty(prmItemList)) {
+ prmItemList.stream().forEach(prmItemDO -> {
+ if (!CollectionUtils.isEmpty(Arrays.asList(pvs))) {
+ Arrays.stream(pvs).forEach(pv -> {
+ if (prmItemDO.getItemInObj().equals(portalVI.typeName + ":" + pv.viName)) {
+ prmItemDO.setItemInObj(pv.id);
+ }
+ });
+ } else {
+ if (formNameMap.containsKey(prmItemDO.getItemInObj())) {
+ prmItemDO.setItemInObj(formNameMap.get(prmItemDO.getItemInObj()));
+ } else {
+ if (!checkInObj.toString().contains(prmItemDO.getItemInObj())) {
+ String[] split = prmItemDO.getItemInObj().split(":");
+ checkInObj.append(split[1]).append(",");
+ }
+ }
+ }
+
+ });
+ }
+ prmStr = UITools.getPRMText(prmObj);
+ }
+ portalVI.prm = prmStr.trim();
+ //鏍¢獙琛ㄥ崟鏄惁瀛樺湪
+ if (!CollectionUtils.isEmpty(Arrays.asList(pvs))) {
+ Arrays.stream(pvs).forEach(pv -> {
+ if (pv.viName.equals(portalVI.viName)) {
+ checkPortalVI.append(portalVI.viName).append(",");
+ }
+ });
+ }
+ //鏍¢獙灞炴�ф槸鍚︽纭�
+ List<OsAttributeVO> osAttributeVOList = osAttributeService.getOsAttributeVOSByBtName(portalVI.typeName, portalVI.typeFlag,false);
+ if (!CollectionUtils.isEmpty(osAttributeVOList)) {
+ List<String> filedList = osAttributeVOList.stream().map(OsAttributeVO::getId).collect(Collectors.toList());
+ List<String> attributeList = VciBaseUtil.str2List(portalVIPO.getAttributeKey());
+ //鏁版嵁搴撲笉瀛樺湪
+ List<String> sjkExitsLists = Optional.ofNullable(attributeList).orElseGet(() -> new ArrayList<>()).stream().filter(s -> !attributeList.contains(s)).collect(Collectors.toList());
+ sjkExitsList.addAll(sjkExitsLists);
+ }
+ }catch (Throwable e){
+ e.printStackTrace();
+ }
+ portalVIList.add(portalVI);
+ if(StringUtils.isNotBlank(portalVIPO.getQtName())&&StringUtils.isNotBlank(portalVIPO.getQtNameFile())) {
+ QTInfo qt = new QTInfo();
+ String qtText = readLines(filePath + "." + portalVIPO.getQtNameFile());
+ qt.qtText=qtText;
+ qt.qtName = portalVIPO.getQtName();
+ qt.btmName=portalVIPO.getQtName();
+ QTInfo qt2 = null;
+ try {
+ qt2 = platformClientUtil.getQTDService().getQT(qt.qtName);
+ if (qt2 == null) {
+ platformClientUtil.getQTDService().saveQT(qt);
+ }
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+
+ }
+ });
+ if (checkInObj.length() > 0) {
+ throw new Throwable( checkInObj.toString() + "琛ㄥ崟涓嶅瓨鍦紒");
+ }
+ if (checkPortalVI.length() > 0) {
+ throw new Throwable( checkInObj.toString() + "鍚嶇О宸茬粡瀛樺湪锛�");
+ }
+ if(sjkExitsList.size()>0){
+ throw new Throwable( checkInObj.toString() + "灞炴�у湪绫诲瀷涓笉瀛樺湪锛�");
+ }
+ for (PortalVI pvi : portalVIList) {
+ platformClientUtil.getPortalService().savePortalVI(pvi);
+ }
+ }
+ }catch (Throwable e){
+ // throw new Throwable("瀵煎叆澶辫触锛�"+e.getMessage());
+ return BaseResult.fail("瀵煎叆澶辫触锛�"+e.getMessage());
+ }
+ return BaseResult.success("瀵煎叆鎴愬姛");
+ }
+
+ private String readLines(String filePath){
+ StringBuffer sb=new StringBuffer();
+ FileInputStream prmFile=null;
+ try {
+ prmFile = new FileInputStream(filePath);
+ List<String> prm= IOUtils.readLines(prmFile,"UTF-8");
+ prm.stream().forEach(s -> {
+ sb.append(s);
+ });
+ } catch (IOException e) {
+ IOUtils.closeQuietly(prmFile);
+ e.printStackTrace();
+ }finally {
+ IOUtils.closeQuietly(prmFile);
+ }
+ return sb.toString();
+ }
+
+ /**
+ * 鎷疯礉鏁版嵁鍒皐ord妯℃澘涓�
+ * @param fileName 瑕佸啓鍏ョ殑鏁版嵁
+ * @return word 鏂囦欢璺緞
+ */
+ public String writeDataToFile(String defaultTempFolder,String fileName,String str){
+ String tempFolder = LocalFileUtil.getDefaultTempFolder();
+ //鎷疯礉鏂囦欢
+ String filePath = tempFolder + File.separator + fileName;
+ File file = new File(filePath);
+ FileOutputStream out = null;
+ try {
+ file.createNewFile();
+ out= new FileOutputStream(file);
+ IOUtils.write(str,out);
+ }catch (Throwable e){
+ IOUtils.closeQuietly(out);
+ String msg = "鍦ㄥ垱寤烘枃浠剁殑鏃跺�欏嚭鐜颁簡閿欒";
+ if(logger.isErrorEnabled()){
+ logger.error(msg,e);
+ }
+ throw new VciBaseException(msg+",{0}",new String[]{filePath},e);
+ }finally {
+ IOUtils.closeQuietly(out);
+ //绉诲姩灞炴�у埌閾炬帴绫诲瀷鏂囦欢澶归噷闈㈠幓
+ FileUtil.move(file, new File(defaultTempFolder),true);
+ FileUtil.del(tempFolder);
+ }
+ return filePath;
+ }
+
+ public List<PortalVIDTO> listByIds(Collection idList){
+ List<PortalVIDTO> portalVIVOList=new ArrayList<>();
+ if(CollectionUtils.isEmpty(idList)){
+ throw new VciBaseException("璇烽�夋嫨闇�瑕佸鍑虹殑鏁版嵁");
+ }
+ List<PortalVI> portalVIList=new ArrayList<>();
+ idList.stream().forEach(id->{
+ try {
+ PortalVI portalVI= platformClientUtil.getPortalService().getPortalVIById(id.toString());
+ portalVIList.add(portalVI);
+ } catch (PLException e) {
+ e.printStackTrace();
+ }
+ });
+ portalVIVOList= portalVIO2DTOS(portalVIList);
+ return portalVIVOList;
+ }
+
+ private BaseResult savePortalVIDTO(PortalVIDTO portalVIDTO,boolean isEdit) {
boolean _isBtm=false;
boolean flag = false;
String labelName=PortalVIType.Form.getName();
try {
- VciBaseUtil.alertNotNull(portalVIDTO.getViName(),"鍚嶇О涓嶈兘涓虹┖锛�");
+ VciBaseUtil.alertNotNull(
+ portalVIDTO.getViName(),"鍚嶇О"
+ ,portalVIDTO.getPrm().getFormQtName(),"缁戝畾琛ㄥ崟");
if(portalVIDTO.getPrm()==null||portalVIDTO.getPrm().getPrmItemList()==null||portalVIDTO.getPrm().getPrmItemList().size()==0){
throw new Throwable(labelName+"锛屾湭璁剧疆");
}
if(PortalVIType.Table.getIntVal()==portalVIDTO.getViType()){//濡傛灉鏄〃鏍肩殑鐨勬牎楠�
labelName=PortalVIType.Table.getName();
- PRMItemDTO prmItemDTO= portalVIDTO.getPrm().getPrmItemList().get(0);
+ PRMItemDTO prmItemDTO = portalVIDTO.getPrm().getPrmItemList().get(0);
//姣忛〉鏄剧ず鏍¢獙
String rtnContent = isCorrectPageNums(prmItemDTO.getItemPageSize());
if (StringUtils.isNotBlank(rtnContent)) {
throw new VciBaseException(rtnContent);
}
- }else{
-
}
labelName= PortalVIType.getByIntVal(portalVIDTO.getViType()).getLabel();
if(!_isBtm){
- PortalVI[] portalVIS= platformClientUtil.getPortalService().getPortalVIArrayByTypeName(portalVIDTO.getTypeName());
+ PortalVI[] portalVIS = platformClientUtil.getPortalService().getPortalVIArrayByTypeName(portalVIDTO.getTypeName());
for (int i = 0; i < portalVIS.length; i++) {
- PortalVI portalVI= portalVIS[i];
- String viName= portalVI.viName;
+ PortalVI portalVI = portalVIS[i];
+ String viName = portalVI.viName;
if(isEdit){//濡傛灉涓轰慨鏀�
try {
- PortalVI oldPortalVI= platformClientUtil.getPortalService().getPortalVIById(portalVIDTO.getId());
- flag=platformClientUtil.getPortalService().judgeUpdateButton(oldPortalVI.typeFlag, oldPortalVI.viName, oldPortalVI.typeName);
+ PortalVI oldPortalVI = platformClientUtil.getPortalService().getPortalVIById(portalVIDTO.getId());
+ flag = platformClientUtil.getPortalService().judgeUpdateButton(oldPortalVI.typeFlag, oldPortalVI.viName, oldPortalVI.typeName);
if (flag && (StringUtils.isNotBlank(portalVIDTO.getViName()))&&(!oldPortalVI.viName.equals(portalVIDTO.getViName()))) {
throw new Throwable("璇�"+labelName+"宸茬粡琚紩鐢紝涓嶈兘淇敼鍚嶇О!");
}
} catch (PLException e) {
- throw new Throwable("鏌ヨ");
+ throw new Throwable("鏌ヨ鍘熸湁琛ㄥ崟鍑虹幇寮傚父:"+e.getMessage());
}
if (!portalVI.id.equals(portalVIDTO.getId())) {
if (portalVI.viName.equals(portalVIDTO.getViName())) {
@@ -175,48 +692,30 @@
}else{
flag=platformClientUtil.getPortalService().judgeUpdateButton(portalVIDTO.getTypeFlag(), portalVIDTO.getViName(), portalVIDTO.getTypeName());
}
- flag= saveForm(portalVIDTO,isEdit);
+ PortalVI pvi=portalVIDTOO2VI(portalVIDTO);
+ if (!isEdit) {
+ flag= platformClientUtil.getPortalService().savePortalVI(pvi);
+ } else {
+ flag= platformClientUtil.getPortalService().updatePortalVI(pvi);
+ }
if(flag){
return BaseResult.success("淇濆瓨"+labelName+"鎴愬姛!");
}else{
new Throwable("淇濆瓨"+labelName+"澶辫触!");
}
} catch (Throwable e) {
- // throw new VciBaseException("淇濆瓨琛ㄥ崟鍑虹幇寮傚父锛�"+e.getMessage());
- return BaseResult.fail("淇濆瓨"+labelName+"鍑虹幇寮傚父锛�"+e.getMessage());
+ String exceptionMessage = "淇濆瓨"+labelName+"鍑虹幇寮傚父锛�"+ VciBaseUtil.getExceptionMessage(e);
+ logger.error(exceptionMessage);
+ return BaseResult.fail(exceptionMessage);
+
}
return BaseResult.success("淇濆瓨"+labelName+"鎴愬姛!");
- }
-
- /**
- * 琛ㄥ崟/琛ㄦ牸
- * @param portalVIDTO
- * @param isEdit
- * @return
- */
- private boolean saveForm(PortalVIDTO portalVIDTO,boolean isEdit) {
- List<PRMItemDO> prmItemList = new ArrayList<PRMItemDO>();
- try {
- PortalVI pvi=portalVIDTOO2VI(portalVIDTO);
- boolean res=false;
- if (!isEdit) {
- res= platformClientUtil.getPortalService().savePortalVI(pvi);
- } else {
- res= platformClientUtil.getPortalService().updatePortalVI(pvi);
- }
- return res;
- } catch (Throwable e) {
- e.printStackTrace();
- return false;
- }
}
@Override
public Map<String, PortalVIVO> selectAllPortalVIMap() throws VciBaseException {
return null;
}
-
-
/**
* 鍒ゆ柇姣忛〉琛屾暟瀹氫箟鏄惁姝g‘
@@ -264,7 +763,6 @@
return "";
}
-
/**
* 鏋氫妇鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
*
@@ -280,6 +778,7 @@
});
return portalVIVOS;
}
+
/**
* 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
* @param portalVIDTOS 琛ㄥ崟鐨勫璞�
@@ -297,18 +796,35 @@
/**
* 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
+ * @param PortalVIS 琛ㄥ崟鐨勫璞�
+ * @return 鏄剧ず瀵硅薄
+ */
+ @Override
+ public List<PortalVIDTO> portalVIO2DTOS(Collection<PortalVI> PortalVIS) {
+ List<PortalVIDTO>PortalVIDTOS = new ArrayList<>();
+ Optional.ofNullable(PortalVIS).orElseGet(()->new ArrayList<>()).stream().forEach(PortalVI -> {
+ PortalVIDTO PPortalVIDTO = portalVIO2DTO(PortalVI);
+ PortalVIDTOS.add(PPortalVIDTO);
+ });
+ return PortalVIDTOS;
+ }
+
+
+
+ /**
+ * 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
* @param portalVIDTO
* @return
*/
@Override
public PortalVI portalVIDTOO2VI(PortalVIDTO portalVIDTO) {
- PortalVI portalVI=new PortalVI();
- portalVI.id=portalVIDTO.getId();
- portalVI.typeFlag= portalVIDTO.getTypeFlag();
- portalVI.typeName=portalVIDTO.getTypeName();
- portalVI.viName=portalVIDTO.getViName();
- portalVI.viType=portalVIDTO.getViType();
- short viType =portalVIDTO.getViType();
+ PortalVI portalVI = new PortalVI();
+ portalVI.id = portalVIDTO.getId();
+ portalVI.typeFlag = portalVIDTO.getTypeFlag();
+ portalVI.typeName = portalVIDTO.getTypeName();
+ portalVI.viName = portalVIDTO.getViName();
+ portalVI.viType = portalVIDTO.getViType();
+ short viType = portalVIDTO.getViType();
PRMDO prmdo = prmDOO2VIS(portalVIDTO.getPrm(),viType);
try {
portalVI.prm=UITools.getPRMText(prmdo);
@@ -316,6 +832,25 @@
e.printStackTrace();
}
return portalVI;
+ }
+
+ /**
+ * 琛ㄥ崟鐨勬暟鎹璞¤浆鎹负鏄剧ず瀵硅薄
+ * @param portalVI
+ * @return
+ */
+ @Override
+ public PortalVIDTO portalVIO2DTO(PortalVI portalVI) {
+ PortalVIDTO portalVIDTO=new PortalVIDTO();
+ portalVIDTO.setId(portalVI.id);
+ portalVIDTO.setTypeFlag(portalVI.typeFlag);
+ portalVIDTO.setTypeName(portalVI.typeName);
+ portalVIDTO.setViName(portalVI.viName);
+ portalVIDTO.setViType(portalVI.viType);
+ short viType =portalVIDTO.getViType();
+ PRMDO prmdo= UITools.getPRM(portalVI.prm);
+ portalVIDTO.setPrm(prmDOO2DTOS(prmdo,viType));
+ return portalVIDTO;
}
/**
@@ -332,17 +867,36 @@
return prmdo;
}
+ /**
+ * 琛ㄥ崟鏁版嵁瀵硅薄杞崲
+ * @param prmdo
+ * @param viType
+ * @return
+ */
+ private PRMDTO prmDOO2DTOS( PRMDO prmdo, short viType) {
+ PRMDTO prmdto=new PRMDTO();
+ prmdto.setShowCols(prmdo.getShowCols());
+ prmdto.setFormQtName(prmdo.getFormQtName());
+ prmdto.setPrmItemList(pRMItemDOO2DTOS(prmdo.getPrmItemList(),viType));
+ return prmdto;
+ }
+
@Override
public PortalVIVO portalVIDOO2VO(PortalVI portalVI) {
PortalVIVO portalVIVO=new PortalVIVO();
portalVIVO.setId(portalVI.id);
+ portalVIVO.setTypeFlagText(PortalVITypeFlag.getByIntVal(portalVI.typeFlag).getLabel());
portalVIVO.setTypeFlag(portalVI.typeFlag);
portalVIVO.setTypeName(portalVI.typeName);
portalVIVO.setViName(portalVI.viName);
portalVIVO.setViType(portalVI.viType);
- String prm= portalVI.prm;
- PRMDO prmdo= UITools.getPRM(prm);
- portalVIVO.setPrm(prmDOO2VOS(prmdo,portalVI.viType));
+ portalVIVO.setViTypeText(PortalVIType.getByIntVal(portalVI.viType).getLabel());
+
+ String prm = portalVI.prm;
+ if(StringUtils.isNotBlank(prm)) {
+ PRMDO prmdo = UITools.getPRM(prm);
+ portalVIVO.setPrm(prmDOO2VOS(prmdo, portalVI.viType));
+ }
return portalVIVO;
}
private PRMVO prmDOO2VOS(PRMDO prmdo,short viType){
@@ -366,6 +920,15 @@
Optional.ofNullable(prmItemDTOS).orElseGet(()->new ArrayList<>()).stream().forEach(PRMItemDTO -> {
PRMItemDO PRMItemDO = pRMItemDTOO2DO(PRMItemDTO,viType);
portalVIVOS.add(PRMItemDO);
+ });
+ return portalVIVOS;
+ }
+
+ public List<PRMItemDTO> pRMItemDOO2DTOS(Collection<PRMItemDO> prmItemDOS,short viType) {
+ List<PRMItemDTO> portalVIVOS = new ArrayList<>();
+ Optional.ofNullable(prmItemDOS).orElseGet(()->new ArrayList<>()).stream().forEach(prmItemDO -> {
+ PRMItemDTO prmItemDTO = pRMItemDOO2DTO(prmItemDO,viType);
+ portalVIVOS.add(prmItemDTO);
});
return portalVIVOS;
}
@@ -401,7 +964,7 @@
prmItemDO.setItemHrefConf(prmItemDO.getItemHrefConf());//瓒呴摼鎺ラ厤缃�
prmItemDO.setItemTips(prmItemDTO.getItemTips());
prmItemDO.setItemTrim(prmItemDTO.getItemTrim());
- prmItemDO.setItemDateFormat(prmItemDTO.getItemDateFormat());
+ //prmItemDO.setItemDateFormat(prmItemDTO.getItemDateFormat());
prmItemDO.setItemCtrlDisplyCondition(prmItemDTO.getItemCtrlDisplyCondition());////鎺у埗鏄剧ず鏉′欢
prmItemDO.setItemEditableProgram(prmItemDTO.getItemEditableProgram());
prmItemDO.setItemEditCondition(prmItemDTO.getItemEditCondition());
@@ -432,6 +995,15 @@
prmItemDO.setItemHttpPathField(prmItemDTO.getItemHttpPathField());
if(viType==PortalVIType.Table.getIntVal()) {//濡傛灉鏄〃鏍�
initTableConfigDTOO2DOData(prmItemDO,prmItemDTO);
+ }else{
+ List<String> itemValueList=new ArrayList<>();
+ List<KeyValue> keyValueList=prmItemDTO.getItemKeyValueList();
+ Optional.ofNullable(keyValueList).orElseGet(()->new ArrayList<>()).stream().forEach(keyValue -> {
+ String value= keyValue.getValue()+"{"+keyValue.getKey()+"}";
+ itemValueList.add(value);
+ });
+ prmItemDO.setItemValueList(itemValueList);
+
}
return prmItemDO;
}
@@ -496,12 +1068,100 @@
prmItemVO.setItemIsHttpSave(prmItemDO.getItemIsHttpSave());
prmItemVO.setItemHttpVolumnPath(prmItemDO.getItemHttpVolumnPath());
prmItemVO.setItemHttpPathField(prmItemDO.getItemHttpPathField());
+
if(viType==PortalVIType.Table.getIntVal()) {//濡傛灉鏄〃鏍�
initTableConfigDOO2VOData(prmItemVO,prmItemDO);
+ }else{
+ List<String> enumList= prmItemDO.getItemValueList();
+ List<KeyValue>itemKeyValueList=new ArrayList<>();
+ Optional.ofNullable(enumList).orElseGet(()->new ArrayList<>()).stream().forEach(enumValue->{
+ List<String> keyValueList= VciBaseUtil.str2List(VciBaseUtil.removeComma(enumValue,"}"),"\\{");
+ KeyValue keyValue=new KeyValue();
+ keyValue.setKey(keyValueList.get(1));
+ keyValue.setValue(keyValueList.get(0));
+ itemKeyValueList.add(keyValue);
+ });
+ prmItemVO.setItemKeyValueList(itemKeyValueList);
}
return prmItemVO;
}
-
+ /**
+ * 鏁版嵁瀵硅薄杞崲
+ * @param prmItemDO 鏁版嵁瀵硅薄
+ * @param viType 琛ㄥ崟绫诲瀷
+ * @return
+ */
+ private PRMItemDTO pRMItemDOO2DTO(PRMItemDO prmItemDO,short viType) {
+ PRMItemDTO prmItemDTO=new PRMItemDTO();
+ prmItemDTO.setItemBat(prmItemDO.getItemBat());
+ prmItemDTO.setItemCols(prmItemDO.getItemCols());
+ prmItemDTO.setItemEQ(prmItemDO.getItemEQ());
+ prmItemDTO.setItemDbl(prmItemDO.getItemDbl());
+ prmItemDTO.setItemCut(prmItemDO.getItemCut());
+ prmItemDTO.setItemOR(prmItemDO.getItemOR());
+ prmItemDTO.setItemAddFilter(prmItemDO.getItemAddFilter());
+ prmItemDTO.setItemField(prmItemDO.getItemField());
+ prmItemDTO.setItemImgWH(prmItemDO.getItemImgWH());
+ prmItemDTO.setItemCtrlDisplyCol(prmItemDO.getItemCtrlDisplyCol());//鎺у埗鏄剧ず鍒�
+ prmItemDTO.setItemDateFormat(prmItemDO.getItemDateFormat());// 鏁版嵁涓烘棩鏈熺被鍨嬫椂鐨勬牸寮忓寲瀛楃涓� 濡� yyyy-MM-dd HH:mm:ss
+ prmItemDTO.setItemInObj(prmItemDO.getItemInObj());
+ prmItemDTO.setItemName(prmItemDO.getItemName());
+ prmItemDTO.setItemCustomClass(prmItemDO.getItemCustomClass());//鑷畾涔夌被璺緞
+ prmItemDTO.setItemIsHidden(prmItemDO.getItemIsHidden());
+ prmItemDTO.setItemIsEditable(prmItemDO.getItemIsEditable());
+ prmItemDTO.setItemIsRequired(prmItemDO.getItemIsRequired());
+ prmItemDTO.setItemFieldWidth(prmItemDO.getItemFieldWidth());
+ prmItemDTO.setItemTxf(prmItemDO.getItemTxf());
+ prmItemDTO.setItemRows(prmItemDO.getItemRows());
+ prmItemDTO.setItemHrefConf(prmItemDO.getItemHrefConf());//瓒呴摼鎺ラ厤缃�
+ prmItemDTO.setItemTips(prmItemDO.getItemTips());
+ prmItemDTO.setItemTrim(prmItemDO.getItemTrim());
+ prmItemDTO.setItemDateFormat(prmItemDO.getItemDateFormat());
+ prmItemDTO.setItemCtrlDisplyCondition(prmItemDO.getItemCtrlDisplyCondition());////鎺у埗鏄剧ず鏉′欢
+ prmItemDTO.setItemEditableProgram(prmItemDO.getItemEditableProgram());
+ prmItemDTO.setItemEditCondition(prmItemDO.getItemEditCondition());
+ prmItemDTO.setItemHrefFields(prmItemDO.getItemHrefFields());//瓒呴摼鎺ュ瓧娈�
+ prmItemDTO.setItemValueList(prmItemDO.getItemValueList());
+ prmItemDTO.setItemValue(prmItemDO.getItemValue());
+ prmItemDTO.setItemStyle(prmItemDO.getItemStyle());
+ prmItemDTO.setItemShowExpression(prmItemDO.getItemShowExpression());// 鏄剧ず琛ㄨ揪寮� ${aa}-${bb}
+ prmItemDTO.setItemSeniorQueryColsCounts(prmItemDO.getItemSeniorQueryColsCounts());//楂樼骇鏌ヨ鍚勫垪浣跨敤娆℃暟
+ prmItemDTO.setItemQuerySql(prmItemDO.getItemQuerySql());//楂樼骇鏌ヨsql
+ prmItemDTO.setItemType(prmItemDO.getItemType());//灞炴�у熀鏈被鍨�
+ prmItemDTO.setItemTypeText(ItemTypeEnum.getTextByValue(prmItemDO.getItemType()));//灞炴�у熀鏈被鍨嬫樉绀哄��
+ prmItemDTO.setItemScript(prmItemDO.getItemScript());
+ prmItemDTO.setItemRight(prmItemDO.getItemRight());
+ prmItemDTO.setItemQueryRefFields(prmItemDO.getItemQueryRefFields());//鏌ヨ鍏宠仈鍒�
+ prmItemDTO.setItemQtName(prmItemDO.getItemQtName());
+ prmItemDTO.setItemParentFolderName(prmItemDO.getItemParentFolderName());//鐖舵枃浠跺す鍚嶇О
+ prmItemDTO.setItemPageSize(prmItemDO.getItemPageSize());
+ prmItemDTO.setItemOutType(prmItemDO.getItemOutType());
+ prmItemDTO.setItemOutFields(prmItemDO.getItemOutFields());
+ prmItemDTO.setItemListVal(prmItemDO.getItemListVal());//鍙傜収鍊�
+ prmItemDTO.setItemListTxt(prmItemDO.getItemListTxt());
+ prmItemDTO.setItemListTable(prmItemDO.getItemListTable());
+ prmItemDTO.setItemKeyFields(prmItemDO.getItemKeyFields());
+ prmItemDTO.setItemIsShowFolder(prmItemDO.getItemIsShowFolder());//鏄惁鏄剧ず鏂囦欢澶�
+ prmItemDTO.setItemIsNavigatorExpand(prmItemDO.getItemIsNavigatorExpand());////鏌ヨ鍖哄煙鏄剧ず鎺у埗
+ prmItemDTO.setItemIsHttpSave(prmItemDO.getItemIsHttpSave());
+ prmItemDTO.setItemHttpVolumnPath(prmItemDO.getItemHttpVolumnPath());
+ prmItemDTO.setItemHttpPathField(prmItemDO.getItemHttpPathField());
+ if(viType==PortalVIType.Table.getIntVal()) {//濡傛灉鏄〃鏍�
+ initTableConfigDOO2VOData(prmItemDTO,prmItemDO);
+ }else{
+ List<String> enumList= prmItemDO.getItemValueList();
+ List<KeyValue>itemKeyValueList=new ArrayList<>();
+ Optional.ofNullable(enumList).orElseGet(()->new ArrayList<>()).stream().forEach(enumValue->{
+ List<String> keyValueList= VciBaseUtil.str2List(VciBaseUtil.removeComma(enumValue,"}"),"\\{");
+ KeyValue keyValue=new KeyValue();
+ keyValue.setKey(keyValueList.get(1));
+ keyValue.setValue(keyValueList.get(0));
+ itemKeyValueList.add(keyValue);
+ });
+ prmItemDTO.setItemKeyValueList(itemKeyValueList);
+ }
+ return prmItemDTO;
+ }
/**
* 鍒濆鍖栬〃鏍兼墍鐢ㄧ壒娈婂瓧娈甸厤缃�
* @param prmItemVO
@@ -510,15 +1170,45 @@
private void initTableConfigDOO2VOData(PRMItemVO prmItemVO,PRMItemDO prmItemDO){
prmItemVO.setItemFieldWidthList(initItemFieldWidthList(prmItemDO.getItemOutFields(),prmItemDO.getItemFieldWidth()));//鍒楁樉绀哄娈� itemOutFieldList 鐩稿尮閰�
prmItemVO.setItemSeniorQueryBOS(initItemSeniorQueryBOData(prmItemDO.getItemSeniorQueryCols(),prmItemDO.getItemSeniorQueryColsCounts(),prmItemDO.getItemQuerySql()));//楂樼骇鏌ヨ瀵硅薄
- List<String> allKeyList= getRefFormVIName(prmItemVO.getItemInObj());
- List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemVO.getItemOutFields());
- List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemVO.getItemKeyFields());
- List<String> itemSelectoutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
- prmItemVO.setItemSelectoutFieldList(itemSelectoutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈�
+ List<String> allKeyList= getRefFormVIName(prmItemDO.getItemInObj());
+ List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemDO.getItemOutFields());
+ List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemDO.getItemKeyFields());
+ List<String> itemSelectOutFieldList= allKeyList.stream()
+ .filter(s -> !itemOutFieldList.contains(s))
+ .collect(Collectors.toList());
+ prmItemVO.setItemSelectOutFieldList(itemSelectOutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈�
prmItemVO.setItemOutFieldList(itemOutFieldList);//闇�瑕佷娇鐢ㄧ殑闆嗗悎
- List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
+ // List<String> itemSearchFieldList= itemOutFieldList.stream().filter(s ->!CollectionUtils.isEmpty(itemKeyFieldList).stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
+ List<String> itemSearchFieldList=new ArrayList<>();
+ if(!CollectionUtils.isEmpty(itemKeyFieldList)){
+ itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.contains(s)).collect(Collectors.toList());
+ }else{
+ itemSearchFieldList=itemOutFieldList;
+ }
prmItemVO.setItemSearchFieldList(itemSearchFieldList);//寰呮悳绱㈠瓧娈�
prmItemVO.setItemKeyFieldList(itemKeyFieldList);//鎼滅储瀛楁
+ }
+ /**
+ * 鍒濆鍖栬〃鏍兼墍鐢ㄧ壒娈婂瓧娈甸厤缃�
+ * @param prmItemDTO
+ * @param prmItemDO
+ */
+ private void initTableConfigDOO2VOData(PRMItemDTO prmItemDTO,PRMItemDO prmItemDO){
+ prmItemDTO.setItemFieldWidthList(initItemFieldWidthList(prmItemDO.getItemOutFields(),prmItemDO.getItemFieldWidth()));//鍒楁樉绀哄娈� itemOutFieldList 鐩稿尮閰�
+ prmItemDTO.setItemSeniorQueryBOS(initItemSeniorQueryBOData(prmItemDO.getItemSeniorQueryCols(),prmItemDO.getItemSeniorQueryColsCounts(),prmItemDO.getItemQuerySql()));//楂樼骇鏌ヨ瀵硅薄
+ List<String> allKeyList= getRefFormVIName(prmItemDO.getItemInObj());
+ List<String> itemOutFieldList =VciBaseUtil.str2List(prmItemDO.getItemOutFields());
+ List<String> itemKeyFieldList =VciBaseUtil.str2List(prmItemDO.getItemKeyFields());
+ List<String> itemSelectOutFieldList= allKeyList.stream().filter(s ->!itemOutFieldList.stream().map(s1 -> s1).collect(Collectors.toList()).contains(s) ).collect(Collectors.toList());
+ prmItemDTO.setItemSelectoutFieldList(itemSelectOutFieldList);//寰呴�夋嫨鐨勫睘鎬у瓧娈�
+ prmItemDTO.setItemOutFieldList(itemOutFieldList);//闇�瑕佷娇鐢ㄧ殑闆嗗悎
+ List<String> itemSearchFieldList=new ArrayList<>();
+ if(!CollectionUtils.isEmpty(itemKeyFieldList)){
+ itemSearchFieldList= itemOutFieldList.stream().filter(s ->!itemKeyFieldList.contains(s)).collect(Collectors.toList());
+ }else{
+ itemSearchFieldList=itemOutFieldList;
+ } prmItemDTO.setItemSearchFieldList(itemSearchFieldList);//寰呮悳绱㈠瓧娈�
+ prmItemDTO.setItemKeyFieldList(itemKeyFieldList);//鎼滅储瀛楁
}
/**
* 鍒濆鍖栬〃鏍兼墍鐢ㄧ壒娈婂瓧娈甸厤缃�
@@ -528,26 +1218,26 @@
private void initTableConfigDTOO2DOData(PRMItemDO prmItemDO,PRMItemDTO prmItemDTO){
prmItemDO.setItemOutFields(VciBaseUtil.array2String(prmItemDTO.getItemOutFieldList().toArray(new String[]{})));//闇�瑕佷娇鐢ㄧ殑瀛楁
- prmItemDO.setItemKeyFields(VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//闇�瑕佹悳绱㈢殑瀛楁
- List<String> newItemFieldWidthList=prmItemDTO.getItemFieldWidthList().stream().map(KeyValue::getValue).distinct().collect(Collectors.toList());
+ prmItemDO.setItemKeyFields(CollectionUtils.isEmpty(prmItemDTO.getItemKeyFieldList())?"":VciBaseUtil.array2String(prmItemDTO.getItemKeyFieldList().toArray(new String[]{})));//闇�瑕佹悳绱㈢殑瀛楁
+ List<String> newItemFieldWidthList = prmItemDTO.getItemFieldWidthList().stream().map(KeyValue::getValue).distinct().collect(Collectors.toList());
prmItemDO.setItemFieldWidth(VciBaseUtil.array2String(newItemFieldWidthList.toArray(new String[]{}),":"));//瀛楁瀹藉害
- List<ItemSeniorQueryBO> itemSeniorQueryBOS= prmItemDTO.getItemSeniorQueryBOS();
- List<String> itemSeniorQueryColsList=new ArrayList<>();
+ List<ItemSeniorQueryBO> itemSeniorQueryBOS = prmItemDTO.getItemSeniorQueryBOS();
+ List<String> itemSeniorQueryColsList = new ArrayList<>();
List<String> itemSeniorQueryColsCountsList=new ArrayList<>();
- List<String> itemQuerySqlList=new ArrayList<>();
+ List<String> itemQuerySqlList = new ArrayList<>();
itemSeniorQueryBOS.stream().forEach(itemSeniorQueryBO -> {
- String itemSeniorQueryCols= itemSeniorQueryBO.getItemSeniorQueryCols();
- String itemSeniorQueryColsCounts=itemSeniorQueryBO.getItemSeniorQueryColsCounts();
- String itemQuerySql=itemSeniorQueryBO.getItemQuerySql();
+ String itemSeniorQueryCols = itemSeniorQueryBO.getItemSeniorQueryCols();
+ String itemSeniorQueryColsCounts = itemSeniorQueryBO.getItemSeniorQueryColsCounts();
+ String itemQuerySql = itemSeniorQueryBO.getItemQuerySql();
if(StringUtils.isNotBlank(itemSeniorQueryCols)) {
itemSeniorQueryColsList.add(itemSeniorQueryCols);
}
- if(StringUtils.isNotBlank(itemSeniorQueryColsCounts)) {
- itemSeniorQueryColsCountsList.add(itemSeniorQueryColsCounts);
- }
- if(StringUtils.isNotBlank(itemQuerySql)){
- itemQuerySqlList.add(itemQuerySql);
- }
+ if(StringUtils.isNotBlank(itemSeniorQueryColsCounts)) {
+ itemSeniorQueryColsCountsList.add(itemSeniorQueryColsCounts);
+ }
+ if(StringUtils.isNotBlank(itemQuerySql)){
+ itemQuerySqlList.add(itemQuerySql);
+ }
});
prmItemDO.setItemSeniorQueryCols(VciBaseUtil.array2String(itemSeniorQueryColsList.toArray(new String[]{})));
prmItemDO.setItemSeniorQueryColsCounts(VciBaseUtil.array2String(itemSeniorQueryColsCountsList.toArray(new String[]{})));
@@ -560,12 +1250,15 @@
*/
private List<KeyValue> initItemFieldWidthList(String itemOutFields,String itemFieldWidth){
List<KeyValue> keyValueList=new ArrayList<>();
- List<String>itemOutFieldList= VciBaseUtil.str2List(itemOutFields);
- List<String>itemFieldWidthList= VciBaseUtil.str2List(itemFieldWidth);
+ List<String>itemOutFieldList = VciBaseUtil.str2List(itemOutFields);
+ List<String>itemFieldWidthList =VciBaseUtil.str2List(itemFieldWidth,",");
if(itemOutFieldList.size()>0) {
for (int i = 0; i < itemOutFieldList.size(); i++) {
KeyValue keyValue = new KeyValue();
- String with = itemFieldWidthList.get(i);
+ String with="250";
+ if(i<itemFieldWidthList.size()) {
+ with = itemFieldWidthList.get(i);
+ }
keyValue.setKey(itemOutFieldList.get(i));
keyValue.setValue(StringUtils.isBlank(with) ? "250" : with);
keyValueList.add(keyValue);
@@ -606,10 +1299,10 @@
}
return itemSeniorQueryBOList;
}
+
private List<String> getRefFormVIName(String refFormOid){
List<String> keyList=new ArrayList<>();
try {
-
PortalVI refFormVI = UITools.getService().getPortalVIById(refFormOid);
PortalVIVO portalVIVO= portalVIDOO2VO(refFormVI);
if(portalVIVO!=null&&portalVIVO.getPrm().getPrmItemList().size()>0){
--
Gitblit v1.9.3