package com.kingdee.eas.custom;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import org.mozilla.javascript.Context;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.read.biff.BiffException;
import https://www.doczj.com/doc/774902832.html,bel;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import bsh.This;
import com.kingdee.bos.BOSException;
import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox; import com.kingdee.bos.ctrl.kdf.table.ICell;
import com.kingdee.bos.ctrl.kdf.table.IColumn;
import com.kingdee.bos.ctrl.kdf.table.KDTDefaultCellEditor; import com.kingdee.bos.ctrl.kdf.table.KDTMergeManager; import com.kingdee.bos.ctrl.kdf.table.KDTSelectBlock; import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.kdf.table.util.KDTableUtil; import com.kingdee.bos.ctrl.swing.KDDatePicker;
import com.kingdee.bos.dao.IObjectCollection;
import com.kingdee.bos.dao.IObjectPK;
import com.kingdee.bos.dao.IObjectValue;
import com.kingdee.bos.metadata.bot.BOTMappingCollection;
import com.kingdee.bos.metadata.bot.BOTMappingFactory;
import com.kingdee.bos.metadata.bot.BOTMappingInfo;
import com.kingdee.bos.metadata.bot.BOTRelationCollection;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import https://www.doczj.com/doc/774902832.html,pareType;
import com.kingdee.bos.sql.ParserException;
import com.kingdee.bos.ui.face.CoreUIObject;
import com.kingdee.bos.ui.face.IUIWindow;
import com.kingdee.bos.ui.face.UIException;
import com.kingdee.bos.ui.face.UIFactory;
import com.kingdee.bos.util.BOSUuid;
import com.kingdee.eas.base.btp.BTPManagerFactory;
import com.kingdee.eas.base.btp.BTPTransformResult;
import com.kingdee.eas.base.btp.IBTPManager;
import com.kingdee.eas.base.codingrule.CodingRuleManagerFactory;
import com.kingdee.eas.base.codingrule.ICodingRuleManager;
import com.kingdee.eas.base.message.BMCMessageFactory;
import com.kingdee.eas.base.message.BMCMessageInfo;
import com.kingdee.eas.base.message.IBMCMessage;
import com.kingdee.eas.base.message.MsgBizType;
import com.kingdee.eas.base.message.MsgPriority;
import com.kingdee.eas.base.message.MsgStatus;
import com.kingdee.eas.base.message.MsgType;
import https://www.doczj.com/doc/774902832.html,ctrl.IMutexServiceControl;
import https://www.doczj.com/doc/774902832.html,ctrl.MutexParameter;
import https://www.doczj.com/doc/774902832.html,ctrl.MutexServiceControlFactory;
import https://www.doczj.com/doc/774902832.html,erInfo;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupCollection; import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupFactory; import https://www.doczj.com/doc/774902832.html,.AdminOrgUnitCollection;
import https://www.doczj.com/doc/774902832.html,.AdminOrgUnitFactory;
import https://www.doczj.com/doc/774902832.html,.AdminOrgUnitInfo;
import https://www.doczj.com/doc/774902832.html,.CtrlUnitCollection;
import https://www.doczj.com/doc/774902832.html,.CtrlUnitFactory;
import https://www.doczj.com/doc/774902832.html,.CtrlUnitInfo;
import https://www.doczj.com/doc/774902832.html,.PositionInfo;
import com.kingdee.eas.basedata.person.PersonCollection;
import com.kingdee.eas.basedata.person.PersonFactory;
import com.kingdee.eas.basedata.person.PersonInfo; import https://www.doczj.com/doc/774902832.html,mon.client.OprtState; import https://www.doczj.com/doc/774902832.html,mon.client.SysContext; import https://www.doczj.com/doc/774902832.html,mon.client.UIContext; import https://www.doczj.com/doc/774902832.html,mon.client.UIFactoryName; import https://www.doczj.com/doc/774902832.html,mon.FMIsqlFacadeFactory; import https://www.doczj.com/doc/774902832.html,mon.IFMIsqlFacade; import com.kingdee.eas.framework.CoreBillBaseInfo; import com.kingdee.eas.framework.client.CoreBillEditUI; import com.kingdee.eas.framework.client.EditUI;
import com.kingdee.eas.hr.emp.PersonPositionFactory; import com.kingdee.eas.hr.emp.PersonPositionInfo; import com.kingdee.eas.util.SysUtil;
import com.kingdee.eas.util.client.EASResource;
import com.kingdee.eas.util.client.MsgBox;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.util.Uuid;
/***
* EAS开发工具类
* @author 赵戬
*
*/
public class UtilClass {
/***
* 信息提示框
* @param value 提示内容
*/
public static void alert(String value){
MsgBox.showInfo(value);
SysUtil.abort();
}
/***
* 信息提示框(带详细信息)
* @param value 提示内容
*/
public static void alert2(String Title,String info){
MsgBox.showDetailAndOK(null, Title, info, 0);
SysUtil.abort();
}
/***
* 信息提示框(带提示)
* @return value 提示内容
public static boolean alertReturn(String value){
return MsgBox.isYes(MsgBox.showConfirm2(value));
}
/***
* 程序停止运行
*/
public static void Stop(){
SysUtil.abort();
}
/**
* 单据数据加锁
* @param billId 单据ID
*/
public static void addBillDataLock(String BillFID){
IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); mutex.requestBizObjIDForUpdate(BillFID);
}
/**
* 单据数据解锁
* @param billId 单据ID
*/
public static void removeBillDataLock(String BillFID){
IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); mutex.releaseObjIDForUpdate(BillFID);
}
/**
* 根据ID获取数据是否加锁
* @param id 单据编号
* @return true 已加锁or false 未加锁
*/
public static boolean getBillDataLockStatus(String BillFID){
IMutexServiceControl mutex = MutexServiceControlFactory.getRemoteInstance(); boolean returnvalue = false;
HashMap map = mutex.getObjIDForUpdateList();
for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
String key = iter.next().toString();
if(BillFID.equals(key.substring(0, 28))){
returnvalue = true;
}
return returnvalue;
}
/**
* 表格获取选中行某列值
* 返回ArrayList集合
* @param tblMain 列表对象
* @param CellName 列名
* @return ArrayList集合
*
* 返回遍历
try {
ArrayList list = UtilClass.getTableCellsValue(kDTable1, "cell1");
if(list.size()>0){
for (Iterator iter = list.iterator(); iter.hasNext();) {
System.out.println((String)iter.next());
}
}else{
UtilClass.alert("请选择要操作的记录");
}
} catch (Exception e1) {
}
*/
public static ArrayList getTableCellsValue(KDTable tblMain, String CellName){ ICell cellstr;
Object strObj = null;
KDTSelectBlock block = null;
ArrayList returnValue = new ArrayList();
int size = tblMain.getSelectManager().size();
for (int i = 0; i < size; i++) {
block = tblMain.getSelectManager().get(i);
for (int j = block.getTop(); j <= block.getBottom(); j++) {
cellstr = tblMain.getRow(j).getCell(CellName);
strObj = cellstr.getValue();
returnValue.add(strObj);
}
}
return returnValue;
}
/**
* 设置List默认查询条件
* @param mainQuery List MainQuery
* @param Filter 条件
* 例:UtilClass.setListQueryFilter(mainQuery, "orderid.batchnum is not null"); */
public static void setListQueryFilter(EntityViewInfo mainQuery,String Filter){
try {
mainQuery.setFilter(Filter);
} catch (ParserException e) {
alert2("设置List默认查询条件出错!",e.getMessage());
}
}
/**
* 获取KDTable选择行的行号(选择行的第一行)
* @param tblMain
* @return 行号
*/
public static int getRowNumFirst(KDTable tblMain){
return tblMain.getSelectManager().get(0).getTop();
}
/**
* 获取KDTable选择行的行号
* @param tblMain
* @return 行号
*/
public static int[] getRowNum(KDTable tblMain){
return KDTableUtil.getSelectedRows(tblMain);
}
/**
* 导出KDTable表格数据到Excel文件
* @param table KDTable
* @param RowNums 行号集合如果RowNums行数为0,导出全部数据
* return 生成文件目录
* 例:UtilClass.TableExpot(kDTable1, new int[0], null);
*/
public static String TableExpot(KDTable table,int[] RowNums,String FileName){ String returnvaleu = "";
String Filepath = "";
//打开目录选择器
try {
Filepath = UtilClass.OpenPathSelect();
String File = "";
if("".equals(Filepath)){
return returnvaleu;
}else{
if(FileName==null||"".equals(FileName)){
FileName = "temp";
}
File = Filepath+"\\"+FileName+".xls";
}
File file = new File(File);
//如果找到相同的文件,执行删除
if(file.exists() && file.isFile()){
file.delete();
}
WritableWorkbook wwb = Workbook.createWorkbook(new File(File)); //创建工作表
wwb.createSheet("sheet1", 0);
//获取工作表
WritableSheet ws = wwb.getSheet(0);
//表头行样式
WritableCellFormat TableHead = new WritableCellFormat();
TableHead.setBorder(Border.ALL, BorderLineStyle.THIN);
TableHead.setAlignment(Alignment.CENTRE);
TableHead.setBackground(Colour.GRAY_25);
//表体数据行样式
WritableCellFormat TableRow = new WritableCellFormat();
TableRow.setAlignment(Alignment.CENTRE);
if(RowNums==null){
//生成表头
for(int i=0;i
if(table.getHeadRow(0).getCell(i).getValue()!=null){
ws.addCell(new
Label(i,0,table.getHeadRow(0).getCell(i).getValue().toString(),TableHead));
}
}
//生成表体数据
for(int i=0;i
for(int j=0;j
if(table.getRow(i).getCell(j).getValue()!=null){
ws.addCell(new
Label(j,i+1,table.getRow(i).getCell(j).getValue().toString(),TableRow));
}
}
}
}else{
//生成表头
for(int i=0;i
if(table.getHeadRow(0).getCell(i).getValue()!=null){
ws.addCell(new
Label(i,0,table.getHeadRow(0).getCell(i).getValue().toString(),TableHead));
}
}
//生成表体数据
for(int z=0;z int i = RowNums[z]; for(int j=0;j if(table.getRow(i).getCell(j).getValue()!=null){ ws.addCell(new Label(j,z+1,table.getRow(i).getCell(j).getValue().toString(),TableRow)); } } } } wwb.write(); wwb.close(); returnvaleu = File; } catch (Exception e) { alert2("生成Excel文件出错",Filepath); } return returnvaleu; } /*** * 设置表格列名 * @param Table Table名称 * @param Colunm 列名 * @param name 值 * */ public static void setTableColumnName(KDTable Table,String ColunmID,String ColunmName){ KDTable kt = new KDTable(); kt = Table; kt.getHeadRow(0).getCell(ColunmID).setValue(ColunmName); Table = kt; } /** * 设置表格融合方式 * @param tblMain 表格 * @param type 融合方式0 :行融合1:列融合2:自由融合 */ public static void setTableMergeMode(KDTable tblMain,int type){ if(type==0){ tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE); } if(type==1){ tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_COLUMN_MERGE); } if(type==2){ tblMain.getMergeManager().setMergeMode(KDTMergeManager.FREE_MERGE); } } /*** * 表格行选择器,从第R1行选到R2行 * @param tblMain 表格 * @param R1 开始行号 * @param R2 结束行号 */ public static void setTableSelectRows(KDTable tblMain,int R1,int R2){ tblMain.getSelectManager().select(R1-1, 0, R2-1, 0); } /** * 设置按钮图片名称 * @param btnName 按钮名称 * @param imgName 图片名称 * EAS图片名称保存位置:BOS环境下工程\lib\client\eas\eas_resource_common_ico.jar */ public static void setButtonImg(com.kingdee.bos.ctrl.swing.KDWorkButton ButtonName,String imgName){ ButtonName.setIcon(EASResource.getIcon(imgName)); ButtonName.setEnabled(true); } /** * 设置F7 * @param F7Name F7名称 * @param ConditionSQL 过滤条件SQL(如果输入值不等于"",则添加条件) * 例" fbilltypestatr = '1' and (entrys.id is null or entrys.seq = 1)" * @param Query 属性例:"com.kingdee.eas.cmt.basedata.app.OperatorOrgQuery" * @param EditFrmat 属性例:"$number$" * @param DisplayFormat 属性例:"$name$" * @param CommitFormat 属性例:"$number$" * @throws BOSException */ public static void setF7(KDBizPromptBox F7Name,String ConditionSQL ,String Query,String EditFrmat,String DisplayFormat,String CommitFormat){ //添加分录过滤条件 try { EntityViewInfo view = new EntityViewInfo(); if(ConditionSQL != ""){ view.setFilter(ConditionSQL); } //设置F7属性 F7Name.setQueryInfo(Query);//关联Query F7Name.setEditFormat(EditFrmat);//编辑样式 F7Name.setDisplayFormat(DisplayFormat);//展现样式 F7Name.setCommitFormat(CommitFormat);//提交样式 F7Name.setEntityViewInfo(view); F7Name.setEnabledMultiSelection(false); } catch (Exception e) { alert2("F7["+F7Name+"]初始化出错,请联系管理员!",e.getMessage()); } } /** * 设置分录F7 * @param col 列名kdtEntrys.getColumn("boxType") * @param ConditionSQL 过滤条件SQL(如果输入值不等于"",则添加条件) * 例" fbilltypestatr = '1' and (entrys.id is null or entrys.seq = 1)" * @param Query 属性例:"com.kingdee.eas.cmt.basedata.app.OperatorOrgQuery" * @param EditFrmat 属性例:"$number$" * @param DisplayFormat 属性例:"$name$" * @param CommitFormat 属性例:"$number$" */ public static void setEntryF7(IColumn col,String ConditionSQL ,String Query,String EditFrmat,String DisplayFormat,String CommitFormat){ try { KDBizPromptBox prmt = new KDBizPromptBox(); EntityViewInfo view = new EntityViewInfo(); if(ConditionSQL != ""){ view.setFilter(ConditionSQL); } prmt.setQueryInfo(Query); prmt.setEditFormat(EditFrmat); prmt.setCommitFormat(CommitFormat); prmt.setDisplayFormat(DisplayFormat); prmt.setEntityViewInfo(view); prmt.setEnabledMultiSelection(false); KDTDefaultCellEditor editor = new KDTDefaultCellEditor(prmt); col.setEditor(editor); } catch (ParserException e) { alert2("分录F7初始化出错,请联系管理员!",e.getMessage()); } } /** * 日期转换字符串 * @param date 日期 * @param type 显示格式yyyy-MM-dd yyyy-MM-dd HH:mm:ss * String returnvalue = UtilClass.DateToString(this.Startdatetest.getValue(), "yyyy-MM-dd"); */ public static String DateToString (Object date,String type){ String returnvalue = ""; if(date != null){ try{ SimpleDateFormat sdf = new SimpleDateFormat(type); returnvalue = sdf.format(date); } catch(Exception ex){ alert("日期格式转换出错"); } } return returnvalue; } /** * 字符串转为日期 * @param DateStr 字符串 * @param type 类型"yyyy-MM-dd HH:mm:ss" * @return Date java.util.Date */ public static Date StringToDate(String DateStr,String type){ Date returnvalue = null; try { SimpleDateFormat sdf = new SimpleDateFormat(type); returnvalue = sdf.parse(DateStr); } catch (ParseException e) { alert2("日期转换出错",DateStr+"-->"+type); } return returnvalue; } /** * 设置DKDatePicker控件显示格式 * @param date 日期控制 * @param dateType 格式样式例:"yyyy-MM-dd HH:mm:ss" "yyyy-MM-dd" */ public static void setKDDatePicker(KDDatePicker date,String dateType){ date.setDatePattern(dateType); } /** * 获取当前时间(KDDatePicker控件)默认值例如:创建时间修改时间审核时间 * @return java.sql.Timestamp 当前时间 */ public static java.sql.Timestamp getTime(){ java.sql.Timestamp time = new java.sql.Timestamp(new java.util.Date().getTime()); return time; } /** * 打开文件 * @param FilePath 文件路径 */ public static void OpenFile(String FilePath){ try { Runtime.getRuntime().exec("cmd /c start \"\" \""+FilePath.replaceAll("\\\\", "\\\\\\\\")+"\""); } catch (IOException e) { alert2("打开文件出错",FilePath); } } /** * 打开文件选择器 * @return 文件路径 */ public static String OpenFilesSelect(){ String returnvalue = ""; JFileChooser chooser = new JFileChooser(); chooser.setDialogTitle("请选择文件"); chooser.showDialog(null, "确定"); if(chooser.getSelectedFile()!=null){ File file = chooser.getSelectedFile(); returnvalue = file.getPath(); } return returnvalue; } /** * 打开目录选择器 * @return */ public static String OpenPathSelect(){ String returnvalue = ""; JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setDialogTitle("请选择目录"); chooser.showDialog(null,"保存"); if(chooser.getSelectedFile()!=null){ File file = chooser.getSelectedFile(); returnvalue = file.getPath(); } return returnvalue; } /** * 向Excel文件插入数据 * @param File * @param sheetNum 工作表序号 * @param y 行 * @param x 列 * @param value 内容 */ public static void setExcelValue(String File,int sheetNum,int x,int y,String value){ try { File file = new File(File); //如果找到相同的文件,执行删除 if(!file.exists() && !file.isFile()){ return; } //Excel获得文件 Workbook wb = Workbook.getWorkbook(new File(File)); //打开一个文件的副本,并且指定数据写回到原文件 WritableWorkbook book = Workbook.createWorkbook(new File(File),wb); //获取工作表 WritableSheet sheet=book.getSheet(sheetNum); sheet.addCell(new Label(y,x,value)); book.write(); book.close(); } catch (Exception e) { } } /** * 读取Excel文件 * @param File 文件名 * @param sheetNum 工作表序号 * @param y 行 * @param x 列 */ public static String getExcelValue(String File,int sheetNum,int y,int x){ String result = ""; try { File file = new File(File); //如果找到相同的文件,执行删除 if(!file.exists() && !file.isFile()){ alert(File+"文件没找到!"); } Workbook book= Workbook.getWorkbook(new File(File)); //获得第一个工作表对象 Sheet sheet=book.getSheet(sheetNum); //得到第一列第一行的单元格 Cell cell1=sheet.getCell(x,y); result=cell1.getContents().toString(); book.close(); } catch (FileNotFoundException e) { alert2("读取Excel文件出错","请关闭当前打开的Excel文件"); } catch (BiffException e) { alert2("读取Excel文件出错",e.toString()); } catch (IOException e) { alert2("读取Excel文件出错",e.toString()); } return result; } /** * 读取Excel文件(第一sheet页中的内容) * @param File 文件路径 * @param sheetNum sheet页号 * @return 二维数组 * */ public static Object[][] getExcelValue(String File,int sheetNum){ Object [][] returnvalue = null; try { Workbook book= Workbook.getWorkbook(new File(File)); Sheet sheet=book.getSheet(sheetNum); returnvalue = new Object[sheet.getRows()][sheet.getColumns()]; for(int i=1;i for(int j=0;j returnvalue[i][j]=sheet.getCell(j,i).getContents(); } } } catch (FileNotFoundException e) { alert2("读取Excel文件出错","请关闭当前打开的Excel文件"); } catch (BiffException e) { alert2("读取Excel文件出错",e.toString()); } catch (IOException e) { alert2("读取Excel文件出错",e.toString()); } return returnvalue; } /*** * 发送即时消息 * @param FSuser 发送人ID * @param JSuser 接收人ID * @param MessageTitle 标题 * @param Messages 内容 */ public static void addMessage(String FSuser,String JSuser,String MessageTitle,String Messages){ try { IBMCMessage i = BMCMessageFactory.getRemoteInstance(); BMCMessageInfo info = new BMCMessageInfo(); info.setType(MsgType.ONLINE);// 消息类型,例如通知消息,任务消息,状态更新消息 info.setBizType(MsgBizType.ONLINE);// 业务类型,例如工作流,预警平台 info.setPriority(MsgPriority.HIGH); // 优先级 info.setStatus(MsgStatus.UNREADED); // 消息状态 info.setReceiver(JSuser); // 接收人ID (User的ID,不是Person的ID) info.setSender(FSuser);// 消息发送人 info.setTitle(MessageTitle); // 消息标题 info.setBody(Messages);// 消息内容 i.submit(info); } catch (Exception e) { alert2("发送即时消息出错","标题:"+MessageTitle+" 内容:"+Messages); } } /** * 列转行 * @param list 数据集合 * @param delimiter 分隔符例:"," * @param bracketsLeft 左括号符号 * @param bracketsRight 右括号符号 * @return String */ public static String CellToRow(ArrayList list,String delimiter,String bracketsLeft,String bracketsRight){ String returnvalue = ""; for (Iterator iter = list.iterator(); iter.hasNext();){ if(!"".equals(bracketsLeft) && bracketsLeft != null && !"".equals(bracketsRight) && bracketsRight != null){ returnvalue += bracketsLeft + (String)iter.next() + bracketsRight; } returnvalue+=delimiter; } return returnvalue.substring(0, returnvalue.length()-1); } /** * 打开窗口 * @param URL UI地址 * @param ctx 参数集合 * @param openType 打开窗口类型例:UIFactoryName.MODEL * @param billStatus 单据状态例:OprtState.ADDNEW * * 打开普通UI页面 HashMap cix = new HashMap(); String orderid = "asiofjlqkjwfklaslkasdf=" cix.put("orderid", orderid); UtilClass.openUI("https://www.doczj.com/doc/774902832.html,mission.client.GoodsUI", cix, UIFactoryName.MODEL, OprtState.ADDNEW); 打开单据EditUI页面 HashMap cix = new HashMap(); cix.put("ID", fid); UtilClass.openUI("https://www.doczj.com/doc/774902832.html,mission.client.CmtTranConsignEditUI", cix, UIFactoryName.NEWWIN, OprtState.VIEW); 在打开的单据获取前面页面传来的参数 this.getUIContext().get("orderid").toString() * * */ public static void openUI(String URL,HashMap ctx,String openType,String billStatus){ try { IUIWindow ui = UIFactory.createUIFactory(openType).create(URL, ctx, null, billStatus); ui.show(); } catch (UIException e) { alert2("弹出UI程序出错:",URL); } } /** * 发送参数 * @param ContextID 参数编号 * @param values 参数值 */ public static void setSysContext(String ContextID,Object values){ SysContext.getSysContext().setProperty(ContextID, values); } /** * 获取参数 * @param ContextID 参数编号 * @return 参数值(Object) */ public static Object getSysContext(String ContextID){ return SysContext.getSysContext().getProperty(ContextID); } /** * 获取UI参数 * @param UI * @return */ public static String getUIContext(CoreUIObject UI){ String returnvalue = ""; if(UI.getUIContext().get("UIClassParam")!=null){ returnvalue = UI.getUIContext().get("UIClassParam").toString(); } return returnvalue; } /** * 创建单据编号 * @param Parameter 规则参数 * 参数说明: * logo 编号头标示 * date 日期时间 * Delimiter 分隔符 * digit 序号位数 * isTissueIsolation 是否组织隔离(0:不隔离1:隔离) * table 表名 * @return String 单据编号 * * HashMap Parameter = new HashMap(); //编号头标示符号 Parameter.put("logo", "CMT"); //日期 Parameter.put("date", UtilClass.DateToString(UtilClass.getTime(), "yyyyMMdd")); //分隔符 Parameter.put("Delimiter", "-"); //序号位数 Parameter.put("digit", "5"); //是否隔离组织0为不隔离1为隔离 Parameter.put("isTissueIsolation", "0"); //单据表名 Parameter.put("table", "T_BAS_VehicleType"); String billNum = UtilClass.createrBillNumber(Parameter); * */ public static String createrBillNumber(HashMap Parameter){ StringBuffer returnvalue = new StringBuffer(); //编号头Logo if(Parameter.get("logo")!=null){ returnvalue.append(Parameter.get("logo")); } //添加时间 if(Parameter.get("date")!=null){ if(Parameter.get("Delimiter")!=null){ returnvalue.append(Parameter.get("Delimiter")); } returnvalue.append(Parameter.get("date")); } //创建序号位(digit:序号位数) if(Parameter.get("digit")!=null){ StringBuffer getDigitSQL = new StringBuffer(); Integer digit = new Integer(Parameter.get("digit").toString()); StringBuffer digitValue = new StringBuffer(); for(int i=0;i digitValue.append("0"); } getDigitSQL.append("select trim(to_char(count(*)+1,'"+digitValue+"')) from "+Parameter.get("table")+" "); //是否组织隔离 if("1".equals(Parameter.get("isTissueIsolation"))){ getDigitSQL.append(" where FControlUnitID = '"+getCU().getId()+"'"); } if(Parameter.get("Delimiter")!=null){ returnvalue.append(Parameter.get("Delimiter")); } //获取数据库记录数 returnvalue.append(executeQueryString(getDigitSQL.toString())); } return returnvalue.toString(); } /** * 当前登录组织 * @return */ public static CtrlUnitInfo getCU(){ return SysContext.getSysContext().getCurrentCtrlUnit(); } /** * 判断当前组织是否为集团要目录 * @return boolean */ public static boolean isRootCU(){ if("1".equals(executeQueryString("select tc.flevel from t_org_baseunit tc where tc.fid = '"+getCU().getId()+"'"))){ return true; }else{ return false; } } /** * 获取集团组织ID * @return */ public static CtrlUnitInfo getRootCU(){ CtrlUnitInfo cinfo = new CtrlUnitInfo(); try { CtrlUnitCollection cinfos = CtrlUnitFactory.getRemoteInstance().getCtrlUnitCollection("select * where level = 1 "); cinfo = cinfos.get(0); } catch (BOSException e) { alert2("获取集团组织ID出错",e.getMessage()); } return cinfo; } /** * 当前登录用户 * @return */ public static UserInfo getUser(){ return SysContext.getSysContext().getCurrentUserInfo(); } /** * 当前登陆人员 * @return */ public static PersonInfo getPerson(){ PersonInfo personinfo = null; try { PersonCollection Personcollection = PersonFactory.getRemoteInstance().getPersonCollection(" select * where name = '" + SysContext.getSysContext().getCurrentUserInfo().getName() +"'"); personinfo=Personcollection.get(0); } catch (Exception e1) { } return personinfo; } /** * 当前登录人员部门 * @return */ public static AdminOrgUnitInfo getDepartment(){ AdminOrgUnitInfo returnvalue = null; try { PersonPositionInfo PersonPosition = PersonPositionFactory.getRemoteInstance().getPersonPositionInfo("select primaryPosition.* where person = '" + getPerson().getId() + "'"); PositionInfo Position = PersonPosition.getPrimaryPosition(); AdminOrgUnitCollection collection = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitCollection(" select * where id= '" + Position.getAdminOrgUnit().getId() +"'"); returnvalue = collection.get(0); } catch (Exception e2) { } return returnvalue; }