Jelajahi Sumber

修改冲突

roo00 7 tahun lalu
induk
melakukan
4dc67422f1

+ 1 - 0
.gitignore

@@ -1,4 +1,5 @@
 /o2cloud/
+/.settings/
 .classpath
 .project
 /.settings/

+ 199 - 80
README.md

@@ -15,158 +15,277 @@ O2OA 是一套现代企业级的办公平台。有以下的特点\:
 
 5. 高可扩展性,用户通过简单的学习后,可以自定义配置门户、流程应用、内容管理应用
 
-更多的产品介绍、使用说明、下载、在线体验、API及讨论请移步至[http://o2oa.io/](http://www.o2oa.io/)
+更多的产品介绍、使用说明、下载、在线体验、API及讨论请移步至[http://www.o2oa.net/](http://www.o2oa.net/)
 
 ![o2oa](http://muliba.u.qiniudn.com/post/20180801-225850@2x.png)
 
 
 ## 官方网站\:
 项目主页 : https://www.oschina.net/p/o2oa
-下载地址 : http://www.o2oa.io
+下载地址 : http://www.o2oa.net
 
-## 最新版本\:
-## v4 build 11.02更新内容\:
-新增功能\:
+## v4 build 12.26\:
 
-1、[内容管理]增加设计元素可以拷贝粘贴的功能
+2018-12-26 新增功能:[表单设计]表单和页面增加导入功能,支持HTML、JSON格式。
 
-2、[内容管理]增加组合框、子表单等设计元素组件
+2018-12-26 新增功能:[表单设计]增加Word文件直接导入转换为表单
 
-3、[企业社区]增加导航浏览模式
+2018-12-26 新增功能:[表单设计]表单和页面增加“脚本”选项卡,可更方便的查找和编写脚本
 
-4、[服务管理]增加设计元素可以拷贝粘贴的功能
+2018-12-26 新增功能:[钉钉集成]钉钉接口从corpId变更为appKey
 
-更新优化\:
+2018-12-26 新增功能:[数据库支持]修正达梦数据库默认schema的问题。
 
-1、可以在配置中选择是否对office,pdf,text,image进行切词索引
+2018-12-26 新增功能:[数据结构]增加对Map类型数据存储的功能
 
-2、优化调整切词索引中对词性的判断
+2018-12-26 新增功能:[文件传输]文件格式增加对xdoc(application/vnd.openxmlformats-officedocument.wordprocessingml.document)文件的支持
 
-3、优化钉钉,企业微信,政务钉钉中由于反复获取accessToken导致的页面响应缓慢的问题
+2018-12-26 更新优化:[表单设计]优化流程表单展现资源载入性能
 
-BUG修复\:
+2018-12-26 更新优化:[数据库支持]默认打包中的达梦数据库改为7.6版本。
 
-1、[内容管理]视图的分类标题无法保存的问题。
+2018-12-26 更新优化:[WEB支持]修正了 http 请求中使用非限定头导致的chrome和firefox安全提示的问题。
 
-2、[内容管理]修复附件无法替换的问题
+2018-12-26 更新优化:[会议管理]会议管理修改启动审批流程的接口方式
 
-3、修正office格式引起的:NoSuchMethodException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPictureBaseImpl"。
- 
+2018-12-26 BUG修复:[数据视图]修正视图设计中,删除列偶尔会发生异常的问题。
 
-## v4 build 11.01更新内容\:
-新增功能\:
+2018-12-26 BUG修复:[文件传输]修正人员和组织设计元素中,某些属性无效的问题。
 
-1、企业微信,钉钉,政务钉钉组织同步,待办消息推送,通知消息群发,移动设备页面集成
+2018-12-26 BUG修复:[文件传输]修正对于poi版本不一致包应用的问题
 
-2、新增SqlServer支持,目前可以支持一下数据库:Oracle,DB2,MySQL,Postgresql,Informix,H2(内嵌),DM(达梦国产数据库),MS-SQLServer。
 
-3、OAuth2客户端功能优化,支持浙江CA,微信,QQ等其他OAuth认证服务。
 
-4、增加消息群发功能。
+## O2OA v4.12.16 发布\:
 
-5、ISO,AndroidApp端增加语音处理功能
+2018-12-16 新增功能:[流程平台]工作实例可以再次添加参阅人员
 
-6、ISO,AndroidApp端增加AI自动处理功能
+2018-12-16 新增功能:[流程平台]在x_processplatform_assemble_surface模块中增加读取工作日志的接口
 
-7、启用新域名o2oa.net
+2018-12-16 新增功能:[系统平台]接口调用增加对jaxws的支持,可以直接使用webService而不需要使用接口存根
 
-8、增加登录页面定制功能,现在可以通过门户定制登录页面了
+2018-12-16 更新优化:[表单设计]优化表单控件[图片],src属性支持相对路径
 
-更新优化\:
+2018-12-16 更新优化:[信息管理]文档列表服务增加根据创建者组织过滤条件。
 
-1、支持金山WPS
+2018-12-16 更新优化:[组织管理]角色信息添加角色说明信息描述
 
-2、统计中数据量导致的新能下降
+2018-12-16 更新优化:[组织管理]修改对于个人属性字符限制的问题.可以使用特殊字符如()<>
 
-3、群组(Group)支持组织成员,可以统一翻译成人员
+2018-12-16 更新优化:[系统平台]压缩精简资源文件,系统空间占用缩小300M
 
-4、增加个人的主身份设置,当不指名身份时可以自动取到主身份
+2018-12-16 更新优化:[系统平台]优化升级过程中由于载入过多文件,导致的大量内存消耗的问题
 
-5、用户可以自行绑定微信,通过微信扫码登录
+2018-12-16 Bug修:[流程平台]修复已经删除的流程实例前台页面会提示权限不足
 
-6、[信息管理]对信息文档查询效率源码级优化
+2018-12-16 Bug修:[系统平台]修复CentOS某些情况下验证码图形无法展示的问题
 
-BUG修复\:
+2018-12-16 Bug修:[云文件]修复云文件创建第3级目录报错的问题。
 
-1、会议管理字段超长导致的错误
+2018-12-16 Bug修:[信息管理]修复信息管理根据path更新数据的问题
 
-2、无标题流程消息提醒显示空字符串
+2018-12-16 Bug修:[信息管理]修复信息管理更新数据后缓存未及时更新的问题
 
-3、脚本编辑器在同时打开多个窗口情况无法正常保存
+2018-12-16 Bug修:[钉钉接入]修正钉钉接入时获取jsticket的错误
 
-4、修改组织同步触发机制,现在可以通过cron表达式定制运行时间。
 
-5、[信息管理]修复数据字典无法复制的问题以及分类显示的错误。
+## O2OA v4.11.28 发布\:
 
-6、Office控件代码修正
+2018-11-28 新增功能:[流程平台]增加用群组作为待办对象
 
+2018-11-28 新增功能:[流程平台]流程实例草稿删除功能。
 
-## v4 build 09.21更新内容\:
-新增功能\:
+2018-11-28 新增功能:[流程平台]流程中可以选择群组作为待办人,如果个人存在多个身份,那么取主身份进行处理。
 
-1、增加手写签批功能,支持在线手写签批,录音
+2018-11-28 新增功能:[数据平台]视图可以使用后台列公式了,这样可以对列值进行修正
 
-2、增加全文搜索功能。支持pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx内容的全文检索
+2018-11-28 更新优化:升级gson由2.8.1->2.8.5
 
-3、OAuth客户端功能,支持微信等其他OAuth认证服务
+2018-11-28 更新优化:优化根据ID查询实体对象的方法:emc.list( class, ids )
 
-4、[汇报管理]添加手工漏发检测功能。
-    
-更新优化\:
+2018-11-28 更新优化:[信息平台]优化了信息管理文档权限控制支持人员身份选择。
 
-1、更新统计展现功能,支持饼图,柱状图,折线图,支持行列转换
+2018-11-28 更新优化:[流程平台]优化了DataGrid组织数据存储格式。
 
-2、统计功能,可以源于不同试图的列进行合并统计
+2018-11-28 更新优化:[流程平台]优化了personfield和orgfield表单组件,增加了选择排除脚本
 
-3、优化日程管理提醒不及时的问题
+2018-11-28 更新优化:[流程平台]优化了门户和流程中,使用附件图片作为页面或表单元素的样式时的显示。
 
-BUG修复\:
+2018-11-28 Bug修复:修复了通过群组获取递归成员遗漏了群组中的组织成员导致的错误。
 
-1、流程重置处理人错误
+2018-11-28 Bug修复:修复了某些定时任务无法正常执行的问题
 
-2、[信息管理]修复数据型文档类型保存不正确的问题。
+2018-11-28 Bug修复:[信息平台]修复了门户页面没有设置默认主页时访问门户报错jsonError的问题。
 
-3、[脑图]修复某些情况下脑图无法创建的问题。   
+2018-11-28 Bug修复:[信息平台]修复了数据列表文档级别权限控制的问题。
 
- 
+2018-11-28 Bug修复:[信息平台]修复了信息管理员判断的问题。
+
+2018-11-28 Bug修复:[信息平台]修复了信息管理列表管理员数据展示的问题。
+
+2018-11-28 Bug修复:[数据平台]修复了xpath多级数据组织对象问题的修复。
+
+2018-11-28 Bug修复:[流程平台]修复了由于判断跳过相同处理人导致的并行节点处理人判断错误。
+
+2018-11-28 Bug修复:[流程平台]修复了表单格式刷刷新样式后,没有正确显示样式属性的错误。
+
+
+## O2OA V4 Build 11.13 发布\:
+
+2018-11-13 新增功能:[流程管理]自动清理未保有任何数据未流转的流程实例。
+
+2018-11-13 新增功能:[流程管理]增加可以通过设置组织来进行传阅。
+
+2018-11-13 新增功能:[流程管理]增加可以通过设置组织来进行参阅。
+
+2018-11-13 新增功能:[移动APP]移动客户端可以通过语音直接处理公文。
+
+2018-11-13 新增功能:[微信钉钉]群发微信,钉钉,企业钉钉消息功能。
+
+2018-11-13 更新优化:[用户管理]增加通过管理员重置用户密码的功能。
+
+2018-11-13 更新优化:[移动APP]支持语音流程意见。
+
+2018-11-13 更新优化:[移动APP]IM提示消息。
+
+2018-11-13 更新优化:[内容管理]信息文档权限支持身份选择。
+
+2018-11-13 Bug修复:[会议管理]修复无法选择会议申请流程的问题。
+
+2018-11-13 Bug修复:[信息管理]修复无法修改信息栏目名称的问题。
+
+2018-11-13 Bug修复:[表单组件]表单上组织控件的默认值不生效。
+
+
+## O2OA V4 Build 11.02 发布\:
+
+2018-11-02 新增功能:[内容管理]增加设计元素可以拷贝粘贴的功能。
+
+2018-11-02 新增功能:[内容管理]增加组合框、子表单等设计元素组件。
+
+2018-11-02 新增功能:[企业社区]增加导航浏览模式
+
+2018-11-02 新增功能:[服务管理]增加设计元素可以拷贝粘贴的功能。
+
+2018-11-02 更新优化:可以在配置中选择是否对office,pdf,text,image进行切词索引。
+
+2018-11-02 更新优化:2018-11-02 更新优化:优化调整切词索引中对词性的判断。
+
+2018-11-02 更新优化:优化钉钉,企业微信,政务钉钉中由于反复获取accessToken导致的页面响应缓慢的问题。
+
+2018-11-02 Bug修复:[内容管理]视图的分类标题无法保存的问题。
+
+2018-11-02 Bug修复:[内容管理]修复附件无法替换的问题。
+
+2018-11-02 Bug修复:修正office格式引起的:NoSuchMethodException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTPictureBaseImpl。
+
+2018-11-02 Bug修复:日志文件不会自动删除的问题。
+
+
+## O2OA V4 Build 11.01 发布\:
+
+2018-11-01 新增功能:企业微信,钉钉,政务钉钉组织同步,待办消息推送,通知消息群发,移动设备
+
+2018-11-01 新增功能:新增MS-SQLServer支持,目前可以支持一下数据库:Oracle,DB2,MySQL,Postgresql,Informix,H2(内嵌),DM(达梦国产数据库),MS-SQLServer。
+
+2018-11-01 新增功能:OAuth2客户端功能优化,支持CA,微信,QQ等其他OAuth认证服务。
+
+2018-11-01 新增功能:增加消息群发功能。
+
+2018-11-01 新增功能:ISO,AndroidApp端增加语音处理功能。
+
+2018-11-01 新增功能:ISO,AndroidApp端增加AI自动处理功能。
+
+2018-11-01 新增功能:启用新域名o2oa.net。
+
+2018-11-01 新增功能:增加登录页面定制功能,现在可以通过门户定制登录页面了。
+
+2018-11-01 新增功能:社区中增加导航模式。
+
+2018-11-01 新增功能:设计元素增加复制黏贴功能。
+
+2018-11-01 功能优化:支持金山WPS。
+
+2018-11-01 功能优化:统计中数据量导致的新能下降。
+
+2018-11-01 功能优化:群组(Group)支持组织成员,可以统一翻译成人员。
+
+2018-11-01 功能优化:增加个人的主身份设置,当不指名身份时可以自动取到主身份。
+
+2018-11-01 功能优化:用户可以自行绑定微信,通过微信扫码登录。
+
+2018-11-01 功能优化:[信息管理]对信息文档查询效率源码级优化。
+
+2018-11-01 Bug修复:会议管理字段超长导致的错误。
+
+2018-11-01 Bug修复:无标题流程消息提醒显示空字符串。
+
+2018-11-01 Bug修复:脚本编辑器在同时打开多个窗口情况无法正常保存。
+
+2018-11-01 Bug修复:修改组织同步触发机制,现在可以通过cron表达式定制运行时间。
+
+2018-11-01 Bug修复:[信息管理]修复数据字典无法复制的问题以及分类显示的错误。
+
+2018-11-01 Bug修复:Office控件集成代码修正。
+
+
+## O2OA V4 Build 09.21 发布\:
+
+2018-09-21 新增功能:增加手写签批功能,支持在线手写签批,录音。
+
+2018-09-21 新增功能:增加全文搜索功能。支持pdf,.doc,.docx,.ppt,.pptx,.xls,.xlsx内容的全文
+
+2018-09-21 新增功能:OAuth客户端功能,支持微信等其他OAuth认证服务。
+
+2018-09-21 新增功能:[汇报管理]添加手工漏发检测功能。
+
+2018-09-21 功能优化:更新统计展现功能,支持饼图,柱状图,折线图,支持行列转换。
+
+2018-09-21 功能优化:统计功能,可以源于不同试图的列进行合并统计。
+
+2018-09-21 功能优化:优化日程管理提醒不及时的问题。
+
+2018-09-21 Bug修复:流程重置处理人错误。
+
+2018-09-21 Bug修复:[信息管理]修复数据型文档类型保存不正确的问题。
+
+2018-09-21 Bug修复:[脑图]修复某些情况下脑图无法创建的问题。
+
+
+## O2OA V4 Build 09.04 发布\:
+
+2018-09-04 新增功能:电子签章支持。
+
+2018-09-04 新增功能:流程引擎增加定时节点。
+
+2018-09-04 新增功能:政务钉钉支持,可以同步政务钉钉的人员,组织。
 
-## v4 build 09.04更新内容\:
-新增功能\:
+2018-09-04 新增功能:增加行政区划组件。
 
-1、电子签章支持。
+2018-09-04 新增功能:[社区应用]添加调整主贴版块的服务
 
-2、流程引擎增加定时节点。
+2018-09-04 功能优化:视图统计代码优化,提升统计查询效率
 
-3、政务钉钉支持,可以同步政务钉钉的人员,组织。
+2018-09-04 功能优化:优化待办已办查询,TaskCompleted 增加 latest
 
-4、增加行政区划组件。
+2018-09-04 功能优化:流程引擎底层优化,修改PorcessPlatform实现的aeiObjects
 
-5、[社区应用]添加调整主贴版块的服务。
-    
-更新优化\:
+2018-09-04 Bug修复:应用导入导出错误。
 
-1、视图统计代码优化,提升统计查询效率。
+2018-09-04 Bug修复:[信息管理]修复CMS_Review自动同步更新的问题。
 
-2、优化待办已办查询,TaskCompleted 增加 latest。
+2018-09-04 Bug修复:2018-09-04 Bug修复:[信息管理]修复序列保存时为空的问题
 
-3、流程引擎底层优化,修改PorcessPlatform实现的aeiObjects。
+2018-09-04 Bug修复:修正移动端APP信息管理会把数据类的信息读取出来的问题
 
-BUG修复\:
 
-1、应用导入导出错误。
-    
-2、[信息管理]修复CMS_Review自动同步更新的问题
-    
-3、[信息管理]修复序列保存时为空的问题
-    
-4、修正移动端APP信息管理会把数据类的信息读取出来的问题
 
-## 授权协议
+## 授权协议\
 
 o2oa软件遵守双重协议,一个是AGPL授权协议,一个是商用授权协议。
 
 1、o2oa是开源软件,您可以修改源码及免费使用;这时需遵守AGPL协议。  
 
-2、当使用者使用o2oa软件提供收费服务,或者对o2oa进行分发、销售时需进行商业授权。具体请查看:[http://www.o2oa.io/product.html](http://www.o2oa.io/product.html)。  
+2、当使用者使用o2oa软件提供收费服务,或者对o2oa进行分发、销售时需进行商业授权。具体请查看:[http://www.o2oa.net/product.html](http://www.o2oa.net/product.html)。  
 
 3、使用者下载本软件即表示愿遵守此项协议。  

+ 6 - 5
o2server/pom.xml

@@ -389,13 +389,14 @@
 			<version>1.4.197</version>
 			<scope>provided</scope>
 		</dependency>
+		
+		<!-- https://mvnrepository.com/artifact/org.mnode.ical4j/ical4j -->
 		<dependency>
-			<groupId>net.fortuna.ical4j</groupId>
-			<artifactId>ical4j</artifactId>
-			<version>2.2.0</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/../commons/ext/ical4j-2.2.0.jar</systemPath>
+		    <groupId>org.mnode.ical4j</groupId>
+		    <artifactId>ical4j</artifactId>
+		    <version>2.2.0</version>
 		</dependency>
+
 		<dependency>
 			<groupId>CheckPasswordStrength</groupId>
 			<artifactId>CheckPasswordStrength</artifactId>

+ 0 - 48
o2server/x_calendar_core_entity/src/test/resources/test.json

@@ -943,22 +943,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailAppeal": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.cms.core.entity.element.View": 
 	[
 		{
@@ -1007,22 +991,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceAppealInfo": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.organization.core.entity.Custom": 
 	[
 		{
@@ -1295,22 +1263,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailBakup": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.processplatform.core.entity.element.Merge": 
 	[
 		{

+ 0 - 48
o2server/x_cms_core_entity/src/test/resources/test.json

@@ -943,22 +943,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailAppeal": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.cms.core.entity.element.View": 
 	[
 		{
@@ -1007,22 +991,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceAppealInfo": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.organization.core.entity.Custom": 
 	[
 		{
@@ -1295,22 +1263,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailBakup": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.processplatform.core.entity.element.Merge": 
 	[
 		{

+ 0 - 48
o2server/x_report_core_entity/src/test/resources/test.json

@@ -943,22 +943,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailAppeal": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.cms.core.entity.element.View": 
 	[
 		{
@@ -1007,22 +991,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceAppealInfo": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.organization.core.entity.Custom": 
 	[
 		{
@@ -1295,22 +1263,6 @@
 		}
 	],
 
-	"com.x.attendance.entity.AttendanceDetailBakup": 
-	[
-		{
-			"dataServer": "xd01",
-			"order": 1,
-			"toolLevel": "WARN",
-			"runtimeLevel": "WARN",
-			"dataCacheLevel": "WARN",
-			"metaDataLevel": "WARN",
-			"enhanceLevel": "WARN",
-			"queryLevel": "WARN",
-			"sqlLevel": "WARN",
-			"jdbcLevel": "WARN"
-		}
-	],
-
 	"com.x.processplatform.core.entity.element.Merge": 
 	[
 		{

+ 10 - 8
o2server/x_strategydeploy_assemble_control/src/main/java/com/x/strategydeploy/assemble/control/strategy/StrategyAction.java

@@ -17,6 +17,8 @@ import javax.ws.rs.container.Suspended;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 
+import org.apache.commons.lang3.StringUtils;
+
 import com.google.gson.JsonElement;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
@@ -567,26 +569,26 @@ public class StrategyAction extends StandardJaxrsAction {
 	@Path("relationlistbystrategyyearandmeasuresdept")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	public void relationlistbyStrategyyearAndMeasuresDept(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("Json信息") JsonElement jsonElement) {
+	public void relationlistbyStrategyyearAndMeasuresDept(@Suspended final AsyncResponse asyncResponse, 
+			@Context HttpServletRequest request, @JaxrsParameterDescribe("Json信息") JsonElement jsonElement) {
 		ActionResult<List<ActionListIncludeMeasuresByStrategyYearAndMeasuresDept.WoIncludeMeasures>> result = new ActionResult<>();
 		WiAppendMeasuresDept wrapIn = null;
-		EffectivePerson effectivePerson = this.effectivePerson(request);
 		boolean ispass = true;
-
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
+		
+		try {
 			wrapIn = this.convertToWrapIn(jsonElement, WiAppendMeasuresDept.class);
-			//result = new ActionListIncludeMeasures().execute(wrapIn);
 		} catch (Exception e) {
-			logger.warn("strategydeployextra iswork a error!");
+			logger.warn("strategydeployextra iswork a error! JSON:" +  jsonElement.toString());
 			logger.error(e);
 			result.error(e);
 		}
-		if (null == wrapIn.getStrategydeployyear() || wrapIn.getStrategydeployyear().isEmpty()) {
+		
+		if ( wrapIn == null || StringUtils.isEmpty(wrapIn.getStrategydeployyear())) {
 			Exception e = new Exception("strategydeployyear can not be blank");
 			result.error(e);
 			ispass = false;
 		}
+		
 		if (ispass) {
 			try {
 				result = new ActionListIncludeMeasuresByStrategyYearAndMeasuresDept().execute(wrapIn);

+ 8 - 8
o2server/x_strategydeploy_assemble_control/src/main/resources/META-INF/x_persistence.xml

@@ -3,38 +3,38 @@
 <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0">
   <persistence-unit name="com.x.strategydeploy.core.entity.Attachment" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.base.core.entity.StorageObject</class>
-    <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.strategydeploy.core.entity.Attachment</class>
+    <class>com.x.base.core.entity.StorageObject</class>
     <class>com.x.base.core.entity.JpaObject</class>
+    <class>com.x.base.core.entity.SliceJpaObject</class>
     <properties/>
   </persistence-unit>
   <persistence-unit name="com.x.strategydeploy.core.entity.KeyworkInfo" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+    <class>com.x.base.core.entity.JpaObject</class>
     <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.strategydeploy.core.entity.KeyworkInfo</class>
-    <class>com.x.base.core.entity.JpaObject</class>
     <properties/>
   </persistence-unit>
   <persistence-unit name="com.x.strategydeploy.core.entity.MeasuresInfo" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.base.core.entity.SliceJpaObject</class>
-    <class>com.x.base.core.entity.JpaObject</class>
     <class>com.x.strategydeploy.core.entity.MeasuresInfo</class>
+    <class>com.x.base.core.entity.JpaObject</class>
+    <class>com.x.base.core.entity.SliceJpaObject</class>
     <properties/>
   </persistence-unit>
   <persistence-unit name="com.x.strategydeploy.core.entity.StrategyConfigSys" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.base.core.entity.JpaObject</class>
     <class>com.x.strategydeploy.core.entity.StrategyConfigSys</class>
+    <class>com.x.base.core.entity.SliceJpaObject</class>
     <properties/>
   </persistence-unit>
   <persistence-unit name="com.x.strategydeploy.core.entity.StrategyDeploy" transaction-type="RESOURCE_LOCAL">
     <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    <class>com.x.strategydeploy.core.entity.StrategyDeploy</class>
-    <class>com.x.base.core.entity.SliceJpaObject</class>
     <class>com.x.base.core.entity.JpaObject</class>
+    <class>com.x.base.core.entity.SliceJpaObject</class>
+    <class>com.x.strategydeploy.core.entity.StrategyDeploy</class>
     <properties/>
   </persistence-unit>
 </persistence>

+ 13 - 6
o2server/x_strategydeploy_assemble_control/src/main/webapp/describe/sources/com/x/strategydeploy/assemble/control/strategy/StrategyAction.java

@@ -17,6 +17,8 @@ import javax.ws.rs.container.Suspended;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 
+import org.apache.commons.lang3.StringUtils;
+
 import com.google.gson.JsonElement;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
@@ -567,22 +569,27 @@ public class StrategyAction extends StandardJaxrsAction {
 	@Path("relationlistbystrategyyearandmeasuresdept")
 	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
 	@Consumes(MediaType.APPLICATION_JSON)
-	public void relationlistbyStrategyyearAndMeasuresDept(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("Json信息") JsonElement jsonElement) {
+	public void relationlistbyStrategyyearAndMeasuresDept(@Suspended final AsyncResponse asyncResponse, 
+			@Context HttpServletRequest request, @JaxrsParameterDescribe("Json信息") JsonElement jsonElement) {
 		ActionResult<List<ActionListIncludeMeasuresByStrategyYearAndMeasuresDept.WoIncludeMeasures>> result = new ActionResult<>();
 		WiAppendMeasuresDept wrapIn = null;
-		EffectivePerson effectivePerson = this.effectivePerson(request);
 		boolean ispass = true;
 
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
-			Business business = new Business(emc);
+		if( jsonElement == null ) {
+			System.out.println(">>>>>>>>>>>>>>>>>>>>jsonElement is null !!!" );
+		}else {
+			System.out.println(">>>>>>>>>>>>>>>>>>>>jsonElement:" + jsonElement.toString());
+		}
+		
+		try {
 			wrapIn = this.convertToWrapIn(jsonElement, WiAppendMeasuresDept.class);
-			//result = new ActionListIncludeMeasures().execute(wrapIn);
 		} catch (Exception e) {
 			logger.warn("strategydeployextra iswork a error!");
 			logger.error(e);
 			result.error(e);
 		}
-		if (null == wrapIn.getStrategydeployyear() || wrapIn.getStrategydeployyear().isEmpty()) {
+		
+		if ( wrapIn == null || StringUtils.isEmpty(wrapIn.getStrategydeployyear())) {
 			Exception e = new Exception("strategydeployyear can not be blank");
 			result.error(e);
 			ispass = false;