Windchill二次开发-自定义文件编号(2)
自定义文件编号如:字母+年份+序列号(如:B2020123)
自定义文件编码规则
package ext.customize;import wt.rule.algorithm.RuleAlgorithm;
import wt.util.WTException;
import wt.inf.container.WTContainerRef;
import wt.pds.oracle81.OracleDataSource;
import java.util.TimeZone;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.*;
import java.util.*;/** 自定义编号(eg:B2020123)B+年份+三位序号*/
public class CustomNumberRule implements RuleAlgorithm {public Object calculate(Object args[], WTContainerRef container) throws WTException {Calendar gmtlocal = new GregorianCalendar(TimeZone.getTimeZone("GMT+8"));SimpleDateFormat sf = new SimpleDateFormat("YYYY");sf.setTimeZone(TimeZone.getTimeZone("GMT+8"));String head = "A"+sf.format(gmtlocal.getTime());String num = getDocumentNumber(head);if (num.length() == 1) {num = "00" + num;} else if (num.length() == 2) {num = "0" + num;}return head + num;}public static String getDocumentNumber(String head) {int n = 0;try {Connection dbConnection = OracleDataSource.getOracleDataSource().getConnection();String sql = String.format("SELECT WTDOCUMENTNUMBER FROM WTDOCUMENTMASTER WHERE WTDOCUMENTNUMBER LIKE '%s%%' ORDER BY WTDOCUMENTNUMBER DESC",head);PreparedStatement ps = dbConnection.prepareStatement(sql);ResultSet rs = ps.executeQuery();if (rs.next()) {n = Integer.parseInt(rs.getString(1).substring(5)) + 1;} else {n = 1;}rs.close();ps.close();dbConnection.close();} catch (SQLException e) {System.out.println("Please chekc the oracle table ReviewInfo was created or not!");e.printStackTrace();}return n + "";}
}
将编译好的文件放到对应的文件夹中,然后修改对象初始化规则
更新对象初始化规则文件,修改使用的算法,从:
<AttrValue id="number" algorithm="com.ptc.windchill.enterprise.revisionControlled.server.impl.NumberGenerator"> <Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</AttrValue>
修改为:
<AttrValue id="number" algorithm="ext.customize.customNumberRule"> <Arg>{GEN:wt.enterprise.SequenceGenerator:WTPARTID_seq:10:0}</Arg>
</AttrValue>
更新对象的对象初始化规则。
Windchill二次开发-自定义文件编号(2)相关推荐
- NX二次开发-UFUN文件选择对话框UF_UI_create_filebox
NX二次开发-UFUN文件选择对话框UF_UI_create_filebox NX11+VS2013#include <uf.h> #include <uf_ui.h>UF_i ...
- Windchill 二次开发新手入门常用的API
Windchill_二次开发新手入门常用的API 1.根据零件名称/编码 得到该零件 wt.clients.prodmgmt.WTPartHelper.findPartByName(name) ; ...
- Mixly 二次开发 自定义库
Mixly基本原理 Mixly可以看作是介于普通用户与Arduino IDE之间桥梁,通过这个桥梁,即使用户不懂C语言的语法,也可以利用图形化程序编写Arduino程序.Mixly的基本原理是将图形化 ...
- Mixly 二次开发 自定义库 创客教程
前言 本章内容是对Mixly 图像化编程软件进行的二次开发,需要一定的编程基础,需要用到的概念和知识点有: 绑定与事件概念, JavaScript的基本语法, .xml脚本的标签定义 限于篇幅,本章内 ...
- 帝国cms二次开发之文件夹的功能说明
特别注意,此次开发开发需要下载lskmvc for ecms即为帝国cms开发封装的一个二次开发小框架,众所周知,帝国cms本身是采用函数式的编程,缺点就是不好结构化代码,比较不好组织代码. lskm ...
- Windchill二次开发-批量导出和载入对象的软类型和软属性
将测试系统中的数据类型迁移到正式系统中,总结如下: 在 Windchill 外壳程序中执行如下命令: windchill wt.load.LoadFromFile -d <文件路径>/De ...
- Windchill二次开发-xconfmanager工具
一.概念: xconfmanager是一个命令行使用工具 二.用途: xconfmanager 是一个用来在 Windchill 属性文件中添加.移除和修改属性值的命令行工具 三.特点: xconfm ...
- MSCRM二次开发实现自动编号功能
功能描述:对客户实体实现自动编号功能,1.2.3.4...... 自动编号存放于属性accountnumber. 原 理:在mscrm服务器用一个文本文件存放当前最新编号,每当创建客户记录时在Pre ...
- c# autocad二次开发 dwg文件的框表框图导出pdf方便打印 dwg转pdf工具
20190815 热 项目背景: 最近搞电气装配图,一份dwg里面N份框表框图,打印时,要先一个个框图导出pdf,而导出pdf时又要一个个用窗口模式选择导出范围,流程比较繁琐,于是程序员之魂觉醒赶紧弄 ...
最新文章
- jquery-$()函数的用法及一些常用的选择器
- java虚拟机指令初步学习
- 业务场景是什么意思_深度思考:麦乐积分兑换商城系统业务逻辑
- K8S Learning(10)——Pod配置
- MATLAB定时器的简单使用
- 后台模拟页面登陆_模拟炒股软件支付宝同花顺都可以快速体验炒股
- Web后端学习笔记 Flask(9)cookie and session
- How to get the xpath by clicking an html element
- 15muduo_base库源码分析(六)
- 如何做WP的登录/注册功能
- atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性
- Python中利用scipy库进行最小二乘回归分析(金融相关)
- FPGA零基础学习:SDR SDRAM 驱动设计
- 分布式与集群的区别,一致性hash,hadoop与HBASE,消息,关于分布式系统的数据一致性问题(来自公众号:360doc个人图书馆)
- CGArt 2008 Issue
- Java将英文句子分解为单词
- 分享链接在微信内被多人投诉怎么办,域名防封方案
- 知网提供的“导出与分析”功能来确定论文主题
- python基于pingouin包进行统计分析:使用pairwise_tukey函数执行Tukey检验进行事后分析(Pairwise Tukey post-hocs)
- 魅族便签,能否成为国内便签应用的No.1?