- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 home解压时windows系统特别卡
我们搭建NC各个版本的开发环境,需要解压home,一般home都不会小,这是系统的防御系统会扫描你的解压文件,暂用大量的cpu和内存,所以系统卡。解决方法如下:把你平常项目文件夹设置到排除项里。
2023-04-26 23:30:01
142
原创 dom4j 复制节点及其子节点
主子表数据,生成一个比较复杂的xml,子表可能有多条数据,由于标签很多,有几百个,所以手写代码,太复杂而且写完可读性不强,也不方便维护。所以想到读取一个模板,然后通过末尾标签的name来setText的方式生成,然而有个问题就是子表多条时,怎么复制一份子表的tree来,然后set值(模板里肯定只能维护一个子表的tree)。首先试了直接add(element)的方法,因为有父节点所以报错了,然后试了clone和craetcopy,但是只能复制自己不能复制字节点,上网搜了下,也是不行只能复制自己,而且clone
2021-01-26 03:26:57
1290
原创 NC6 单据模板设置是否显示
update PUB_BILLTEMPLET_B set LISTSHOWFLAG=‘Y’,SHOWFLAG=1,这句脚本虽然可行,但是如果元数据属性hided = 'N’的话,还是不能显示,所以元数据的hided = 'N’优先级大于PUB_BILLTEMPLET_B 的设置优先级。代码是BillItemDesignVOAdpter.gerValue所以设置元数据的md_property.hided属性值才能真正生效,涉及到元数据修改,一定要记得清客户端缓存!...
2020-09-23 03:43:55
430
原创 NC ws接口事务的处理方案
我们知道NC中事务同一的逻辑是,如果一次远程调用过程中没有异常,则调用结束前提交事务,否则不提交。而我们一般ws接口,为了友好性,异常不往外抛(如果抛异常无需处理),这种情况下,如果有事务则事务无法统一。我的处理方案是,再写一个远程组件用来处理,需要做事务统一的逻辑。...
2020-09-18 21:19:16
680
原创 NC6 语义模型复制不能修改
看代码AssetUtils.canModify((SmartDefVO)obj)所以,一般从综合控股集团(pk_industry=0)复制的语义模型用在其他行业(集团里定义)要修改语义模型的ASSETINDUSTRY字段的值(对应pk_industry)
2020-09-02 23:46:46
237
原创 nc65 关于uapws模块启用
如果有代码洁癖比如我,在65环境写ws接口时,喜欢将接口发布在uapws模块下,这样接口比较多的时候,就不用分模块建项目了,但是65没有这个模块了,所以要新建,这里讲一个容易忽视的坑,在抽补丁的时候容易,把module.xml文件漏了,导致接口无法部署ejb,所以在测试或者生产环境无法访问。...
2020-08-06 18:01:08
1650
原创 NC6 关于去除Int类型千分位符号
//将Integer类型千分位去除,重新设置渲染器(继承BillTableCellRenderer重写setValue)BillItem[] bodyItems = listPanel.getBodyBillModel().getBodyItems();TableColumnModel columnModel = listPanel.getChildListPanel().getTable().getColumnModel();for (int i = 0; i < bodyItems.leng
2020-07-29 10:09:48
277
原创 NC6 关于打印
//打印模板信息 //Select * From Pub_Systemplate Where Tempstyle=3 String pkCorp=getModel().getContext().getPk_org(); String funCode="20080EBM"; String pkUser=getModel().getContext().getPk_loginUser(); String nodeKey="cheque"; //参数为父窗口 PrintEntry print .
2020-07-24 21:46:24
765
原创 NC6 关于多语
1.在开发环境的resources下建多语配置文件,补丁也同样打入resources下2.properties必须是UTF-16的编码,否则无法加载,中文必须是UCS-2 BE BOM编码,否则无法正常显示,可以使用Notepad++编辑3.变量多语 NCLangRes.getInstance().getString("cheque", null, "2cheque-000017", null, new String[] { String.valueOf(i + 1),name });4.重
2020-07-24 21:27:01
1125
原创 Java 实时读取文件
package nc.fei.util;import java.awt.BorderLayout;import java.awt.Cursor;import java.awt.Dimension;import java.awt.Insets;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import jav
2020-06-21 15:40:33
809
原创 NC6 uap项目引入行业代码和jar包
假设现在hytest模块下有lib包和二开的class代码,一般我们新建uap项目是不会将hyext下的class文件引入工程的,但我们可以尝试手动引入添加外部类文件夹,将class文件夹和lib下的jar包添加进来这就和我们模块里client,public,private一样了如果要进行二开,就添加对应的源文件夹就行了抽补丁时,把路径手动改下就行了...
2020-06-11 13:34:55
1069
原创 NC6 使用NIO实现消息推送
1.需求背景在nc人力资源模块有些业务计算非常耗时,比如薪资,排班,假期等等,在服务器使用Nginx等反向代理的情况下,不会进行长时间的等待,而且长时间等待也是非常不好的体验。所以将计算做成异步任务就应运而生,即服务器收到请求后,另起线程执行任务,请求线程直接响应回去。如此不会影响客户端进行其他操作,但是任务在后台运行,前端需要可以查询相关任务的进度。那么进度信息可以通过两种方式进行反馈,一是客户端进行轮询,二是服务端实时推送,第一种方式比较简单不做赘述,这里讲第二种方式的实现。2.实现依赖NIO,N
2020-06-10 22:17:34
473
原创 NC6 关于凭证接口的坑
昨天开始,帮一个老客户处理一个通过接口保存的凭证,凭证号重复的问题。追了很深的代码,从ws实体转换,到凭证号生成和断号处理。有两个问题一定要处理完善,不然接口有问题。1.生成凭证号。如果凭证号字段为空,调用系统凭证保存组件时,系统会使用独立事务,自动生成凭证号,逻辑就是根据账簿,类型,期间在库里存有当前最大号,然后+1。为了防止并发时查询值的时候重复,系统做法是,在同一个事务中,先执行一句update进行锁表,然后查询,补号,设值,跟新最大值,事务提交后,解锁。期间如果有线程访问,由于表被锁,在执行upd
2020-05-24 05:55:24
1378
原创 NC6 锁
最近由于用户使用反向代理,而代理服务器的读取超时只有1分钟,所以在NC上执行较长时间的业务需要改成异步任务,并且提供异步任务监控,由此避免客户端发送IO异常和提升用户体验,这其中涉及到并发情况下的锁的问题,事务的问题,调用信息的问题和token信息的问题,这里我讲讲我阅读NC6锁的相关代码的几点笔记原理:所有锁信息存在单例对象成员位置的一个同步容器里,加锁即put,如果锁存在加锁时返回false,解锁即remove,具体实现可以看LockService4DataSource这个类普通锁: 需要
2020-05-22 12:27:48
511
原创 NC 测试代码执行效率小工具
package fei.time.test;import java.io.PrintStream;import nc.bs.logging.NCSysOutWrapper;public class TimeFei { private static Long lastTime; public static void fei(Long currTime,boolean isnull){ if (isnull) { lastTime = null; } if(lastTime !
2020-05-08 21:27:17
379
原创 NC 关于二开提升用户体验的几点经验
迄今为止,我认为NC系列的产品是一款非常优秀的产品,不论从业务逻辑和技术框架上来说都是非常专业的。NC本身对二开的限制放的很开,是为了方便因地制宜,提升用户体验,但往往由于二开的时候不够规范,用户体验极差,反而用户抱怨极大,最后甚至放弃使用,直接换产品了。一. 前端友好性1.加载界面。弹出加载动画的时候,一定要指定好父容器,否则会将整个界面覆盖,无法进行其他节点的操作,只能等着一个节点,计算加...
2020-04-19 16:40:09
454
原创 关于Java并发问题的两点理解
1.对同一个对象(单例,静态方法访问的都是同一个对象)的成员变量,多线程操作,会有并发问题2.对同一个对象的局部变量,方法参数,多线程操作,不会有并发问题所以在方法内部不用担心并发,而在调用静态方法和单例对象的时候要小心并发。欢迎讨论,指正!...
2020-04-19 06:00:21
319
原创 NC 获取语义模型里的sql
package junit;import java.util.List;import nc.bs.framework.common.InvocationInfoProxy;import nc.bs.framework.common.NCLocator;import nc.bs.framework.core.service.IFwLogin;import nc.bs.framework...
2020-04-17 01:18:52
1118
原创 NC upm文件的问题
有时候写个内部远程调用的接口,总是部署不成功,原因就是upm文件有问题,很多人喜欢复制upm文件,导致上面定义了很多没有必要的属性,其实写upm文件的时候,在定义属性的时候,只要设置remote为ture,可以远程调用就行了...
2020-04-14 21:14:52
3100
4
原创 NC servlet(http接口)开发
访问地址:ip+port/service/组件名1.实现IHttpServletAdaptor接口2.发布为组件(upm),设置组件名,将accessProtected=“false”,如果为ture,将会进行token验证
2020-04-14 20:58:39
3085
3
原创 NC6 JUnit测试
1.节省客户端启动时间2.节省做数据的时间直捣黄龙,简单粗暴直接继承AbstractTestCase写测试类,不需要注解,右键选择JUnit启动即可package fei.test.test;import nc.bs.framework.common.InvocationInfoProxy;import nc.bs.framework.common.NCLocator;import...
2020-04-10 15:52:49
691
3
原创 NC6 对组件进行AOP编程
1.用声明一个切面类,注解用法没有什么特殊的,注意,advice一定要指定匹配类型(patternType=PatternType.method)package nc.bs.uap.aop;import java.lang.reflect.Method;import nc.bs.framework.aop.After;import nc.bs.framework.aop.Around;...
2020-04-09 18:42:57
749
原创 NC6 弹窗显示网页
今天无聊,打开uap论坛,看到一个帖子在问,怎么在Dialog里显示网页。看了里面的答案说是用JWebBrowser(需要引入第三方jar包),然后试了试,应该由于jar包没有找对,怎么都没成功。后来就自己想,怎么实现,想到Eclipse里不正好有内置浏览器吗?于是去插件文件夹里搜下“browser”关键字,还真搜出来一个jar包,打开里面的类,有看到关联到了org.eclipse.swt.win...
2020-04-06 19:47:41
449
原创 NC sql信息打印控制台
首先追下代码,知道NC的日志是由Log4jLoggerPlugin执行,写一个子类继承重写log方法,然后将自己写的子类,配置在System.property里,在启动时所有日志就会使用你自己的类了,然偶挑出专门打印sql的日志进行控制台输出就行了。(当然,直接去查日志也是可以的,只是为了开发方便)...
2020-04-03 22:12:08
1075
1
原创 NC ws接口防XXE注入
有风险的地方有两个1.接口返回xml的格式化操作,SoapFormatAction,但是一般都打了补丁做了处理实际上还可以在org.apache.xalan.transformer.TransformerIdentityImpl里解析之前加上下面代码也可以防止注入2.调用接口时,一般来说如果服务是由home里startup.bat/startup.sh来启动的话是不会有风险的,但如果服务是由...
2020-04-03 20:13:19
724
原创 NC 在后台使用System.out打印
1.NC不能使用的原因,在启服务的时候,是将System.out替换成了自己写的PrintStream(NCSysOutWrapper),会将打印信息打印到sysout这个日志里2.通过NCSysOutWrapper这个包装类得知,一下几种方式可以恢复打印功能1>将System.out强转为NCSysOutWrapper,直接打印NCSysOutWrapper nc = (NCSysO...
2020-04-03 20:08:02
990
原创 Beyond Compare 4 密钥被吊销
C:\Users\用户名\AppData\Roaming\Scooter Software\Beyond Compare 4下的BCState.xml删除即可
2020-03-27 13:34:50
1482
原创 NC 一次更新1000条以上数据
InSQLCreator isc = new InSQLCreator();String inSQL = isc.getInSQL(pks);这个类可以生成in语句,数据操作可以达到1000条以上,但是使用时注意只能在后台使用,由于在开发环境不会报错,所以要注意...
2020-02-27 11:44:55
872
原创 NC6 业务参数操作
一、新增业务参数应用管理平台—开发配置工具—参数模板设置二、获取业务参数nc.pubitf.para.SysInitQuery
2020-02-09 16:14:42
1436
原创 JAVA 文件类型识别
1.文件类型通常在前几个字节,所以只读50个字节就够了,但千万不要把流关了byte[] b = new byte[50];is.read(b);is.close();否则在后续继续 读该输入流时会报流关闭异常2.用来识别文件类型的这50个字节要第一时间写入到输出流中os.write(b);否则输出流中会少了这50个字节的内容导致文件破坏3.记住io流只能读取一次...
2020-01-15 15:27:23
716
原创 NC 点击图片放大
package hrhi;import java.awt.Container;import java.awt.Dimension;import java.awt.Graphics;import java.awt.Toolkit;import javax.swing.ImageIcon;import javax.swing.JPanel;import nc.ui.pub.bean...
2019-12-27 16:29:07
235
原创 NC按钮增加风车加载页面
1、如果此节点已有按钮由此功能,找到他含有IProgressMonitor属性的父类,继承就行,但注意,model属性不要再提供getset方法,否则父类model属性会为空。2、自己写,通过TPAProgressUtil 获取带风车的幕布组件,而且要另起线程(比如SwingWorker),但一定要记得finally里关掉,if (monitor != null) {monitor.done...
2019-12-26 21:26:42
620
原创 NC自定义日志输出
1.自己写日志处理类package nc.ws.log;import nc.bs.logging.Log;public class DimissionLog {private String logid = “dimission”;private Log log =Log.getInstance(logid);//根据logid配置,在指定位置创建日志文档,用于日志输出public v...
2019-12-26 21:18:13
3030
3
原创 NC附件管理
5系列就是要注意对附件,使用jdk自带工具,进行压缩后保存(否则nc端打开附件会出现乱码) AttachmentVO attachmentVO = new AttachmentVO(); attachmentVO.setPk_corp(info.getString("pk_corp")); attachmentVO.setPk_user(info.getString("pk_user"))...
2019-12-26 21:15:14
2178
原创 NC 开发环境没事,运行环境异常
1、由于nc使用EJB的方式调用private包下的代码,private下的jar包和二开代码都有访问限制,所以运行环境client、public包下一定不能直接调用private包下类(但是private可以调用public),只能通过NCLocator反射调用public下的接口(直接反射调用也是不行的),一定要配置upm文件,并且要重新部署EJB,否则报类找不到异常。之所以开发环境没事,因为...
2019-12-26 21:13:11
810
原创 three.js 地质应用的简单介绍
three.js 地质应用的简单介绍因为项目需要,偶然之下接触了three.js这个插件,网上大多只是对基本的使用进行介绍,也没有有经验的同事朋友,所以为了完成项目要求,只得自己进行研究学习。由于本身有别的项目,所以只能利用晚上和周末的时间,如有不足和错误之处,还请大神批评指正。一、基本介绍三大基本要素:你首先要了解的是场景、相机和渲染器,网络上资料很多,这里我说下我的理解。场景相当于画布...
2019-12-14 20:36:44
1952
9
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人