BOS笔记
更新时间:2023-03-08 08:35:57 阅读量: 综合文库 文档下载
- boss直聘推荐度:
- 相关推荐
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 jxl.write.Label;
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 com.kingdee.bos.metadata.query.util.CompareType; 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 com.kingdee.eas.base.netctrl.IMutexServiceControl; import com.kingdee.eas.base.netctrl.MutexParameter;
import com.kingdee.eas.base.netctrl.MutexServiceControlFactory; import com.kingdee.eas.base.permission.UserInfo;
import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupCollection; import com.kingdee.eas.basedata.master.auxacct.GeneralAsstActTypeGroupFactory; import com.kingdee.eas.basedata.org.AdminOrgUnitCollection; import com.kingdee.eas.basedata.org.AdminOrgUnitFactory; import com.kingdee.eas.basedata.org.AdminOrgUnitInfo; import com.kingdee.eas.basedata.org.CtrlUnitCollection; import com.kingdee.eas.basedata.org.CtrlUnitFactory; import com.kingdee.eas.basedata.org.CtrlUnitInfo; import com.kingdee.eas.basedata.org.PositionInfo;
import com.kingdee.eas.basedata.person.PersonCollection; import com.kingdee.eas.basedata.person.PersonFactory;
import com.kingdee.eas.basedata.person.PersonInfo; import com.kingdee.eas.common.client.OprtState; import com.kingdee.eas.common.client.SysContext; import com.kingdee.eas.common.client.UIContext;
import com.kingdee.eas.common.client.UIFactoryName; import com.kingdee.eas.fm.common.FMIsqlFacadeFactory; import com.kingdee.eas.fm.common.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, \ 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, \ */
public static void setListQueryFilter(EntityViewInfo mainQuery,String Filter){ try {
mainQuery.setFilter(Filter); } catch (ParserException e) {
alert2(\设置List默认查询条件出错!\ } } /**
* 获取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(\ return returnvaleu; }else{
if(FileName==null||\
FileName = \ }
File = Filepath+\ }
File file = new File(File);
//如果找到相同的文件,执行删除 if(file.exists() && file.isFile()){ file.delete(); }
WritableWorkbook wwb = Workbook.createWorkbook(new File(File)); //创建工作表
wwb.createSheet(\
//获取工作表
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 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文件出错\ } 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(如果输入值不等于\,则添加条件) * 例 \ * @param Query 属性 例:\ * @param EditFrmat 属性 例:\ * @param DisplayFormat 属性 例:\ * @param CommitFormat 属性 例:\ * @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 * @param col 列名 kdtEntrys.getColumn(\ * @param ConditionSQL 过滤条件SQL(如果输入值不等于\,则添加条件) * 例 \ * @param Query 属性 例:\ * @param EditFrmat 属性 例:\ * @param DisplayFormat 属性 例:\ * @param CommitFormat 属性 例:\ */ 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初始化出错,请联系管理员!\ } } /** * 日期转换字符串 * @param date 日期 * @param type 显示格式 yyyy-MM-dd yyyy-MM-dd HH:mm:ss * String returnvalue = UtilClass.DateToString(this.Startdatetest.getValue(), \ */ 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 类型 \ * @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(\日期转换出错\ } return returnvalue; } /** * 设置DKDatePicker控件显示格式 * @param date 日期控制 * @param dateType 格式样式 例:\ */ \ 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(\/c \ } catch (IOException e) { alert2(\打开文件出错\ } } /** * 打开文件选择器 * @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 */ start \\\\\\ 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文件出错\ } catch (IOException e) { alert2(\读取Excel文件出错\ } 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文件出错\ } catch (IOException e) { alert2(\读取Excel文件出错\ } 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(\发送即时消息出错\标题:\ 内容:\ } } /** * 列转行 * @param list 数据集合 * @param delimiter 分隔符 例:\ * @param bracketsLeft 左括号符号 * @param bracketsRight 右括号符号 * @return String */ /** * 通过fid获取表名 * @param fid * @return 表名 */ public static String getDBTableName(String fid){ String Tablename = \ com.kingdee.bos.util.BOSObjectType bosType = BOSUuid.read(fid).getType(); try { Tablename FMIsqlFacadeFactory.getRemoteInstance().getTableNameByBosType(bosType); } catch (BOSException e) { alert2(\获取表名出错\ } return Tablename; } /** * 执行SQL(查询,返回集合) * @param sql * @return IRowSet rs = UtilClass.executeQuery(sql.toString()); while(rs.next()){ rs.getObject(1).toString(); } */ public static IRowSet executeQuery(String sql){ IRowSet returnvalue = null; try { IFMIsqlFacade db com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); returnvalue = db.executeQuery(\ } catch (Exception e) { alert2(\执行SQL出错\ } return returnvalue; } /** * 执行SQL(查询,返回单看值) * @param sql * @return String */ public static String executeQueryString(String sql){ = = String returnvalue = null; try { IFMIsqlFacade db com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); IRowSet rs = db.executeQuery(\ while(rs.next()){ if(rs.getObject(1)!=null){ returnvalue = rs.getObject(1).toString(); } } } catch (Exception e) { alert2(\执行SQL出错\ } return returnvalue; } /** * 执行SQL(新增,修改) * @param sql */ public static void executeSql(String sql){ try { IFMIsqlFacade db com.kingdee.eas.fm.common.FMIsqlFacadeFactory.getRemoteInstance(); db.executeSql(\ } catch (Exception e) { alert2(\执行SQL出错\ } } /** * SQL数据导出到Excel文件 * @param sql * @param FileName 文件名 */ public static String SQLExpot(String sql,String FileName){ String returnvalue =\ try { if(\ return returnvalue; } if(FileName==null||\ FileName = \ } String Filepath = UtilClass.OpenPathSelect(); = = String File = \ if(\ return returnvalue; }else{ File = Filepath+\ } File file = new File(File); //如果找到相同的文件,执行删除 if(file.exists() && file.isFile()){ file.delete(); } WritableWorkbook wwb = Workbook.createWorkbook(new File(File)); //创建工作表 wwb.createSheet(\ //获取工作表 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); IRowSet rs = UtilClass.executeQuery(sql); //生成列名 for(int i=0;i String columnName = rs.getRowSetMetaData().getColumnName(i+1); ws.addCell(new Label(i,0,columnName,TableHead)); } int z=1; while(rs.next()){ for(int j=1;j<=rs.getRowSetMetaData().getColumnCount();j++){ if(rs.getObject(j)!=null){ ws.addCell(new Label(j-1,z,rs.getObject(j).toString(),TableRow)); } } z++; } wwb.write(); wwb.close(); } catch (Exception e) { alert2(\导出数据生成Excel文件出错\ } return returnvalue; } /** * 集装箱箱号正确性验证 * @param BoxNum 箱号 * @return Boolean if(!UtilClass.BoxVerification(boxnum)){ if(!UtilClass.alertReturn(\箱号:\不是国际标准箱号,是否保存?\ UtilClass.Stop(); } } */ public static boolean BoxVerification(String BoxNum){ HashMap bj = new HashMap(); bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ bj.put(\ //去掉箱号两边空格 String newBoxNum = BoxNum.trim(); //判断箱号是否为国际标准11位 if(newBoxNum.length() != 11){ return false; } //判断前四位为字母 區別小寫 for(int i=0;i<4;i++){ String Nums = newBoxNum.substring(i, i+1); char chs[] = Nums.toCharArray(); if((int)chs[0]<65 || (int)chs[0]>90){ return false; } } //判断后7位为数字 for(int i=4;i<11;i++){ String Nums = newBoxNum.substring(i, i+1); char chs[] = Nums.toCharArray(); if((int)chs[0]<48 || (int)chs[0]>57){ return false; } } //判断第11数验证码是否正确 double VerificationNumSum = 0; for(int i=0;i<10;i++){ //获取当前位字母或数字对应的数值 double bjdata = ((Integer)bj.get(newBoxNum.substring(i, i+1))).doubleValue(); //获取当前位对应的2的i次方 double jfdata = Math.pow(2,i); VerificationNumSum+=bjdata*jfdata; } int VerificationNum =(int)VerificationNumSum; int sub11 = new Integer(newBoxNum.substring(10)).intValue(); //如果计算结果与第11位数是否相等 if(VerificationNum!=sub11){ return false; } return true; } /** * 从oracle数据读取图片字节码生成图片文件 * @param img_num 图片编号(参数表编号) * @param file 文件地址 \ 系统参数表 -- 创建表 create table T_SYS_FUTVAN ( FNUMBER NVARCHAR2(55), FNAME NVARCHAR2(256), PARAMETER_STRING NVARCHAR2(256), PARAMETER_NUMBER NUMBER, PARAMETER_DATE DATE, PARAMETER_TIMESTAMP TIMESTAMP(6), PARAMETER_BLOB BLOB ) -- 创建字段说明 comment on column T_SYS_FUTVAN.FNUMBER is '参数编号'; comment on column T_SYS_FUTVAN.FNAME is '参数名称'; comment on column T_SYS_FUTVAN.PARAMETER_STRING is '文本型参数'; comment on column T_SYS_FUTVAN.PARAMETER_NUMBER is '数据型参数'; comment on column T_SYS_FUTVAN.PARAMETER_DATE is '日期型参数'; comment on column T_SYS_FUTVAN.PARAMETER_TIMESTAMP is '时间型参数'; comment on column T_SYS_FUTVAN.PARAMETER_BLOB is '字节型参数'; * */ public static void getImgFromOracle(String img_num,String file){ try { IRowSet rs = executeQuery(\parameter_blob from t_sys_futvan where fnumber = '\ while(rs.next()){ java.sql.Blob blob = rs.getBlob(1); InputStream ins = blob.getBinaryStream(); File f = new File(file); FileOutputStream fout = new FileOutputStream(f); byte[]b = new byte[10244]; int len = 0; while((len = ins.read(b)) != -1){ fout.write(b,0,len); } fout.close(); ins.close(); } } catch (Exception e) { System.out.println(); } } /** * BOTP单据转换 * @param botpNum 转换规则编号 * @param BillInfo 原单据 */ public static void BOTP(String botpNum,CoreBillBaseInfo BillInfo){ String error = \ try { // 取得BOPT的映射 BOTMappingCollection botmapping = BOTMappingFactory.getRemoteInstance().getBOTMappingCollection(\* where name = '\ \ BOTMappingInfo btpMappingInfo = null; if (botmapping !=null && botmapping.size() == 1) { btpMappingInfo = botmapping.get(0); } else { if(botmapping==null || botmapping.size()<1){ error = \未找到转换规则 规则编号:\ } if(botmapping.size()>1){ error = \找到多条转换规则,请删除重复规则。 规则编号:\ } throw new Exception(); } //执行单据转换 BTPTransformResult transformResult BTPManagerFactory.getRemoteInstance().transform(BillInfo, btpMappingInfo); //取得目标单据列表 IObjectCollection toBillList = transformResult.getBills(); //保存目标单据 for (int i = 0; i < toBillList.size(); i++) { CoreBillBaseInfo destBillInfo = (CoreBillBaseInfo) toBillList.getObject(i); BTPManagerFactory.getRemoteInstance().saveRelations(destBillInfo, transformResult.getBOTRelationCollection()); } } catch (Exception e) { if(\ alert2(\单据转换出错\ }else{ alert2(\单据转换出错\ } } } /** * 分摊功能 * @param Total 总数 * @param Allocations 分摊明细 * @param newScale 小数位数 * @return 分摊分集合 String [][]Allocations = new String[3][2]; Allocations[0][0] = \ Allocations[0][1] = \ Allocations[1][0] = \ Allocations[1][1] = \ Allocations[2][0] = \ Allocations[2][1] = \ String [][] rv = UtilClass.mathAllocation(new BigDecimal(\ */ public static String[][] mathAllocation(BigDecimal Total,String[][] Allocations,int newScale){ String[][] returnvalue = new String[Allocations.length][2]; BigDecimal sum = new BigDecimal(\ = BigDecimal Allocationsum = new BigDecimal(\ try { //获取明细总数 for(int i=0;i if(Allocations[i][1]!=null&&!\ sum = sum.add(new BigDecimal(Allocations[i][1])); } } //按比例分摊 for(int i=0;i if(Allocations[i][1]!=null&&!\ BigDecimal thisValue = new BigDecimal(Allocations[i][1]); BigDecimal AllocationValue = thisValue.divide(sum,16, BigDecimal.ROUND_HALF_UP).multiply(Total).setScale(newScale, BigDecimal.ROUND_HALF_UP); returnvalue[i][0] = Allocations[i][0]; returnvalue[i][1] = AllocationValue.toString(); }else{ returnvalue[i][0] = Allocations[i][0]; returnvalue[i][1] = \ } } //判断分摊后每条记录数据是否与总数相同 for(int i=0;i if(returnvalue[i][1]!=null&&!\ Allocationsum = Allocationsum.add(new BigDecimal(returnvalue[i][1])); } } //如果分摊后结果与分摊前总数不一等。在分摊记录最后一条。加上。分摊后总数与分摊总数的差值 if(Allocationsum.compareTo(Total)!=0){ BigDecimal xz = new BigDecimal(returnvalue[returnvalue.length-1][1]).subtract(Allocationsum.subtract(Total)); returnvalue[returnvalue.length-1][1] = xz.toString(); } } catch (Exception e) { StringBuffer er = new StringBuffer(); for(int i=0;i er.append(\ \ } alert2(\分摊出错\分摊总数:\ 明细:\ } return returnvalue; } }
正在阅读:
BOS笔记03-08
12秋黑塘小学青蓝工程工作总结06-12
玩好股票最关心的几个问题06-03
接入网复习资料12-19
自考00151企业经营战略课堂笔记概要05-25
新任经理管理技能提升训练课程大纲2.004-07
美术论文12-10
全区深化“接放管服”改革工作推进会议讲话09-02
中央空调电子膨胀阀操作说明 中文版样本05-23
企业困难职工申请书(合集58篇)03-31
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 笔记
- BOS
- 百源木业有限公司配送线路优化
- 大学英语第三册
- 山东省滨州市五校2019届九年级上学期第一次月考语文试题
- 住宅楼11层施工组织设计 - 图文
- 2017年福建省各地市初中质检考和中考化学试题(word精排版 含答
- 2015中考模拟试题二
- 住院病案首页部分项目填写说明
- B卷
- 2017--2018学年译林版必修七unit 3 the world online grammar an
- 2015年河北省中考总复习英语(人教版):备考跟踪训练20
- jdk1.5+Tomcat6.0+MyEclipse8.5+Mysql5.0--BBS的安装部署说明--
- 应急管理经验材料
- 2015年1月年上海市浦东新区高三生命科学一模试卷及参考答案
- 中农大观赏树木学8.22
- 消防给水及消火栓系统技术规范图示 15S909
- 汕头市治安卡口缉查布控系统项目需求说明书
- 青少年体育工作会议议材料汇编 - 图文
- 西方法谚精选
- 论述类文章阅读(一)
- 签订就业三方协议的问题及签订程序