package com.vci.client.portal.platformPortal;
|
|
import java.io.BufferedReader;
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.FileNotFoundException;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.swing.JFileChooser;
|
import javax.swing.filechooser.FileFilter;
|
|
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 com.vci.client.LogonApplication;
|
import com.vci.client.common.providers.ServiceProvider;
|
import com.vci.client.omd.btm.wrapper.BtmItemWrapper;
|
import com.vci.client.omd.linktype.LinkTypeWrapper;
|
import com.vci.client.omd.provider.ApProvider;
|
import com.vci.client.omd.provider.BtmProvider;
|
import com.vci.client.omd.provider.LinkTypeProvider;
|
import com.vci.client.oq.QTClient;
|
import com.vci.client.oq.QTDClient;
|
import com.vci.client.portal.NewUI.MessageDialog;
|
import com.vci.client.portal.utility.PRM;
|
import com.vci.client.portal.utility.PRMItem;
|
import com.vci.client.portal.utility.UITools;
|
import com.vci.client.ui.swing.VCIOptionPane;
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.atm.AttribItem;
|
import com.vci.corba.omd.ltm.LinkType;
|
import com.vci.corba.omd.qtm.QTInfo;
|
import com.vci.corba.portal.data.PortalVI;
|
|
public class ImportExcel {
|
|
private Object selectTreeNodeobject;
|
public ImportExcel(Object selectTreeNodeobject){
|
this.selectTreeNodeobject = selectTreeNodeobject;
|
}
|
|
public boolean impExcel() {
|
JFileChooser jf = new JFileChooser();
|
jf.setDialogTitle("打开");
|
jf.removeChoosableFileFilter(jf.getFileFilter());
|
jf.setFileFilter(new FileFilter() {
|
|
@Override
|
public String getDescription() {
|
return "xls";
|
}
|
|
@Override
|
public boolean accept(File f) {
|
if (f.isDirectory() || f.getName().endsWith(".xls")) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
});
|
int showOpenDialog = jf.showOpenDialog(LogonApplication.frame);
|
String xfileName = "";
|
String filePath = "";
|
if (showOpenDialog == JFileChooser.APPROVE_OPTION) {
|
File file = jf.getSelectedFile();
|
xfileName = file.getAbsolutePath();
|
filePath = file.getAbsolutePath();
|
if (!xfileName.endsWith(".xls")) {
|
xfileName = xfileName + ".xls";
|
}
|
}
|
try {
|
//存储form名称和oid
|
Map<String,String> formNameMap = new HashMap<String,String>();
|
FileInputStream fin = new FileInputStream(xfileName);
|
PortalVI[] portalViInfos = null;
|
try {
|
HSSFWorkbook readworkbook = new HSSFWorkbook(fin);
|
HSSFSheet readbtmnamesheet = readworkbook.getSheet("btmName");
|
HSSFSheet readsheet = readworkbook.getSheet("portalvi");
|
HSSFSheet qtdsheet = readworkbook.getSheet("QTD");
|
List<PortalVI> portalVIList = new ArrayList<PortalVI>();
|
StringBuffer checkPortalVI = new StringBuffer();
|
StringBuffer checkAttr = new StringBuffer();
|
StringBuffer checkInObj = new StringBuffer();
|
String btmName = "";
|
if (!(selectTreeNodeobject instanceof String)) {
|
if (selectTreeNodeobject instanceof BtmItemWrapper) {
|
btmName = ((BtmItemWrapper) selectTreeNodeobject).btmItem.name;
|
} else if (selectTreeNodeobject instanceof LinkTypeWrapper) {
|
btmName = ((LinkTypeWrapper) selectTreeNodeobject).linkType.name;
|
}
|
for (int i = 0; i <= readsheet.getLastRowNum(); i++) {
|
String ploid = ObjectUtility.getNewObjectID36();
|
PortalVI p = new PortalVI();
|
HSSFRow readrow = readsheet.getRow(i);
|
if (readrow == null) {
|
break;
|
}
|
// HSSFCell readcell = readrow.getCell(0);
|
p.id = ploid;
|
HSSFCell readcell = readrow.getCell(0);
|
p.typeName = readcell.getStringCellValue();
|
if (!btmName.equals(p.typeName)) {
|
VCIOptionPane.showMessage(LogonApplication.frame,
|
"请选择要导入的类型节点名称!");
|
return false;
|
}
|
readcell = readrow.getCell(1);
|
p.viName = readcell.getStringCellValue();
|
|
formNameMap.put(p.typeName + ":" + p.viName,ploid);
|
|
readcell = readrow.getCell(2);
|
p.viType = (short) readcell.getNumericCellValue();
|
readcell = readrow.getCell(3);
|
p.typeFlag = (short) readcell.getNumericCellValue();
|
readcell = readrow.getCell(4);
|
String prmStr = readcell.getStringCellValue();
|
FileInputStream prmFile = new FileInputStream(filePath
|
+ "." + prmStr);
|
BufferedReader br = new BufferedReader(
|
new InputStreamReader(prmFile, "UTF-8")); // "UTF-8"
|
StringBuilder sb = new StringBuilder();
|
String prmStrContent;
|
while ((prmStrContent = br.readLine()) != null) {
|
sb.append(prmStrContent).append("\r\n");
|
}
|
prmStr = sb.toString();
|
if (p.viType == 0) {
|
PRM prmObj = UITools.getPRM(prmStr);
|
List<PRMItem> prmItemList = prmObj.getPrmItemList();
|
for (int j = 0; j < prmItemList.size(); j++) {
|
PRMItem pit = prmItemList.get(j);
|
PortalVI[] pvs = new PortalVI[0];
|
try {
|
pvs = UITools.getService()
|
.getPortalVIArrayByTypeName(
|
p.typeName);
|
if(pvs != null && pvs.length>0){
|
for (PortalVI pv : pvs) {
|
if (pit.getItemInObj().equals(
|
p.typeName + ":" + pv.viName)) {
|
pit.setItemInObj(pv.id);
|
}
|
}
|
}else{
|
if(formNameMap.get(pit.getItemInObj())==null){
|
if(!checkInObj.toString().contains(pit.getItemInObj())){
|
String[] split = pit.getItemInObj().split(":");
|
checkInObj.append(split[1]).append(",");
|
}
|
}else{
|
pit.setItemInObj(formNameMap.get(pit.getItemInObj()));
|
}
|
}
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
try {
|
prmStr = UITools.getPRMText(prmObj);
|
} catch (Throwable e1) {
|
e1.printStackTrace();
|
}
|
}
|
p.prm = prmStr.trim();
|
String btmname = "";
|
AttribItem[] btAbItems = null;
|
if (p.typeFlag == 0) {
|
btmname = p.typeName;
|
btAbItems = BtmProvider.getInstance().getBtAbItems(
|
btmname);
|
} else if (p.typeFlag == 1) {
|
try {
|
LinkType linkType = LinkTypeProvider.getInstance().getLinkTypeByName(p.typeName);
|
btmname = linkType.name;
|
btAbItems = ApProvider.getInstance().getAttribItemsByNames(LinkTypeProvider.getInstance().getAbNames(linkType));
|
} catch (Exception e) {
|
e.printStackTrace();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
readcell = readrow.getCell(5);
|
String attrValue = readcell.getStringCellValue();
|
String[] split = attrValue.split(",");
|
for (String name : split) {
|
boolean flag = false;
|
for (AttribItem ait : btAbItems) {
|
if (ait.name.equals(name)) {
|
flag = true;
|
break;
|
}
|
}
|
if (!flag && !checkAttr.toString().contains(name)) {
|
checkAttr.append(name).append(",");
|
}
|
}
|
portalViInfos = UITools.getService()
|
.getPortalVIArrayByTypeName(btmname);
|
for (PortalVI pvi : portalViInfos) {
|
if (pvi.viName.equals(p.viName)) {
|
checkPortalVI.append(pvi.viName).append(",");
|
}
|
}
|
portalVIList.add(p);
|
|
QTInfo qt = new QTInfo();
|
readcell = readrow.getCell(6);
|
if (readcell != null && !"".equals(readcell.toString())) { //readcell-->readcell.tostring //by zgy 2015-06-11
|
String qtName = readcell.getStringCellValue();
|
qt.qtName = qtName;
|
readcell = readrow.getCell(7);
|
String qtText = readcell.getStringCellValue();
|
FileInputStream qtprmFile = new FileInputStream(
|
filePath + "." + qtText);
|
BufferedReader qtbr = new BufferedReader(
|
new InputStreamReader(qtprmFile, "UTF-8")); // "UTF-8"
|
StringBuilder qtsb = new StringBuilder();
|
String qtStrContent;
|
while ((qtStrContent = qtbr.readLine()) != null) {
|
qtsb.append(qtStrContent).append("\r\n");
|
}
|
qtText = qtsb.toString();
|
qt.qtText = qtText;
|
readcell = readrow.getCell(8);
|
String qtBtmName = readcell.getStringCellValue();
|
qt.btmName = qtBtmName;
|
QTInfo qt2 = ServiceProvider.getOMDService().getQTDService().getQT(
|
qt.qtName);
|
if (qt2 == null) {
|
ServiceProvider.getOMDService().getQTDService().saveQT(qt);
|
}
|
}
|
}
|
} else {
|
for (int btmNamei = 0; btmNamei <= readbtmnamesheet
|
.getLastRowNum(); btmNamei++) {
|
HSSFRow btmNameReadrow = readbtmnamesheet
|
.getRow(btmNamei);
|
HSSFCell btmNameReadcell = btmNameReadrow.getCell(0);
|
btmName = btmNameReadcell.getStringCellValue();
|
if (btmNameReadrow == null) {
|
break;
|
}
|
for (int i = 0; i <= readsheet.getLastRowNum(); i++) {
|
String ploid = ObjectUtility.getNewObjectID36();
|
PortalVI p = new PortalVI();
|
HSSFRow readrow = readsheet.getRow(i);
|
if (readrow == null) {
|
break;
|
}
|
// HSSFCell readcell = readrow.getCell(0);
|
p.id = ploid;
|
HSSFCell readcell = readrow.getCell(0);
|
p.typeName = readcell.getStringCellValue();
|
// if(!btmName.equals(p.typeName)){
|
// VCIOptionPane.showMessage(LogonApplication.frame,
|
// "请选择要导入的类型节点名称!");
|
// return false;
|
// }
|
if (btmName.equals(p.typeName)) {
|
readcell = readrow.getCell(1);
|
p.viName = readcell.getStringCellValue();
|
|
formNameMap.put(p.typeName + ":" + p.viName,ploid);
|
|
readcell = readrow.getCell(2);
|
p.viType = (short) readcell.getNumericCellValue();
|
readcell = readrow.getCell(3);
|
p.typeFlag = (short) readcell.getNumericCellValue();
|
readcell = readrow.getCell(4);
|
String prmStr = readcell.getStringCellValue();
|
FileInputStream prmFile = new FileInputStream(
|
filePath + "." + prmStr);
|
BufferedReader br = new BufferedReader(
|
new InputStreamReader(prmFile, "UTF-8"));
|
StringBuilder sb = new StringBuilder();
|
String prmStrContent;
|
while ((prmStrContent = br.readLine()) != null) {
|
sb.append(prmStrContent).append("\r\n");
|
}
|
prmStr = sb.toString();
|
if (p.viType == 0) {
|
PRM prmObj = UITools.getPRM(prmStr);
|
List<PRMItem> prmItemList = prmObj
|
.getPrmItemList();
|
for (int j = 0; j < prmItemList.size(); j++) {
|
PRMItem pit = prmItemList.get(j);
|
PortalVI[] pvs = new PortalVI[0];
|
try {
|
pvs = UITools
|
.getService()
|
.getPortalVIArrayByTypeName(
|
p.typeName);
|
|
if(pvs != null && pvs.length>0){
|
for (PortalVI pv : pvs) {
|
if (pit.getItemInObj().equals(
|
p.typeName + ":" + pv.viName)) {
|
pit.setItemInObj(pv.id);
|
}
|
}
|
}else{
|
pit.setItemInObj(formNameMap.get(pit.getItemInObj()));
|
}
|
|
} catch (VCIError e) {
|
e.printStackTrace();
|
}
|
}
|
try {
|
prmStr = UITools.getPRMText(prmObj);
|
} catch (Throwable e1) {
|
e1.printStackTrace();
|
}
|
}
|
p.prm = prmStr.trim();
|
String btmname = "";
|
AttribItem[] btAbItems = null;
|
if (p.typeFlag == 0) {
|
btmname = p.typeName;
|
btAbItems = BtmProvider.getInstance()
|
.getBtAbItems(btmname);
|
} else if (p.typeFlag == 1) {
|
try {
|
LinkType linkType = LinkTypeProvider.getInstance().getLinkTypeByName(p.typeName);
|
btmname = linkType.name;
|
btAbItems = ApProvider.getInstance().getAttribItemsByNames(LinkTypeProvider.getInstance().getAbNames(linkType));
|
} catch (Exception e) {
|
e.printStackTrace();
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
readcell = readrow.getCell(5);
|
String attrValue = readcell
|
.getStringCellValue();
|
String[] split = attrValue.split(",");
|
for (String name : split) {
|
boolean flag = false;
|
for (AttribItem ait : btAbItems) {
|
if (ait.name.equals(name)) {
|
flag = true;
|
break;
|
}
|
}
|
if (!checkAttr.toString().contains(btmname)) {
|
checkAttr.append("\n\t" + btmname)
|
.append(":");
|
}
|
if (!flag
|
&& !checkAttr.toString().contains(
|
name)) {
|
checkAttr.append(name).append(",");
|
}
|
}
|
portalViInfos = UITools.getService()
|
.getPortalVIArrayByTypeName(btmname);
|
for (PortalVI pvi : portalViInfos) {
|
if (!checkPortalVI.toString().contains(
|
btmname)) {
|
checkPortalVI.append("\n\t" + btmname)
|
.append(":");
|
}
|
if (pvi.viName.equals(p.viName)) {
|
checkPortalVI.append(pvi.viName)
|
.append(",");
|
}
|
}
|
portalVIList.add(p);
|
|
QTInfo qt = new QTInfo();
|
readcell = readrow.getCell(6);
|
if (readcell != null && !"".equals(readcell)) {
|
String qtName = readcell
|
.getStringCellValue();
|
qt.qtName = qtName;
|
readcell = readrow.getCell(7);
|
String qtText = readcell
|
.getStringCellValue();
|
FileInputStream qtprmFile = new FileInputStream(
|
filePath + "." + qtText);
|
BufferedReader qtbr = new BufferedReader(
|
new InputStreamReader(qtprmFile,
|
"UTF-8")); // "UTF-8"
|
StringBuilder qtsb = new StringBuilder();
|
String qtStrContent;
|
while ((qtStrContent = qtbr.readLine()) != null) {
|
qtsb.append(qtStrContent)
|
.append("\r\n");
|
}
|
qtText = qtsb.toString();
|
qt.qtText = qtText;
|
readcell = readrow.getCell(8);
|
String qtBtmName = readcell
|
.getStringCellValue();
|
qt.btmName = qtBtmName;
|
QTInfo qt2 = ServiceProvider.getOMDService().getQTDService()
|
.getQT(qt.qtName);
|
if (qt2 == null) {
|
ServiceProvider.getOMDService().getQTDService().saveQT(qt);
|
}
|
}
|
}
|
}
|
}
|
}
|
/*
|
* for(int
|
* qtdindex=0;qtdindex<=qtdsheet.getLastRowNum();qtdindex++){
|
* QTD qtd = new QTD(); HSSFRow readrow =
|
* qtdsheet.getRow(qtdindex); if(readrow==null){ break; }
|
* HSSFCell cell = readrow.getCell(0); qtd.btmName =
|
* cell.getStringCellValue(); cell = readrow.getCell(1);
|
* qtd.linkTypeName = cell.getStringCellValue(); cell =
|
* readrow.getCell(2); qtd.name = cell.getStringCellValue();
|
* cell = readrow.getCell(3); String attrValue =
|
* cell.getStringCellValue(); String[] split =
|
* attrValue.split(","); qtd.abNames = split; QTD qtdByName =
|
* ServiceProvider.getOMDService().getQTDService().getQTDByName(qtd.name);
|
* if(qtdByName==null){ ServiceProvider.getOMDService().getQTDService().addQTD(qtd); } }
|
*/
|
if (checkPortalVI.length() > 0) {
|
// VCIOptionPane.showMessage(LogonApplication.frame,
|
// checkPortalVI.toString()+"名称已经存在!");
|
MessageDialog msgdia = new MessageDialog(
|
checkPortalVI.toString() + "名称已经存在!");
|
return false;
|
}
|
if (checkInObj.length() > 0) {
|
MessageDialog msgdia = new MessageDialog(
|
checkInObj.toString() + "表单不存在!");
|
return false;
|
}
|
if (checkAttr.length() > 0) {
|
// VCIOptionPane.showMessage(LogonApplication.frame,
|
// checkAttr.toString()+"属性不存在!");
|
MessageDialog msgdia = new MessageDialog(
|
checkAttr.toString() + "属性不存在!");
|
return false;
|
}
|
// save portalVi
|
for (PortalVI pvi : portalVIList) {
|
UITools.getService().savePortalVI(pvi);
|
System.out.println("");
|
}
|
return true;
|
} catch (IOException e) {
|
e.printStackTrace();
|
return false;
|
} catch (VCIError e) {
|
e.printStackTrace();
|
return false;
|
}
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
return false;
|
}
|
}
|
}
|