From 8c9f15cc8a3c3e6f4a4404574d39732b624289a6 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 13 九月 2024 14:59:08 +0800 Subject: [PATCH] 代码提交 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java | 23 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 359 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 377 insertions(+), 8 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java index 233f31b..5fbd6bc 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java @@ -1,6 +1,7 @@ package com.vci.web.controller; import cn.hutool.core.io.FileUtil; +import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.common.PLException; import com.vci.corba.portal.data.PLTabPage; import com.vci.corba.portal.data.PLUILayout; @@ -211,14 +212,26 @@ /** * 瀵煎叆UI涓婁笅鏂� * @param file 涓婁紶鐨勬枃浠� + * @param isCovered 鏄惁瑕嗙洊 + * @param selectBtm 閫夋嫨瀵煎叆鍒扮殑涓氬姟绫诲瀷 * @return */ @PostMapping("/impUiContextData") - public BaseResult impUIContextData(MultipartFile file){try { - return uiManagerService.impUIContextData(file); - }catch (Throwable e) { - throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); - } + public BaseResult impUIContextData(MultipartFile file, boolean isCovered,String selectBtm){ + String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); + File file1 = new File(excelFileName); + try { + file.transferTo(new File(excelFileName)); + if (file != null) { + return uiManagerService.impUIContextData(file1, isCovered,selectBtm); + } else { + return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"鏃犲鍏ョ殑鏂囦欢"}); + } + }catch (Throwable e) { + throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); + }finally { + file1.delete(); + } } /** diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java index fc7d26f..3f393ba 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java @@ -14,6 +14,7 @@ import com.vci.pagemodel.PLDefinationVO; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; @@ -80,7 +81,7 @@ * @param file * @return */ - BaseResult impUIContextData(MultipartFile file); + BaseResult impUIContextData(File file, boolean isCovered,String selectBtm); //鍖哄煙鐩稿叧鏌ヨ銆佹坊鍔犮�佸垹闄ゃ�佷慨鏀圭瓑鎺ュ彛 /** diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index f80538a..d53f1b4 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -11,8 +11,10 @@ import com.vci.corba.portal.data.*; import com.vci.dto.RoleRightDTO; import com.vci.dto.UIAuthorDTO; +import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.model.PLDefination; import com.vci.pagemodel.*; +import com.vci.starter.poi.bo.SheetDataSet; import com.vci.starter.poi.bo.WriteExcelData; import com.vci.starter.poi.bo.WriteExcelOption; import com.vci.starter.poi.util.ExcelUtil; @@ -33,13 +35,21 @@ import com.vci.web.util.UITools; import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.swing.*; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @@ -509,13 +519,358 @@ /** * 瀵煎叆UI涓婁笅鏂� * @param file + * @param isCovered 鏄惁瑕嗙洊 + * @param selectBtm 閫夋嫨鐨勪笟鍔$被鍨� * @return */ @Override - public BaseResult impUIContextData(MultipartFile file) { + public BaseResult impUIContextData(File file,boolean isCovered,String selectBtm) { + /*VciBaseUtil.alertNotNull(file,"excel鏂囦欢"); + if(!file.exists()){ + throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()}); + } + //璇诲彇excel琛� + List<SheetDataSet> sheetDataSets = ExcelUtil.readDataObjectFromExcel(file); + try { + PLUILayout[] plpagelayoutdefinations = null; + try { + SheetDataSet plpagelayoutdefnationsheet = sheetDataSets.get(0); + SheetDataSet pltabpagesheet = sheetDataSets.get(1); + SheetDataSet plpagedefinationsheet = sheetDataSets.get(2); + SheetDataSet pltabbuttonsheet = sheetDataSets.get(3); + SheetDataSet plcommondparamsheet = sheetDataSets.get(4); + *//*HSSFSheet plpagelayoutdefnationsheet = readworkbook.getSheet("PlpageLayoutDefnation"); + HSSFSheet pltabpagesheet = readworkbook.getSheet("Pltabpage"); + HSSFSheet plpagedefinationsheet = readworkbook.getSheet("Plpagedefination"); + HSSFSheet pltabbuttonsheet = readworkbook.getSheet("Pltabbutton"); + HSSFSheet plcommondparamsheet = readworkbook.getSheet("PlcommondParam");*//* + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + + Map<PLUILayout,List<PLTabPage>> pdMap = new HashMap<>(); + Map<PLTabPage,List<PLPageDefination>> tdMap = new HashMap<>(); + Map<PLPageDefination,List<PLTabButton>> dbMap = new HashMap<>(); + Map<PLTabButton,List<PLCommandParameter>> bcMap = new HashMap<>(); + + List<PLUILayout> plpagelayoutdefinationList = new ArrayList<PLUILayout>(); + List<PLTabPage> pltabpagelist = new ArrayList<PLTabPage>(); + List<PLPageDefination> plpagedefinationlist = new ArrayList<PLPageDefination>(); + List<PLTabButton> pltabbuttonlist = new ArrayList<PLTabButton>(); + List<PLCommandParameter> plcommandparameterlist = new ArrayList<PLCommandParameter>(); + + StringBuffer checkplpagelayoutdefination = new StringBuffer(); + StringBuffer checkplpagelayoutdefinationPlcode = new StringBuffer(); + StringBuffer plActionIDNulls = new StringBuffer(); + + //add by caill start 鍒濆鍖栨爣璁� + int count=0; + int preCount=0; + String preOID=""; + String doublePreOID=""; + //add by caill end + PLAction[] allPLAction = platformClientUtil.getUIService().getAllPLAction(); + Map<String,String> relation = null; + for(int i=0;i<=plpagelayoutdefnationsheet.getLastRowNum();i++){ + pltabpagelist = new ArrayList<PLTabPage>(); + PLUILayout p = new PLUILayout(); + HSSFRow readrow = plpagelayoutdefnationsheet.getRow(i); + if(readrow==null){ + break; + } + + plpagelayoutdefinations = platformClientUtil.getUIService().getPLUILayoutsByRelatedType(btmName); + + p.plOId = ObjectUtility.getNewObjectID36(); + HSSFCell readcell = readrow.getCell(0); + p.plName = readcell.getStringCellValue(); + readcell = readrow.getCell(1); + p.plCode = readcell.getStringCellValue(); + //add by caill start + //閬嶅巻UI鍚嶇О + for(PLUILayout pd : plpagelayoutdefinations){ + if(pd.plName.equals(p.plName) && isCovered){ + throw new VciBaseException(pd.plName+"鍚嶇О宸茬粡瀛樺湪,鏄惁瑕嗙洊?"); + } + //鏍规嵁UI涓婁笅鏂囧仛鍒ゆ柇 + if(pd.plCode.equals(p.plCode)){ + count=1; + preOID=pd.plOId; //濡傛灉UI涓婁笅鏂囩浉鍚岋紝灏辨妸绯荤粺涓殑id璧嬪�肩粰鏂板鍏ョ殑id + p.plOId=pd.plOId; + } + } + //add by caill end + readcell = readrow.getCell(2); + plpageLayoutDefinationId = readcell.getStringCellValue(); + readcell = readrow.getCell(3); + String name = readcell.getStringCellValue(); + readcell = readrow.getCell(4); + p.plRelatedType = readcell.getStringCellValue(); + readcell = readrow.getCell(5); + p.plIsShowNavigator = (short) readcell.getNumericCellValue(); + readcell = readrow.getCell(6); + p.plIsShowTab = (short) readcell.getNumericCellValue(); + readcell = readrow.getCell(7); + p.plIsShowForm = (short) readcell.getNumericCellValue(); + //閫夋嫨鐨勫拰瀵煎叆鐨勪笟鍔$被鍨嬭妭鐐逛笉涓�鑷� + if(!selectBtm.equals(name)){ + throw new VciBaseException("璇烽�夋嫨瑕佸鍏ョ殑绫诲瀷鑺傜偣鍚嶇О锛�"); + } + + plpagelayoutdefinationList.add(p); + for(int j=0;j<=pltabpagesheet.getLastRowNum();j++){ + plpagedefinationlist = new ArrayList<PLPageDefination>(); + PLTabPage pt = new PLTabPage(); + HSSFRow readrow1 = pltabpagesheet.getRow(j); + if(readrow1==null){ + break; + } + pt.plOId = ObjectUtility.getNewObjectID36(); + HSSFCell readcell1 = readrow1.getCell(0); + pt.plName = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(1); + pt.plCode = readcell1.getStringCellValue(); + //add by caill start + if(count==1) { + PLTabPage[] PLTabPages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(preOID); + //閬嶅巻鎺у埗鍖鸿〃鏍� + for(PLTabPage pl : PLTabPages){ + if(pl.plCode.equals(pt.plCode)){ + pt.plOId=pl.plOId; //濡傛灉鎺у埗鍖鸿〃鏍肩殑缂栫爜鍜屽鍏ョ殑缂栫爜涓�鏍凤紝灏辨妸鎺у埗鍖篿d璧嬪�肩粰鏂板鍏ョ殑id + preCount=1; + doublePreOID=pl.plOId; + } + } + } + //add by caill end + readcell1 = readrow1.getCell(2); + pt.plSeq = (short) readcell1.getNumericCellValue(); + readcell1 = readrow1.getCell(3); + pt.plContextOId = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(4); + pt.plDesc = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(5); + pt.plIsOpen = (short) readcell1.getNumericCellValue(); + readcell1 = readrow1.getCell(6); + pt.plAreaType = (short) readcell1.getNumericCellValue(); + readcell1 = readrow1.getCell(7); + pt.plOpenExpression = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(8); + pt.plLicensOrs = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(9); + pt.plLabel = readcell1.getStringCellValue(); + readcell1 = readrow1.getCell(10); + String plPageContextOId = readcell1.getStringCellValue(); + if(pt.plContextOId.equals(plpageLayoutDefinationId)){ + pt.plContextOId = p.plOId; + pltabpagelist.add(pt); + for(int k=0;k<=plpagedefinationsheet.getLastRowNum();k++){ + pltabbuttonlist = new ArrayList<PLTabButton>(); + PLPageDefination plpagedefination = new PLPageDefination(); + HSSFRow readrow2 = plpagedefinationsheet.getRow(k); + if(readrow2==null){ + break; + } + plpagedefination.plOId = ObjectUtility.getNewObjectID36(); + HSSFCell readcell2 = readrow2.getCell(0); + plpagedefination.name = readcell2.getStringCellValue(); + //add by caill start + //鏈�鍚庝竴绾х殑鍒ゆ柇 + if(preCount==1) { + PLPageDefination[] PLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(doublePreOID); + for(PLPageDefination plp : PLPageDefinations) { + if(plp.name.equals(plpagedefination.name)) { + plpagedefination.plOId=plp.plOId; + + } + + } + } + //add by caill end + readcell2 = readrow2.getCell(1); + plpagedefination.plDefination = readcell2.getStringCellValue(); + readcell2 = readrow2.getCell(2); + plpagedefination.seq = (short) readcell2.getNumericCellValue(); + readcell2 = readrow2.getCell(3); + plpagedefination.plTabPageOId = readcell2.getStringCellValue(); + readcell2 = readrow2.getCell(4); + plpagedefination.desc = readcell2.getStringCellValue(); + readcell2 = readrow2.getCell(5); + plpagedefination.plType = (short) readcell2.getNumericCellValue(); + readcell2 = readrow2.getCell(6); + plTableOId = readcell2.getStringCellValue(); + if(plpagedefination.plTabPageOId.equals(plPageContextOId)){ + plpagedefination.plTabPageOId = pt.plOId; + plpagedefinationlist.add(plpagedefination); + //淇濆瓨鏂版棫oid鐨勫叧绯伙紝鍦ㄧ‘瀹氬眰绾у叧绯绘椂浣跨敤 + relation = new HashMap<String,String>(); + for(int a=0;a<=pltabbuttonsheet.getLastRowNum();a++){ + HSSFRow readrow3 = pltabbuttonsheet.getRow(a); + if(readrow3!=null){ + HSSFCell readcell3 = readrow3.getCell(7); + plCommandOId = readcell3.getStringCellValue(); + String newOId = ObjectUtility.getNewObjectID36(); + relation.put(plCommandOId, newOId); + } + } + for(int a=0;a<=pltabbuttonsheet.getLastRowNum();a++){ + plcommandparameterlist = new ArrayList<PLCommandParameter>(); + PLTabButton plTabButton = new PLTabButton(); + HSSFRow readrow3 = pltabbuttonsheet.getRow(a); + if(readrow3==null){ + break; + } + plTabButton.plOId = ObjectUtility.getNewObjectID36(); + HSSFCell readcell3 = readrow3.getCell(0); + plTabButton.plLabel = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(1); + plTabButton.plAreaType = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(2); + plTabButton.plTableOId = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(3); + plTabButton.plSeq = (short) readcell3.getNumericCellValue(); + String plActionId = ""; + //PLAction[] allPLAction = Tool.getService().getAllPLAction(); + for(PLAction action : allPLAction){ + if((readrow3.getCell(4).getStringCellValue()!=null&&!"".equals(readrow3.getCell(4).getStringCellValue()) + )&&(readrow3.getCell(4).getStringCellValue().trim().equals(action.plCode.trim())) + ){ + plActionId = action.plOId; + break; + } + } + if(plActionId==null||"".equals(plActionId)){ + if(!plActionIDNulls.toString().contains(readrow3.getCell(4).getStringCellValue())){ + plActionIDNulls.append("\n\tAction缂栧彿:"+readrow3.getCell(4).getStringCellValue()); + } + } + plTabButton.plActionOId = plActionId; + readcell3 = readrow3.getCell(5); + plTabButton.plAreaType = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(6); + plTabButton.plDesc = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(8); + String parentOid = readcell3.getStringCellValue();//鐖秓id + readcell3 = readrow3.getCell(7); + plCommandOId = readcell3.getStringCellValue(); + readcell3 = readrow3.getCell(9); + if(readcell3 != null) { + plTabButton.displayMode = readcell3.getStringCellValue(); + } + readcell3 = readrow3.getCell(10); + if(readcell3 != null) { + plTabButton.iconPath = readcell3.getStringCellValue(); + } + readcell3 = readrow3.getCell(11); + if(readcell3 != null) { + plTabButton.authorization = readcell3.getStringCellValue(); + } + readcell3 = readrow3.getCell(12); + if(readcell3 != null) { + plTabButton.show = readcell3.getStringCellValue(); + } + //璧嬩簣淇濆瓨濂界殑鍊硷紝鏉ヤ繚璇佸眰绾у叧绯讳笉浼氫涪澶� + plTabButton.plOId = relation.get(plCommandOId); + if(parentOid != null && parentOid.length() > 0) { + plTabButton.plParentOid = + relation.get(parentOid) == null ? "" : relation.get(parentOid); + } + if(plTabButton.plTableOId.equals(plTableOId)){ + plTabButton.plTableOId = plpagedefination.plOId; + pltabbuttonlist.add(plTabButton); + for(int b=0;b<=plcommondparamsheet.getLastRowNum();b++){ + PLCommandParameter plCommandParameter = new PLCommandParameter(); + HSSFRow readrow4 = plcommondparamsheet.getRow(b); + if(readrow4==null){ + break; + } + plCommandParameter.plOId = ObjectUtility.getNewObjectID36(); + HSSFCell readcell4 = readrow4.getCell(0); + plCommandParameter.plCommandOId = readcell4.getStringCellValue(); + readcell4 = readrow4.getCell(1); + plCommandParameter.plKey = readcell4.getStringCellValue(); + readcell4 = readrow4.getCell(2); + plCommandParameter.plValue = readcell4.getStringCellValue(); + if(plCommandParameter.plCommandOId.equals(plCommandOId)){ + plCommandParameter.plCommandOId = plTabButton.plOId; + plcommandparameterlist.add(plCommandParameter); + } + } + bcMap.put(plTabButton, plcommandparameterlist); + } + } + dbMap.put(plpagedefination, pltabbuttonlist); + } + } + tdMap.put(pt, plpagedefinationlist); + } + } + pdMap.put(p, pltabpagelist); + } + + if(plActionIDNulls.length()>0){ + VCIOptionPane.showMessage(PLTApplication.frame, plActionIDNulls.toString()+"涓嶅瓨鍦紒"); + return false; + } + + //鍒犻櫎鍘熸湁button鏁版嵁 + if(tdMap.size() > 0) { + for(List<PLPageDefination> list : tdMap.values()) { + for(PLPageDefination ppd : list) { + if(ppd.plOId != null && ppd.plOId.length() > 0) { + PLTabButton[] buttons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(ppd.plOId); + if(buttons != null && buttons.length > 0) { + for(PLTabButton ptb : buttons) { + platformClientUtil.getUIService().deletePLTabButtonByID(ptb.plOId); + } + } + } + } + } + } + + for(PLUILayout plPageLayoutDefination : plpagelayoutdefinationList){ + List<PLTabPage> pltabpagelists = pdMap.get(plPageLayoutDefination); + for(PLTabPage pltabpage:pltabpagelists){ + List<PLPageDefination> plpagedefinationlists = tdMap.get(pltabpage); + for(PLPageDefination plpagedefination : plpagedefinationlists){ + List<PLTabButton> pltabbuttons = dbMap.get(plpagedefination); + for(PLTabButton pltabbutton : pltabbuttons){ + List<PLCommandParameter> plcommandParams = bcMap.get(pltabbutton); + for(PLCommandParameter plcommandparameter : plcommandParams){ + plcommandparameter.plCreateUser = sessionInfo.getUserId(); + plcommandparameter.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLCommandParameter(plcommandparameter); + } + pltabbutton.plCreateUser = sessionInfo.getUserId(); + pltabbutton.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLTabButton(pltabbutton); + } + platformClientUtil.getUIService().savePLPageDefination(plpagedefination); + } + pltabpage.plCreateUser = sessionInfo.getUserId(); + pltabpage.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLTabPage(pltabpage); + } + plPageLayoutDefination.plCreateUser = sessionInfo.getUserId(); + plPageLayoutDefination.plModifyUser = sessionInfo.getUserId(); + platformClientUtil.getUIService().savePLUILayout(plPageLayoutDefination); + } + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; + } catch (PLException e) { + e.printStackTrace(); + return false; + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + return false; + } + +*/ return null; } @@ -2588,7 +2943,7 @@ } } else { // 閾炬帴绫诲瀷涓虹┖鏃讹紝鍙渶瑕佹鏌ヤ笟鍔$被鍨嬩笅鐨勬煡璇㈡ā鏉挎槸鍚︽湁鏁� - if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, btmType))){ + if(!(super.checkQTNameTxtIsOk("鏌ヨ妯℃澘", queryTemplateName, btmType,true))){ res = false; return res; } -- Gitblit v1.9.3