Giter Site home page Giter Site logo

lemon's People

Contributors

celebrate-future avatar izerui avatar lilacs avatar vigosser avatar xuhuisheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lemon's Issues

收文

文件箱或者叫收文。
学习的资料发给大领导,大领导转发中领导,中领导转发自己手下,最后可能反向回来,也可能到手下就终止

xform支持选人组件

现在发文流程里的选人组件,不能通过界面设计,是写死的。
下一步要让设计器也支持选人组件。

初步的回退和撤销

1.0.0只实现了撤销已办和回退到前一个节点
回退到前一个节点,还没详细测试。

modeler支持选人控件

需求描述:
modeler的表单属性都定义在stencilset.json中,在文件中搜索usertaskassignment,可以找到用户分配的配置。
属性的配置为complex,在oryx.debug.js中注册了,如果遇到complex就会弹出一个window,在里边再进行配置。

需要实现的功能是:
1.定义新的type,比如UserPicker
2.在oryx.debug.js中判断type为UserPicker时,要弹出用户选择控件,处理代码位置大概在21431行,(可以搜索case ORYX.CONFIG.TYPE_COMPLEX:)
3.弹出控件后,通过ajax获取后台数据,需要支持选择用户和手工输入expression两种方式。
4.要根据对应行选择的类型来弹出对应的用户选择框,如果类型为candidateGroups就要限制用户只能选择group,如果类型为assignee或candidateUsers限制只能选择user。
5.最后选择用户之后,怎么回写到json里,还没有确认如何实现。

为移动开放接口

为移动端开放用于审批的接口
1.表单的数据
2.表弟的布局
3.按钮

减少war大小

把特别大的依赖jar去掉。

  • 用csv导出就够了,把core里的poi依赖删除
  • 考虑怎么删除ehcache(用map替换)
  • h2database能去掉吗(自己写更简单的db客户端)
  • jersey能去掉吗(里边竟然有guava)
  • quartz能去掉吗
  • 用springmvc替换struts

直接修改xml

如果一个流程定义已经发布了,提供一种方法,可以修改xml,并清空cache,重新发布。

请问怎样为流程新建一个表单?

Mr. Xu
新年好!今天仔细看了看Lemon项目,对徐先生的钦佩之情犹然而生,在如此短的空闲时间内,构建一个模块基本完整的OA系统,想必花了许多功夫和精力。
本人是OA方面的新手,想请教对于新建的流程,怎样设计基于XForm的新表单,我看到Lemon的表单是保存在数据库的form_template表内,但却不知道是在那个模块操作的?
而且数据库中的表单模板是以JSON格式保存的,请问这是用什么程序生产的?

系统管理-》权限管理-》查询,输入和不输入,均报错:

Boco-PC/192.168.1.103
Header....
Cookie=JSESSIONID=2vcorv04f9721c0mdtl3422m0
Host=localhost:8080
Accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Content-Length=22
Content-Type=application/x-www-form-urlencoded
Accept-Language=zh-CN,zh;q=0.8
Referer=http://localhost:8080/default/auth/user-connector.do
User-Agent=Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36
Connection=keep-alive
Cache-Control=max-age=0
Accept-Encoding=gzip,deflate,sdch
Origin=http://localhost:8080
Attribute....
javax.servlet.forward.request_uri=/default/auth/user-connector.do
scopePrefix=/default
javax.servlet.forward.context_path=
javax.servlet.error.status_code=500
javax.servlet.error.servlet_name=default
javax.servlet.error.exception_type=class org.springframework.jdbc.BadSqlGrammarException
__spring_security_session_mgmt_filter_applied=true
struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@16b093f
org.springframework.web.context.request.async.WebAsyncManager.WEB_ASYNC_MANAGER=org.springframework.web.context.request.async.WebAsyncManager@2c3910
javax.servlet.forward.servlet_path=/default/auth/user-connector.do
javax.servlet.error.message=Server Error
org.eclipse.jetty.server.error_page=/common/500.jsp
__cleanup_recursion_counter=0
struts.actionMapping=ActionMapping{name='user-connector', namespace='/auth', method='null', extension='do', params=null, result=null}
__spring_security_filterSecurityInterceptor_filterApplied=true
javax.servlet.error.exception=org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select id as id,username as username,status as statusdisplay_name as display_name,email as email,mobile as mobile,user_repo_id as user_repo_ref from USER_BASE limit 0,10]; nested exception is java.sql.SQLSyntaxErrorException: unexpected token: AS
javax.servlet.error.request_uri=/default/auth/user-connector.do
Parameter....
filter_LIKES_username=[]

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select id as id,username as username,status as statusdisplay_name as display_name,email as email,mobile as mobile,user_repo_id as user_repo_ref from USER_BASE limit 0,10]; nested exception is java.sql.SQLSyntaxErrorException: unexpected token: AS
at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:95)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:693)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:725)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:735)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:785)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:890)
at com.mossle.bridge.user.DatabaseUserConnector.pagedQuery(DatabaseUserConnector.java:111)
at com.mossle.bridge.user.UserConnectorWrapper.pagedQuery(UserConnectorWrapper.java:78)
at com.mossle.auth.web.auth.UserConnectorAction.list(UserConnectorAction.java:75)
at com.mossle.auth.web.auth.UserConnectorAction.execute(UserConnectorAction.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:450)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:289)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:252)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:249)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:139)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.MessageStoreInterceptor.intercept(MessageStoreInterceptor.java:197)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:562)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:73)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
at org.springframework.security.web.authentication.switchuser.SwitchUserFilter.doFilter(SwitchUserFilter.java:181)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at com.mossle.security.client.AutoLoginFilter.doFilter(AutoLoginFilter.java:38)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at com.mossle.bridge.scope.PrefixScopeFilter.doWithScope(PrefixScopeFilter.java:97)
at com.mossle.bridge.scope.PrefixScopeFilter.doFilter(PrefixScopeFilter.java:82)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at org.javasimon.javaee.SimonServletFilter.doFilterWithMonitoring(SimonServletFilter.java:219)
at org.javasimon.javaee.SimonServletFilter.doFilter(SimonServletFilter.java:209)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at com.mossle.core.i18n.AcceptLanguageHeaderFilter.doFilter(AcceptLanguageHeaderFilter.java:25)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
at com.mossle.core.servlet.ProxyFilter.doFilter(ProxyFilter.java:68)
at com.mossle.core.servlet.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:60)
at com.mossle.core.servlet.CompositeFilter.doFilter(CompositeFilter.java:37)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.sql.SQLSyntaxErrorException: unexpected token: AS
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.(Unknown Source)
at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)
at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:281)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:313)
at org.springframework.jdbc.core.JdbcTemplate$SimplePreparedStatementCreator.createPreparedStatement(JdbcTemplate.java:1559)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:636)
... 145 more
Caused by: org.hsqldb.HsqlException: unexpected token: AS
at org.hsqldb.error.Error.parseError(Unknown Source)
at org.hsqldb.ParserBase.unexpectedToken(Unknown Source)
at org.hsqldb.ParserDQL.XreadSelect(Unknown Source)
at org.hsqldb.ParserDQL.XreadQuerySpecification(Unknown Source)
at org.hsqldb.ParserDQL.XreadSimpleTable(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryPrimary(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryTerm(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryExpressionBody(Unknown Source)
at org.hsqldb.ParserDQL.XreadQueryExpression(Unknown Source)
at org.hsqldb.ParserDQL.compileCursorSpecification(Unknown Source)
at org.hsqldb.ParserCommand.compilePart(Unknown Source)
at org.hsqldb.ParserCommand.compileStatement(Unknown Source)
at org.hsqldb.Session.compileStatement(Unknown Source)
at org.hsqldb.StatementManager.compile(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 151 more

支持略过某些环节

1.因为业务的重叠,避免用户重复处理都属于自己负责的环节,一次审批,自动完成后续需要自己同意的任务
2.为了抽象通用流程,把多种业务放在一个流程里,要根据发起人的不同跳过一些环节。

添加我经手的流程

activiti-demo里有我参与的流程,Lemon OA里不知道为啥,把这个功能丢掉了。

整合modeler

先把modeler整合到Lemon OA里。
最好能实现选择人员和组织结构的功能。

协办

选择协办,任务发给另一个人,与代理不同的是,协办人办理完成后,任务返回原负责人。

流程分类支持权限控制

通用权限所有人都可以看到
部门级权限,只有本部门的才可以看到。
避免所有人看到太多自己用不到的流程

流程实例迁移

发布了一个新流程定义,把现有运行在老流程定义上的流程实例迁移到新流程定义上。
1.环节没变化的情况
2.环节增加的情况
3.环节减少的情况

登录页面乱码问题

eclipse和idea下,native2asc-plugin不起作用,要想个办法,让国际化文件能在ide下也能被正常处理

通用回退

1.撤销
撤销自己的已办任务
2.退回
回退到前一个环节
回退到发起人
回退到任意节点
3.分支的回退
4.会签的回退
5.子流程的回退

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.