first commit
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
/bin
|
||||
/logs
|
||||
@@ -0,0 +1,191 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction, and
|
||||
distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright
|
||||
owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all other entities
|
||||
that control, are controlled by, or are under common control with that entity.
|
||||
For the purposes of this definition, "control" means (i) the power, direct or
|
||||
indirect, to cause the direction or management of such entity, whether by
|
||||
contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising
|
||||
permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications, including
|
||||
but not limited to software source code, documentation source, and configuration
|
||||
files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical transformation or
|
||||
translation of a Source form, including but not limited to compiled object code,
|
||||
generated documentation, and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or Object form, made
|
||||
available under the License, as indicated by a copyright notice that is included
|
||||
in or attached to the work (an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object form, that
|
||||
is based on (or derived from) the Work and for which the editorial revisions,
|
||||
annotations, elaborations, or other modifications represent, as a whole, an
|
||||
original work of authorship. For the purposes of this License, Derivative Works
|
||||
shall not include works that remain separable from, or merely link (or bind by
|
||||
name) to the interfaces of, the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including the original version
|
||||
of the Work and any modifications or additions to that Work or Derivative Works
|
||||
thereof, that is intentionally submitted to Licensor for inclusion in the Work
|
||||
by the copyright owner or by an individual or Legal Entity authorized to submit
|
||||
on behalf of the copyright owner. For the purposes of this definition,
|
||||
"submitted" means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems, and
|
||||
issue tracking systems that are managed by, or on behalf of, the Licensor for
|
||||
the purpose of discussing and improving the Work, but excluding communication
|
||||
that is conspicuously marked or otherwise designated in writing by the copyright
|
||||
owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
|
||||
of whom a Contribution has been received by Licensor and subsequently
|
||||
incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License.
|
||||
|
||||
Subject to the terms and conditions of this License, each Contributor hereby
|
||||
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
||||
irrevocable copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the Work and such
|
||||
Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License.
|
||||
|
||||
Subject to the terms and conditions of this License, each Contributor hereby
|
||||
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
|
||||
irrevocable (except as stated in this section) patent license to make, have
|
||||
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
|
||||
such license applies only to those patent claims licensable by such Contributor
|
||||
that are necessarily infringed by their Contribution(s) alone or by combination
|
||||
of their Contribution(s) with the Work to which such Contribution(s) was
|
||||
submitted. If You institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
|
||||
Contribution incorporated within the Work constitutes direct or contributory
|
||||
patent infringement, then any patent licenses granted to You under this License
|
||||
for that Work shall terminate as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution.
|
||||
|
||||
You may reproduce and distribute copies of the Work or Derivative Works thereof
|
||||
in any medium, with or without modifications, and in Source or Object form,
|
||||
provided that You meet the following conditions:
|
||||
|
||||
You must give any other recipients of the Work or Derivative Works a copy of
|
||||
this License; and
|
||||
You must cause any modified files to carry prominent notices stating that You
|
||||
changed the files; and
|
||||
You must retain, in the Source form of any Derivative Works that You distribute,
|
||||
all copyright, patent, trademark, and attribution notices from the Source form
|
||||
of the Work, excluding those notices that do not pertain to any part of the
|
||||
Derivative Works; and
|
||||
If the Work includes a "NOTICE" text file as part of its distribution, then any
|
||||
Derivative Works that You distribute must include a readable copy of the
|
||||
attribution notices contained within such NOTICE file, excluding those notices
|
||||
that do not pertain to any part of the Derivative Works, in at least one of the
|
||||
following places: within a NOTICE text file distributed as part of the
|
||||
Derivative Works; within the Source form or documentation, if provided along
|
||||
with the Derivative Works; or, within a display generated by the Derivative
|
||||
Works, if and wherever such third-party notices normally appear. The contents of
|
||||
the NOTICE file are for informational purposes only and do not modify the
|
||||
License. You may add Your own attribution notices within Derivative Works that
|
||||
You distribute, alongside or as an addendum to the NOTICE text from the Work,
|
||||
provided that such additional attribution notices cannot be construed as
|
||||
modifying the License.
|
||||
You may add Your own copyright statement to Your modifications and may provide
|
||||
additional or different license terms and conditions for use, reproduction, or
|
||||
distribution of Your modifications, or for any such Derivative Works as a whole,
|
||||
provided Your use, reproduction, and distribution of the Work otherwise complies
|
||||
with the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions.
|
||||
|
||||
Unless You explicitly state otherwise, any Contribution intentionally submitted
|
||||
for inclusion in the Work by You to the Licensor shall be under the terms and
|
||||
conditions of this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify the terms of
|
||||
any separate license agreement you may have executed with Licensor regarding
|
||||
such Contributions.
|
||||
|
||||
6. Trademarks.
|
||||
|
||||
This License does not grant permission to use the trade names, trademarks,
|
||||
service marks, or product names of the Licensor, except as required for
|
||||
reasonable and customary use in describing the origin of the Work and
|
||||
reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty.
|
||||
|
||||
Unless required by applicable law or agreed to in writing, Licensor provides the
|
||||
Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
|
||||
including, without limitation, any warranties or conditions of TITLE,
|
||||
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
|
||||
solely responsible for determining the appropriateness of using or
|
||||
redistributing the Work and assume any risks associated with Your exercise of
|
||||
permissions under this License.
|
||||
|
||||
8. Limitation of Liability.
|
||||
|
||||
In no event and under no legal theory, whether in tort (including negligence),
|
||||
contract, or otherwise, unless required by applicable law (such as deliberate
|
||||
and grossly negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special, incidental,
|
||||
or consequential damages of any character arising as a result of this License or
|
||||
out of the use or inability to use the Work (including but not limited to
|
||||
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
|
||||
any and all other commercial damages or losses), even if such Contributor has
|
||||
been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability.
|
||||
|
||||
While redistributing the Work or Derivative Works thereof, You may choose to
|
||||
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
|
||||
other liability obligations and/or rights consistent with this License. However,
|
||||
in accepting such obligations, You may act only on Your own behalf and on Your
|
||||
sole responsibility, not on behalf of any other Contributor, and only if You
|
||||
agree to indemnify, defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason of your
|
||||
accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work
|
||||
|
||||
To apply the Apache License to your work, attach the following boilerplate
|
||||
notice, with the fields enclosed by brackets "{}" replaced with your own
|
||||
identifying information. (Don't include the brackets!) The text should be
|
||||
enclosed in the appropriate comment syntax for the file format. We also
|
||||
recommend that a file or class name and description of purpose be included on
|
||||
the same "printed page" as the copyright notice for easier identification within
|
||||
third-party archives.
|
||||
|
||||
Copyright 2018 dengcj
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,90 @@
|
||||
### zhiqim_plan简介
|
||||
> zhiqim_plan是知启蒙计划组件,是开发过程管理的一部分。
|
||||
|
||||
### zhiqim_plan的特点和优势
|
||||
> 1、全程自主研发,无外部依赖包,限制少;
|
||||
>
|
||||
> 2、项目计划总结可以让项目规划更加清晰,增强团队的执行力。
|
||||
>
|
||||
> 3、个人的计划总结有利于总结分析个人工作的进程,以及工作中的不足;
|
||||
|
||||
|
||||
### zhiqim_plan项目依赖表格展示
|
||||
> <table style="border-collapse:collapse; border:1px solid #333; height:400px; width:550px">
|
||||
> <tr><td colspan="3" align="center">依赖关系表格展示</td></tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333; background:#f5f5f5" rowspan="5" align="center">核心组件</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">zhiqim_kernel</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">知启蒙微内核</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333;">zhiqim_httpd</td>
|
||||
> <td style="border:1px solid #333;">知启蒙WEB容器</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">zhiqim_orm</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">知启蒙数据库映射</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333;">zhiqim_zml</td>
|
||||
> <td style="border:1px solid #333;">知启蒙语言标识</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333; background:#f5f5f5">
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">zhiqim_ui</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">知启蒙前端框架</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333;" rowspan="3" align="center";>业务组件</td>
|
||||
> <td style="border:1px solid #333;">zhiqim_manager</td>
|
||||
> <td style="border:1px solid #333;">知启蒙后台管理组件</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333; background:#f5f5f5">
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">zhiqim_project</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">知启蒙项目组件</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333;">zhiqim_calendar</td>
|
||||
> <td style="border:1px solid #333;">知启蒙日历组件</td>
|
||||
> </tr>
|
||||
> <tr style="border:1px solid #333;">
|
||||
> <td style="border:1px solid #333; background:#f5f5f5" align="center" ;>数据库组件</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">zhiqim_SQLite3.8.6</td>
|
||||
> <td style="border:1px solid #333; background:#f5f5f5">知启蒙文件数据库组件</td>
|
||||
> </tr>
|
||||
> </table>
|
||||
|
||||
### zhiqim_plan项目依赖文字解释
|
||||
> **依赖一**:
|
||||
>
|
||||
> ZhiqimDK:包括zhiqim_kernel、zhiqim_orm、zhiqim_zml、zhiqim_httpd四部分。
|
||||
> - zhiqim_kernel:是Zhiqim Development Kit的核心,负责工程的生命周期管理:包括工程开发和发布的目录结构管理、统一的配置规约、单多例服务接口定义、服务启动运行更新和销毁管理。并提供基础开发工具:包括工具类、日志类、线程池、JSON/XML编解析、HTTP客户端、时钟任务定时器等。
|
||||
> - zhiqim_orm:是Zhiqim Development Kit面向数据库开发的多例服务,包括ZSQL规范和三大映射关系(表映射、字段映射和指令映射)。
|
||||
> - zhiqim_zml:是实现ZML规范的引擎系统。支持两种ZML加载方式(按文件目录和按类路径)、能够在ZML文件改动后立即发现并在触发时重新加载、 并提供详细的“表达式合并运算优先级”、“变量多维作用域”和“无障碍访问Java代码”,以及设置上下文作用域的配置模板、对模板进行缓存等特性。
|
||||
> - zhiqim_httpd:是Zhiqim Development Kit面向WEB开发的多例服务,提供更简洁配置、积木式组件模块和天然的模型模板设计。
|
||||
>
|
||||
> **依赖二**:
|
||||
>
|
||||
> -zhiqim_ui:是一套集成Javascript库、Css库、Font库、常用ico图标和Flash控件等,并在其上开发的大量UI组件组成的前端开发套件。
|
||||
>
|
||||
> **依赖三** :
|
||||
> - zhiqim_manager:是知启蒙团队自主研发的后台管理台,可独立使用,也可作为组件与其他组件配合使用,使用范围非常广。
|
||||
> - zhiqim_project:即知启蒙项目组件,包含了项目信息管理,项目成员管理,项目动态以及项目计划总结等汇报设置。
|
||||
> - zhiqim_calendar:即知启蒙日历组件,包含了工作日,休息日切换管理等功能。
|
||||
>
|
||||
> **依赖四**:
|
||||
>
|
||||
> -MySQL:数据库。
|
||||
|
||||
### zhiqim_plan的功能展示
|
||||
1、项目计划的功能展示
|
||||

|
||||
|
||||
2、个人计划的功能展示
|
||||

|
||||
|
||||
|
||||
### 知启蒙技术交流
|
||||
|
||||
> QQ群:加入交流群,请点击[【458171582】](https://jq.qq.com/?_wv=1027&k=5DWlB3b)
|
||||
>
|
||||
> 欲知晓更多详情,[请戳这里>>](https://www.zhiqim.com/index.htm)
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="resource" desc="WEB容器服务配置">
|
||||
<item key="context" value="resource.root" type="protected" desc="HTTP服务下包括的上下文环境,多个用逗号隔开" />
|
||||
<item key="scheme" value="HTTP" type="protected" desc="HTTP或HTTPS协议" />
|
||||
<item key="port" value="80" type="protected" desc="监听端口" />
|
||||
<item key="poMinSize" value="5" type="protected" desc="HTTP处理线程池最小值" />
|
||||
<item key="poMaxSize" value="10" type="protected" desc="HTTP处理线程池最大值" />
|
||||
</group>
|
||||
|
||||
<group id="resource.root" desc="Web界面">
|
||||
<item key="path" value="/" type="protected" desc="上下文环境路径,必填" />
|
||||
<item key="resourceType" value="directory" type="protected" desc="资源目录类型classpath|directory,无资源时可不配置" />
|
||||
<item key="resourcePath" value="./resource" type="protected" desc="资源目录,无资源时可不配置" />
|
||||
<item key="welcomeUrl" value="/index.htm" type="protected" desc="欢迎页,无资源时可不配置,/开头" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="logging" desc="信息日志配置">
|
||||
<item key="logging.info" value="debug-info" type="protected" desc="信息日志配置" />
|
||||
<item key="logging.error" value="error-fatal" type="protected" desc="错误日志配置" />
|
||||
<item key="logging.database" value="debug-fatal" type="protected" desc="数据库日志配置" />
|
||||
</group>
|
||||
|
||||
<group id="logging.info" desc="信息日志配置">
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/info.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
<group id="logging.error" desc="错误日志配置">
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/error.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
<group id="logging.database" desc="数据库日志配置">
|
||||
<item key="must.name" value="database.log" type="protected" desc="指定日志名称,为空表示不指定" />
|
||||
<item key="console.out" value="true" type="protected" desc="是否输出到控制台" />
|
||||
<item key="file.out" value="true" type="protected" desc="是否输出到文件" />
|
||||
<item key="file.path" value="./logs/database/database.log" type="protected" desc="输出到文件路径" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONFIG PUBLIC "-//ZHIQIM //DTD Zhiqim-Config Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_config_1_5_0.dtd">
|
||||
<zhiqim-config>
|
||||
|
||||
<group id="boot" desc="系统启动配置">
|
||||
<item key="name" value="知启蒙计划组件" type="protected" desc="系统名称" />
|
||||
<item key="version" value="1.0" type="protected" desc="系统版本" />
|
||||
<item key="port" value="60066" type="protected" desc="系统监听端口,用于启动监听和命令关闭工程" />
|
||||
<item key="process" value="zhiqim" type="protected" desc="使用的进程名,MAC系统下该配置无效" />
|
||||
<item key="args" value="-server -Xms64m -Xmx512m" type="protected" desc="JVM参数" />
|
||||
</group>
|
||||
|
||||
<group id="config" desc="系统其他配置文件,./开头表示工程相对路径下,绝对路径使用/或d:/等(Windows也使用顺斜杠作路径)">
|
||||
<item key="logging" value="./conf/logging.xml" type="protected" desc="日志配置文件" />
|
||||
<item key="httpd" value="./conf/httpd.xml" type="protected" desc="WEB配置" />
|
||||
</group>
|
||||
|
||||
<group id="service" desc="系统服务配置,有依赖时注意顺序,系统按顺序加载,按倒序销毁">
|
||||
<item key="logging" value="org.zhiqim.kernel.logging.LogServer" type="protected" desc="日志服务" />
|
||||
<item key="cutter" value="org.zhiqim.kernel.logging.LogLinuxNohupCutter" type="protected" desc="日志Linux切割服务" />
|
||||
<item key="orm" value="org.zhiqim.orm.ORMServer" type="protected" desc="主数据库服务" />
|
||||
<item key="resource" value="org.zhiqim.httpd.HttpServer" type="protected" desc="web服务" />
|
||||
</group>
|
||||
|
||||
<group id="orm" desc="MYSQL数据库连接方式">
|
||||
<item key="dbType" value="mysql" type="protected" desc="数据库类型,支持mysql|oracle|mssql|postgresql|sqlite|hsql" />
|
||||
<item key="driver" value="org.zhiqim.mysql5_0_8.jdbc.Driver" type="protected" desc="数据库驱动" />
|
||||
<item key="url" value="jdbc:mysql://127.0.0.1:3306/zhiqim_plan?useUnicode=true&characterEncoding=UTF-8" type="protected" desc="数据库Url" />
|
||||
<item key="user" value="root" type="protected" desc="数据库用户名" />
|
||||
<item key="pass" value="dxh@123" type="protected" desc="数据库密码" />
|
||||
<item key="minPoolSize" value="2" type="protected" desc="线程池最小值" />
|
||||
<item key="maxPoolSize" value="10" type="protected" desc="线程池最大值" />
|
||||
<item key="maxKeepTime" value="7001" type="protected" desc="每连接最大保持时长,大于该值将重建连接,单位秒" />
|
||||
</group>
|
||||
|
||||
</zhiqim-config>
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Fadfox">
|
||||
<section name="ExportComponent">
|
||||
<item value="resource-org.zhiqim.plan.resource" key="dirToJars"/>
|
||||
<item value="logs" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="" key="excludeResourceDirs"/>
|
||||
<item value="true" key="isExportAndZipProject"/>
|
||||
<item value="true" key="isIncludeJavaFile"/>
|
||||
<item value="zhiqim_plan" key="jarName"/>
|
||||
<item value="D:/_gitcan/ZhiqimPM/ZhiqimPlan/document/metainfo" key="metaInfoPath"/>
|
||||
<item value="zhiqim_planV1.5.0" key="projectSourceName"/>
|
||||
<item value="D:/_github/zhiqim-com/download/ZhiqimPM/V1.5.0" key="releasePath"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Fadfox">
|
||||
<section name="ExportProject">
|
||||
<item value="" key="excludeDirs"/>
|
||||
<item value="" key="excludePackages"/>
|
||||
<item value="git" key="excludeResourceDirs"/>
|
||||
<item value="true" key="isDivided"/>
|
||||
<item value="true" key="isExportAndZipProject"/>
|
||||
<item value="true" key="isGenExe"/>
|
||||
<item value="true" key="isGenZip"/>
|
||||
<item value="true" key="isIncludeJavaFile"/>
|
||||
<item value="fadfox_plan" key="jarName"/>
|
||||
<item value="" key="metaInfoPath"/>
|
||||
<item value="" key="projectConfPath"/>
|
||||
<item value="fadfox_plan_src" key="projectSourceName"/>
|
||||
<item value="fadfox_plan1.0" key="releaseName"/>
|
||||
<item value="D:/" key="releasePath"/>
|
||||
</section>
|
||||
</section>
|
||||
@@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zhiqim-dbo>
|
||||
|
||||
<config version="1.2.0" dbType="mysql" folder="../src" initDataWidth="820">
|
||||
<![CDATA[
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
]]>
|
||||
</config>
|
||||
|
||||
<package name="org.zhiqim.manager.dbo" type="false" desc="项目管理表">
|
||||
|
||||
<table name="ZMR_OPERATOR" desc="操作员表" key="OPERATOR_CODE" type="InnoDB">
|
||||
<field column="OPERATOR_CODE" type="string" length="32" notNull="true" desc="操作员编码"/>
|
||||
<field column="OPERATOR_PASS" type="string" length="64,char" notNull="true" desc="操作员密码"/>
|
||||
<field column="OPERATOR_PASS_SALT" type="string" length="64,char" notNull="true" desc="操作员密码盐值"/>
|
||||
<field column="OPERATOR_STATUS" type="byte" length="" notNull="true" desc="操作员状态:0正常,1停用"/>
|
||||
<field column="OPERATOR_TYPE" type="byte" length="" notNull="true" desc="操作员类型:0:超级管理员,1:管理员,2:操作员"/>
|
||||
<field column="OPERATOR_NAME" type="string" length="64" notNull="true" desc="操作员名称"/>
|
||||
<field column="OPERATOR_AVATAR" type="long" length="" notNull="false" desc="操作员头像编号"/>
|
||||
<field column="OPERATOR_DEPT" type="string" length="850" notNull="false" desc="操作员所属部门,多个用逗号隔开,当前支持关联50个部门"/>
|
||||
<field column="OPERATOR_DEPT_ALL" type="string" length="1700" notNull="false" desc="操作员对应的所有部门,多个用逗号隔开,当前支持关联100个部门"/>
|
||||
<field column="OPERATOR_MOBILE" type="string" length="21" notNull="false" desc="操作员手机号"/>
|
||||
<field column="OPERATOR_EMAIL" type="string" length="64" notNull="false" desc="操作员邮箱"/>
|
||||
<field column="OPERATOR_SKIN" type="string" length="20" notNull="false" desc="操作员主题肤色"/>
|
||||
<field column="OPERATOR_IP" type="string" length="18" notNull="false" desc="操作员工作IP"/>
|
||||
<field column="OPERATOR_URL" type="string" length="50" notNull="false" desc="操作员登录后首页"/>
|
||||
<field column="OPERATOR_PARAM" type="string" length="1024" notNull="false" desc="操作员参数,用于项目自定义设置"/>
|
||||
<field column="OPERATOR_CREATED" type="string" length="19,char" notNull="true" desc="操作员创建时间,格式:yyyy-MM-dd hh:mm:ss"/>
|
||||
<field column="OPERATOR_MODIFIED" type="string" length="19,char" notNull="true" desc="操作员修改时间,格式:yyyy-MM-dd hh:mm:ss"/>
|
||||
</table>
|
||||
|
||||
</package>
|
||||
<package name="org.zhiqim.project.dbo" type="false" desc="项目管理表">
|
||||
|
||||
<table name="ZPM_PROJECT" desc="项目工程表" key="PROJECT_ID" type="InnoDB">
|
||||
<field column="PROJECT_ID" type="long" length="" notNull="true" desc="项目编号"/>
|
||||
<field column="PROJECT_NAME" type="string" length="64" notNull="true" desc="项目名称"/>
|
||||
<field column="PROJECT_STATUS" type="byte" length="" notNull="true" desc="项目状态,0:正常,1:停用"/>
|
||||
<field column="PROJECT_SEQ" type="int" length="" notNull="true" desc="项目排序数"/>
|
||||
<field column="PROJECT_MANAGER" type="string" length="32" notNull="true" desc="项目组长"/>
|
||||
<field column="PROJECT_BEGIN_DATE" type="string" length="10,char" notNull="true" desc="项目开始时间"/>
|
||||
<field column="PROJECT_END_DATE" type="string" length="10,char" notNull="true" desc="项目结束时间"/>
|
||||
<field column="PROJECT_CREATED" type="string" length="19,char" notNull="true" desc="项目创建时间"/>
|
||||
<field column="PROJECT_MODIFIED" type="string" length="19,char" notNull="true" desc="项目修改时间"/>
|
||||
<field column="PROJECT_DESC" type="string" length="512" notNull="false" desc="项目描述"/>
|
||||
</table>
|
||||
|
||||
</package>
|
||||
<package name="org.zhiqim.plan.dbo" type="true" desc="系统表">
|
||||
|
||||
<table name="ZPM_PROJECT_PLAN" desc="项目计划表" key="PLAN_ID" type="InnoDB">
|
||||
<field column="PROJECT_ID" type="long" length="" notNull="true" desc="项目编号"/>
|
||||
<field column="PLAN_ID" type="long" length="" notNull="true" desc="计划编号"/>
|
||||
<field column="PLAN_DATE" type="int" length="" notNull="true" desc="计划日期,格式yyyyMMdd,如20171101"/>
|
||||
<field column="PLAN_STATUS" type="byte" length="" notNull="true" desc="计划状态,0:正常,1:新增,2:延误,3:取消"/>
|
||||
<field column="PLAN_SEQ" type="byte" length="" notNull="true" desc="计划序号,从1开始,周内排序"/>
|
||||
<field column="PLAN_PROGRESS" type="byte" length="" notNull="true" desc="计划进度,0-100"/>
|
||||
<field column="PLAN_MODIFIED" type="datetime" length="" notNull="true" desc="计划更新时间"/>
|
||||
<field column="PLAN_CONTENT" type="string" length="128" notNull="false" desc="计划内容"/>
|
||||
<field column="PLAN_MANAGER" type="string" length="32" notNull="false" desc="计划负责人,多个用逗号隔开"/>
|
||||
<field column="PLAN_BEGIN_DATE" type="string" length="10,char" notNull="false" desc="计划开始日期"/>
|
||||
<field column="PLAN_END_DATE" type="string" length="10,char" notNull="false" desc="计划结束日期"/>
|
||||
<field column="ACTUAL_BEGIN_DATE" type="string" length="10,char" notNull="false" desc="实际开始日期"/>
|
||||
<field column="ACTUAL_END_DATE" type="string" length="10,char" notNull="false" desc="实际结束日期"/>
|
||||
</table>
|
||||
|
||||
<table name="ZPM_PROJECT_SUMMARY" desc="项目总结表" key="SUMMARY_ID" type="InnoDB">
|
||||
<field column="PROJECT_ID" type="long" length="" notNull="true" desc="项目编号"/>
|
||||
<field column="SUMMARY_ID" type="long" length="" notNull="true" desc="总结编号"/>
|
||||
<field column="SUMMARY_TYPE" type="byte" length="" notNull="true" desc="总结类型,1:周目标,2:周总结,3:月总结"/>
|
||||
<field column="SUMMARY_DATE" type="int" length="" notNull="true" desc="总结日期,格式yyyyMMdd,如20171101"/>
|
||||
<field column="SUMMARY_MODIFIED" type="datetime" length="" notNull="true" desc="总结最后更新时间"/>
|
||||
<field column="SUMMARY_CONTENT" type="string" length="1000" notNull="false" desc="总结内容,最长1000字"/>
|
||||
</table>
|
||||
|
||||
<table name="ZPM_PERSON_PLAN" desc="个人计划表" key="PLAN_ID" type="InnoDB">
|
||||
<field column="OPERATOR_CODE" type="string" length="32" notNull="true" desc="操作员编号"/>
|
||||
<field column="PLAN_ID" type="long" length="" notNull="true" desc="计划编号"/>
|
||||
<field column="PLAN_DATE" type="int" length="" notNull="true" desc="计划日期,格式yyyyMMdd,如20171101"/>
|
||||
<field column="PLAN_STATUS" type="byte" length="" notNull="true" desc="计划状态,0:正常,1:新增,2:延误,3:取消"/>
|
||||
<field column="PLAN_SEQ" type="byte" length="" notNull="true" desc="计划序号,从1开始,周内排序"/>
|
||||
<field column="PLAN_MODIFIED" type="datetime" length="" notNull="true" desc="计划最后更新时间"/>
|
||||
<field column="PLAN_CONTENT" type="string" length="256" notNull="false" desc="计划内容"/>
|
||||
</table>
|
||||
|
||||
<table name="ZPM_PERSON_SUMMARY" desc="个人总结表" key="SUMMARY_ID" type="InnoDB">
|
||||
<field column="OPERATOR_CODE" type="string" length="32" notNull="true" desc="操作员编号"/>
|
||||
<field column="SUMMARY_ID" type="long" length="" notNull="true" desc="总结编号"/>
|
||||
<field column="SUMMARY_TYPE" type="byte" length="" notNull="true" desc="总结类型,1:日总结,2:周总结,3:月总结"/>
|
||||
<field column="SUMMARY_DATE" type="int" length="" notNull="true" desc="总结日期,格式yyyyMMdd,如20171101"/>
|
||||
<field column="SUMMARY_MODIFIED" type="datetime" length="" notNull="true" desc="总结最后更新时间"/>
|
||||
<field column="SUMMARY_CONTENT" type="string" length="1000" notNull="false" desc="总结内容,最长1000字"/>
|
||||
</table>
|
||||
|
||||
</package>
|
||||
|
||||
</zhiqim-dbo>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<zhiqim-menu>
|
||||
|
||||
<menu parent="ROOT" code="MENU" name="系统功能根菜单" abbr="" level="0" status="0" type="0" icon="" url="" desc=""/>
|
||||
<menu parent="MENU" code="MENU_010" name="系统配置" abbr="系统" level="1" status="0" type="1" icon="z-config" url="" desc=""/>
|
||||
<menu parent="MENU_010" code="MENU_010_010" name="系统基础设置" abbr="" level="2" status="0" type="1" icon="z-setting" url="/${zhiqim_manager}/menu.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_010" name="增加系统菜单" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/menuAdd.htm,/${zhiqim_manager}/menuInsert.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_020" name="修改系统菜单" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/menuModify.htm,/${zhiqim_manager}/menuUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_030" name="删除系统菜单" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/menuDelete.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_100" name="系统头像管理" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/avatar.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_110" name="增加系统头像" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/avatarAdd.htm,/${zhiqim_manager}/avatarInsert.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_120" name="修改系统头像" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/avatarModify.htm,/${zhiqim_manager}/avatarUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_130" name="删除系统头像" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/avatarDelete.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_200" name="系统配置管理" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/config.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_300" name="系统参数设置" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/param.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_310" name="首页主题设置" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/themeIndex.htm" desc=""/>
|
||||
<menu parent="MENU_010_010" code="MENU_010_010_320" name="主页主题设置" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/themeMain.htm" desc=""/>
|
||||
<menu parent="MENU_010" code="MENU_010_050" name="部门角色管理" abbr="" level="2" status="0" type="1" icon="z-apps" url="/${zhiqim_manager}/dept.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_010" name="增加部门" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/deptAdd.htm,/${zhiqim_manager}/deptInsert.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_020" name="修改部门" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/deptModify.htm,/${zhiqim_manager}/deptUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_030" name="删除部门" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/deptDelete.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_040" name="部门成员" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/deptOperator.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_050" name="部门权限" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/deptRule.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_100" name="角色管理" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/role.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_110" name="增加角色" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/roleAdd.htm,/${zhiqim_manager}/roleInsert.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_120" name="修改角色" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/roleModify.htm,/${zhiqim_manager}/roleUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_130" name="删除角色" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/roleDelete.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_140" name="角色成员" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/roleOperator.htm" desc=""/>
|
||||
<menu parent="MENU_010_050" code="MENU_010_050_150" name="角色权限" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/roleRule.htm" desc=""/>
|
||||
<menu parent="MENU_010" code="MENU_010_110" name="操作员管理" abbr="" level="2" status="0" type="1" icon="z-customer" url="/${zhiqim_manager}/operator.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_010" name="增加操作员" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorAdd.htm,/${zhiqim_manager}/operatorInsert.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_020" name="修改操作员" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorModify.htm,/${zhiqim_manager}/operatorUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_030" name="删除操作员" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorDelete.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_040" name="查看操作员权限" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorRuleView.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_050" name="设置操作员独立权限 " abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorRule.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_060" name="设置操作员部门" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorDept.htm" desc=""/>
|
||||
<menu parent="MENU_010_110" code="MENU_010_110_070" name="设置操作员角色" abbr="" level="3" status="0" type="2" icon="" url="/${zhiqim_manager}/operatorRole.htm" desc=""/>
|
||||
<menu parent="MENU_010" code="MENU_010_150" name="操作日志查询" abbr="" level="2" status="0" type="1" icon="z-text" url="/${zhiqim_manager}/operateLog.htm" desc=""/>
|
||||
<menu parent="MENU_010_150" code="MENU_010_150_100" name="操作员在线列表" abbr="" level="3" status="0" type="1" icon="" url="/${zhiqim_manager}/operatorOnline.htm" desc=""/>
|
||||
<menu parent="MENU" code="MENU_020" name="项目管理" abbr="项目" level="1" status="0" type="1" icon="z-box" url="" desc=""/>
|
||||
<menu parent="MENU_020" code="MENU_020_010" name="项目信息管理" abbr="" level="2" status="0" type="1" icon="z-text" url="/zhiqim_project/project.htm" desc=""/>
|
||||
<menu parent="MENU_020" code="MENU_020_020" name="项目成员管理" abbr="" level="2" status="0" type="1" icon="z-port" url="/zhiqim_project/member.htm" desc=""/>
|
||||
<menu parent="MENU_020_010" code="MENU_020_010_010" name="增加项目" abbr="" level="3" status="0" type="2" icon="" url="/zhiqim_project/projectAdd.htm,/zhiqim_project/projectInsert.htm" desc=""/>
|
||||
<menu parent="MENU_020_010" code="MENU_020_010_020" name="修改项目" abbr="" level="3" status="0" type="2" icon="" url="/zhiqim_project/projectModify.htm,/zhiqim_project/projectUpdate.htm" desc=""/>
|
||||
<menu parent="MENU_020_010" code="MENU_020_010_030" name="删除项目" abbr="" level="3" status="0" type="2" icon="" url="/zhiqim_project/projectDelete.htm" desc=""/>
|
||||
<menu parent="MENU_020_010" code="MENU_020_010_040" name="转让项目" abbr="" level="3" status="0" type="2" icon="" url="/zhiqim_project/projectTransferSelector.htm" desc=""/>
|
||||
<menu parent="MENU_020_060" code="MENU_020_060_010" name="设置工作日休息日" abbr="" level="3" status="0" type="2" icon="" url="/zhiqim_calendar/setting.htm" desc=""/>
|
||||
<menu parent="MENU_020" code="MENU_020_060" name="项目日历管理" abbr="" level="2" status="0" type="1" icon="z-text" url="/zhiqim_calendar/calendar.htm" desc=""/>
|
||||
<menu parent="MENU_020" code="MENU_020_070" name="项目计划总结" abbr="" level="2" status="0" type="1" icon="z-histogram" url="/zhiqim_plan/projectMonth.htm" desc=""/>
|
||||
<menu parent="MENU" code="MENU_030" name="我的动态" abbr="动态" level="1" status="0" type="1" icon="z-list" url="" desc=""/>
|
||||
<menu parent="MENU_030" code="MENU_030_010" name="我的汇报设置" abbr="" level="2" status="0" type="1" icon="z-text" url="/zhiqim_project/personSetting.htm" desc=""/>
|
||||
<menu parent="MENU_030" code="MENU_030_020" name="我的项目动态" abbr="" level="2" status="0" type="1" icon="z-text" url="/zhiqim_project/personReport.htm" desc=""/>
|
||||
<menu parent="MENU_030" code="MENU_030_040" name="我的计划总结" abbr="" level="2" status="0" type="1" icon="z-customer" url="/zhiqim_plan/personMonth.htm" desc=""/>
|
||||
|
||||
</zhiqim-menu>
|
||||
@@ -0,0 +1,61 @@
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙项目计划组件管理菜单
|
||||
-- ---------------------------------------------------
|
||||
|
||||
|
||||
truncate table ZMR_MENU;
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('ROOT', 'MENU', '系统功能根菜单', '', 0, 0, 0, '', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_010', '系统配置', '系统', 1, 0, 1, 'z-config', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_010', '系统基础设置', '', 2, 0, 1, 'z-setting', '/zhiqim_manager/menu.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_010', '增加系统菜单', '', 3, 0, 2, '', '/zhiqim_manager/menuAdd.htm,/zhiqim_manager/menuInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_020', '修改系统菜单', '', 3, 0, 2, '', '/zhiqim_manager/menuModify.htm,/zhiqim_manager/menuUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_030', '删除系统菜单', '', 3, 0, 2, '', '/zhiqim_manager/menuDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_100', '系统头像管理', '', 3, 0, 2, '', '/zhiqim_manager/avatar.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_110', '增加系统头像', '', 3, 0, 2, '', '/zhiqim_manager/avatarAdd.htm,/zhiqim_manager/avatarInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_120', '修改系统头像', '', 3, 0, 2, '', '/zhiqim_manager/avatarModify.htm,/zhiqim_manager/avatarUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_130', '删除系统头像', '', 3, 0, 2, '', '/zhiqim_manager/avatarDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_200', '系统配置管理', '', 3, 0, 2, '', '/zhiqim_manager/config.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_300', '系统参数设置', '', 3, 0, 2, '', '/zhiqim_manager/param.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_310', '首页主题设置', '', 3, 0, 2, '', '/zhiqim_manager/themeIndex.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_320', '主页主题设置', '', 3, 0, 2, '', '/zhiqim_manager/themeMain.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_050', '部门角色管理', '', 2, 0, 1, 'z-apps', '/zhiqim_manager/dept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_010', '增加部门', '', 3, 0, 2, '', '/zhiqim_manager/deptAdd.htm,/zhiqim_manager/deptInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_020', '修改部门', '', 3, 0, 2, '', '/zhiqim_manager/deptModify.htm,/zhiqim_manager/deptUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_030', '删除部门', '', 3, 0, 2, '', '/zhiqim_manager/deptDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_040', '部门成员', '', 3, 0, 2, '', '/zhiqim_manager/deptOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_050', '部门权限', '', 3, 0, 2, '', '/zhiqim_manager/deptRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_100', '角色管理', '', 3, 0, 2, '', '/zhiqim_manager/role.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_110', '增加角色', '', 3, 0, 2, '', '/zhiqim_manager/roleAdd.htm,/zhiqim_manager/roleInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_120', '修改角色', '', 3, 0, 2, '', '/zhiqim_manager/roleModify.htm,/zhiqim_manager/roleUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_130', '删除角色', '', 3, 0, 2, '', '/zhiqim_manager/roleDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_140', '角色成员', '', 3, 0, 2, '', '/zhiqim_manager/roleOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_150', '角色权限', '', 3, 0, 2, '', '/zhiqim_manager/roleRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_110', '操作员管理', '', 2, 0, 1, 'z-customer', '/zhiqim_manager/operator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_010', '增加操作员', '', 3, 0, 2, '', '/zhiqim_manager/operatorAdd.htm,/zhiqim_manager/operatorInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_020', '修改操作员', '', 3, 0, 2, '', '/zhiqim_manager/operatorModify.htm,/zhiqim_manager/operatorUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_030', '删除操作员', '', 3, 0, 2, '', '/zhiqim_manager/operatorDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_040', '查看操作员权限', '', 3, 0, 2, '', '/zhiqim_manager/operatorRuleView.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_050', '设置操作员独立权限 ', '', 3, 0, 2, '', '/zhiqim_manager/operatorRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_060', '设置操作员部门', '', 3, 0, 2, '', '/zhiqim_manager/operatorDept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_070', '设置操作员角色', '', 3, 0, 2, '', '/zhiqim_manager/operatorRole.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_150', '操作日志查询', '', 2, 0, 1, 'z-text', '/zhiqim_manager/operateLog.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_150', 'MENU_010_150_100', '操作员在线列表', '', 3, 0, 1, '', '/zhiqim_manager/operatorOnline.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_020', '项目管理', '项目', 1, 0, 1, 'z-box', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_010', '项目信息管理', '', 2, 0, 1, 'z-text', '/zhiqim_project/project.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_020', '项目成员管理', '', 2, 0, 1, 'z-port', '/zhiqim_project/member.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_010', '增加项目', '', 3, 0, 2, '', '/zhiqim_project/projectAdd.htm,/zhiqim_project/projectInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_020', '修改项目', '', 3, 0, 2, '', '/zhiqim_project/projectModify.htm,/zhiqim_project/projectUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_030', '删除项目', '', 3, 0, 2, '', '/zhiqim_project/projectDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_040', '转让项目', '', 3, 0, 2, '', '/zhiqim_project/projectTransferSelector.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_060', 'MENU_020_060_010', '设置工作日休息日', '', 3, 0, 2, '', '/zhiqim_calendar/setting.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_060', '项目日历管理', '', 2, 0, 1, 'z-text', '/zhiqim_calendar/calendar.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_070', '项目计划总结', '', 2, 0, 1, 'z-histogram', '/zhiqim_plan/projectMonth.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_030', '我的动态', '动态', 1, 0, 1, 'z-list', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_010', '我的汇报设置', '', 2, 0, 1, 'z-text', '/zhiqim_project/personSetting.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_020', '我的项目动态', '', 2, 0, 1, 'z-text', '/zhiqim_project/personReport.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_040', '我的计划总结', '', 2, 0, 1, 'z-customer', '/zhiqim_plan/personMonth.htm', '');
|
||||
commit;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙项目计划组件管理菜单创建完成
|
||||
-- ---------------------------------------------------
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE ZHIQIM-CONTEXT PUBLIC "-//ZHIQIM //DTD Zhiqim-Context Configuration 1.5.0//EN" "http://zhiqim.org/xmldtds/zhiqim_context_1_5_0.dtd">
|
||||
<zhiqim-context>
|
||||
|
||||
<!-- 组件配置 -->
|
||||
<component name="管理台" path="/org/zhiqim/manager/resource"/>
|
||||
<component name="项目工程" path="/org/zhiqim/project/resource"/>
|
||||
<component name="项目日历" path="/org/zhiqim/calendar/resource"/>
|
||||
|
||||
<!-- 属性配置 -->
|
||||
<attribute name="系统名称" key="name" value="知启蒙计划总结"/>
|
||||
<attribute name="系统版本" key="version" value="V1.4.1"/>
|
||||
|
||||
<!-- 项目开发计划 -->
|
||||
<action name="项目计划列表" interceptor="chkZmrLogin,chkZpmProject" path="/zhiqim_plan/projectMonth.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_plan/projectMonth.zml" class="org.zhiqim.plan.action.ProjectMonthAction"/>
|
||||
|
||||
<!-- 我的计划总结 -->
|
||||
<action name="向我汇报的成员" interceptor="chkZmrLogin" path="/zhiqim_plan/personReader.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_plan/personReader.zml" class="org.zhiqim.plan.action.PersonReaderAction" />
|
||||
<action name="我的计划总结" interceptor="chkZmrLogin" path="/zhiqim_plan/personMonth.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_plan/personMonth.zml" class="org.zhiqim.plan.action.PersonMonthAction"/>
|
||||
<action name="查看成员计划总结" interceptor="chkZmrLogin" path="/zhiqim_plan/personReview.htm" view="/ztmpl/zhiqim_manager/template.htm" include="/zview/zhiqim_plan/personReview.zml" class="org.zhiqim.plan.action.PersonReviewAction"/>
|
||||
|
||||
</zhiqim-context>
|
||||
@@ -0,0 +1,61 @@
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙项目计划组件管理菜单
|
||||
-- ---------------------------------------------------
|
||||
|
||||
|
||||
truncate table ZMR_MENU;
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('ROOT', 'MENU', '系统功能根菜单', '', 0, 0, 0, '', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_010', '系统配置', '系统', 1, 0, 1, 'z-config', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_010', '系统基础设置', '', 2, 0, 1, 'z-setting', '/${zhiqim_manager}/menu.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_010', '增加系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuAdd.htm,/${zhiqim_manager}/menuInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_020', '修改系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuModify.htm,/${zhiqim_manager}/menuUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_030', '删除系统菜单', '', 3, 0, 2, '', '/${zhiqim_manager}/menuDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_100', '系统头像管理', '', 3, 0, 2, '', '/${zhiqim_manager}/avatar.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_110', '增加系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarAdd.htm,/${zhiqim_manager}/avatarInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_120', '修改系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarModify.htm,/${zhiqim_manager}/avatarUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_130', '删除系统头像', '', 3, 0, 2, '', '/${zhiqim_manager}/avatarDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_200', '系统配置管理', '', 3, 0, 2, '', '/${zhiqim_manager}/config.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_300', '系统参数设置', '', 3, 0, 2, '', '/${zhiqim_manager}/param.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_310', '首页主题设置', '', 3, 0, 2, '', '/${zhiqim_manager}/themeIndex.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_010', 'MENU_010_010_320', '主页主题设置', '', 3, 0, 2, '', '/${zhiqim_manager}/themeMain.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_050', '部门角色管理', '', 2, 0, 1, 'z-apps', '/${zhiqim_manager}/dept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_010', '增加部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptAdd.htm,/${zhiqim_manager}/deptInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_020', '修改部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptModify.htm,/${zhiqim_manager}/deptUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_030', '删除部门', '', 3, 0, 2, '', '/${zhiqim_manager}/deptDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_040', '部门成员', '', 3, 0, 2, '', '/${zhiqim_manager}/deptOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_050', '部门权限', '', 3, 0, 2, '', '/${zhiqim_manager}/deptRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_100', '角色管理', '', 3, 0, 2, '', '/${zhiqim_manager}/role.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_110', '增加角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleAdd.htm,/${zhiqim_manager}/roleInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_120', '修改角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleModify.htm,/${zhiqim_manager}/roleUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_130', '删除角色', '', 3, 0, 2, '', '/${zhiqim_manager}/roleDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_140', '角色成员', '', 3, 0, 2, '', '/${zhiqim_manager}/roleOperator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_050', 'MENU_010_050_150', '角色权限', '', 3, 0, 2, '', '/${zhiqim_manager}/roleRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_110', '操作员管理', '', 2, 0, 1, 'z-customer', '/${zhiqim_manager}/operator.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_010', '增加操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorAdd.htm,/${zhiqim_manager}/operatorInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_020', '修改操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorModify.htm,/${zhiqim_manager}/operatorUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_030', '删除操作员', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_040', '查看操作员权限', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRuleView.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_050', '设置操作员独立权限 ', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRule.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_060', '设置操作员部门', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorDept.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_110', 'MENU_010_110_070', '设置操作员角色', '', 3, 0, 2, '', '/${zhiqim_manager}/operatorRole.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010', 'MENU_010_150', '操作日志查询', '', 2, 0, 1, 'z-text', '/${zhiqim_manager}/operateLog.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_010_150', 'MENU_010_150_100', '操作员在线列表', '', 3, 0, 1, '', '/${zhiqim_manager}/operatorOnline.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_020', '项目管理', '项目', 1, 0, 1, 'z-box', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_010', '项目信息管理', '', 2, 0, 1, 'z-text', '/zhiqim_project/project.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_020', '项目成员管理', '', 2, 0, 1, 'z-port', '/zhiqim_project/member.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_010', '增加项目', '', 3, 0, 2, '', '/zhiqim_project/projectAdd.htm,/zhiqim_project/projectInsert.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_020', '修改项目', '', 3, 0, 2, '', '/zhiqim_project/projectModify.htm,/zhiqim_project/projectUpdate.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_030', '删除项目', '', 3, 0, 2, '', '/zhiqim_project/projectDelete.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_010', 'MENU_020_010_040', '转让项目', '', 3, 0, 2, '', '/zhiqim_project/projectTransferSelector.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020_060', 'MENU_020_060_010', '设置工作日休息日', '', 3, 0, 2, '', '/zhiqim_calendar/setting.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_060', '项目日历管理', '', 2, 0, 1, 'z-text', '/zhiqim_calendar/calendar.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_020', 'MENU_020_070', '项目计划总结', '', 2, 0, 1, 'z-histogram', '/zhiqim_plan/projectMonth.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU', 'MENU_030', '我的动态', '动态', 1, 0, 1, 'z-list', '', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_010', '我的汇报设置', '', 2, 0, 1, 'z-text', '/zhiqim_project/personSetting.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_020', '我的项目动态', '', 2, 0, 1, 'z-text', '/zhiqim_project/personReport.htm', '');
|
||||
insert into ZMR_MENU (PARENT_CODE, MENU_CODE, MENU_NAME, MENU_NAME_ABBR, MENU_LEVEL, MENU_STATUS, MENU_TYPE, MENU_ICON, MENU_URL, MENU_DESC) values ('MENU_030', 'MENU_030_040', '我的计划总结', '', 2, 0, 1, 'z-customer', '/zhiqim_plan/personMonth.htm', '');
|
||||
commit;
|
||||
|
||||
-- ---------------------------------------------------
|
||||
-- 知启蒙项目计划组件管理菜单创建完成
|
||||
-- ---------------------------------------------------
|
||||
@@ -0,0 +1,197 @@
|
||||
<#function on_textarea(planTypeName, planRows)>
|
||||
onpropertychange="resize(this)" onkeyup="resize(this)" oninput="resize(this)" ontextinput="resize(this)" placeholder="按下写${planTypeName},按回车键换行" data-rows="${planRows}" maxlength="512" spellcheck="false"
|
||||
</#function>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{
|
||||
Z("textarea").each(function(textarea){
|
||||
resize(textarea);
|
||||
});
|
||||
});
|
||||
|
||||
function resize(textarea)
|
||||
{
|
||||
var $textarea = Z(textarea);
|
||||
var width = $textarea.offsetWidth();
|
||||
var initNum = $textarea.attr("data-rows");
|
||||
var lineNum = Z.textLineNum($textarea.val(), width, 14);
|
||||
var currNum = (lineNum < initNum)?initNum:lineNum;
|
||||
$textarea.css("height", 25 * currNum);
|
||||
}
|
||||
|
||||
function doUpdatePersonSummary(type, date, content)
|
||||
{//修改个人总结
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doUpdatePersonSummary");
|
||||
ajax.addParam(type);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(content);
|
||||
ajax.setFailureAlert();
|
||||
//ajax.setSuccess(function(){Z.tips("保存成功");});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doAddPersonPlan(beginDate)
|
||||
{//增加计划空项
|
||||
var hasEmpty = false;
|
||||
var $textareas = Z("textarea[name=plan_"+beginDate+"]");
|
||||
$textareas.each(function(textarea)
|
||||
{
|
||||
if (Z.V.isEmptyBlank(textarea.value))
|
||||
{
|
||||
hasEmpty = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
if (hasEmpty)
|
||||
{
|
||||
Z.alert("请先把未填写的计划项填写完成再新增计划");
|
||||
return;
|
||||
}
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doAddPersonPlan");
|
||||
ajax.addParam(beginDate);
|
||||
ajax.addParam(0);
|
||||
ajax.addParam("");
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doUpdatePersonPlan(id, date, content)
|
||||
{//修改个人总结
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doUpdatePersonPlan");
|
||||
ajax.addParam(id);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(content);
|
||||
ajax.setFailureAlert();
|
||||
//ajax.setSuccess(function(){Z.tips("保存成功");});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doUpdatePersonPlanStatus(elem, id, date, status)
|
||||
{//修改计划状态
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doUpdatePersonPlanStatus");
|
||||
ajax.addParam(id);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(status);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function()
|
||||
{
|
||||
var color = status==0?"#333":status==1?"green":status==2?"red":"gray";
|
||||
Z(elem).parent().parent().siblings("td > textarea").css("color", color);
|
||||
});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doDeletePersonPlan(id, beginDate)
|
||||
{//删除计划项
|
||||
if (Z("textarea[name=plan_"+beginDate+"]").length <= 1)
|
||||
{
|
||||
Z.alert("工作计划最后一项不能删除");
|
||||
return;
|
||||
}
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doDeletePersonPlan");
|
||||
ajax.addParam(id);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
|
||||
${zhiqim_manager_breadcrumb ("我的计划总结")}
|
||||
${zhiqim_manager_content()}
|
||||
<#-- 导航 -->
|
||||
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
|
||||
<nav>
|
||||
<ul>
|
||||
<li class="z-active">我的计划总结</li>
|
||||
<li onclick="Z.L.href('personReader.htm');">向我汇报的成员</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<table id="table" class="z-table zi-bd zi-bd-b-none z-bg-white z-pd6">
|
||||
<tr class="z-h60">
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-left ${zmr_color_class}" onclick="Z.L.href('?prev=true&year=${year}&month=${month}');">上个月</button></td>
|
||||
<td width="*" class="z-lh60 z-px18 z-text-center">我的 [<span class="z-samp zi-px18">${year}</span>年<span class="z-samp zi-px18">${month}</span>月] 计划和总结</td>
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-right ${zmr_color_class}" onclick="Z.L.href('?next=true&year=${year}&month=${month}');">下个月</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="table" class="z-table z-bordered z-bg-white z-pd6">
|
||||
<#for item : weekList>
|
||||
<tr class="z-text-center z-bg-gray z-h40">
|
||||
<td width="125">日期</td>
|
||||
<td width="84">名称</td>
|
||||
<td width="*">计划总结项</td>
|
||||
<td width="86">计划状态</td>
|
||||
<td width="80"><button class="z-button z-h25 z-xsmall z-font z-add ${zmr_color_class}" onclick="doAddPersonPlan(${item.getKey().getBeginDate()});"></button></td>
|
||||
</tr>
|
||||
<!-- 周信息(含第一个计划) -->
|
||||
<tr class="z-bordered z-h40" bgcolor="${zmr_tr_even_bgcolor}">
|
||||
<td class="z-text-center" rowspan="${item.getRowSize()}" >
|
||||
<span class="z-samp zi-px16">${item.getWeekBegin()}</span><br><br>至<br><br><span class="z-samp zi-px16">${item.getWeekEnd()}</span>
|
||||
</td>
|
||||
<td class="z-text-center">
|
||||
<span class="z-round z-gray z-px12">1</span>
|
||||
</td>
|
||||
<td><textarea name="plan_${item.getKey().getBeginDate()}" class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" style="${item.getFirstPlan().getColor()}" ${on_textarea("本周计划", 1)} onchange="doUpdatePersonPlan(${item.getFirstPlan().getId()}, ${item.getKey().getBeginDate()}, this.value);">${item.getFirstPlan().getContent()}</textarea></td>
|
||||
<td class="z-text-center">
|
||||
<select class="z-select z-w80" data-role="z-select" data-class="${zmr_color_class}" onchange="doUpdatePersonPlanStatus(this, ${item.getFirstPlan().getId()}, ${item.getKey().getBeginDate()}, this.value);">
|
||||
<option value="0" <#if item.getFirstPlan().getStatus() == 0>selected</#if>>正常</option>
|
||||
<option value="1" <#if item.getFirstPlan().getStatus() == 1>selected</#if>>新增</option>
|
||||
<option value="2" <#if item.getFirstPlan().getStatus() == 2>selected</#if>>延误</option>
|
||||
<option value="3" <#if item.getFirstPlan().getStatus() == 3>selected</#if>>取消</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="z-text-center"><button class="z-button z-h25 z-xsmall z-font z-delete z-red" onclick="doDeletePersonPlan(${item.getFirstPlan().getId()}, ${item.getKey().getBeginDate()});"></button></td>
|
||||
</tr>
|
||||
<!-- 周计划(除第一个计划) -->
|
||||
<#for model : item.getPlanList()>
|
||||
<#if model_index gt 0>
|
||||
<tr class="z-bordered z-h40">
|
||||
<td class="z-text-center zi-bd-l"><span class="z-round z-gray z-px12">${model_index+1}</span></td>
|
||||
<td><textarea name="plan_${item.getKey().getBeginDate()}" class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" style="${model.getColor()}" ${on_textarea("本周计划", 1)} onchange="doUpdatePersonPlan(${model.getId()}, ${item.getKey().getBeginDate()}, this.value);">${model.getContent()}</textarea></td>
|
||||
<td class="z-text-center">
|
||||
<select class="z-select z-w80" data-role="z-select" data-class="${zmr_color_class}" onchange="doUpdatePersonPlanStatus(this, ${model.getId()}, ${item.getKey().getBeginDate()}, this.value);">
|
||||
<option value="0" <#if model.getStatus() == 0>selected</#if>>正常</option>
|
||||
<option value="1" <#if model.getStatus() == 1>selected</#if>>新增</option>
|
||||
<option value="2" <#if model.getStatus() == 2>selected</#if>>延误</option>
|
||||
<option value="3" <#if model.getStatus() == 3>selected</#if>>取消</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="z-text-center"><button class="z-button z-h25 z-xsmall z-font z-delete z-red" onclick="doDeletePersonPlan(${model.getId()}, ${item.getKey().getBeginDate()});"></button></td>
|
||||
</tr>
|
||||
</#if>
|
||||
</#for>
|
||||
<!-- 日总结 -->
|
||||
<#for model : item.getDayList()>
|
||||
<tr class="z-bordered z-h40" bgcolor="${eventColor}">
|
||||
<td class="z-text-center zi-bd-l">${model.getWeekString()}</td>
|
||||
<td colspan="3"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("每日总结", 1)} onchange="doUpdatePersonSummary(1, ${model.getDate()}, this.value);">${model.getContent()}</textarea></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 周总结 -->
|
||||
<tr class="z-bordered" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center zi-bd-l">周总结</td>
|
||||
<td colspan="3"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本周总结", 5)} onchange="doUpdatePersonSummary(2, ${item.getWeek().getDate()}, this.value);">${item.getWeek().getContent()}</textarea></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 月总结 -->
|
||||
<tr class="z-h120" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center"><span class="z-samp zi-px18">${year}-${Strings.prefixZero(month, 2)}</span><br><br>月总结</td>
|
||||
<td colspan="4"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本月总结", 7)} onchange="doUpdatePersonSummary(3, ${monthModel.getDate()}, this.value);">${monthModel.getContent()}</textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
${zhiqim_manager_content_end()}
|
||||
@@ -0,0 +1,52 @@
|
||||
<#def designatedPath="/zhiqim_plan/personMonth.htm"/>
|
||||
<script>
|
||||
function doDelete(e, operatorCode)
|
||||
{//删除向我汇报的成员
|
||||
Z.E.stop(e);
|
||||
|
||||
Z.confirm("恢复需要重新汇报,确定删除该汇报成员?", function()
|
||||
{
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doDeleteOperator");
|
||||
ajax.addParam(operatorCode);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
${zhiqim_manager_breadcrumb ("向我汇报的成员")}
|
||||
${zhiqim_manager_content()}
|
||||
|
||||
<#-- 导航 -->
|
||||
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
|
||||
<nav>
|
||||
<ul>
|
||||
<li onclick="Z.L.href('personMonth.htm');">我的计划总结</li>
|
||||
<li class="z-active">向我汇报的成员</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<#-- 列表 -->
|
||||
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
|
||||
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
|
||||
<td width="20%">操作员头像</td>
|
||||
<td width="20%">操作员编码</td>
|
||||
<td width="*">操作员名称</td>
|
||||
<td width="120">操作</td>
|
||||
</tr>
|
||||
${zhiqim_manager_tr_no_record(list, 4, "暂无向我汇报的成员")}
|
||||
<#for item : list>
|
||||
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} onclick="Z.L.href('personReview.htm?operatorCode='+encodeURIComponent('${item.getOperatorCode()}'))">
|
||||
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
|
||||
<td>${item.getOperatorCode()}</td>
|
||||
<td>${item.getOperatorName()}</td>
|
||||
<td><button class="z-button z-h25 z-xsmall z-font z-delete z-red" title="删除" onclick="doDelete(event, '${item.getOperatorCode()}');"></button></td>
|
||||
</tr>
|
||||
</#for>
|
||||
</table>
|
||||
${zhiqim_manager_list(list.size())}
|
||||
${zhiqim_manager_content_end()}
|
||||
@@ -0,0 +1,104 @@
|
||||
<#def designatedPath="/zhiqim_plan/personMonth.htm"/>
|
||||
<#function on_textarea(planTypeName, planRows)>
|
||||
rows="${planRows}" data-rows="${planRows}" spellcheck="false" readonly
|
||||
</#function>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{
|
||||
Z("textarea").each(function(textarea){
|
||||
resize(textarea);
|
||||
});
|
||||
});
|
||||
|
||||
function resize(textarea)
|
||||
{
|
||||
var $textarea = Z(textarea);
|
||||
var width = $textarea.offsetWidth();
|
||||
var initNum = $textarea.attr("data-rows");
|
||||
var lineNum = Z.textLineNum($textarea.val(), width, 14);
|
||||
$textarea.attr("rows", (lineNum < initNum)?initNum:lineNum);
|
||||
}
|
||||
</script>
|
||||
|
||||
${zhiqim_manager_breadcrumb ("我的计划总结")}
|
||||
${zhiqim_manager_content()}
|
||||
<#-- 导航 -->
|
||||
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
|
||||
<nav>
|
||||
<ul>
|
||||
<li onclick="Z.L.href('personMonth.htm');">我的计划总结</li>
|
||||
<li class="z-active zi-pointer" onclick="Z.L.href('personReader.htm');">向我汇报的成员</li>
|
||||
</ul>
|
||||
<div class="z-text-right z-mg-t10 z-mg-r5">
|
||||
<button class="z-button ${zmr_color_class}" onclick="Z.L.href('personReader.htm');"><i class="z-font z-return"></i>返回向我汇报的成员</button>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<table id="table" class="z-table zi-bd zi-bd-b-none z-bg-white z-pd6">
|
||||
<tr class="z-h60">
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-left ${zmr_color_class}" onclick="Z.L.href('?prev=true&year=${year}&month=${month}&operatorCode='+encodeURIComponent('${operatorCode}'));">上个月</button></td>
|
||||
<td width="*" class="z-lh60 z-px18 z-text-center">${operator.getOperatorName()}(${operator.getOperatorCode()})的 [<span class="z-samp zi-px18">${year}</span>年<span class="z-samp zi-px18">${month}</span>月] 计划和总结</td>
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-right ${zmr_color_class}" onclick="Z.L.href('?next=true&year=${year}&month=${month}&operatorCode='+encodeURIComponent('${operatorCode}'));">下个月</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="table" class="z-table z-bordered z-bg-white z-pd6">
|
||||
<#for item : weekList>
|
||||
<tr class="z-text-center z-bg-gray z-h40">
|
||||
<td width="125">日期</td>
|
||||
<td width="84">名称</td>
|
||||
<td width="*">计划总结项</td>
|
||||
<td width="86">计划状态</td>
|
||||
</tr>
|
||||
<!-- 周信息(含第一个计划) -->
|
||||
<tr class="z-bordered z-h40" bgcolor="${zmr_tr_even_bgcolor}">
|
||||
<td class="z-text-center" rowspan="${item.getRowSize()}" >
|
||||
<span class="z-samp zi-px16">${item.getWeekBegin()}</span><br><br>至<br><br><span class="z-samp zi-px16">${item.getWeekEnd()}</span>
|
||||
</td>
|
||||
<td class="z-text-center">
|
||||
<span class="z-round z-gray z-px12">1</span>
|
||||
</td>
|
||||
<td><textarea name="plan_${item.getKey().getBeginDate()}" class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" style="${item.getFirstPlan().getColor()}" ${on_textarea("本周计划", 1)}>${item.getFirstPlan().getContent()}</textarea></td>
|
||||
<td class="z-text-center">
|
||||
<#if item.getFirstPlan().getStatus() == 0>正常</#if>
|
||||
<#if item.getFirstPlan().getStatus() == 1><span class="z-color-green">新增</span></#if>
|
||||
<#if item.getFirstPlan().getStatus() == 2><span class="z-color-red">延误</span></#if>
|
||||
<#if item.getFirstPlan().getStatus() == 3><span class="z-color-333">取消</span></#if>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<!-- 周计划(除第一个计划) -->
|
||||
<#for model : item.getPlanList()>
|
||||
<#if model_index gt 0>
|
||||
<tr class="z-bordered z-h40">
|
||||
<td class="z-text-center zi-bd-l"><span class="z-round z-gray z-px12">${model_index+1}</span></td>
|
||||
<td><textarea name="plan_${item.getKey().getBeginDate()}" class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" style="${model.getColor()}" ${on_textarea("本周计划", 1)}>${model.getContent()}</textarea></td>
|
||||
<td class="z-text-center">
|
||||
<#if model.getStatus() == 0>正常</#if>
|
||||
<#if model.getStatus() == 1><span class="z-color-green">新增</span></#if>
|
||||
<#if model.getStatus() == 2><span class="z-color-red">延误</span></#if>
|
||||
<#if model.getStatus() == 3><span class="z-color-333">取消</span></#if>
|
||||
</td>
|
||||
</tr>
|
||||
</#if>
|
||||
</#for>
|
||||
<!-- 日总结 -->
|
||||
<#for model : item.getDayList()>
|
||||
<tr class="z-bordered z-h40" bgcolor="${eventColor}">
|
||||
<td class="z-text-center zi-bd-l">${model.getWeekString()}</td>
|
||||
<td colspan="2"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("每日总结", 1)}>${model.getContent()}</textarea></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 周总结 -->
|
||||
<tr class="z-bordered" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center zi-bd-l">周总结</td>
|
||||
<td colspan="2"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本周总结", 5)}>${item.getWeek().getContent()}</textarea></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 月总结 -->
|
||||
<tr class="z-h120" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center"><span class="z-samp zi-px18">${year}-${Strings.prefixZero(month, 2)}</span><br><br>月总结</td>
|
||||
<td colspan="3"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本月总结", 7)}>${monthModel.getContent()}</textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
${zhiqim_manager_content_end()}
|
||||
@@ -0,0 +1,72 @@
|
||||
<script>
|
||||
function doDelete(readerCode)
|
||||
{//删除设置的汇报对象
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doDeleteReader");
|
||||
ajax.addParam(readerCode);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doSelectorDialog()
|
||||
{
|
||||
var dialog = new Z.Dialog();
|
||||
dialog.title = "增加汇报对象";
|
||||
dialog.url = "personSettingSelector.htm";
|
||||
dialog.width = 392;
|
||||
dialog.height = 423;
|
||||
dialog.execute();
|
||||
}
|
||||
|
||||
function doSelectorCallback(operatorCodes)
|
||||
{
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmPersonPresenter");
|
||||
ajax.setMethodName("doAddReaders");
|
||||
ajax.addParam(operatorCodes);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.alert("增加成功",function(){Z.L.reload();});});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
|
||||
${zhiqim_manager_breadcrumb ("我的汇报设置")}
|
||||
${zhiqim_manager_content()}
|
||||
|
||||
<#-- 导航 -->
|
||||
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
|
||||
<nav>
|
||||
<ul>
|
||||
<li class="z-active">我的汇报设置</li>
|
||||
<li onclick="Z.L.href('personReader.htm');">向我汇报的成员</li>
|
||||
<li onclick="Z.L.href('personMonth.htm');">我的计划总结</li>
|
||||
</ul>
|
||||
<div class="z-text-right z-mg-t10 z-mg-r5">
|
||||
<button class="z-button ${zmr_color_class}" onclick="doSelectorDialog()" ><i class="z-font z-add"></i>增加汇报对象</button>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<#-- 列表 -->
|
||||
<table class="z-table z-bordered z-pd5 z-bg-white z-text-center">
|
||||
<tr class="z-h40" bgcolor="${zmr_thead_bgcolor}">
|
||||
<td width="20%">操作员头像</td>
|
||||
<td width="20%">操作员编码</td>
|
||||
<td width="*">操作员名称</td>
|
||||
<td width="120">操作</td>
|
||||
</tr>
|
||||
<#if list.isEmpty()>
|
||||
${zhiqim_manager_no_record(4, "暂未设置汇报对象")}
|
||||
</#if>
|
||||
<#for item : list>
|
||||
<tr ${zhiqim_manager_tr_onmouse()}>
|
||||
<td><img src="${sessionUser.getAvatarUrl(item.getReaderAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
|
||||
<td>${item.getReaderCode()}</td>
|
||||
<td>${item.getReaderName()}</td>
|
||||
<td><button class="z-button z-h25 z-xsmall z-font z-delete z-red" title="删除" onclick="doDelete('${item.getReaderCode()}');"></button></td>
|
||||
</tr>
|
||||
</#for>
|
||||
</table>
|
||||
${zhiqim_manager_list(list.size())}
|
||||
${zhiqim_manager_content_end()}
|
||||
@@ -0,0 +1,47 @@
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{
|
||||
Z(document.forms[0].operatorKey).focusEnd();
|
||||
});
|
||||
|
||||
function doSelector()
|
||||
{
|
||||
var operatorCodes = Z.FM.getCheckeds("operatorCode");
|
||||
parent.doSelectorCallback(operatorCodes);
|
||||
}
|
||||
</script>
|
||||
|
||||
<#-- 查询 -->
|
||||
<div class="z-fixed z-t0 z-l0 z-w100p z-pd10 z-bg-gray">
|
||||
<form method="post">
|
||||
<input name="operatorKey" class="z-float-left z-input z-w300 zi-h35 zi-bd-r-none" placeholder="操作员编码或名称" value="${operatorKey}" maxlength="20">
|
||||
<button type="submit" class="z-float-left z-button z-w70 z-h35 zi-bd-rd0 ${zmr_color_class}"><i class="z-font z-query"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<#-- 列表 -->
|
||||
<div class="z-w100p z-pd10 z-overflow-auto" style="margin-top:55px;height:306px;">
|
||||
<table class="z-table z-bordered z-pd5 z-text-center">
|
||||
<tr class="z-h40 z-bg-gray">
|
||||
<td width="50"><input type="checkbox" data-role="z-checkbox" data-class="z-blue" onclick="Z.FM.doSelectCheckBox('operatorCode')"></td>
|
||||
<td width="90">操作员头像</td>
|
||||
<td width="110">操作员编码</td>
|
||||
<td width="*">操作员姓名</td>
|
||||
</tr>
|
||||
${zhiqim_manager_tr_no_record(operatorList, 4, "没有可选择的操作员")}
|
||||
<#for item : operatorList>
|
||||
<tr class="z-pointer" ${zhiqim_manager_tr_onmouse()} ${zhiqim_manager_tr_click_checkbox()}>
|
||||
<td><input name="operatorCode" type="checkbox" data-role="z-checkbox" data-class="z-blue" value="${item.getOperatorCode()}"></td>
|
||||
<td><img src="${sessionUser.getAvatarUrl(item.getOperatorAvatar(), 50)}" class="z-w50 z-h50 z-bd-rd50p"></td>
|
||||
<td>${item.getOperatorCode()}</td>
|
||||
<td>${item.getOperatorName()}</td>
|
||||
</tr>
|
||||
</#for>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<#-- 操作 -->
|
||||
<div class="z-fixed z-b0 z-l0 z-w100p z-h60 z-pd10 z-bg-gray z-text-center">
|
||||
<button class="z-button z-large z-w150 ${zmr_color_class}" onclick="doSelector();">确定</button>
|
||||
<button class="z-button z-large z-w70 z-mg-l10" onclick="parent.Z.Dialog.close(location.hash);">取消</button>
|
||||
</div>
|
||||
@@ -0,0 +1,196 @@
|
||||
<#function on_textarea(planTypeName, planRows)>
|
||||
onpropertychange="resize(this)" onkeyup="resize(this)" oninput="resize(this)" ontextinput="resize(this)" placeholder="按下写${planTypeName},按回车键换行" data-rows="${planRows}" maxlength="512" spellcheck="false"
|
||||
</#function>
|
||||
<script>
|
||||
Z.onload(function()
|
||||
{
|
||||
Z("textarea").each(function(textarea){
|
||||
resize(textarea);
|
||||
});
|
||||
});
|
||||
|
||||
function resize(textarea)
|
||||
{
|
||||
var $textarea = Z(textarea);
|
||||
var width = $textarea.offsetWidth();
|
||||
var initNum = $textarea.attr("data-rows");
|
||||
var lineNum = Z.textLineNum($textarea.val(), width, 14);
|
||||
var currNum = (lineNum < initNum)?initNum:lineNum;
|
||||
$textarea.css("height", 25 * currNum);
|
||||
}
|
||||
|
||||
function doUpdateProjectSummary(type, date, content)
|
||||
{//修改项目总结
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmProjectPresenter");
|
||||
ajax.setMethodName("doUpdateProjectSummary");
|
||||
ajax.addParam(type);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(content);
|
||||
ajax.setFailureAlert();
|
||||
//ajax.setSuccess(function(){Z.tips("保存成功");});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doAddProjectPlan(date)
|
||||
{//增加计划空项
|
||||
var hasEmpty = false;
|
||||
var $textareas = Z("textarea[name=plan_"+date+"]");
|
||||
$textareas.each(function(textarea)
|
||||
{
|
||||
if (Z.V.isEmptyBlank(textarea.value))
|
||||
{
|
||||
hasEmpty = true;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
if (hasEmpty)
|
||||
{
|
||||
Z.alert("请先把未填写的计划项填写完成再新增计划");
|
||||
return;
|
||||
}
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmProjectPresenter");
|
||||
ajax.setMethodName("doAddProjectPlan");
|
||||
ajax.addParam(0);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam("planContent");
|
||||
ajax.addParam("");
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doUpdateProjectPlan(id, date, type, value)
|
||||
{//修改项目总结
|
||||
if (type == "planProgress")
|
||||
{
|
||||
if (!Z.V.isIntegerValue(value, 0, 100))
|
||||
{
|
||||
Z.alert("输入不正确,进度值在0-100之间");
|
||||
return;
|
||||
}
|
||||
}
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmProjectPresenter");
|
||||
ajax.setMethodName("doUpdateProjectPlan");
|
||||
ajax.addParam(id);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(type);
|
||||
ajax.addParam(value);
|
||||
ajax.setFailureAlert();
|
||||
//ajax.setSuccess(function(){Z.tips("保存成功");});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doUpdateProjectPlanStatus(elem, id, date, status)
|
||||
{//修改项目计划状态
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmProjectPresenter");
|
||||
ajax.setMethodName("doUpdateProjectPlanStatus");
|
||||
ajax.addParam(id);
|
||||
ajax.addParam(date);
|
||||
ajax.addParam(status);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function()
|
||||
{
|
||||
var color = status==0?"#333":status==1?"green":status==2?"red":"gray";
|
||||
Z(elem).parent().parent().siblings("td > textarea").css("color", color);
|
||||
});
|
||||
ajax.execute();
|
||||
}
|
||||
|
||||
function doDeleteProjectPlan(id, date)
|
||||
{//删除计划项
|
||||
if (Z("textarea[name=plan_"+date+"]").length <= 1)
|
||||
{
|
||||
Z.alert("工作计划最后一项不能删除");
|
||||
return;
|
||||
}
|
||||
|
||||
var ajax = new Z.Ajax();
|
||||
ajax.setClassName("ZpmProjectPresenter");
|
||||
ajax.setMethodName("doDeleteProjectPlan");
|
||||
ajax.addParam(id);
|
||||
ajax.setFailureAlert();
|
||||
ajax.setSuccess(function(){Z.L.reload();});
|
||||
ajax.execute();
|
||||
}
|
||||
</script>
|
||||
|
||||
${zhiqim_manager_breadcrumb ("项目月度计划总结")}
|
||||
${zhiqim_manager_content()}
|
||||
<#-- 导航 -->
|
||||
<div class="z-tabnav-main z-mg-b20 ${zmr_color_class}">
|
||||
<nav>
|
||||
<ul>
|
||||
<li class="z-active">项目月度计划总结</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<table id="table" class="z-table zi-bd zi-bd-b-none z-bg-white z-pd6">
|
||||
<tr class="z-h60">
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-left ${zmr_color_class}" onclick="Z.L.href('?prev=true&year=${year}&month=${month}');">上个月</button></td>
|
||||
<td width="*" class="z-lh60 z-px18 z-text-center">${project.getProjectName()} [<span class="z-samp zi-px18">${year}</span>年<span class="z-samp zi-px18">${month}</span>月] 计划总结</td>
|
||||
<td width="200"><button class="z-button z-xlarge z-relative-right ${zmr_color_class}" onclick="Z.L.href('?next=true&year=${year}&month=${month}');">下个月</button></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table id="table" class="z-table z-bordered z-bg-white z-pd5">
|
||||
<#for item : weekList>
|
||||
<tr class="z-text-center z-bg-gray z-h40">
|
||||
<td width="110">日期</td>
|
||||
<td width="70">名称</td>
|
||||
<td width="*">计划</td>
|
||||
<td width="90">计划开始</td>
|
||||
<td width="90">计划完成</td>
|
||||
<td width="90">实际开始</td>
|
||||
<td width="90">实际完成</td>
|
||||
<td width="170">责任人</td>
|
||||
<td width="76">完成进度</td>
|
||||
<td width="86">计划状态</td>
|
||||
<td width="50"><button class="z-button z-h25 z-xsmall z-font z-add ${zmr_color_class}" onclick="doAddProjectPlan(${item.getKey().getBeginDate()});"></button></td>
|
||||
</tr>
|
||||
<!-- 周信息&周目标 -->
|
||||
<tr class="z-bordered z-h40" bgcolor="${zmr_tr_even_bgcolor}">
|
||||
<td class="z-text-center z-lh150p" rowspan="${item.getRowSize()}"><span class="z-samp">${item.getWeekName()}</span><br>计划&总结</td>
|
||||
<td class="z-text-center z-bg-purple">周目标</td>
|
||||
<td colspan="9" class="z-bg-purple"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25 z-bg-purple" ${on_textarea("本周目标", 1)} onchange="doUpdateProjectSummary(1, ${item.getWeekAim().getDate()}, this.value);">${item.getWeekAim().getContent()}</textarea></td>
|
||||
</tr>
|
||||
<!-- 周计划 -->
|
||||
<#for model : item.getPlanList()>
|
||||
<tr class="z-bordered z-h40">
|
||||
<td class="z-text-center zi-bd-l"><span class="z-round z-gray z-px12">${model_index+1}</span></td>
|
||||
<td><textarea name="plan_${item.getKey().getBeginDate()}" class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" style="${model.getColor()}" ${on_textarea("本周计划", 1)} onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'planContent', this.value);">${model.getContent()}</textarea></td>
|
||||
<td><input class="z-w100p z-bd-none zi-pd0 zi-h30 zi-lh30 z-samp" maxlength="10" data-options="type:Date;paste:true;" value="${model.getPlanBeginDate()}" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'planBeginDate', this.value);"></td>
|
||||
<td><input class="z-w100p z-bd-none zi-pd0 zi-h30 zi-lh30 z-samp" maxlength="10" data-options="type:Date;paste:true;" value="${model.getPlanEndDate()}" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'planEndDate', this.value);"></td>
|
||||
<td><input class="z-w100p z-bd-none zi-pd0 zi-h30 zi-lh30 z-samp" maxlength="10" data-options="type:Date;paste:true;" value="${model.getActualBeginDate()}" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'actualBeginDate', this.value);"></td>
|
||||
<td><input class="z-w100p z-bd-none zi-pd0 zi-h30 zi-lh30 z-samp" maxlength="10" data-options="type:Date;paste:true;" value="${model.getActualEndDate()}" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'actualEndDate', this.value);"></td>
|
||||
<td><input class="z-w100p z-bd-none zi-pd0 zi-h30 zi-lh30" maxlength="15" value="${model.getPlanManager()}" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'planManager', this.value);"></td>
|
||||
<td><input class="z-w50 z-bd-none z-pd-r4 zi-h30 zi-lh30 z-samp z-text-right" data-options="type:Integer;paste:true;" value="${model.getPlanProgress()}" maxlength="3" onchange="doUpdateProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()}, 'planProgress', this.value);">%</td>
|
||||
<td class="z-text-center">
|
||||
<select class="z-select z-w80" data-role="z-select" data-class="${zmr_color_class}" onchange="doUpdateProjectPlanStatus(this, ${model.getId()}, ${item.getKey().getBeginDate()}, this.value);">
|
||||
<option value="0" <#if model.getPlanStatus() == 0>selected</#if>>正常</option>
|
||||
<option value="1" <#if model.getPlanStatus() == 1>selected</#if>>新增</option>
|
||||
<option value="2" <#if model.getPlanStatus() == 2>selected</#if>>延误</option>
|
||||
<option value="3" <#if model.getPlanStatus() == 3>selected</#if>>取消</option>
|
||||
</select>
|
||||
</td>
|
||||
<td class="z-text-center"><button class="z-button z-h25 z-xsmall z-font z-delete z-red" onclick="doDeleteProjectPlan(${model.getId()}, ${item.getKey().getBeginDate()});"></button></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 周总结 -->
|
||||
<tr class="z-bordered" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center zi-bd-l">周总结</td>
|
||||
<td colspan="9"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本周总结", 3)} onchange="doUpdateProjectSummary(2, ${item.getWeekSummary().getDate()}, this.value);">${item.getWeekSummary().getContent()}</textarea></td>
|
||||
</tr>
|
||||
</#for>
|
||||
<!-- 月总结 -->
|
||||
<tr class="z-h120" bgcolor="${zmr_tr_even_color}">
|
||||
<td class="z-text-center"><span class="z-samp zi-px18">${year}-${Strings.prefixZero(month, 2)}</span><br><br>月总结</td>
|
||||
<td colspan="10"><textarea class="z-w100p z-bd-none zi-pd0 z-overflow-hidden z-lh25" ${on_textarea("本月总结", 6)} onchange="doUpdateProjectSummary(3, ${monthModel.getDate()}, this.value);">${monthModel.getContent()}</textarea></td>
|
||||
</tr>
|
||||
</table>
|
||||
${zhiqim_manager_content_end()}
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan;
|
||||
|
||||
/**
|
||||
* 个人计划总结常量定义
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-7 新建与整理
|
||||
*/
|
||||
public interface FpmPlanConstants
|
||||
{
|
||||
//项目计划总结类型
|
||||
public static final int PJ_PLAN = 0;
|
||||
public static final int PJ_WEEK_AIM = 1;
|
||||
public static final int PJ_WEEK_SUM = 2;
|
||||
public static final int PJ_MONTH_SUM = 3;
|
||||
|
||||
//个人计划总结类型
|
||||
public static final int PS_PLAN = 0;
|
||||
public static final int PS_SUM_DAY = 1;
|
||||
public static final int PS_SUM_WEEK = 2;
|
||||
public static final int PS_SUM_MONTH = 3;
|
||||
}
|
||||
@@ -0,0 +1,246 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.annotation.AnIntercept;
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.util.Ids;
|
||||
import org.zhiqim.kernel.util.Lists;
|
||||
import org.zhiqim.kernel.util.Sqls;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZTable;
|
||||
import org.zhiqim.orm.dbo.Selector;
|
||||
import org.zhiqim.orm.dbo.Updater;
|
||||
import org.zhiqim.plan.dbo.ZpmPersonPlan;
|
||||
import org.zhiqim.plan.dbo.ZpmPersonSummary;
|
||||
import org.zhiqim.project.dbo.ZpmPersonReader;
|
||||
|
||||
/**
|
||||
* 个人计划总结展示器
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-7 新建与整理
|
||||
*/
|
||||
@AnAlias("ZpmPersonPresenter")
|
||||
@AnIntercept("chkZmrLogin")
|
||||
public class ZpmPersonPresenter
|
||||
{
|
||||
/***********************************************************************************************/
|
||||
//汇报增加&删除
|
||||
/***********************************************************************************************/
|
||||
|
||||
/**
|
||||
* 批量增加汇报对象
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @param readerCodes 操作员编码组
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doAddReaders(HttpRequest request, String readerCodes) throws Exception
|
||||
{
|
||||
List<String> readerList = Lists.toStringList(readerCodes);
|
||||
for (String item : readerList)
|
||||
{
|
||||
ZpmPersonReader reader = new ZpmPersonReader();
|
||||
reader.setOperatorCode(request.getSessionName());
|
||||
reader.setReaderCode(item);
|
||||
|
||||
ORM.get(ZTable.class, request).replace(reader);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除汇报对象
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @param projectId 项目编号
|
||||
* @param readerCode 汇报对象编码
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doDeleteReader(HttpRequest request, String readerCode) throws Exception
|
||||
{
|
||||
Selector selector = new Selector();
|
||||
selector.addMust("operatorCode", request.getSessionName());
|
||||
selector.addMust("readerCode", readerCode);
|
||||
|
||||
ORM.get(ZTable.class, request).delete(ZpmPersonReader.class, selector);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除向我汇报的操作员
|
||||
*
|
||||
* @param request 请求对象
|
||||
* @param projectId 项目编号
|
||||
* @param operatorCode 操作员编码
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doDeleteOperator(HttpRequest request, String operatorCode) throws Exception
|
||||
{
|
||||
Selector selector = new Selector();
|
||||
selector.addMust("readerCode", request.getSessionName());
|
||||
selector.addMust("operatorCode", operatorCode);
|
||||
|
||||
ORM.get(ZTable.class, request).delete(ZpmPersonReader.class, selector);
|
||||
}
|
||||
|
||||
/***********************************************************************************************/
|
||||
//个人计划增加&更新内容&更新状态&删除
|
||||
/***********************************************************************************************/
|
||||
|
||||
/**
|
||||
* 增加个人工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param date 周起始日期
|
||||
* @param status 计划状态
|
||||
* @param content 计划内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doAddPersonPlan(HttpRequest request, int date, int status, String content) throws Exception
|
||||
{
|
||||
//1.先取出最大的sequence
|
||||
Selector selector = new Selector("planSeq");
|
||||
selector.addMust("operatorCode", request.getSessionName());
|
||||
selector.addMust("planDate", date);
|
||||
selector.addOrderbyDesc("planSeq");
|
||||
ZpmPersonPlan item = ORM.get(ZTable.class, request).item(ZpmPersonPlan.class, selector);
|
||||
|
||||
//2.插入到数据库
|
||||
ZpmPersonPlan plan = new ZpmPersonPlan();
|
||||
plan.setOperatorCode(request.getSessionName());
|
||||
plan.setPlanId(Ids.longId());
|
||||
plan.setPlanDate(date);
|
||||
plan.setPlanStatus(status);
|
||||
plan.setPlanSeq((item == null)?1:item.getPlanSeq()+1);
|
||||
plan.setPlanContent(content);
|
||||
plan.setPlanModified(Sqls.nowTimestamp());
|
||||
|
||||
ORM.get(ZTable.class, request).insert(plan);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新个人工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @param date 周起始日期
|
||||
* @param content 计划内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdatePersonPlan(HttpRequest request, long id, int date, String content) throws Exception
|
||||
{
|
||||
if (id == 0)
|
||||
{//新增,默认状态正常
|
||||
doAddPersonPlan(request, date, 0, content);
|
||||
return;
|
||||
}
|
||||
|
||||
//修改
|
||||
Updater updater = new Updater();
|
||||
updater.addMust("planId", id);
|
||||
updater.addField("planModified", Sqls.nowTimestamp());
|
||||
updater.addField("planContent", content);
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmPersonPlan.class, updater);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新个人工作总结
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @param date 周起始日期
|
||||
* @param status 计划状态
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdatePersonPlanStatus(HttpRequest request, long id, int date, int status) throws Exception
|
||||
{
|
||||
if (id == 0)
|
||||
{//新增,默认内容为null
|
||||
doAddPersonPlan(request, date, status, null);
|
||||
return;
|
||||
}
|
||||
|
||||
//修改
|
||||
Updater updater = new Updater();
|
||||
updater.addMust("planId", id);
|
||||
updater.addField("planModified", Sqls.nowTimestamp());
|
||||
updater.addField("planStatus", status);
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmPersonPlan.class, updater);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除个人工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doDeletePersonPlan(HttpRequest request, long id) throws Exception
|
||||
{
|
||||
ORM.get(ZTable.class, request).delete(ZpmPersonPlan.class, id);
|
||||
}
|
||||
|
||||
/***********************************************************************************************/
|
||||
//个人总结更新(无则插入,有则更新)
|
||||
/***********************************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* 更新个人工作总结
|
||||
*
|
||||
* @param request 请求
|
||||
* @param type 总结类型
|
||||
* @param date 总结日期
|
||||
* @param content 总结内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdatePersonSummary(HttpRequest request, int type, int date, String content) throws Exception
|
||||
{
|
||||
Selector selector = new Selector("summaryId");
|
||||
selector.addMust("operatorCode", request.getSessionName());
|
||||
selector.addMust("summaryType", type);
|
||||
selector.addMust("summaryDate", date);
|
||||
ZpmPersonSummary item = ORM.get(ZTable.class, request).item(ZpmPersonSummary.class, selector);
|
||||
|
||||
if (item == null)
|
||||
{//不存在则增加
|
||||
item = new ZpmPersonSummary();
|
||||
item.setOperatorCode(request.getSessionName());
|
||||
item.setSummaryId(Ids.longId());
|
||||
item.setSummaryType(type);
|
||||
item.setSummaryDate(date);
|
||||
item.setSummaryModified(Sqls.nowTimestamp());
|
||||
item.setSummaryContent(content);
|
||||
|
||||
ORM.get(ZTable.class, request).insert(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
Updater updater = new Updater();
|
||||
updater.addMust("summaryId", item.getSummaryId());
|
||||
updater.addField("summaryModified", Sqls.nowTimestamp());
|
||||
updater.addField("summaryContent", content);
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmPersonSummary.class, updater);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,248 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan;
|
||||
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.annotation.AnIntercept;
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.util.Ids;
|
||||
import org.zhiqim.kernel.util.Ints;
|
||||
import org.zhiqim.kernel.util.Sqls;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZTable;
|
||||
import org.zhiqim.orm.dbo.Selector;
|
||||
import org.zhiqim.orm.dbo.Updater;
|
||||
import org.zhiqim.plan.dbo.ZpmProjectPlan;
|
||||
import org.zhiqim.plan.dbo.ZpmProjectSummary;
|
||||
import org.zhiqim.project.ZpmMemberDao;
|
||||
import org.zhiqim.project.ZpmProjectDao;
|
||||
|
||||
/**
|
||||
* 项目计划总结展示器
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-7 新建与整理
|
||||
*/
|
||||
@AnAlias("ZpmProjectPresenter")
|
||||
@AnIntercept("chkZmrLogin")
|
||||
public class ZpmProjectPresenter
|
||||
{
|
||||
/***********************************************************************************************/
|
||||
//项目计划增加&更新内容&更新状态&删除
|
||||
/***********************************************************************************************/
|
||||
|
||||
/**
|
||||
* 增加项目工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param date 周起始日期
|
||||
* @param status 计划状态
|
||||
* @param content 计划内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doAddProjectPlan(HttpRequest request, long id, int date, String type, String value) throws Exception
|
||||
{
|
||||
if (id == 0)
|
||||
id = Ids.longId();
|
||||
|
||||
ZpmProjectPlan plan = new ZpmProjectPlan();
|
||||
if ("planStatus".equals(type))
|
||||
plan.setPlanStatus(Ints.toInt(value));
|
||||
else if ("planBeginDate".equals(type))
|
||||
plan.setPlanBeginDate(value);
|
||||
else if ("planEndDate".equals(type))
|
||||
plan.setPlanEndDate(value);
|
||||
else if ("actualBeginDate".equals(type))
|
||||
plan.setActualBeginDate(value);
|
||||
else if ("actualEndDate".equals(type))
|
||||
plan.setActualEndDate(value);
|
||||
else if ("planManager".equals(type))
|
||||
plan.setPlanManager(value);
|
||||
else if ("planProgress".equals(type))
|
||||
plan.setPlanProgress(Ints.toInt(value));
|
||||
else if ("planContent".equals(type))
|
||||
plan.setPlanContent(value);
|
||||
else
|
||||
{
|
||||
request.setResponseError("类型不正确");
|
||||
return;
|
||||
}
|
||||
|
||||
plan.setProjectId(ZpmProjectDao.getProjectId(request));
|
||||
plan.setPlanId(id);
|
||||
plan.setPlanDate(date);
|
||||
plan.setPlanModified(Sqls.nowTimestamp());
|
||||
|
||||
//1.先取出最大的sequence
|
||||
Selector selector = new Selector("planSeq");
|
||||
selector.addMust("projectId", ZpmProjectDao.getProjectId(request));
|
||||
selector.addMust("planDate", date);
|
||||
selector.addOrderbyDesc("planSeq");
|
||||
ZpmProjectPlan item = ORM.get(ZTable.class, request).item(ZpmProjectPlan.class, selector);
|
||||
|
||||
//2.+1设置到新的sequence
|
||||
plan.setPlanSeq((item == null)?1:item.getPlanSeq()+1);
|
||||
|
||||
ORM.get(ZTable.class, request).insert(plan);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "增加了计划", plan.getPlanContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新项目工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @param date 周起始日期
|
||||
* @param content 计划内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdateProjectPlan(HttpRequest request, long id, int date, String type, String value) throws Exception
|
||||
{
|
||||
ZpmProjectPlan plan = ORM.get(ZTable.class, request).item(ZpmProjectPlan.class, id);
|
||||
if (plan == null)
|
||||
{//新增,默认状态正常
|
||||
doAddProjectPlan(request, id, date, type, value);
|
||||
return;
|
||||
}
|
||||
|
||||
//修改指定值
|
||||
Updater updater = new Updater();
|
||||
if ("planStatus".equals(type))
|
||||
updater.addField("planStatus", Ints.toInt(value));
|
||||
else if ("planBeginDate".equals(type))
|
||||
updater.addField("planBeginDate", value);
|
||||
else if ("planEndDate".equals(type))
|
||||
updater.addField("planEndDate", value);
|
||||
else if ("actualBeginDate".equals(type))
|
||||
updater.addField("actualBeginDate", value);
|
||||
else if ("actualEndDate".equals(type))
|
||||
updater.addField("actualEndDate", value);
|
||||
else if ("planManager".equals(type))
|
||||
updater.addField("planManager", value);
|
||||
else if ("planProgress".equals(type))
|
||||
updater.addField("planProgress", Ints.toInt(value));
|
||||
else if ("planContent".equals(type))
|
||||
updater.addField("planContent", value);
|
||||
else
|
||||
{
|
||||
request.setResponseError("类型不正确");
|
||||
return;
|
||||
}
|
||||
|
||||
updater.addMust("planId", id);
|
||||
updater.addField("planModified", Sqls.nowTimestamp());
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmProjectPlan.class, updater);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "修改了计划", plan.getPlanContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新项目工作总结
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @param date 周起始日期
|
||||
* @param status 计划状态
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdateProjectPlanStatus(HttpRequest request, long id, int date, int status) throws Exception
|
||||
{
|
||||
ZpmProjectPlan plan = ORM.get(ZTable.class, request).item(ZpmProjectPlan.class, id);
|
||||
if (plan == null)
|
||||
{//新增,默认内容为null
|
||||
doAddProjectPlan(request, id, date, "planStatus", ""+status);
|
||||
return;
|
||||
}
|
||||
|
||||
//修改状态
|
||||
Updater updater = new Updater();
|
||||
updater.addMust("planId", id);
|
||||
updater.addField("planModified", Sqls.nowTimestamp());
|
||||
updater.addField("planStatus", status);
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmProjectPlan.class, updater);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "修改了计划状态", plan.getPlanContent());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除项目工作计划
|
||||
*
|
||||
* @param request 请求
|
||||
* @param id 计划编号
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doDeleteProjectPlan(HttpRequest request, long id) throws Exception
|
||||
{
|
||||
ZpmProjectPlan plan = ORM.get(ZTable.class, request).item(ZpmProjectPlan.class, id);
|
||||
|
||||
ORM.get(ZTable.class, request).delete(ZpmProjectPlan.class, id);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "删除了项目计划", plan.getPlanContent());
|
||||
}
|
||||
|
||||
/***********************************************************************************************/
|
||||
//项目总结更新(无则插入,有则更新)
|
||||
/***********************************************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* 更新项目工作总结
|
||||
*
|
||||
* @param request 请求
|
||||
* @param type 总结类型
|
||||
* @param date 总结日期
|
||||
* @param content 总结内容
|
||||
* @throws Exception 异常
|
||||
*/
|
||||
public static void doUpdateProjectSummary(HttpRequest request, int type, int date, String content) throws Exception
|
||||
{
|
||||
Selector selector = new Selector("summaryId");
|
||||
selector.addMust("projectId", ZpmProjectDao.getProjectId(request));
|
||||
selector.addMust("summaryType", type);
|
||||
selector.addMust("summaryDate", date);
|
||||
ZpmProjectSummary item = ORM.get(ZTable.class, request).item(ZpmProjectSummary.class, selector);
|
||||
|
||||
if (item == null)
|
||||
{//不存在则增加
|
||||
item = new ZpmProjectSummary();
|
||||
item.setProjectId(ZpmProjectDao.getProjectId(request));
|
||||
item.setSummaryId(Ids.longId());
|
||||
item.setSummaryType(type);
|
||||
item.setSummaryDate(date);
|
||||
item.setSummaryModified(Sqls.nowTimestamp());
|
||||
item.setSummaryContent(content);
|
||||
|
||||
ORM.get(ZTable.class, request).insert(item);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "增加了总结", item.getSummaryContent());
|
||||
}
|
||||
else
|
||||
{
|
||||
Updater updater = new Updater();
|
||||
updater.addMust("summaryId", item.getSummaryId());
|
||||
updater.addField("summaryModified", Sqls.nowTimestamp());
|
||||
updater.addField("summaryContent", content);
|
||||
|
||||
ORM.get(ZTable.class, request).update(ZpmProjectSummary.class, updater);
|
||||
|
||||
ZpmMemberDao.report(request, ZpmProjectDao.getProjectId(request), request.getSessionName(), "修改了总结", item.getSummaryContent());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.action;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.calendar.ZmrCalendarDao;
|
||||
import org.zhiqim.calendar.model.CalendarWeekModel;
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.core.Action;
|
||||
import org.zhiqim.kernel.util.DateTimes;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZTable;
|
||||
import org.zhiqim.orm.dbo.Selector;
|
||||
import org.zhiqim.plan.FpmPlanConstants;
|
||||
import org.zhiqim.plan.dbo.ZpmPersonPlan;
|
||||
import org.zhiqim.plan.dbo.ZpmPersonSummary;
|
||||
import org.zhiqim.plan.model.PersonDayModel;
|
||||
import org.zhiqim.plan.model.PersonModel;
|
||||
import org.zhiqim.plan.model.PersonPlanModel;
|
||||
import org.zhiqim.plan.model.PersonWeekModel;
|
||||
|
||||
/**
|
||||
* 个人计划总结月表
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-2 新建与整理
|
||||
*/
|
||||
public class PersonMonthAction implements Action, FpmPlanConstants
|
||||
{
|
||||
@Override
|
||||
public void execute(HttpRequest request) throws Exception
|
||||
{
|
||||
String operatorCode = request.getSessionName();
|
||||
person(request, operatorCode);
|
||||
}
|
||||
|
||||
public static void person(HttpRequest request, String operatorCode) throws Exception
|
||||
{
|
||||
//第一步,从页面中读出当前年月,并根据上下月参数找到对应的年月
|
||||
int year = request.getParameterInt("year", DateTimes.getCurrentYear());
|
||||
int month = request.getParameterInt("month", DateTimes.getCurrentMonth());
|
||||
|
||||
boolean isPrev = request.getParameterBoolean("prev");
|
||||
boolean isNext = request.getParameterBoolean("next");
|
||||
|
||||
if (isPrev)
|
||||
{
|
||||
year = month==1?year-1:year;
|
||||
month = month==1?12:month-1;
|
||||
}
|
||||
else if (isNext)
|
||||
{
|
||||
year = month==12?year+1:year;
|
||||
month = month==12?1:month+1;
|
||||
}
|
||||
|
||||
//第二步,查出上个月,当前月和下个月的个人计划&总结
|
||||
int prevYear = month==1?year-1:year;
|
||||
int prevMonth = month==1?12:month-1;
|
||||
|
||||
int nextYear = month==12?year+1:year;
|
||||
int nextMonth = month==12?1:month+1;
|
||||
|
||||
Selector selector = new Selector();
|
||||
selector.addMust("operatorCode", operatorCode);
|
||||
selector.addMustThenG("planDate", prevYear * 10000 + prevMonth * 100);
|
||||
selector.addMustThenL("planDate", nextYear * 10000 + (nextMonth+1) * 100);
|
||||
List<ZpmPersonPlan> planList = ORM.get(ZTable.class, request).list(ZpmPersonPlan.class, selector);
|
||||
|
||||
Selector selector2 = new Selector();
|
||||
selector2.addMust("operatorCode", operatorCode);
|
||||
selector2.addMustThenG("summaryDate", prevYear * 10000 + prevMonth * 100);
|
||||
selector2.addMustThenL("summaryDate", nextYear * 10000 + (nextMonth+1) * 100);
|
||||
List<ZpmPersonSummary> summaryList = ORM.get(ZTable.class, request).list(ZpmPersonSummary.class, selector2);
|
||||
|
||||
//第三步,组装有效周列表
|
||||
List<PersonWeekModel> weekList = new ArrayList<>();
|
||||
for (CalendarWeekModel week : ZmrCalendarDao.getCalendarWeekList(request, year, month))
|
||||
{
|
||||
weekList.add(new PersonWeekModel(week));
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//以下为内容填充
|
||||
/******************************************************************************/
|
||||
|
||||
//第四步,找到周下面所有的计划
|
||||
for (PersonWeekModel week : weekList)
|
||||
{
|
||||
CalendarWeekModel key = week.getKey();
|
||||
List<ZpmPersonPlan> pList = getPlan(planList, key.getBeginDate(), key.getEndDate());
|
||||
if (pList.isEmpty())
|
||||
{//没有计划,则插入一个空项计划
|
||||
PersonPlanModel model = new PersonPlanModel();
|
||||
model.setDate(key.getBeginDate());
|
||||
model.setSeq(1);
|
||||
|
||||
week.addPlanModel(model);
|
||||
}
|
||||
else
|
||||
{//有则用计划表
|
||||
for (ZpmPersonPlan plan : pList)
|
||||
{
|
||||
PersonPlanModel model = new PersonPlanModel();
|
||||
model.setId(plan.getPlanId());
|
||||
model.setDate(plan.getPlanDate());
|
||||
model.setSeq(plan.getPlanSeq());
|
||||
model.setStatus(plan.getPlanStatus());
|
||||
model.setContent(plan.getPlanContent());
|
||||
|
||||
week.addPlanModel(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//第五步,生成日总结
|
||||
for (PersonWeekModel week : weekList)
|
||||
{
|
||||
CalendarWeekModel key = week.getKey();
|
||||
int beginDate = key.getBeginDate();
|
||||
int endDate = key.getEndDate();
|
||||
for (int date=beginDate;date<=endDate;date=DateTimes.getNextDateInt(date))
|
||||
{
|
||||
PersonDayModel model = new PersonDayModel();
|
||||
model.setDate(date);
|
||||
model.setWeek(DateTimes.getDateWeek7(date));
|
||||
|
||||
ZpmPersonSummary summary = getPersonSummary(summaryList, date, PS_SUM_DAY);
|
||||
if (summary != null)
|
||||
{
|
||||
model.setId(summary.getSummaryId());
|
||||
model.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
week.addDayModel(model);
|
||||
}
|
||||
}
|
||||
|
||||
//第六步,生成周总结
|
||||
for (PersonWeekModel week : weekList)
|
||||
{
|
||||
CalendarWeekModel key = week.getKey();
|
||||
PersonModel model = new PersonModel();
|
||||
model.setType(PS_SUM_WEEK);
|
||||
model.setDate(key.getBeginDate());
|
||||
|
||||
ZpmPersonSummary summary = getWeekSummary(summaryList, key.getBeginDate(), key.getEndDate());
|
||||
if (summary != null)
|
||||
{
|
||||
model.setId(summary.getSummaryId());
|
||||
model.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
week.setWeek(model);
|
||||
}
|
||||
|
||||
//第七步,生成月总结
|
||||
int monthDate = year * 10000 + month * 100 + 1;
|
||||
|
||||
PersonModel monthModel = new PersonModel();
|
||||
monthModel.setType(PS_SUM_MONTH);
|
||||
monthModel.setDate(monthDate);
|
||||
|
||||
ZpmPersonSummary summary = getPersonSummary(summaryList, monthDate, PS_SUM_MONTH);
|
||||
if (summary != null)
|
||||
{
|
||||
monthModel.setId(summary.getSummaryId());
|
||||
monthModel.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
request.setAttribute("year", year);
|
||||
request.setAttribute("month", month);
|
||||
request.setAttribute("weekList", weekList);
|
||||
request.setAttribute("monthModel", monthModel);
|
||||
}
|
||||
|
||||
/*********************************************************************************************************/
|
||||
//内部实现方法
|
||||
/*********************************************************************************************************/
|
||||
|
||||
/** 找出本周的计划 */
|
||||
private static List<ZpmPersonPlan> getPlan(List<ZpmPersonPlan> planList, int beginDate, int endDate)
|
||||
{
|
||||
List<ZpmPersonPlan> pList = new ArrayList<>();
|
||||
for (ZpmPersonPlan item : planList)
|
||||
{
|
||||
if (item.getPlanDate() < beginDate || item.getPlanDate() > endDate)
|
||||
continue;
|
||||
|
||||
pList.add(item);
|
||||
}
|
||||
|
||||
return pList;
|
||||
}
|
||||
|
||||
/** 找出本周的总结 */
|
||||
private static ZpmPersonSummary getWeekSummary(List<ZpmPersonSummary> planList, int beginDate, int endDate)
|
||||
{
|
||||
for (ZpmPersonSummary item : planList)
|
||||
{
|
||||
if (item.getSummaryType() != PS_SUM_WEEK)
|
||||
continue;
|
||||
|
||||
if (item.getSummaryDate() < beginDate || item.getSummaryDate() > endDate)
|
||||
continue;
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** 找出类型和日期对应的总结 */
|
||||
private static ZpmPersonSummary getPersonSummary(List<ZpmPersonSummary> summaryList, int date, int type)
|
||||
{
|
||||
for (ZpmPersonSummary item : summaryList)
|
||||
{
|
||||
if (item.getSummaryDate() == date && item.getSummaryType() == type)
|
||||
return item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.action;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.core.Action;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZView;
|
||||
import org.zhiqim.orm.dbo.Selector;
|
||||
import org.zhiqim.project.dbo.ZpmPersonReaderEx;
|
||||
|
||||
/**
|
||||
* 向我汇报的成员列表
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-7 新建与整理
|
||||
*/
|
||||
public class PersonReaderAction implements Action
|
||||
{
|
||||
@Override
|
||||
public void execute(HttpRequest request) throws Exception
|
||||
{
|
||||
List<ZpmPersonReaderEx> list = ORM.get(ZView.class, request).list(ZpmPersonReaderEx.class, new Selector("readerCode", request.getSessionName()));
|
||||
|
||||
request.setAttribute("list", list);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.action;
|
||||
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.core.Action;
|
||||
import org.zhiqim.kernel.util.Validates;
|
||||
import org.zhiqim.manager.dbo.ZmrOperator;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZTable;
|
||||
import org.zhiqim.plan.FpmPlanConstants;
|
||||
import org.zhiqim.project.dbo.ZpmPersonReader;
|
||||
|
||||
/**
|
||||
* 查看个人计划总结月表
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-2 新建与整理
|
||||
*/
|
||||
public class PersonReviewAction implements Action, FpmPlanConstants
|
||||
{
|
||||
@Override
|
||||
public void execute(HttpRequest request) throws Exception
|
||||
{
|
||||
String operatorCode = request.getParameter("operatorCode");
|
||||
if (Validates.isEmptyBlank(operatorCode))
|
||||
{
|
||||
request.returnHistory("请选择一个成员");
|
||||
return;
|
||||
}
|
||||
|
||||
ZmrOperator operator = ORM.get(ZTable.class, request).item(ZmrOperator.class, operatorCode);
|
||||
if (operator == null)
|
||||
{
|
||||
request.returnHistory("请选择一个有效成员");
|
||||
return;
|
||||
}
|
||||
|
||||
ZpmPersonReader reader = ORM.get(ZTable.class, request).item(ZpmPersonReader.class, operatorCode, request.getSessionName());
|
||||
if (reader == null)
|
||||
{
|
||||
request.returnHistory("请选择一个有权限的成员");
|
||||
return;
|
||||
}
|
||||
|
||||
request.setAttribute("operator", operator);
|
||||
|
||||
//生成个人计划总结月表
|
||||
PersonMonthAction.person(request, operatorCode);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.action;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.calendar.ZmrCalendarDao;
|
||||
import org.zhiqim.calendar.model.CalendarWeekModel;
|
||||
import org.zhiqim.httpd.HttpRequest;
|
||||
import org.zhiqim.httpd.context.core.Action;
|
||||
import org.zhiqim.kernel.util.DateTimes;
|
||||
import org.zhiqim.kernel.util.Ids;
|
||||
import org.zhiqim.orm.ORM;
|
||||
import org.zhiqim.orm.ZTable;
|
||||
import org.zhiqim.orm.dbo.Selector;
|
||||
import org.zhiqim.plan.FpmPlanConstants;
|
||||
import org.zhiqim.plan.dbo.ZpmProjectPlan;
|
||||
import org.zhiqim.plan.dbo.ZpmProjectSummary;
|
||||
import org.zhiqim.plan.model.ProjectModel;
|
||||
import org.zhiqim.plan.model.ProjectPlanModel;
|
||||
import org.zhiqim.plan.model.ProjectWeekModel;
|
||||
import org.zhiqim.project.ZpmProjectDao;
|
||||
import org.zhiqim.project.dbo.ZpmProject;
|
||||
|
||||
/**
|
||||
* 项目计划总结月表
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-2 新建与整理
|
||||
*/
|
||||
public class ProjectMonthAction implements Action, FpmPlanConstants
|
||||
{
|
||||
@Override
|
||||
public void execute(HttpRequest request) throws Exception
|
||||
{
|
||||
long projectId = ZpmProjectDao.getProjectId(request);
|
||||
ZpmProject project = ORM.get(ZTable.class, request).item(ZpmProject.class, projectId);
|
||||
if(project == null)
|
||||
{
|
||||
request.returnHistory("请选择一个有效的项目");
|
||||
return;
|
||||
}
|
||||
|
||||
//第一步,从页面中读出当前年月,并根据上下月参数找到对应的年月
|
||||
int year = request.getParameterInt("year", DateTimes.getCurrentYear());
|
||||
int month = request.getParameterInt("month", DateTimes.getCurrentMonth());
|
||||
|
||||
boolean isPrev = request.getParameterBoolean("prev");
|
||||
boolean isNext = request.getParameterBoolean("next");
|
||||
|
||||
if (isPrev)
|
||||
{
|
||||
year = month==1?year-1:year;
|
||||
month = month==1?12:month-1;
|
||||
}
|
||||
else if (isNext)
|
||||
{
|
||||
year = month==12?year+1:year;
|
||||
month = month==12?1:month+1;
|
||||
}
|
||||
|
||||
//第二步,查出上个月,当前月和下个月的个人计划&总结
|
||||
int prevYear = month==1?year-1:year;
|
||||
int prevMonth = month==1?12:month-1;
|
||||
|
||||
int nextYear = month==12?year+1:year;
|
||||
int nextMonth = month==12?1:month+1;
|
||||
|
||||
Selector selector = new Selector();
|
||||
selector.addMust("projectId", projectId);
|
||||
selector.addMustThenG("planDate", prevYear * 10000 + prevMonth * 100);
|
||||
selector.addMustThenL("planDate", nextYear * 10000 + (nextMonth+1) * 100);
|
||||
List<ZpmProjectPlan> planList = ORM.get(ZTable.class, request).list(ZpmProjectPlan.class, selector);
|
||||
|
||||
Selector selector2 = new Selector();
|
||||
selector2.addMust("projectId", projectId);
|
||||
selector2.addMustThenG("summaryDate", prevYear * 10000 + prevMonth * 100);
|
||||
selector2.addMustThenL("summaryDate", nextYear * 10000 + (nextMonth+1) * 100);
|
||||
List<ZpmProjectSummary> summaryList = ORM.get(ZTable.class, request).list(ZpmProjectSummary.class, selector2);
|
||||
|
||||
//第三步,组装有效周列表
|
||||
List<ProjectWeekModel> weekList = new ArrayList<>();
|
||||
for (CalendarWeekModel week : ZmrCalendarDao.getCalendarWeekList(request, year, month))
|
||||
{
|
||||
weekList.add(new ProjectWeekModel(week));
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
//以下为内容填充
|
||||
/******************************************************************************/
|
||||
|
||||
//第四步,找到周下面所有的计划
|
||||
for (ProjectWeekModel week : weekList)
|
||||
{
|
||||
CalendarWeekModel key = week.getKey();
|
||||
List<ZpmProjectPlan> pList = getPlan(planList, key.getBeginDate(), key.getEndDate());
|
||||
if (pList.isEmpty())
|
||||
{//没有计划,则插入一个空项计划
|
||||
ProjectPlanModel model = new ProjectPlanModel();
|
||||
model.setId(Ids.longId());
|
||||
model.setDate(key.getBeginDate());
|
||||
model.setPlanSeq(1);
|
||||
|
||||
week.addPlanModel(model);
|
||||
}
|
||||
else
|
||||
{//有则用计划表
|
||||
for (ZpmProjectPlan plan : pList)
|
||||
{
|
||||
ProjectPlanModel model = new ProjectPlanModel();
|
||||
model.setId(plan.getPlanId());
|
||||
model.setDate(plan.getPlanDate());
|
||||
model.setContent(plan.getPlanContent());
|
||||
|
||||
model.setPlanSeq(plan.getPlanSeq());
|
||||
model.setPlanStatus(plan.getPlanStatus());
|
||||
model.setPlanBeginDate(plan.getPlanBeginDate());
|
||||
model.setPlanEndDate(plan.getPlanEndDate());
|
||||
model.setActualBeginDate(plan.getActualBeginDate());
|
||||
model.setActualEndDate(plan.getActualEndDate());
|
||||
model.setPlanManager(plan.getPlanManager());
|
||||
model.setPlanProgress(plan.getPlanProgress());
|
||||
|
||||
week.addPlanModel(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//第五步,生成周目标&周总结
|
||||
for (ProjectWeekModel week : weekList)
|
||||
{
|
||||
CalendarWeekModel key = week.getKey();
|
||||
|
||||
//周目标
|
||||
ProjectModel aModel = new ProjectModel();
|
||||
aModel.setType(PJ_WEEK_AIM);
|
||||
aModel.setDate(key.getBeginDate());
|
||||
|
||||
ZpmProjectSummary summary = getWeekAim(summaryList, key.getBeginDate(), key.getEndDate());
|
||||
if (summary != null)
|
||||
{
|
||||
aModel.setId(summary.getSummaryId());
|
||||
aModel.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
week.setWeekAim(aModel);
|
||||
|
||||
//周总结
|
||||
ProjectModel sModel = new ProjectModel();
|
||||
sModel.setType(PJ_WEEK_SUM);
|
||||
sModel.setDate(key.getBeginDate());
|
||||
|
||||
summary = getWeekSummary(summaryList, key.getBeginDate(), key.getEndDate());
|
||||
if (summary != null)
|
||||
{
|
||||
sModel.setId(summary.getSummaryId());
|
||||
sModel.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
week.setWeekSummary(sModel);
|
||||
}
|
||||
|
||||
//第六步,生成月总结
|
||||
int monthDate = year * 10000 + month * 100 + 1;
|
||||
|
||||
ProjectModel monthModel = new ProjectModel();
|
||||
monthModel.setType(PJ_MONTH_SUM);
|
||||
monthModel.setDate(monthDate);
|
||||
|
||||
ZpmProjectSummary summary = getProjectSummary(summaryList, monthDate, PJ_MONTH_SUM);
|
||||
if (summary != null)
|
||||
{
|
||||
monthModel.setId(summary.getSummaryId());
|
||||
monthModel.setContent(summary.getSummaryContent());
|
||||
}
|
||||
|
||||
request.setAttribute("project", project);
|
||||
request.setAttribute("year", year);
|
||||
request.setAttribute("month", month);
|
||||
request.setAttribute("weekList", weekList);
|
||||
request.setAttribute("monthModel", monthModel);
|
||||
}
|
||||
|
||||
/*********************************************************************************************************/
|
||||
//内部实现方法
|
||||
/*********************************************************************************************************/
|
||||
|
||||
/** 找出本周的计划 */
|
||||
private static List<ZpmProjectPlan> getPlan(List<ZpmProjectPlan> planList, int beginDate, int endDate)
|
||||
{
|
||||
List<ZpmProjectPlan> pList = new ArrayList<>();
|
||||
for (ZpmProjectPlan item : planList)
|
||||
{
|
||||
if (item.getPlanDate() < beginDate || item.getPlanDate() > endDate)
|
||||
continue;
|
||||
|
||||
pList.add(item);
|
||||
}
|
||||
|
||||
return pList;
|
||||
}
|
||||
|
||||
/** 找出本周的目标 */
|
||||
private static ZpmProjectSummary getWeekAim(List<ZpmProjectSummary> planList, int beginDate, int endDate)
|
||||
{
|
||||
for (ZpmProjectSummary item : planList)
|
||||
{
|
||||
if (item.getSummaryType() != PJ_WEEK_AIM)
|
||||
continue;
|
||||
|
||||
if (item.getSummaryDate() < beginDate || item.getSummaryDate() > endDate)
|
||||
continue;
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** 找出本周的总结 */
|
||||
private static ZpmProjectSummary getWeekSummary(List<ZpmProjectSummary> planList, int beginDate, int endDate)
|
||||
{
|
||||
for (ZpmProjectSummary item : planList)
|
||||
{
|
||||
if (item.getSummaryType() != PJ_WEEK_SUM)
|
||||
continue;
|
||||
|
||||
if (item.getSummaryDate() < beginDate || item.getSummaryDate() > endDate)
|
||||
continue;
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** 找出类型和日期对应的总结 */
|
||||
private static ZpmProjectSummary getProjectSummary(List<ZpmProjectSummary> summaryList, int date, int type)
|
||||
{
|
||||
for (ZpmProjectSummary item : summaryList)
|
||||
{
|
||||
if (item.getSummaryDate() == date && item.getSummaryType() == type)
|
||||
return item;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.dbo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.json.Jsons;
|
||||
import org.zhiqim.orm.annotation.AnTable;
|
||||
import org.zhiqim.orm.annotation.AnTableField;
|
||||
|
||||
/**
|
||||
* 个人计划表 对应表《ZPM_PERSON_PLAN》
|
||||
*/
|
||||
@AnAlias("ZpmPersonPlan")
|
||||
@AnTable(table="ZPM_PERSON_PLAN", key="PLAN_ID", type="InnoDB")
|
||||
public class ZpmPersonPlan implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@AnTableField(column="OPERATOR_CODE", type="string,32", notNull=true) private String operatorCode; //1.操作员编号
|
||||
@AnTableField(column="PLAN_ID", type="long", notNull=true) private long planId; //2.计划编号
|
||||
@AnTableField(column="PLAN_DATE", type="int", notNull=true) private int planDate; //3.计划日期,格式yyyyMMdd,如20171101
|
||||
@AnTableField(column="PLAN_STATUS", type="byte", notNull=true) private int planStatus; //4.计划状态,0:正常,1:新增,2:延误,3:取消
|
||||
@AnTableField(column="PLAN_SEQ", type="byte", notNull=true) private int planSeq; //5.计划序号,从1开始,周内排序
|
||||
@AnTableField(column="PLAN_MODIFIED", type="datetime", notNull=true) private Timestamp planModified; //6.计划最后更新时间
|
||||
@AnTableField(column="PLAN_CONTENT", type="string,256", notNull=false) private String planContent; //7.计划内容
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return Jsons.toString(this);
|
||||
}
|
||||
|
||||
public String getOperatorCode()
|
||||
{
|
||||
return operatorCode;
|
||||
}
|
||||
|
||||
public void setOperatorCode(String operatorCode)
|
||||
{
|
||||
this.operatorCode = operatorCode;
|
||||
}
|
||||
|
||||
public long getPlanId()
|
||||
{
|
||||
return planId;
|
||||
}
|
||||
|
||||
public void setPlanId(long planId)
|
||||
{
|
||||
this.planId = planId;
|
||||
}
|
||||
|
||||
public int getPlanDate()
|
||||
{
|
||||
return planDate;
|
||||
}
|
||||
|
||||
public void setPlanDate(int planDate)
|
||||
{
|
||||
this.planDate = planDate;
|
||||
}
|
||||
|
||||
public int getPlanStatus()
|
||||
{
|
||||
return planStatus;
|
||||
}
|
||||
|
||||
public void setPlanStatus(int planStatus)
|
||||
{
|
||||
this.planStatus = planStatus;
|
||||
}
|
||||
|
||||
public int getPlanSeq()
|
||||
{
|
||||
return planSeq;
|
||||
}
|
||||
|
||||
public void setPlanSeq(int planSeq)
|
||||
{
|
||||
this.planSeq = planSeq;
|
||||
}
|
||||
|
||||
public Timestamp getPlanModified()
|
||||
{
|
||||
return planModified;
|
||||
}
|
||||
|
||||
public void setPlanModified(Timestamp planModified)
|
||||
{
|
||||
this.planModified = planModified;
|
||||
}
|
||||
|
||||
public String getPlanContent()
|
||||
{
|
||||
return planContent;
|
||||
}
|
||||
|
||||
public void setPlanContent(String planContent)
|
||||
{
|
||||
this.planContent = planContent;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.dbo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.json.Jsons;
|
||||
import org.zhiqim.orm.annotation.AnTable;
|
||||
import org.zhiqim.orm.annotation.AnTableField;
|
||||
|
||||
/**
|
||||
* 个人总结表 对应表《ZPM_PERSON_SUMMARY》
|
||||
*/
|
||||
@AnAlias("ZpmPersonSummary")
|
||||
@AnTable(table="ZPM_PERSON_SUMMARY", key="SUMMARY_ID", type="InnoDB")
|
||||
public class ZpmPersonSummary implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@AnTableField(column="OPERATOR_CODE", type="string,32", notNull=true) private String operatorCode; //1.操作员编号
|
||||
@AnTableField(column="SUMMARY_ID", type="long", notNull=true) private long summaryId; //2.总结编号
|
||||
@AnTableField(column="SUMMARY_TYPE", type="byte", notNull=true) private int summaryType; //3.总结类型,1:日总结,2:周总结,3:月总结
|
||||
@AnTableField(column="SUMMARY_DATE", type="int", notNull=true) private int summaryDate; //4.总结日期,格式yyyyMMdd,如20171101
|
||||
@AnTableField(column="SUMMARY_MODIFIED", type="datetime", notNull=true) private Timestamp summaryModified; //5.总结最后更新时间
|
||||
@AnTableField(column="SUMMARY_CONTENT", type="string,1000", notNull=false) private String summaryContent; //6.总结内容,最长1000字
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return Jsons.toString(this);
|
||||
}
|
||||
|
||||
public String getOperatorCode()
|
||||
{
|
||||
return operatorCode;
|
||||
}
|
||||
|
||||
public void setOperatorCode(String operatorCode)
|
||||
{
|
||||
this.operatorCode = operatorCode;
|
||||
}
|
||||
|
||||
public long getSummaryId()
|
||||
{
|
||||
return summaryId;
|
||||
}
|
||||
|
||||
public void setSummaryId(long summaryId)
|
||||
{
|
||||
this.summaryId = summaryId;
|
||||
}
|
||||
|
||||
public int getSummaryType()
|
||||
{
|
||||
return summaryType;
|
||||
}
|
||||
|
||||
public void setSummaryType(int summaryType)
|
||||
{
|
||||
this.summaryType = summaryType;
|
||||
}
|
||||
|
||||
public int getSummaryDate()
|
||||
{
|
||||
return summaryDate;
|
||||
}
|
||||
|
||||
public void setSummaryDate(int summaryDate)
|
||||
{
|
||||
this.summaryDate = summaryDate;
|
||||
}
|
||||
|
||||
public Timestamp getSummaryModified()
|
||||
{
|
||||
return summaryModified;
|
||||
}
|
||||
|
||||
public void setSummaryModified(Timestamp summaryModified)
|
||||
{
|
||||
this.summaryModified = summaryModified;
|
||||
}
|
||||
|
||||
public String getSummaryContent()
|
||||
{
|
||||
return summaryContent;
|
||||
}
|
||||
|
||||
public void setSummaryContent(String summaryContent)
|
||||
{
|
||||
this.summaryContent = summaryContent;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.dbo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.json.Jsons;
|
||||
import org.zhiqim.orm.annotation.AnTable;
|
||||
import org.zhiqim.orm.annotation.AnTableField;
|
||||
|
||||
/**
|
||||
* 项目计划表 对应表《ZPM_PROJECT_PLAN》
|
||||
*/
|
||||
@AnAlias("ZpmProjectPlan")
|
||||
@AnTable(table="ZPM_PROJECT_PLAN", key="PLAN_ID", type="InnoDB")
|
||||
public class ZpmProjectPlan implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@AnTableField(column="PROJECT_ID", type="long", notNull=true) private long projectId; //1.项目编号
|
||||
@AnTableField(column="PLAN_ID", type="long", notNull=true) private long planId; //2.计划编号
|
||||
@AnTableField(column="PLAN_DATE", type="int", notNull=true) private int planDate; //3.计划日期,格式yyyyMMdd,如20171101
|
||||
@AnTableField(column="PLAN_STATUS", type="byte", notNull=true) private int planStatus; //4.计划状态,0:正常,1:新增,2:延误,3:取消
|
||||
@AnTableField(column="PLAN_SEQ", type="byte", notNull=true) private int planSeq; //5.计划序号,从1开始,周内排序
|
||||
@AnTableField(column="PLAN_PROGRESS", type="byte", notNull=true) private int planProgress; //6.计划进度,0-100
|
||||
@AnTableField(column="PLAN_MODIFIED", type="datetime", notNull=true) private Timestamp planModified; //7.计划更新时间
|
||||
@AnTableField(column="PLAN_CONTENT", type="string,128", notNull=false) private String planContent; //8.计划内容
|
||||
@AnTableField(column="PLAN_MANAGER", type="string,32", notNull=false) private String planManager; //9.计划负责人,多个用逗号隔开
|
||||
@AnTableField(column="PLAN_BEGIN_DATE", type="string,10,char", notNull=false) private String planBeginDate; //10.计划开始日期
|
||||
@AnTableField(column="PLAN_END_DATE", type="string,10,char", notNull=false) private String planEndDate; //11.计划结束日期
|
||||
@AnTableField(column="ACTUAL_BEGIN_DATE", type="string,10,char", notNull=false) private String actualBeginDate; //12.实际开始日期
|
||||
@AnTableField(column="ACTUAL_END_DATE", type="string,10,char", notNull=false) private String actualEndDate; //13.实际结束日期
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return Jsons.toString(this);
|
||||
}
|
||||
|
||||
public long getProjectId()
|
||||
{
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public void setProjectId(long projectId)
|
||||
{
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public long getPlanId()
|
||||
{
|
||||
return planId;
|
||||
}
|
||||
|
||||
public void setPlanId(long planId)
|
||||
{
|
||||
this.planId = planId;
|
||||
}
|
||||
|
||||
public int getPlanDate()
|
||||
{
|
||||
return planDate;
|
||||
}
|
||||
|
||||
public void setPlanDate(int planDate)
|
||||
{
|
||||
this.planDate = planDate;
|
||||
}
|
||||
|
||||
public int getPlanStatus()
|
||||
{
|
||||
return planStatus;
|
||||
}
|
||||
|
||||
public void setPlanStatus(int planStatus)
|
||||
{
|
||||
this.planStatus = planStatus;
|
||||
}
|
||||
|
||||
public int getPlanSeq()
|
||||
{
|
||||
return planSeq;
|
||||
}
|
||||
|
||||
public void setPlanSeq(int planSeq)
|
||||
{
|
||||
this.planSeq = planSeq;
|
||||
}
|
||||
|
||||
public int getPlanProgress()
|
||||
{
|
||||
return planProgress;
|
||||
}
|
||||
|
||||
public void setPlanProgress(int planProgress)
|
||||
{
|
||||
this.planProgress = planProgress;
|
||||
}
|
||||
|
||||
public Timestamp getPlanModified()
|
||||
{
|
||||
return planModified;
|
||||
}
|
||||
|
||||
public void setPlanModified(Timestamp planModified)
|
||||
{
|
||||
this.planModified = planModified;
|
||||
}
|
||||
|
||||
public String getPlanContent()
|
||||
{
|
||||
return planContent;
|
||||
}
|
||||
|
||||
public void setPlanContent(String planContent)
|
||||
{
|
||||
this.planContent = planContent;
|
||||
}
|
||||
|
||||
public String getPlanManager()
|
||||
{
|
||||
return planManager;
|
||||
}
|
||||
|
||||
public void setPlanManager(String planManager)
|
||||
{
|
||||
this.planManager = planManager;
|
||||
}
|
||||
|
||||
public String getPlanBeginDate()
|
||||
{
|
||||
return planBeginDate;
|
||||
}
|
||||
|
||||
public void setPlanBeginDate(String planBeginDate)
|
||||
{
|
||||
this.planBeginDate = planBeginDate;
|
||||
}
|
||||
|
||||
public String getPlanEndDate()
|
||||
{
|
||||
return planEndDate;
|
||||
}
|
||||
|
||||
public void setPlanEndDate(String planEndDate)
|
||||
{
|
||||
this.planEndDate = planEndDate;
|
||||
}
|
||||
|
||||
public String getActualBeginDate()
|
||||
{
|
||||
return actualBeginDate;
|
||||
}
|
||||
|
||||
public void setActualBeginDate(String actualBeginDate)
|
||||
{
|
||||
this.actualBeginDate = actualBeginDate;
|
||||
}
|
||||
|
||||
public String getActualEndDate()
|
||||
{
|
||||
return actualEndDate;
|
||||
}
|
||||
|
||||
public void setActualEndDate(String actualEndDate)
|
||||
{
|
||||
this.actualEndDate = actualEndDate;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.dbo;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
import org.zhiqim.kernel.annotation.AnAlias;
|
||||
import org.zhiqim.kernel.json.Jsons;
|
||||
import org.zhiqim.orm.annotation.AnTable;
|
||||
import org.zhiqim.orm.annotation.AnTableField;
|
||||
|
||||
/**
|
||||
* 项目总结表 对应表《ZPM_PROJECT_SUMMARY》
|
||||
*/
|
||||
@AnAlias("ZpmProjectSummary")
|
||||
@AnTable(table="ZPM_PROJECT_SUMMARY", key="SUMMARY_ID", type="InnoDB")
|
||||
public class ZpmProjectSummary implements Serializable
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@AnTableField(column="PROJECT_ID", type="long", notNull=true) private long projectId; //1.项目编号
|
||||
@AnTableField(column="SUMMARY_ID", type="long", notNull=true) private long summaryId; //2.总结编号
|
||||
@AnTableField(column="SUMMARY_TYPE", type="byte", notNull=true) private int summaryType; //3.总结类型,1:周目标,2:周总结,3:月总结
|
||||
@AnTableField(column="SUMMARY_DATE", type="int", notNull=true) private int summaryDate; //4.总结日期,格式yyyyMMdd,如20171101
|
||||
@AnTableField(column="SUMMARY_MODIFIED", type="datetime", notNull=true) private Timestamp summaryModified; //5.总结最后更新时间
|
||||
@AnTableField(column="SUMMARY_CONTENT", type="string,1000", notNull=false) private String summaryContent; //6.总结内容,最长1000字
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return Jsons.toString(this);
|
||||
}
|
||||
|
||||
public long getProjectId()
|
||||
{
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public void setProjectId(long projectId)
|
||||
{
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public long getSummaryId()
|
||||
{
|
||||
return summaryId;
|
||||
}
|
||||
|
||||
public void setSummaryId(long summaryId)
|
||||
{
|
||||
this.summaryId = summaryId;
|
||||
}
|
||||
|
||||
public int getSummaryType()
|
||||
{
|
||||
return summaryType;
|
||||
}
|
||||
|
||||
public void setSummaryType(int summaryType)
|
||||
{
|
||||
this.summaryType = summaryType;
|
||||
}
|
||||
|
||||
public int getSummaryDate()
|
||||
{
|
||||
return summaryDate;
|
||||
}
|
||||
|
||||
public void setSummaryDate(int summaryDate)
|
||||
{
|
||||
this.summaryDate = summaryDate;
|
||||
}
|
||||
|
||||
public Timestamp getSummaryModified()
|
||||
{
|
||||
return summaryModified;
|
||||
}
|
||||
|
||||
public void setSummaryModified(Timestamp summaryModified)
|
||||
{
|
||||
this.summaryModified = summaryModified;
|
||||
}
|
||||
|
||||
public String getSummaryContent()
|
||||
{
|
||||
return summaryContent;
|
||||
}
|
||||
|
||||
public void setSummaryContent(String summaryContent)
|
||||
{
|
||||
this.summaryContent = summaryContent;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
/**
|
||||
* 个人日总结模型,在个人计划总结模型上增加星期
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class PersonDayModel extends PersonModel
|
||||
{
|
||||
private int week;
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return PS_SUM_DAY;
|
||||
}
|
||||
|
||||
public int getWeek()
|
||||
{
|
||||
return week;
|
||||
}
|
||||
|
||||
public void setWeek(int week)
|
||||
{
|
||||
this.week = week;
|
||||
}
|
||||
|
||||
public String getWeekString()
|
||||
{
|
||||
switch (week)
|
||||
{
|
||||
case 1:return "周一";
|
||||
case 2:return "周二";
|
||||
case 3:return "周三";
|
||||
case 4:return "周四";
|
||||
case 5:return "周五";
|
||||
case 6:return "周六";
|
||||
case 7:return "周日";
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
import org.zhiqim.plan.FpmPlanConstants;
|
||||
|
||||
/**
|
||||
* 个人计划总结模型
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class PersonModel implements FpmPlanConstants
|
||||
{
|
||||
private long id;
|
||||
private int type;
|
||||
|
||||
private int date;
|
||||
private int year;
|
||||
private int month;
|
||||
private int day;
|
||||
|
||||
private String content;
|
||||
|
||||
/***********************************************************/
|
||||
//设置标准参数
|
||||
/***********************************************************/
|
||||
|
||||
public void setId(long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setType(int type)
|
||||
{
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setDate(int date)
|
||||
{
|
||||
this.date = date;
|
||||
|
||||
this.year = date / 10000;
|
||||
this.month = date / 100 % 100;
|
||||
this.day = date % 10000;
|
||||
}
|
||||
|
||||
public void setContent(String content)
|
||||
{
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
//获取标准参数
|
||||
/***********************************************************/
|
||||
|
||||
public long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getDate()
|
||||
{
|
||||
return date;
|
||||
}
|
||||
|
||||
public String getContent()
|
||||
{
|
||||
return content;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
//获取年月日明细
|
||||
/***********************************************************/
|
||||
|
||||
public int getYear()
|
||||
{
|
||||
return year;
|
||||
}
|
||||
|
||||
public int getMonth()
|
||||
{
|
||||
return month;
|
||||
}
|
||||
|
||||
public int getDay()
|
||||
{
|
||||
return day;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
public class PersonPlanModel extends PersonModel
|
||||
{
|
||||
private int seq;
|
||||
private int status;
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return PS_PLAN;
|
||||
}
|
||||
|
||||
public int getSeq()
|
||||
{
|
||||
return seq;
|
||||
}
|
||||
|
||||
public void setSeq(int seq)
|
||||
{
|
||||
this.seq = seq;
|
||||
}
|
||||
|
||||
public int getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(int status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getColor()
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case 1: return "color:green";
|
||||
case 2: return "color:red";
|
||||
case 3: return "color:gray";
|
||||
default: return "color:#333";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.calendar.model.CalendarWeekModel;
|
||||
|
||||
/**
|
||||
* 个人计划总结一周模型
|
||||
* 1、日历星期KEY
|
||||
* 2、计划列表
|
||||
* 3、日总结列表
|
||||
* 4、周总结
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class PersonWeekModel
|
||||
{
|
||||
private CalendarWeekModel key;
|
||||
|
||||
private List<PersonPlanModel> planList;
|
||||
private List<PersonDayModel> dayList;
|
||||
private PersonModel week;
|
||||
|
||||
public PersonWeekModel(CalendarWeekModel key)
|
||||
{
|
||||
this.key = key;
|
||||
this.planList = new ArrayList<>();
|
||||
this.dayList = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addPlanModel(PersonPlanModel model)
|
||||
{
|
||||
planList.add(model);
|
||||
}
|
||||
|
||||
public void addDayModel(PersonDayModel model)
|
||||
{
|
||||
dayList.add(model);
|
||||
}
|
||||
|
||||
public CalendarWeekModel getKey()
|
||||
{
|
||||
return key;
|
||||
}
|
||||
|
||||
public PersonModel getWeek()
|
||||
{
|
||||
return week;
|
||||
}
|
||||
|
||||
public void setWeek(PersonModel week)
|
||||
{
|
||||
this.week = week;
|
||||
}
|
||||
|
||||
public List<PersonPlanModel> getPlanList()
|
||||
{
|
||||
return planList;
|
||||
}
|
||||
|
||||
public List<PersonDayModel> getDayList()
|
||||
{
|
||||
return dayList;
|
||||
}
|
||||
|
||||
public int getRowSize()
|
||||
{
|
||||
return planList.size() + dayList.size() + 1;
|
||||
}
|
||||
|
||||
public String getWeekBegin()
|
||||
{
|
||||
return key.getWeekBegin();
|
||||
}
|
||||
|
||||
public String getWeekEnd()
|
||||
{
|
||||
return key.getWeekEnd();
|
||||
}
|
||||
|
||||
public PersonPlanModel getFirstPlan()
|
||||
{
|
||||
return planList.get(0);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
import org.zhiqim.plan.FpmPlanConstants;
|
||||
|
||||
/**
|
||||
* 项目计划总结模型
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class ProjectModel implements FpmPlanConstants
|
||||
{
|
||||
private long id;
|
||||
private int type;
|
||||
|
||||
private int date;
|
||||
private int year;
|
||||
private int month;
|
||||
private int day;
|
||||
|
||||
private String content;
|
||||
|
||||
/***********************************************************/
|
||||
//设置标准参数
|
||||
/***********************************************************/
|
||||
|
||||
public void setId(long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setType(int type)
|
||||
{
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setDate(int date)
|
||||
{
|
||||
this.date = date;
|
||||
|
||||
this.year = date / 10000;
|
||||
this.month = date / 100 % 100;
|
||||
this.day = date % 10000;
|
||||
}
|
||||
|
||||
public void setContent(String content)
|
||||
{
|
||||
this.content = content;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
//获取标准参数
|
||||
/***********************************************************/
|
||||
|
||||
public long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
|
||||
public int getDate()
|
||||
{
|
||||
return date;
|
||||
}
|
||||
|
||||
public String getContent()
|
||||
{
|
||||
return content;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
//获取年月日明细
|
||||
/***********************************************************/
|
||||
|
||||
public int getYear()
|
||||
{
|
||||
return year;
|
||||
}
|
||||
|
||||
public int getMonth()
|
||||
{
|
||||
return month;
|
||||
}
|
||||
|
||||
public int getDay()
|
||||
{
|
||||
return day;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
/**
|
||||
* 项目计划模型
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class ProjectPlanModel extends ProjectModel
|
||||
{
|
||||
private int planSeq;
|
||||
private int planStatus;
|
||||
|
||||
private String planBeginDate;
|
||||
private String planEndDate;
|
||||
private String planManager;
|
||||
private int planProgress;
|
||||
private String actualBeginDate;
|
||||
private String actualEndDate;
|
||||
|
||||
|
||||
public int getType()
|
||||
{
|
||||
return PJ_PLAN;
|
||||
}
|
||||
|
||||
public int getPlanSeq()
|
||||
{
|
||||
return planSeq;
|
||||
}
|
||||
|
||||
public void setPlanSeq(int planSeq)
|
||||
{
|
||||
this.planSeq = planSeq;
|
||||
}
|
||||
|
||||
public int getPlanStatus()
|
||||
{
|
||||
return planStatus;
|
||||
}
|
||||
|
||||
public void setPlanStatus(int planStatus)
|
||||
{
|
||||
this.planStatus = planStatus;
|
||||
}
|
||||
|
||||
public String getPlanBeginDate()
|
||||
{
|
||||
return planBeginDate;
|
||||
}
|
||||
|
||||
public void setPlanBeginDate(String planBeginDate)
|
||||
{
|
||||
this.planBeginDate = planBeginDate;
|
||||
}
|
||||
|
||||
public String getPlanEndDate()
|
||||
{
|
||||
return planEndDate;
|
||||
}
|
||||
|
||||
public void setPlanEndDate(String planEndDate)
|
||||
{
|
||||
this.planEndDate = planEndDate;
|
||||
}
|
||||
|
||||
public String getPlanManager()
|
||||
{
|
||||
return planManager;
|
||||
}
|
||||
|
||||
public void setPlanManager(String planManager)
|
||||
{
|
||||
this.planManager = planManager;
|
||||
}
|
||||
|
||||
public int getPlanProgress()
|
||||
{
|
||||
return planProgress;
|
||||
}
|
||||
|
||||
public void setPlanProgress(int planProgress)
|
||||
{
|
||||
this.planProgress = planProgress;
|
||||
}
|
||||
|
||||
public String getActualBeginDate()
|
||||
{
|
||||
return actualBeginDate;
|
||||
}
|
||||
|
||||
public void setActualBeginDate(String actualBeginDate)
|
||||
{
|
||||
this.actualBeginDate = actualBeginDate;
|
||||
}
|
||||
|
||||
public String getActualEndDate()
|
||||
{
|
||||
return actualEndDate;
|
||||
}
|
||||
|
||||
public void setActualEndDate(String actualEndDate)
|
||||
{
|
||||
this.actualEndDate = actualEndDate;
|
||||
}
|
||||
|
||||
public String getColor()
|
||||
{
|
||||
switch (planStatus)
|
||||
{
|
||||
case 1: return "color:green";
|
||||
case 2: return "color:red";
|
||||
case 3: return "color:gray";
|
||||
default: return "color:#333";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
/*
|
||||
* 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[欢迎加盟知启蒙,一起邂逅框架梦]
|
||||
*
|
||||
* https://www.zhiqim.com/gitcan/zhiqim/zhiqim_plan.htm
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.zhiqim.plan.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.zhiqim.calendar.model.CalendarWeekModel;
|
||||
import org.zhiqim.kernel.util.Strings;
|
||||
|
||||
/**
|
||||
* 项目计划总结一周模型
|
||||
* 1、日历星期KEY
|
||||
* 2、计划列表
|
||||
* 3、周目标
|
||||
* 4、周总结
|
||||
*
|
||||
* @version v1.0.0 @author zouzhigang 2017-11-8 新建与整理
|
||||
*/
|
||||
public class ProjectWeekModel
|
||||
{
|
||||
private CalendarWeekModel key;
|
||||
|
||||
private List<ProjectPlanModel> planList;
|
||||
private ProjectModel weekAim;
|
||||
private ProjectModel weekSummary;
|
||||
|
||||
public ProjectWeekModel(CalendarWeekModel key)
|
||||
{
|
||||
this.key = key;
|
||||
this.planList = new ArrayList<>();
|
||||
}
|
||||
|
||||
public void addPlanModel(ProjectPlanModel model)
|
||||
{
|
||||
planList.add(model);
|
||||
}
|
||||
|
||||
public CalendarWeekModel getKey()
|
||||
{
|
||||
return key;
|
||||
}
|
||||
|
||||
public ProjectModel getWeekSummary()
|
||||
{
|
||||
return weekSummary;
|
||||
}
|
||||
|
||||
public void setWeekSummary(ProjectModel weekSummary)
|
||||
{
|
||||
this.weekSummary = weekSummary;
|
||||
}
|
||||
|
||||
public ProjectModel getWeekAim()
|
||||
{
|
||||
return weekAim;
|
||||
}
|
||||
|
||||
public void setWeekAim(ProjectModel weekAim)
|
||||
{
|
||||
this.weekAim = weekAim;
|
||||
}
|
||||
|
||||
public List<ProjectPlanModel> getPlanList()
|
||||
{
|
||||
return planList;
|
||||
}
|
||||
|
||||
public int getRowSize()
|
||||
{
|
||||
return planList.size() + 2;
|
||||
}
|
||||
|
||||
public String getWeekName()
|
||||
{
|
||||
int beginMonth = key.getBeginMonth();
|
||||
int beginDay = key.getBeginDay();
|
||||
int endMonth = key.getEndMonth();
|
||||
int endDay = key.getEndDay();
|
||||
|
||||
return Strings.prefixZero(beginMonth, 2) + "." + Strings.prefixZero(beginDay, 2) + "-" +
|
||||
Strings.prefixZero(endMonth, 2) + "." + Strings.prefixZero(endDay, 2);
|
||||
}
|
||||
|
||||
public String getWeekBegin()
|
||||
{
|
||||
return key.getWeekBegin();
|
||||
}
|
||||
|
||||
public String getWeekEnd()
|
||||
{
|
||||
return key.getWeekEnd();
|
||||
}
|
||||
|
||||
public ProjectPlanModel getFirstPlan()
|
||||
{
|
||||
return planList.get(0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user