Browse Source

初始化

车车 1 year ago
parent
commit
1432036ec3
100 changed files with 8794 additions and 1 deletions
  1. 48 0
      .gitignore
  2. 20 0
      LICENSE
  3. 36 0
      README.en.md
  4. 130 1
      README.md
  5. 12 0
      bin/clean.bat
  6. 12 0
      bin/package.bat
  7. 14 0
      bin/run.bat
  8. BIN
      doc/售前资料/苦糖果MES系统产品介绍(A4横板).pptx
  9. BIN
      doc/售前资料/苦糖果生产执行管理系统-【软件说明书】.docx
  10. 19 0
      doc/实施文档/inital.sql
  11. BIN
      doc/实施文档/ktgmes_20230505_115713.sql.gz
  12. BIN
      doc/实施文档/ktgmes_20231016_191857.sql.gz
  13. BIN
      doc/实施文档/ktgmes_20231105_214848.sql.gz
  14. BIN
      doc/实施文档/ktgmes_20231113_222038.sql.gz
  15. BIN
      doc/实施文档/ktgmes_20240909_111515.sql.gz
  16. 431 0
      doc/实施文档/sys_auto_code.sql
  17. 137 0
      doc/实施文档/sys_auto_code_part.sql
  18. 259 0
      doc/实施文档/sys_auto_code_result.sql
  19. 73 0
      doc/实施文档/sys_auto_code_rule.sql
  20. 157 0
      doc/实施文档/sys_dict_data.sql
  21. 64 0
      doc/实施文档/sys_dict_type.sql
  22. 368 0
      doc/实施文档/sys_menu.sql
  23. BIN
      doc/实施文档/初始化配置数据.xlsx
  24. BIN
      doc/实施文档/系统权限清单.xlsx
  25. BIN
      doc/开发进度/进度甘特图.xlsx
  26. BIN
      doc/设计文档/功能设计/功能清单.xlsx
  27. BIN
      doc/设计文档/原型设计/原型/APP.rp
  28. BIN
      doc/设计文档/原型设计/截图/工作站设置.png
  29. BIN
      doc/设计文档/原型设计/截图/库存现有量.png
  30. BIN
      doc/设计文档/原型设计/截图/报表设计.png
  31. BIN
      doc/设计文档/原型设计/截图/排班日历.png
  32. BIN
      doc/设计文档/原型设计/截图/条码管理.png
  33. BIN
      doc/设计文档/原型设计/截图/物料产品设置.png
  34. BIN
      doc/设计文档/原型设计/截图/生产排产.png
  35. BIN
      doc/设计文档/原型设计/截图/节假日设置.png
  36. BIN
      doc/设计文档/原型设计/截图/触控屏-登录页面.png
  37. BIN
      doc/设计文档/原型设计/截图/触控屏-质量管理.png
  38. BIN
      doc/设计文档/原型设计/草图/IQC-打印.png
  39. BIN
      doc/设计文档/原型设计/草图/IQC.png
  40. BIN
      doc/设计文档/原型设计/草图/IQC2.png
  41. BIN
      doc/设计文档/原型设计/草图/巡检计划.png
  42. BIN
      doc/设计文档/原型设计/草图/库存核心.png
  43. BIN
      doc/设计文档/原型设计/草图/手机端-首页.png
  44. BIN
      doc/设计文档/原型设计/草图/排产.png
  45. BIN
      doc/设计文档/原型设计/草图/排班日历-班组.png
  46. BIN
      doc/设计文档/原型设计/草图/排班日历-类型.png
  47. BIN
      doc/设计文档/原型设计/草图/排班计划.png
  48. BIN
      doc/设计文档/原型设计/草图/触控屏-生产.png
  49. BIN
      doc/设计文档/原型设计/草图/触控屏-登录.png
  50. BIN
      doc/设计文档/原型设计/草图/质量检测-缺陷记录.png
  51. BIN
      doc/设计文档/原型设计/草图/质量检测-缺陷记录2.png
  52. BIN
      doc/设计文档/原型设计/草图/质量检测.png
  53. BIN
      doc/设计文档/原型设计/草图/首页.png
  54. 172 0
      doc/设计文档/数据库设计/mes-cal.sql
  55. 372 0
      doc/设计文档/数据库设计/mes-dv.sql
  56. 372 0
      doc/设计文档/数据库设计/mes-md.sql
  57. 572 0
      doc/设计文档/数据库设计/mes-pro.sql
  58. 432 0
      doc/设计文档/数据库设计/mes-qc.sql
  59. 56 0
      doc/设计文档/数据库设计/mes-tm.sql
  60. 1390 0
      doc/设计文档/数据库设计/mes-wm.sql
  61. 143 0
      doc/设计文档/数据库设计/mes_sys.sql
  62. 17 0
      doc/设计文档/数据库设计/ureport_file_tbl.sql
  63. BIN
      doc/设计文档/数据库设计/数据库设计.xlsx
  64. 102 0
      ktg-admin/pom.xml
  65. 35 0
      ktg-admin/src/main/java/com/ktg/RuoYiApplication.java
  66. 18 0
      ktg-admin/src/main/java/com/ktg/RuoYiServletInitializer.java
  67. 94 0
      ktg-admin/src/main/java/com/ktg/web/controller/common/CaptchaController.java
  68. 180 0
      ktg-admin/src/main/java/com/ktg/web/controller/common/CommonController.java
  69. 53 0
      ktg-admin/src/main/java/com/ktg/web/controller/monitor/CacheController.java
  70. 27 0
      ktg-admin/src/main/java/com/ktg/web/controller/monitor/ServerController.java
  71. 69 0
      ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysLogininforController.java
  72. 69 0
      ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysOperlogController.java
  73. 92 0
      ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysUserOnlineController.java
  74. 78 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/LoginController.java
  75. 104 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAttachmentController.java
  76. 32 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeController.java
  77. 70 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodePartController.java
  78. 79 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeRuleController.java
  79. 134 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysConfigController.java
  80. 163 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java
  81. 121 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysDictDataController.java
  82. 132 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysDictTypeController.java
  83. 29 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysIndexController.java
  84. 86 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysLoginController.java
  85. 142 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysMenuController.java
  86. 121 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java
  87. 38 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageMobController.java
  88. 91 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysNoticeController.java
  89. 141 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysPostController.java
  90. 142 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysProfileController.java
  91. 38 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysRegisterController.java
  92. 245 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysRoleController.java
  93. 236 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java
  94. 103 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/UserController.java
  95. 52 0
      ktg-admin/src/main/java/com/ktg/web/controller/system/UserTaskController.java
  96. 25 0
      ktg-admin/src/main/java/com/ktg/web/controller/tool/SwaggerController.java
  97. 181 0
      ktg-admin/src/main/java/com/ktg/web/controller/tool/TestController.java
  98. 126 0
      ktg-admin/src/main/java/com/ktg/web/core/config/SwaggerConfig.java
  99. 39 0
      ktg-admin/src/main/java/com/ktg/web/core/config/UReportConfig.java
  100. 1 0
      ktg-admin/src/main/resources/META-INF/spring-devtools.properties

+ 48 - 0
.gitignore

@@ -0,0 +1,48 @@
+######################################################################
+# Build Tools
+
+.gradle
+/build/
+!gradle/wrapper/gradle-wrapper.jar
+
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+######################################################################
+# IDE
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### JRebel ###
+rebel.xml
+
+### NetBeans ###
+nbproject/private/
+build/*
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+
+######################################################################
+# Others
+*.log
+*.xml.versionsBackup
+*.swp
+
+!*/build/*.java
+!*/build/*.html
+!*/build/*.xml
+application-druid.yml

+ 20 - 0
LICENSE

@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2018 ktg
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 36 - 0
README.en.md

@@ -0,0 +1,36 @@
+# ktg-mes
+
+#### Description
+一款开源、免费的MES生产执行管理系统
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### Instructions
+
+1.  xxxx
+2.  xxxx
+3.  xxxx
+
+#### Contribution
+
+1.  Fork the repository
+2.  Create Feat_xxx branch
+3.  Commit your code
+4.  Create Pull Request
+
+
+#### Gitee Feature
+
+1.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4.  The most valuable open source project [GVP](https://gitee.com/gvp)
+5.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)

+ 130 - 1
README.md

@@ -1 +1,130 @@
-#ISCS_Base
+<p align="center">
+	<img alt="logo" width="96px" src="https://gitee.com/kutangguo/ktg-mes-ui/raw/master/src/assets/logo/logo.png">
+</p>
+<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">苦糖果MES</h1>
+<h4 align="center">专业、通用、开源、免费的MES系统</h4>
+<p align="center">
+<a href='https://gitee.com/kutangguo/ktg-mes/stargazers'><img src='https://gitee.com/kutangguo/ktg-mes/badge/star.svg?theme=dark' alt='star'></img></a>
+	<a href="https://gitee.com/kutangguo/ktg-mes/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
+</p>
+
+# ktg-mes
+
+### 系统简介
+苦糖果MES系统是一款B/S结构、开源、免费的生产执行管理系统。
+
+此系统基于本人多年离散智造行业的业务经验及J2EE项目经验开发。
+
+主要目的是为国内离散制造业的中小企业提供一个专业化、通用性、低成本的MES系统解决方案。
+
+系统将提供“售前”、“实施”、“用户培训”、“运维”等多个阶段的指导文档和教学视频,以帮助非IT专业人士顺利完成MES项目的实施应用。
+
+- 前端代码地址:https://gitee.com/kutangguo/ktg-mes-ui
+
+- 触控屏端地址:https://gitee.com/kutangguo/ktg-mes-pad
+
+- PC端在线体验地址: [http://www.029tec.com](http://www.029tec.com/)  <font color='red'>【请不要修改账户密码,以免影响其他人体验】</font>
+
+- 当前开发进度请参考doc->开发进度->进度甘特图.xlsx
+
+- 第一版售前PPT请查看doc->售前资料->《苦糖果MES系统产品介绍(A4横板).pptx》
+
+- 操作手册/软件说明书请参考doc->售前资料->《苦糖果生产执行管理系统-【软件说明书】.docx》
+
+欢迎交流沟通:QQ:411641505
+
+支持作者请Star
+
+### 系统架构
+
+当前版本基于RuoYi前后端分离版本开发。详情请参照:https://gitee.com/y_project/RuoYi-Vue
+
+触控屏端请参考Uniapp相关文档
+
+### 功能简介
+
+PC端:
+
+- 系统管理
+
+- 主数据
+
+  - 物料产品管理
+
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E7%89%A9%E6%96%99%E4%BA%A7%E5%93%81%E8%AE%BE%E7%BD%AE.png)
+
+  - 工作站设置
+
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E5%B7%A5%E4%BD%9C%E7%AB%99%E8%AE%BE%E7%BD%AE.png)
+
+- 生产管理
+
+  - 生产排产
+
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E7%94%9F%E4%BA%A7%E6%8E%92%E4%BA%A7.png)
+
+- 质量管理
+
+- 生产排班
+
+  - 节假日/工作日设置
+
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E8%8A%82%E5%81%87%E6%97%A5%E8%AE%BE%E7%BD%AE.png)
+    
+  - 排班日历
+
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E6%8E%92%E7%8F%AD%E6%97%A5%E5%8E%86.png)
+    
+    
+
+- 仓储管理
+  
+  - 库存现有量
+  
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E5%BA%93%E5%AD%98%E7%8E%B0%E6%9C%89%E9%87%8F.png)
+    
+  - 条码管理
+  
+    ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E6%9D%A1%E7%A0%81%E7%AE%A1%E7%90%86.png)
+  
+- 设备管理
+
+- 统计报表
+
+  ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E6%8A%A5%E8%A1%A8%E8%AE%BE%E8%AE%A1.png)
+
+- 大屏展示
+
+Android端:
+
+- 生产管理
+- 质量管理
+- 仓储管理
+- 设备管理
+
+触控屏端:
+
+- 登录
+
+  ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E8%A7%A6%E6%8E%A7%E5%B1%8F-%E7%99%BB%E5%BD%95%E9%A1%B5%E9%9D%A2.png)
+
+- 生产
+
+- 质量
+
+  ![](https://gitee.com/kutangguo/ktg-mes/raw/master/doc/%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/%E6%88%AA%E5%9B%BE/%E8%A7%A6%E6%8E%A7%E5%B1%8F-%E8%B4%A8%E9%87%8F%E7%AE%A1%E7%90%86.png)
+
+- 工序
+
+- 设备
+
+PDA:
+
+- 仓储
+- 生产
+
+完整功能清单及简介请参照doc->设计文档->功能设计->《功能清单.xml》
+
+### 安装部署
+
+请参照doc->实施文档

+ 12 - 0
bin/clean.bat

@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [信息] 清理工程target生成路径。
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+call mvn clean
+
+pause

+ 12 - 0
bin/package.bat

@@ -0,0 +1,12 @@
+@echo off
+echo.
+echo [信息] 打包Web工程,生成war/jar包文件。
+echo.
+
+%~d0
+cd %~dp0
+
+cd ..
+call mvn clean package -Dmaven.test.skip=true
+
+pause

+ 14 - 0
bin/run.bat

@@ -0,0 +1,14 @@
+@echo off
+echo.
+echo [��Ϣ] ʹ��Jar��������Web���̡�
+echo.
+
+cd %~dp0
+cd ../ktg-admin/target
+
+set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
+
+java -jar %JAVA_OPTS% ktg-admin.jar
+
+cd bin
+pause

BIN
doc/售前资料/苦糖果MES系统产品介绍(A4横板).pptx


BIN
doc/售前资料/苦糖果生产执行管理系统-【软件说明书】.docx


+ 19 - 0
doc/实施文档/inital.sql

@@ -0,0 +1,19 @@
+##初始化产品物料分类的根节点
+insert into md_item_type(item_type_code,item_type_name,parent_type_id,ancestors,item_or_product,order_num,enable_flag 
+)values ('ITEM_TYPE_0000','物料产品分类',0,'0','PRODUCT',1,'Y');
+
+
+insert into dv_machinery_type(machinery_type_code,machinery_type_name,parent_type_id,ancestors,enable_flag)
+values ('M_TYPE_000','设备分类',0,'0','Y'); 
+
+##初始化一个虚拟的线边库
+insert into wm_warehouse (warehouse_code,warehouse_name,location,area,charge) values('XBK_VIRTUAL','线边库-虚拟',null,-1,null);
+
+##初始化一个虚拟的线边库库区
+insert into wm_storage_location (location_code,location_name,warehouse_id,area,area_flag) values('XBKKQ_VIRTUAL','线边库库区-虚拟',200,-1,'Y');
+
+
+##初始化一个虚拟的线边库库位
+insert into wm_storage_area (area_code,area_name,location_id,area,enable_flag) values('XBKKW_VIRTUAL','线边库库位-虚拟',200,-1,'Y');
+
+

BIN
doc/实施文档/ktgmes_20230505_115713.sql.gz


BIN
doc/实施文档/ktgmes_20231016_191857.sql.gz


BIN
doc/实施文档/ktgmes_20231105_214848.sql.gz


BIN
doc/实施文档/ktgmes_20231113_222038.sql.gz


BIN
doc/实施文档/ktgmes_20240909_111515.sql.gz


+ 431 - 0
doc/实施文档/sys_auto_code.sql

@@ -0,0 +1,431 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_auto_code_part
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_part`;
+CREATE TABLE `sys_auto_code_part`  (
+  `part_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分段ID',
+  `rule_id` bigint(20) NOT NULL COMMENT '规则ID',
+  `part_index` int(11) NOT NULL COMMENT '分段序号',
+  `part_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分段类型,INPUTCHAR:输入字符,NOWDATE:当前日期时间,FIXCHAR:固定字符,SERIALNO:流水号',
+  `part_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分段编号',
+  `part_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分段名称',
+  `part_length` int(11) NOT NULL COMMENT '分段长度',
+  `date_format` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `input_character` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '输入字符',
+  `fix_character` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '固定字符',
+  `seria_start_no` int(11) NULL DEFAULT NULL COMMENT '流水号起始值',
+  `seria_step` int(11) NULL DEFAULT NULL COMMENT '流水号步长',
+  `seria_now_no` int(11) NULL DEFAULT NULL COMMENT '流水号当前值',
+  `cycle_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流水号是否循环',
+  `cycle_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '循环方式,YEAR:按年,MONTH:按月,DAY:按天,HOUR:按小时,MINITE:按分钟,OTHER:按传入字符变',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`part_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 289 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成规则组成表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_part
+-- ----------------------------
+INSERT INTO `sys_auto_code_part` VALUES (200, 205, 2, 'SERIALNO', 'P1', '流水号', 8, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 21:13:17', 'admin', '2022-04-26 22:47:49');
+INSERT INTO `sys_auto_code_part` VALUES (201, 205, 1, 'FIXCHAR', 'P0', '前缀', 4, NULL, NULL, 'ITEM', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 22:44:03', 'admin', '2022-08-15 15:59:19');
+INSERT INTO `sys_auto_code_part` VALUES (202, 206, 1, 'FIXCHAR', 'P1', '前缀', 10, NULL, NULL, 'ITEM_TYPE_', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:02:12', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (203, 206, 2, 'SERIALNO', 'P2', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:02:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (204, 207, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'C', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:21:04', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (205, 207, 2, 'SERIALNO', 'SERIAL', '流水号部分', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:21:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (206, 208, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'V', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:50:38', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (207, 208, 2, 'SERIALNO', 'SERIAL', '流水号', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:51:02', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (208, 209, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:49:16', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (209, 209, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:49:40', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (210, 210, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WH', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 22:00:17', 'admin', '2022-08-16 18:58:36');
+INSERT INTO `sys_auto_code_part` VALUES (211, 210, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 22:00:40', 'admin', '2022-07-30 11:26:14');
+INSERT INTO `sys_auto_code_part` VALUES (212, 211, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'L', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:50:29', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (213, 211, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:52:12', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (214, 212, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:29', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (215, 212, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:51', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (216, 213, 1, 'FIXCHAR', 'PREFIX', '前缀', 7, NULL, NULL, 'M_TYPE_', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:46:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (217, 213, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:47:03', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (218, 214, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'M', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:26:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (219, 214, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:27:18', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (220, 215, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'MO', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:40:23', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (222, 215, 2, 'NOWDATE', 'DATEPART', '年月日部分', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:58:57', 'admin', '2022-05-09 12:46:34');
+INSERT INTO `sys_auto_code_part` VALUES (223, 215, 3, 'SERIALNO', 'SERIAL', '流水号部分', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:59:31', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (224, 216, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:55:51', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (225, 216, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:56:19', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (226, 217, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'TT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:22:02', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (227, 217, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:22:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (228, 218, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'T', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:07:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (229, 218, 2, 'SERIALNO', 'SERIAL', '流水号', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:08:17', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (230, 219, 1, 'FIXCHAR', 'PREFIX', '前缀', 7, NULL, NULL, 'PROCESS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:10:13', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (231, 219, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:10:33', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (232, 220, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:07:01', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (233, 220, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1000, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:07:23', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (234, 221, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 4, NULL, NULL, 'TASK', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:22:53', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (235, 221, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:23:39', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (236, 221, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:24:03', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (237, 222, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'I', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:57:46', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (238, 222, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:58:05', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (239, 223, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'QCT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:43:31', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (240, 223, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:44:04', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (241, 223, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:44:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (242, 224, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'DF', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:33:52', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (243, 224, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:34:11', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (244, 225, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'IQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:29:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (245, 225, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:30:28', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (246, 225, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:31:00', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (247, 226, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:51:47', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (248, 226, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:52:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (249, 226, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:52:58', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (250, 227, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 1, NULL, NULL, 'T', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:54:45', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (251, 227, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:55:06', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (252, 228, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'PLAN', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:39', 'admin', '2022-07-31 16:42:59');
+INSERT INTO `sys_auto_code_part` VALUES (253, 228, 2, 'NOWDATE', 'YEAR', '年', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (254, 228, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:09:24', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (255, 229, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'RTV', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:06:14', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (256, 229, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:06:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (257, 229, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:07:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (258, 230, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 3, NULL, NULL, 'SUB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:28:22', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (259, 230, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:28:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (260, 231, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'PLAN', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:22', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (261, 231, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:43', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (262, 231, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:51:07', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (263, 232, 1, 'FIXCHAR', '1', '1', 3, NULL, NULL, 'BAT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:02:54', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (264, 232, 2, 'NOWDATE', '2', '2', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:03:16', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (265, 233, 1, 'FIXCHAR', 'PREFIX', '前缀', 5, NULL, NULL, 'ISSUE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:32:46', 'admin', '2022-07-17 19:35:44');
+INSERT INTO `sys_auto_code_part` VALUES (266, 233, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:33:22', 'admin', '2022-07-17 19:35:57');
+INSERT INTO `sys_auto_code_part` VALUES (267, 233, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:33:45', 'admin', '2022-07-17 19:36:05');
+INSERT INTO `sys_auto_code_part` VALUES (271, 234, 1, 'INPUTCHAR', 'PREFIX', '1', 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-30 14:20:49', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (275, 236, 1, 'FIXCHAR', '前缀', '固定字符', 2, NULL, NULL, 'IF', NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 10:48:20', 'admin', '2022-08-19 14:13:30');
+INSERT INTO `sys_auto_code_part` VALUES (276, 236, 2, 'NOWDATE', '后缀', '固定字段', 4, 'yyyyMMddss', NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 14:12:19', 'admin', '2022-08-19 14:19:39');
+INSERT INTO `sys_auto_code_part` VALUES (277, 237, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'IPQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:07:43', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (278, 237, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:08:18', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (279, 237, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:08:46', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (280, 238, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'OQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:30:53', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (281, 238, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:32:11', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (282, 238, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:32:38', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (283, 239, 1, 'FIXCHAR', '001', '前缀', 5, NULL, NULL, 'PBACK', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:49:07', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (284, 239, 2, 'NOWDATE', '002', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:49:31', 'admin', '2022-09-03 23:49:44');
+INSERT INTO `sys_auto_code_part` VALUES (285, 239, 3, 'SERIALNO', '003', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:50:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (286, 240, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'RT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:19:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (287, 240, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:19:47', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (288, 240, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:20:09', '', NULL);
+
+-- ----------------------------
+-- Table structure for sys_auto_code_result
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_result`;
+CREATE TABLE `sys_auto_code_result`  (
+  `code_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
+  `rule_id` bigint(20) NOT NULL COMMENT '规则ID',
+  `gen_date` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '生成日期时间',
+  `gen_index` int(11) NULL DEFAULT NULL COMMENT '最后产生的序号',
+  `last_result` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后产生的值',
+  `last_serial_no` int(11) NULL DEFAULT NULL COMMENT '最后产生的流水号',
+  `last_input_char` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后传入的参数',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`code_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 420 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_result
+-- ----------------------------
+INSERT INTO `sys_auto_code_result` VALUES (200, 205, '20220808095803', 76, 'ITEM00000076', 76, NULL, '', NULL, NULL, 0, 0, '', '2022-04-26 22:28:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (201, 206, '20220813231829', 62, 'ITEM_TYPE_0062', 62, NULL, '', NULL, NULL, 0, 0, '', '2022-04-27 10:17:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (202, 207, '20220802144206', 10, 'C00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-06 21:22:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (203, 208, '20220805160743', 10, 'V00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-06 22:52:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (204, 209, '20220805111938', 12, 'WS012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-05-07 17:54:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (205, 210, '20220729090506', 2, 'WH002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-05-07 22:01:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (206, 211, '20220729085518', 10, 'L010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 14:52:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (207, 212, '20220810082205', 11, 'A0011', 11, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 18:39:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (208, 213, '20220823091541', 24, 'M_TYPE_024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 19:47:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (209, 214, '20220819091251', 26, 'M0026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 21:38:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (210, 215, '20220509234547', 21, 'MO202205090021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-05-09 12:46:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (212, 216, '20220818103207', 34, 'WS0034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-05-10 21:59:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (213, 217, '20220816195823', 25, 'TT025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-05-11 00:22:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (214, 218, '20220804162652', 10, 'T00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-11 22:35:05', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (215, 219, '20220729122036', 46, 'PROCESS046', 46, NULL, '', NULL, NULL, 0, 0, '', '2022-05-12 00:10:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (217, 220, '20220809171633', 29, 'R1028', 1028, NULL, '', NULL, NULL, 0, 0, '', '2022-05-12 23:11:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (219, 215, '20220514155158', 26, 'MO202205140026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-05-14 15:24:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (220, 215, '20220515134342', 5, 'MO202205150005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-05-15 13:41:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (221, 221, '20220828090047', 69, 'TASK20220069', 69, NULL, '', NULL, NULL, 0, 0, '', '2022-05-15 18:29:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (222, 222, '20220812142031', 13, 'I0013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-05-17 21:58:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (223, 223, '20220901212456', 42, 'QCT2022042', 42, NULL, '', NULL, NULL, 0, 0, '', '2022-05-17 22:44:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (224, 224, '20220819144546', 8, 'DF008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-05-19 11:37:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (225, 225, '20220519230422', 21, 'IQC20220519021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-05-19 16:49:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (226, 226, '20220522220740', 8, 'R20220522008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-05-22 20:53:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (227, 227, '20220814214249', 25, 'T025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-06-06 19:55:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (228, 228, '20220823150049', 121, 'PLAN2022121', 121, NULL, '', NULL, NULL, 0, 0, '', '2022-06-06 22:09:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (229, 229, '20220613162434', 2, 'RTV20220613002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-06-13 16:19:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (230, 226, '20220613164021', 1, 'R20220613001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-06-13 16:40:22', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (231, 229, '20220614161107', 3, 'RTV20220614003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-06-14 11:11:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (232, 226, '20220614122043', 3, 'R20220614003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-06-14 11:34:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (233, 230, '20220812221323', 4, 'SUB004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-06-16 20:29:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (234, 231, '20220901230257', 50, 'PLAN2022050', 50, NULL, '', NULL, NULL, 0, 0, '', '2022-06-16 21:51:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (235, 226, '20220717124046', 2, 'R20220717002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-07-17 12:40:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (236, 233, '20220717194751', 2, 'ISSUE20220717002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-07-17 19:36:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (237, 233, '20220725150745', 8, 'ISSUE20220725008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-07-25 11:16:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (238, 215, '20220727133912', 3, 'MO202207270003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-27 13:39:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (239, 229, '20220727135402', 3, 'RTV20220727003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-27 13:53:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (240, 215, '20220728231952', 1, 'MO202207280001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-07-28 23:19:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (241, 211, '20220729085519', 1, 'L011', 11, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:55:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (242, 211, '20220801170339', 6, 'L017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:55:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (243, 229, '20220729091253', 4, 'RTV20220729004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:56:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (244, 210, '20220729090520', 3, 'WH005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:05:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (245, 210, '20220801161858', 52, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:05:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (246, 215, '20220729111608', 3, 'MO202207290003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:30:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (247, 219, '20220729122132', 3, 'PROCESS049', 49, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 12:21:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (248, 215, '20220730170708', 6, 'MO202207300006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 14:41:08', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (249, 226, '20220730164005', 3, 'R20220730003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 16:30:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (250, 219, '20220730170439', 3, 'PROCESS052', 52, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 17:02:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (251, 215, '20220731161554', 1, 'MO202207310001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-07-31 16:15:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (252, 226, '20220801162854', 33, 'R20220801033', 33, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 11:11:28', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (253, 215, '20220801154407', 1, 'MO202208010001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 15:44:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (254, 210, '20220801161857', 1, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:18:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (255, 210, '20220801161857', 1, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:18:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (256, 210, '20220809140656', 13, 'WH073', 73, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:26:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (257, 219, '20220801172652', 3, 'PROCESS055', 55, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 17:14:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (258, 215, '20220802174313', 13, 'MO202208020013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 09:27:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (259, 225, '20220802180956', 2, 'IQC20220802002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 17:54:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (260, 229, '20220802180930', 2, 'RTV20220802002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 18:01:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (261, 215, '20220803152758', 3, 'MO202208030003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-03 15:19:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (262, 218, '20220810105807', 7, 'T00017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-08-04 16:34:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (263, 209, '20220813133944', 14, 'WS026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 11:19:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (264, 226, '20220805131441', 4, 'R20220805004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 13:09:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (265, 208, '20220808161115', 4, 'V00014', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 16:27:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (266, 205, '20220812160022', 12, 'ITEM00000088', 88, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 10:01:12', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (267, 229, '20220808105742', 2, 'RTV20220808002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 10:44:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (268, 207, '20220813112402', 14, 'C00024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 15:52:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (269, 208, '20220814231644', 10, 'V00024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 16:11:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (270, 219, '20220809091746', 2, 'PROCESS057', 57, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 09:17:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (271, 219, '20220813232649', 11, 'PROCESS068', 68, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 09:22:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (272, 215, '20220809173457', 7, 'MO202208090007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 12:27:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (273, 210, '20220809140657', 1, 'WH074', 74, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 14:06:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (274, 210, '20220814231315', 5, 'WH079', 79, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 14:06:58', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (275, 220, '20220813113700', 12, 'R1040', 1040, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 17:16:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (276, 226, '20220809174609', 2, 'R20220809002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 17:36:22', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (277, 211, '20220810082146', 5, 'L022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:21:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (278, 211, '20220824224223', 20, 'L042', 42, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:21:48', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (279, 212, '20220810082207', 2, 'A0013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:22:06', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (280, 212, '20220810083445', 4, 'A0017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:22:08', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (281, 218, '20220814194551', 6, 'T00023', 23, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 10:58:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (282, 215, '20220810141929', 7, 'MO202208100007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 12:30:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (283, 215, '20220811155054', 2, 'MO202208110002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-11 15:50:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (284, 215, '20220812163345', 36, 'MO202208120036', 36, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 11:40:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (285, 225, '20220812202238', 5, 'IQC20220812005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 13:54:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (286, 222, '20220822090243', 21, 'I0034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 14:20:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (287, 205, '20220813012808', 21, 'ITEM00000109', 109, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 16:00:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (288, 226, '20220812214513', 3, 'R20220812003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 16:51:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (289, 205, '20220813133124', 10, 'ITEM00000119', 119, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 01:28:09', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (290, 226, '20220813152657', 5, 'R20220813005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 01:47:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (291, 215, '20220813232357', 10, 'MO202208130010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 08:50:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (292, 207, '20220813134013', 7, 'C00031', 31, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 11:24:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (293, 220, '20220815153054', 12, 'R1052', 1052, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 11:37:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (294, 209, '20220816172957', 8, 'WS034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:39:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (295, 207, '20220813134017', 6, 'C00037', 37, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:40:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (296, 207, '20220815132333', 20, 'C00057', 57, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:40:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (297, 225, '20220813225044', 3, 'IQC20220813003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 15:14:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (298, 205, '20220815085111', 12, 'ITEM00000131', 131, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 21:48:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (299, 230, '20220815103546', 5, 'SUB009', 9, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 22:00:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (300, 206, '20220815143043', 4, 'ITEM_TYPE_0066', 66, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 23:18:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (301, 219, '20220815164921', 9, 'PROCESS077', 77, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 23:32:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (302, 215, '20220814231425', 5, 'MO202208140005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 10:40:29', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (303, 212, '20220818105233', 4, 'A0021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 11:19:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (304, 227, '20220814214249', 1, 'T026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 21:42:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (305, 227, '20220817195511', 33, 'T058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 21:42:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (306, 210, '20220817170523', 21, 'WH100', 100, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 23:13:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (307, 208, '20220816133617', 7, 'V00031', 31, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 23:16:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (308, 205, '20220815110633', 5, 'ITEM00000136', 136, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 08:51:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (309, 218, '20220823093332', 36, 'T00059', 59, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 09:53:55', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (310, 215, '20220815185151', 18, 'MO202208150018', 18, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 10:12:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (311, 226, '20220815143729', 8, 'R20220815008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 10:44:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (312, 205, '20220815140036', 3, 'ITEM00000139', 139, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 11:06:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (313, 225, '20220815111142', 1, 'IQC20220815001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 11:11:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (314, 207, '20220815132338', 6, 'C00063', 63, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (315, 207, '20220815132340', 4, 'C00067', 67, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (316, 207, '20220822100445', 95, 'C00162', 162, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (317, 230, '20220818164931', 21, 'SUB030', 30, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 14:40:05', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (318, 205, '20220817093425', 51, 'ITEM00000190', 190, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 15:43:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (319, 219, '20220818141839', 28, 'PROCESS105', 105, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 16:50:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (320, 229, '20220815172658', 2, 'RTV20220815002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 17:12:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (321, 220, '20220815200538', 2, 'R1054', 1054, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 19:52:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (322, 220, '20220816155501', 6, 'R1060', 1060, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 00:59:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (323, 226, '20220816173419', 18, 'R20220816018', 18, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 09:24:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (324, 215, '20220816232550', 38, 'MO202208160038', 38, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 10:18:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (325, 225, '20220816201615', 4, 'IQC20220816004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 10:32:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (326, 208, '20220816140813', 5, 'V00036', 36, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 13:36:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (327, 208, '20220823111843', 12, 'V00048', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 14:08:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (328, 229, '20220816195356', 6, 'RTV20220816006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 17:35:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (329, 220, '20220818105353', 6, 'R1066', 1066, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 19:55:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (330, 217, '20220819093714', 7, 'TT032', 32, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 19:58:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (331, 215, '20220817222518', 14, 'MO202208170014', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 08:47:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (332, 209, '20220820094836', 17, 'WS051', 51, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 08:55:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (333, 229, '20220817091138', 2, 'RTV20220817002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 09:11:36', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (334, 205, '20220818115033', 32, 'ITEM00000222', 222, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 09:34:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (335, 206, '20220822091118', 19, 'ITEM_TYPE_0085', 85, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 11:14:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (336, 226, '20220817205507', 22, 'R20220817022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 14:03:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (337, 225, '20220817203604', 5, 'IQC20220817005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 15:57:28', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (338, 210, '20220817170524', 1, 'WH101', 101, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 17:05:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (339, 233, '20220817231312', 6, 'ISSUE20220817006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 23:02:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (340, 226, '20220818211659', 12, 'R20220818012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:30:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (341, 210, '20220822145345', 35, 'WH136', 136, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:39:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (342, 225, '20220818165508', 12, 'IQC20220818012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:41:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (343, 229, '20220818180526', 7, 'RTV20220818007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:10:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (344, 215, '20220818230633', 77, 'MO202208180077', 77, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:33:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (345, 220, '20220819091351', 17, 'R1083', 1083, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:53:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (346, 212, '20220820170019', 5, 'A0026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 11:07:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (347, 216, '20220818164828', 11, 'WS0045', 45, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 11:39:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (348, 227, '20220818160823', 8, 'T066', 66, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 13:40:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (349, 205, '20220818134540', 1, 'ITEM00000223', 223, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 13:45:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (350, 205, '20220818141238', 3, 'ITEM00000226', 226, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:04:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (351, 205, '20220819101459', 33, 'ITEM00000259', 259, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:13:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (352, 219, '20220818144345', 2, 'PROCESS107', 107, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:43:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (353, 227, '20220818175718', 3, 'T069', 69, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:08:27', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (354, 216, '20220910104817', 51, 'WS0096', 96, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:48:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (355, 230, '20220823102743', 18, 'SUB048', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:56:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (356, 227, '20220820110823', 7, 'T076', 76, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 17:57:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (357, 219, '20220824212645', 79, 'PROCESS186', 186, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 00:22:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (358, 226, '20220819211451', 22, 'R20220819022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:46:50', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (359, 215, '20220819211957', 44, 'MO202208190044', 44, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:47:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (360, 225, '20220819213654', 41, 'IQC20220819041', 41, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:49:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (361, 214, '20220821094813', 15, 'M0041', 41, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:12:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (362, 220, '20220819173023', 13, 'R1096', 1096, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:13:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (363, 217, '20220821133355', 15, 'TT047', 47, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:37:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (364, 236, '20220819111319', 3, '32323232323232323232323232ITEM_TYPE_', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 11:13:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (365, 236, '20220819142129', 64, 'IF2022081929', 72, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 11:16:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (366, 236, '20220819145515', 12, 'IF2022081915', 1094, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 14:21:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (367, 236, '20220819205101', 16, 'IF2022081901', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 16:18:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (368, 236, '20220823103219', 76, 'IF2022082319', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 20:51:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (369, 229, '20220819205514', 1, 'RTV20220819001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 20:55:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (370, 220, '20220824213017', 25, 'R1121', 1121, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 21:12:27', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (371, 209, '20220820160129', 7, 'WS058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 09:48:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (372, 215, '20220820222241', 39, 'MO202208200039', 39, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 10:00:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (373, 226, '20220820215444', 21, 'R20220820021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 10:13:38', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (374, 227, '20220820110825', 2, 'T078', 78, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 11:08:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (375, 227, '20220820220731', 17, 'T095', 95, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 11:08:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (376, 225, '20220820160353', 3, 'IQC20220820003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 13:27:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (377, 209, '20220824222208', 21, 'WS079', 79, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 16:01:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (378, 227, '20220823083639', 10, 'T105', 105, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 22:07:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (379, 215, '20220821192938', 5, 'MO202208210005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 00:51:58', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (380, 214, '20220821094815', 1, 'M0042', 42, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 09:48:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (381, 212, '20220902103729', 4, 'A0030', 30, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:28:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (382, 214, '20220823173340', 13, 'M0055', 55, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:31:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (383, 217, '20220823205336', 11, 'TT058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:45:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (384, 226, '20220821225220', 7, 'R20220821007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 15:16:36', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (385, 215, '20220822234830', 19, 'MO202208220019', 19, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 08:38:59', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (386, 226, '20220822192029', 25, 'R20220822025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 08:48:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (387, 219, '20220822090456', 1, 'PROCESS140', 140, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:04:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (388, 219, '20220822090503', 1, 'PROCESS152', 152, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:05:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (389, 206, '20220824214316', 7, 'ITEM_TYPE_0092', 92, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:11:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (390, 229, '20220822155824', 7, 'RTV20220822007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:13:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (391, 207, '20220822100442', 1, 'C00153', 153, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:04:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (392, 207, '20220822102252', 5, 'C00167', 167, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:05:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (393, 207, '20220824215506', 31, 'C00198', 198, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:22:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (394, 210, '20220823083833', 3, 'WH139', 139, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 14:53:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (395, 225, '20220822154721', 1, 'IQC20220822001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 15:47:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (396, 226, '20220823203609', 20, 'R20220823020', 20, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 00:41:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (397, 215, '20220823200644', 52, 'MO202208230052', 52, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 07:51:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (398, 210, '20220824224111', 17, 'WH156', 156, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:38:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (399, 229, '20220823205401', 5, 'RTV20220823005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:43:32', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (400, 227, '20220823184025', 12, 'T117', 117, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:58:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (401, 225, '20220823192837', 7, 'IQC20220823007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 09:47:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (402, 236, '20220823173612', 17, 'IF2022082312', 51, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 10:41:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (403, 208, '20220823181426', 10, 'V00058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 15:09:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (404, 236, '20220823192141', 10, 'IF2022082341', 154, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 19:08:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (405, 236, '20220824215239', 10, 'IF2022082439', 92, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 19:21:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (406, 215, '20220828084935', 6, 'MO202208280006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-28 08:36:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (407, 237, '20220829224554', 4, 'IPQC202208290004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-29 22:09:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (408, 225, '20220831211548', 3, 'IQC20220831003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-31 20:57:09', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (409, 238, '20220901212705', 4, 'OQC20220901004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-09-01 20:35:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (410, 226, '20220902104056', 4, 'R20220902004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-09-02 10:36:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (411, 233, '20220902104302', 1, 'ISSUE20220902001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-02 10:43:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (412, 239, '20220904223417', 10, 'PBACK20220904010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-09-03 23:50:32', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (413, 237, '20220909211934', 1, 'IPQC202209090001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-09 21:19:38', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (414, 226, '20220910111422', 2, 'R20220910002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-10 10:57:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (415, 226, '20220912232033', 1, 'R20220912001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-12 23:20:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (416, 226, '20220913223354', 1, 'R20220913001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-13 22:33:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (417, 233, '20220913225049', 2, 'ISSUE20220913002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-13 22:35:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (418, 240, '20220915232017', 1, 'RT202209150001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-15 23:20:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (419, 226, '20220916212404', 1, 'R20220916001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-16 21:24:06', '', NULL);
+
+-- ----------------------------
+-- Table structure for sys_auto_code_rule
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_rule`;
+CREATE TABLE `sys_auto_code_rule`  (
+  `rule_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '规则ID',
+  `rule_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则编码',
+  `rule_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则名称',
+  `rule_desc` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  `max_length` int(11) NULL DEFAULT NULL COMMENT '最大长度',
+  `is_padded` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否补齐',
+  `padded_char` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '补齐字符',
+  `padded_method` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'L' COMMENT '补齐方式',
+  `enable_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'Y' COMMENT '是否启用',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`rule_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 241 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成规则表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_rule
+-- ----------------------------
+INSERT INTO `sys_auto_code_rule` VALUES (206, 'ITEM_TYPE_CODE', '物料分类编码', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:01:09', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (207, 'CLIENT_CODE', '客户编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:20:29', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (208, 'VENDOR_CODE', '供应商编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:50:13', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (209, 'WORKSHOP_CODE', '车间编码生成规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:48:52', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (210, 'WAREHOUSE_CODE', '仓库编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 21:59:51', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (211, 'LOCATION_CODE', '库区编码生成规则', NULL, 4, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:49:56', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (212, 'AREA_CODE', '库位编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:08', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (213, 'MACHINERY_TYPE_CODE', '设备类型编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:46:09', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (214, 'MACHINERY_CODE', '设备编码规则', NULL, 13, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:26:39', 'admin', '2022-08-23 09:15:17');
+INSERT INTO `sys_auto_code_rule` VALUES (215, 'WORKORDER_CODE', '生产工单编码规则1', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:39:59', 'admin', '2022-08-20 09:12:40');
+INSERT INTO `sys_auto_code_rule` VALUES (216, 'WORKSTATION_CODE', '工作站编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:55:24', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (217, 'TOOL_TYPE_CODE', '工装夹具类型编码', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:21:37', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (218, 'TOOL_CODE', '工装夹具编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:07:17', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (219, 'PROCESS_CODE', '工序编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:09:45', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (220, 'ROUTE_CODE', '工艺流程编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:06:36', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (221, 'TASK_CODE', '生产任务编码规则', NULL, 12, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:22:29', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (222, 'QC_INDEX_CODE', '检测项编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:57:23', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (223, 'QC_TEMPLATE_CODE', '检测模板编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:43:08', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (224, 'DEFECT_CODE', '常见缺陷编码', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:33:27', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (225, 'QC_IQC_CODE', '来料检验单编码规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:28:07', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (226, 'ITEMRECPT_CODE', '物料入库单编码规则', NULL, 12, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:51:29', 'admin', '2022-05-22 20:53:12');
+INSERT INTO `sys_auto_code_rule` VALUES (227, 'CAL_TEAM_CODE', '班组编码规则', NULL, 4, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:54:22', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (228, 'CAL_PLAN_CODE', '排班计划编号', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:10', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (229, 'WM_RTVENDOR_CODE', '供应商退货单编码', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 15:48:07', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (230, 'SUBJECT_CODE', '设备点检保养项目编码', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:27:54', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (231, 'CHECKPLAN_CODE', '点检编码规则', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:00', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (232, 'BATCH_CODE', '批次规则', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:02:10', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (233, 'ISSUE_CODE', '生产领料单编码', NULL, 16, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:32:10', 'admin', '2022-07-17 19:32:57');
+INSERT INTO `sys_auto_code_rule` VALUES (234, '1', '2', NULL, 1, 'Y', '3', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-29 16:34:20', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (236, 'ITEM_CODE', '物料规则', NULL, 10, 'N', '32', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 10:44:20', 'admin', '2022-08-19 11:26:02');
+INSERT INTO `sys_auto_code_rule` VALUES (237, 'IPQC_CODE', '过程检验单编码', NULL, 16, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:07:13', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (238, 'OQC_CODE', '出货编码规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:30:31', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (239, 'PBACK_CODE', '生产退料单编码', '生产退料单编码', 16, 'N', '0', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:47:11', 'admin', '2022-09-03 23:47:57');
+INSERT INTO `sys_auto_code_rule` VALUES (240, 'RTISSUE_CODE', '生产退库单编号规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:18:40', 'admin', '2022-09-15 23:19:04');
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 137 - 0
doc/实施文档/sys_auto_code_part.sql

@@ -0,0 +1,137 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_auto_code_part
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_part`;
+CREATE TABLE `sys_auto_code_part`  (
+  `part_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分段ID',
+  `rule_id` bigint(20) NOT NULL COMMENT '规则ID',
+  `part_index` int(11) NOT NULL COMMENT '分段序号',
+  `part_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分段类型,INPUTCHAR:输入字符,NOWDATE:当前日期时间,FIXCHAR:固定字符,SERIALNO:流水号',
+  `part_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分段编号',
+  `part_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分段名称',
+  `part_length` int(11) NOT NULL COMMENT '分段长度',
+  `date_format` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `input_character` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '输入字符',
+  `fix_character` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '固定字符',
+  `seria_start_no` int(11) NULL DEFAULT NULL COMMENT '流水号起始值',
+  `seria_step` int(11) NULL DEFAULT NULL COMMENT '流水号步长',
+  `seria_now_no` int(11) NULL DEFAULT NULL COMMENT '流水号当前值',
+  `cycle_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流水号是否循环',
+  `cycle_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '循环方式,YEAR:按年,MONTH:按月,DAY:按天,HOUR:按小时,MINITE:按分钟,OTHER:按传入字符变',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`part_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 304 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成规则组成表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_part
+-- ----------------------------
+INSERT INTO `sys_auto_code_part` VALUES (200, 205, 2, 'SERIALNO', 'P1', '流水号', 8, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 21:13:17', 'admin', '2022-04-26 22:47:49');
+INSERT INTO `sys_auto_code_part` VALUES (201, 205, 1, 'FIXCHAR', 'P0', '前缀', 4, NULL, NULL, 'ITEM', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 22:44:03', 'admin', '2022-08-15 15:59:19');
+INSERT INTO `sys_auto_code_part` VALUES (202, 206, 1, 'FIXCHAR', 'P1', '前缀', 10, NULL, NULL, 'ITEM_TYPE_', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:02:12', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (203, 206, 2, 'SERIALNO', 'P2', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:02:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (204, 207, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'C', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:21:04', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (205, 207, 2, 'SERIALNO', 'SERIAL', '流水号部分', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:21:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (206, 208, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'V', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:50:38', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (207, 208, 2, 'SERIALNO', 'SERIAL', '流水号', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:51:02', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (208, 209, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:49:16', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (209, 209, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:49:40', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (210, 210, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WH', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 22:00:17', 'admin', '2022-08-16 18:58:36');
+INSERT INTO `sys_auto_code_part` VALUES (211, 210, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 22:00:40', 'admin', '2022-07-30 11:26:14');
+INSERT INTO `sys_auto_code_part` VALUES (212, 211, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'L', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:50:29', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (213, 211, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:52:12', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (214, 212, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'A', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:29', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (215, 212, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:51', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (216, 213, 1, 'FIXCHAR', 'PREFIX', '前缀', 7, NULL, NULL, 'M_TYPE_', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:46:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (217, 213, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:47:03', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (218, 214, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'M', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:26:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (219, 214, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:27:18', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (220, 215, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'MO', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:40:23', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (222, 215, 2, 'NOWDATE', 'DATEPART', '年月日部分', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:58:57', 'admin', '2022-05-09 12:46:34');
+INSERT INTO `sys_auto_code_part` VALUES (223, 215, 3, 'SERIALNO', 'SERIAL', '流水号部分', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:59:31', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (224, 216, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'WS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:55:51', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (225, 216, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:56:19', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (226, 217, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'TT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:22:02', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (227, 217, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:22:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (228, 218, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'T', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:07:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (229, 218, 2, 'SERIALNO', 'SERIAL', '流水号', 5, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:08:17', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (230, 219, 1, 'FIXCHAR', 'PREFIX', '前缀', 7, NULL, NULL, 'PROCESS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:10:13', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (231, 219, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:10:33', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (232, 220, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:07:01', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (233, 220, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1000, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:07:23', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (234, 221, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 4, NULL, NULL, 'TASK', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:22:53', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (235, 221, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:23:39', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (236, 221, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:24:03', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (237, 222, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'I', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:57:46', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (238, 222, 2, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:58:05', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (239, 223, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'QCT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:43:31', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (240, 223, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:44:04', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (241, 223, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:44:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (242, 224, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'DF', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:33:52', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (243, 224, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:34:11', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (244, 225, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'IQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:29:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (245, 225, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:30:28', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (246, 225, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:31:00', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (247, 226, 1, 'FIXCHAR', 'PREFIX', '前缀', 1, NULL, NULL, 'R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:51:47', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (248, 226, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:52:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (249, 226, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:52:58', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (250, 227, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 1, NULL, NULL, 'T', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:54:45', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (251, 227, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:55:06', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (252, 228, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'PLAN', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:39', 'admin', '2022-07-31 16:42:59');
+INSERT INTO `sys_auto_code_part` VALUES (253, 228, 2, 'NOWDATE', 'YEAR', '年', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:59', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (254, 228, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:09:24', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (255, 229, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'RTV', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:06:14', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (256, 229, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:06:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (257, 229, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 16:07:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (258, 230, 1, 'FIXCHAR', 'PREFIX', '固定前缀', 3, NULL, NULL, 'SUB', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:28:22', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (259, 230, 2, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:28:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (260, 231, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'PLAN', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:22', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (261, 231, 2, 'NOWDATE', 'YEAR', '年份', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:43', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (262, 231, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:51:07', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (263, 232, 1, 'FIXCHAR', '1', '1', 3, NULL, NULL, 'BAT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:02:54', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (264, 232, 2, 'NOWDATE', '2', '2', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:03:16', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (265, 233, 1, 'FIXCHAR', 'PREFIX', '前缀', 5, NULL, NULL, 'ISSUE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:32:46', 'admin', '2022-07-17 19:35:44');
+INSERT INTO `sys_auto_code_part` VALUES (266, 233, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:33:22', 'admin', '2022-07-17 19:35:57');
+INSERT INTO `sys_auto_code_part` VALUES (267, 233, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:33:45', 'admin', '2022-07-17 19:36:05');
+INSERT INTO `sys_auto_code_part` VALUES (271, 234, 1, 'INPUTCHAR', 'PREFIX', '1', 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-07-30 14:20:49', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (275, 236, 1, 'FIXCHAR', '前缀', '固定字符', 2, NULL, NULL, 'IF', NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 10:48:20', 'admin', '2022-08-19 14:13:30');
+INSERT INTO `sys_auto_code_part` VALUES (276, 236, 2, 'NOWDATE', '后缀', '固定字段', 4, 'yyyyMMddss', NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 14:12:19', 'admin', '2022-08-19 14:19:39');
+INSERT INTO `sys_auto_code_part` VALUES (277, 237, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'IPQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:07:43', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (278, 237, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:08:18', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (279, 237, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:08:46', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (280, 238, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'OQC', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:30:53', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (281, 238, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:32:11', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (282, 238, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:32:38', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (283, 239, 1, 'FIXCHAR', '001', '前缀', 5, NULL, NULL, 'PBACK', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:49:07', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (284, 239, 2, 'NOWDATE', '002', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:49:31', 'admin', '2022-09-03 23:49:44');
+INSERT INTO `sys_auto_code_part` VALUES (285, 239, 3, 'SERIALNO', '003', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'N', NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:50:10', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (286, 240, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'RT', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:19:25', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (287, 240, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:19:47', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (288, 240, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:20:09', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (289, 241, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'PR', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-23 10:58:17', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (290, 241, 2, 'NOWDATE', 'DATE', '年月日', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-23 10:58:44', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (291, 241, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-23 10:59:06', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (292, 242, 1, 'FIXCHAR', 'PREFIX', '前缀', 3, NULL, NULL, 'REP', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-28 22:01:19', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (293, 242, 2, 'NOWDATE', 'DATE', '日期', 4, 'yyyy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-09-28 22:01:39', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (294, 242, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'YEAR', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-28 22:02:00', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (295, 243, 1, 'FIXCHAR', 'PERFIX', '前缀', 2, NULL, NULL, 'PS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-05 19:46:02', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (296, 243, 2, 'NOWDATE', 'DATA', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-05 19:46:24', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (297, 243, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-05 19:46:48', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (298, 244, 1, 'FIXCHAR', 'PREFIX', '前缀', 2, NULL, NULL, 'RS', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-06 21:40:42', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (299, 244, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-06 21:41:03', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (300, 244, 3, 'SERIALNO', 'SERIAL', '流水号', 3, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-06 21:41:22', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (301, 245, 1, 'FIXCHAR', 'PREFIX', '前缀', 4, NULL, NULL, 'PACK', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-11 01:22:38', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (302, 245, 2, 'NOWDATE', 'DATE', '日期', 8, 'yyyyMMdd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 'admin', '2022-10-11 01:23:09', '', NULL);
+INSERT INTO `sys_auto_code_part` VALUES (303, 245, 3, 'SERIALNO', 'SERIAL', '流水号', 4, NULL, NULL, NULL, 1, 1, NULL, 'Y', 'DAY', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-11 01:23:35', '', NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 259 - 0
doc/实施文档/sys_auto_code_result.sql

@@ -0,0 +1,259 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_auto_code_result
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_result`;
+CREATE TABLE `sys_auto_code_result`  (
+  `code_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '记录ID',
+  `rule_id` bigint(20) NOT NULL COMMENT '规则ID',
+  `gen_date` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '生成日期时间',
+  `gen_index` int(11) NULL DEFAULT NULL COMMENT '最后产生的序号',
+  `last_result` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后产生的值',
+  `last_serial_no` int(11) NULL DEFAULT NULL COMMENT '最后产生的流水号',
+  `last_input_char` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后传入的参数',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`code_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 430 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_result
+-- ----------------------------
+INSERT INTO `sys_auto_code_result` VALUES (200, 205, '20220808095803', 76, 'ITEM00000076', 76, NULL, '', NULL, NULL, 0, 0, '', '2022-04-26 22:28:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (201, 206, '20220813231829', 62, 'ITEM_TYPE_0062', 62, NULL, '', NULL, NULL, 0, 0, '', '2022-04-27 10:17:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (202, 207, '20220802144206', 10, 'C00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-06 21:22:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (203, 208, '20220805160743', 10, 'V00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-06 22:52:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (204, 209, '20220805111938', 12, 'WS012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-05-07 17:54:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (205, 210, '20220729090506', 2, 'WH002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-05-07 22:01:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (206, 211, '20220729085518', 10, 'L010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 14:52:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (207, 212, '20220810082205', 11, 'A0011', 11, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 18:39:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (208, 213, '20220823091541', 24, 'M_TYPE_024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 19:47:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (209, 214, '20220819091251', 26, 'M0026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-05-08 21:38:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (210, 215, '20220509234547', 21, 'MO202205090021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-05-09 12:46:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (212, 216, '20220818103207', 34, 'WS0034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-05-10 21:59:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (213, 217, '20220816195823', 25, 'TT025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-05-11 00:22:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (214, 218, '20220804162652', 10, 'T00010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-05-11 22:35:05', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (215, 219, '20220729122036', 46, 'PROCESS046', 46, NULL, '', NULL, NULL, 0, 0, '', '2022-05-12 00:10:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (217, 220, '20220809171633', 29, 'R1028', 1028, NULL, '', NULL, NULL, 0, 0, '', '2022-05-12 23:11:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (219, 215, '20220514155158', 26, 'MO202205140026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-05-14 15:24:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (220, 215, '20220515134342', 5, 'MO202205150005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-05-15 13:41:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (221, 221, '20220927111039', 87, 'TASK20220087', 87, NULL, '', NULL, NULL, 0, 0, '', '2022-05-15 18:29:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (222, 222, '20220812142031', 13, 'I0013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-05-17 21:58:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (223, 223, '20220901212456', 42, 'QCT2022042', 42, NULL, '', NULL, NULL, 0, 0, '', '2022-05-17 22:44:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (224, 224, '20220819144546', 8, 'DF008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-05-19 11:37:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (225, 225, '20220519230422', 21, 'IQC20220519021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-05-19 16:49:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (226, 226, '20220522220740', 8, 'R20220522008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-05-22 20:53:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (227, 227, '20220814214249', 25, 'T025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-06-06 19:55:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (228, 228, '20220823150049', 121, 'PLAN2022121', 121, NULL, '', NULL, NULL, 0, 0, '', '2022-06-06 22:09:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (229, 229, '20220613162434', 2, 'RTV20220613002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-06-13 16:19:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (230, 226, '20220613164021', 1, 'R20220613001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-06-13 16:40:22', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (231, 229, '20220614161107', 3, 'RTV20220614003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-06-14 11:11:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (232, 226, '20220614122043', 3, 'R20220614003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-06-14 11:34:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (233, 230, '20220812221323', 4, 'SUB004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-06-16 20:29:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (234, 231, '20220901230257', 50, 'PLAN2022050', 50, NULL, '', NULL, NULL, 0, 0, '', '2022-06-16 21:51:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (235, 226, '20220717124046', 2, 'R20220717002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-07-17 12:40:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (236, 233, '20220717194751', 2, 'ISSUE20220717002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-07-17 19:36:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (237, 233, '20220725150745', 8, 'ISSUE20220725008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-07-25 11:16:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (238, 215, '20220727133912', 3, 'MO202207270003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-27 13:39:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (239, 229, '20220727135402', 3, 'RTV20220727003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-27 13:53:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (240, 215, '20220728231952', 1, 'MO202207280001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-07-28 23:19:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (241, 211, '20220729085519', 1, 'L011', 11, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:55:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (242, 211, '20220801170339', 6, 'L017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:55:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (243, 229, '20220729091253', 4, 'RTV20220729004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 08:56:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (244, 210, '20220729090520', 3, 'WH005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:05:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (245, 210, '20220801161858', 52, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:05:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (246, 215, '20220729111608', 3, 'MO202207290003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 09:30:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (247, 219, '20220729122132', 3, 'PROCESS049', 49, NULL, '', NULL, NULL, 0, 0, '', '2022-07-29 12:21:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (248, 215, '20220730170708', 6, 'MO202207300006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 14:41:08', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (249, 226, '20220730164005', 3, 'R20220730003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 16:30:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (250, 219, '20220730170439', 3, 'PROCESS052', 52, NULL, '', NULL, NULL, 0, 0, '', '2022-07-30 17:02:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (251, 215, '20220731161554', 1, 'MO202207310001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-07-31 16:15:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (252, 226, '20220801162854', 33, 'R20220801033', 33, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 11:11:28', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (253, 215, '20220801154407', 1, 'MO202208010001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 15:44:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (254, 210, '20220801161857', 1, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:18:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (255, 210, '20220801161857', 1, 'WH060', 60, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:18:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (256, 210, '20220809140656', 13, 'WH073', 73, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 16:26:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (257, 219, '20220801172652', 3, 'PROCESS055', 55, NULL, '', NULL, NULL, 0, 0, '', '2022-08-01 17:14:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (258, 215, '20220802174313', 13, 'MO202208020013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 09:27:31', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (259, 225, '20220802180956', 2, 'IQC20220802002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 17:54:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (260, 229, '20220802180930', 2, 'RTV20220802002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-02 18:01:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (261, 215, '20220803152758', 3, 'MO202208030003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-03 15:19:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (262, 218, '20220810105807', 7, 'T00017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-08-04 16:34:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (263, 209, '20220813133944', 14, 'WS026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 11:19:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (264, 226, '20220805131441', 4, 'R20220805004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 13:09:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (265, 208, '20220808161115', 4, 'V00014', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-05 16:27:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (266, 205, '20220812160022', 12, 'ITEM00000088', 88, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 10:01:12', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (267, 229, '20220808105742', 2, 'RTV20220808002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 10:44:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (268, 207, '20220813112402', 14, 'C00024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 15:52:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (269, 208, '20220814231644', 10, 'V00024', 24, NULL, '', NULL, NULL, 0, 0, '', '2022-08-08 16:11:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (270, 219, '20220809091746', 2, 'PROCESS057', 57, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 09:17:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (271, 219, '20220813232649', 11, 'PROCESS068', 68, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 09:22:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (272, 215, '20220809173457', 7, 'MO202208090007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 12:27:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (273, 210, '20220809140657', 1, 'WH074', 74, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 14:06:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (274, 210, '20220814231315', 5, 'WH079', 79, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 14:06:58', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (275, 220, '20220813113700', 12, 'R1040', 1040, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 17:16:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (276, 226, '20220809174609', 2, 'R20220809002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-09 17:36:22', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (277, 211, '20220810082146', 5, 'L022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:21:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (278, 211, '20220927131733', 23, 'L045', 45, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:21:48', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (279, 212, '20220810082207', 2, 'A0013', 13, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:22:06', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (280, 212, '20220810083445', 4, 'A0017', 17, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 08:22:08', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (281, 218, '20220814194551', 6, 'T00023', 23, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 10:58:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (282, 215, '20220810141929', 7, 'MO202208100007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-10 12:30:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (283, 215, '20220811155054', 2, 'MO202208110002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-11 15:50:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (284, 215, '20220812163345', 36, 'MO202208120036', 36, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 11:40:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (285, 225, '20220812202238', 5, 'IQC20220812005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 13:54:10', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (286, 222, '20220822090243', 21, 'I0034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 14:20:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (287, 205, '20220813012808', 21, 'ITEM00000109', 109, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 16:00:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (288, 226, '20220812214513', 3, 'R20220812003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-12 16:51:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (289, 205, '20220813133124', 10, 'ITEM00000119', 119, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 01:28:09', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (290, 226, '20220813152657', 5, 'R20220813005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 01:47:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (291, 215, '20220813232357', 10, 'MO202208130010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 08:50:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (292, 207, '20220813134013', 7, 'C00031', 31, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 11:24:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (293, 220, '20220815153054', 12, 'R1052', 1052, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 11:37:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (294, 209, '20220816172957', 8, 'WS034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:39:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (295, 207, '20220813134017', 6, 'C00037', 37, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:40:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (296, 207, '20220815132333', 20, 'C00057', 57, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 13:40:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (297, 225, '20220813225044', 3, 'IQC20220813003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 15:14:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (298, 205, '20220815085111', 12, 'ITEM00000131', 131, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 21:48:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (299, 230, '20220815103546', 5, 'SUB009', 9, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 22:00:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (300, 206, '20220815143043', 4, 'ITEM_TYPE_0066', 66, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 23:18:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (301, 219, '20220815164921', 9, 'PROCESS077', 77, NULL, '', NULL, NULL, 0, 0, '', '2022-08-13 23:32:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (302, 215, '20220814231425', 5, 'MO202208140005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 10:40:29', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (303, 212, '20220818105233', 4, 'A0021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 11:19:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (304, 227, '20220814214249', 1, 'T026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 21:42:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (305, 227, '20220817195511', 33, 'T058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 21:42:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (306, 210, '20220817170523', 21, 'WH100', 100, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 23:13:23', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (307, 208, '20220816133617', 7, 'V00031', 31, NULL, '', NULL, NULL, 0, 0, '', '2022-08-14 23:16:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (308, 205, '20220815110633', 5, 'ITEM00000136', 136, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 08:51:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (309, 218, '20220823093332', 36, 'T00059', 59, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 09:53:55', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (310, 215, '20220815185151', 18, 'MO202208150018', 18, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 10:12:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (311, 226, '20220815143729', 8, 'R20220815008', 8, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 10:44:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (312, 205, '20220815140036', 3, 'ITEM00000139', 139, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 11:06:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (313, 225, '20220815111142', 1, 'IQC20220815001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 11:11:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (314, 207, '20220815132338', 6, 'C00063', 63, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (315, 207, '20220815132340', 4, 'C00067', 67, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (316, 207, '20220822100445', 95, 'C00162', 162, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 13:23:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (317, 230, '20220818164931', 21, 'SUB030', 30, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 14:40:05', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (318, 205, '20220817093425', 51, 'ITEM00000190', 190, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 15:43:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (319, 219, '20220818141839', 28, 'PROCESS105', 105, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 16:50:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (320, 229, '20220815172658', 2, 'RTV20220815002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 17:12:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (321, 220, '20220815200538', 2, 'R1054', 1054, NULL, '', NULL, NULL, 0, 0, '', '2022-08-15 19:52:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (322, 220, '20220816155501', 6, 'R1060', 1060, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 00:59:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (323, 226, '20220816173419', 18, 'R20220816018', 18, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 09:24:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (324, 215, '20220816232550', 38, 'MO202208160038', 38, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 10:18:25', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (325, 225, '20220816201615', 4, 'IQC20220816004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 10:32:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (326, 208, '20220816140813', 5, 'V00036', 36, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 13:36:19', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (327, 208, '20220823111843', 12, 'V00048', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 14:08:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (328, 229, '20220816195356', 6, 'RTV20220816006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 17:35:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (329, 220, '20220818105353', 6, 'R1066', 1066, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 19:55:41', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (330, 217, '20220819093714', 7, 'TT032', 32, NULL, '', NULL, NULL, 0, 0, '', '2022-08-16 19:58:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (331, 215, '20220817222518', 14, 'MO202208170014', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 08:47:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (332, 209, '20220820094836', 17, 'WS051', 51, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 08:55:43', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (333, 229, '20220817091138', 2, 'RTV20220817002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 09:11:36', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (334, 205, '20220818115033', 32, 'ITEM00000222', 222, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 09:34:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (335, 206, '20220822091118', 19, 'ITEM_TYPE_0085', 85, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 11:14:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (336, 226, '20220817205507', 22, 'R20220817022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 14:03:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (337, 225, '20220817203604', 5, 'IQC20220817005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 15:57:28', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (338, 210, '20220817170524', 1, 'WH101', 101, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 17:05:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (339, 233, '20220817231312', 6, 'ISSUE20220817006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-17 23:02:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (340, 226, '20220818211659', 12, 'R20220818012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:30:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (341, 210, '20220822145345', 35, 'WH136', 136, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:39:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (342, 225, '20220818165508', 12, 'IQC20220818012', 12, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 09:41:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (343, 229, '20220818180526', 7, 'RTV20220818007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:10:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (344, 215, '20220818230633', 77, 'MO202208180077', 77, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:33:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (345, 220, '20220819091351', 17, 'R1083', 1083, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 10:53:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (346, 212, '20220820170019', 5, 'A0026', 26, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 11:07:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (347, 216, '20220818164828', 11, 'WS0045', 45, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 11:39:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (348, 227, '20220818160823', 8, 'T066', 66, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 13:40:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (349, 205, '20220818134540', 1, 'ITEM00000223', 223, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 13:45:40', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (350, 205, '20220818141238', 3, 'ITEM00000226', 226, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:04:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (351, 205, '20220819101459', 33, 'ITEM00000259', 259, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:13:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (352, 219, '20220818144345', 2, 'PROCESS107', 107, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 14:43:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (353, 227, '20220818175718', 3, 'T069', 69, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:08:27', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (354, 216, '20220927110257', 73, 'WS0118', 118, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:48:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (355, 230, '20220823102743', 18, 'SUB048', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 16:56:44', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (356, 227, '20220820110823', 7, 'T076', 76, NULL, '', NULL, NULL, 0, 0, '', '2022-08-18 17:57:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (357, 219, '20220927100835', 87, 'PROCESS194', 194, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 00:22:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (358, 226, '20220819211451', 22, 'R20220819022', 22, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:46:50', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (359, 215, '20220819211957', 44, 'MO202208190044', 44, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:47:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (360, 225, '20220819213654', 41, 'IQC20220819041', 41, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 08:49:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (361, 214, '20220821094813', 15, 'M0041', 41, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:12:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (362, 220, '20220819173023', 13, 'R1096', 1096, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:13:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (363, 217, '20220821133355', 15, 'TT047', 47, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 09:37:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (364, 236, '20220819111319', 3, '32323232323232323232323232ITEM_TYPE_', 14, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 11:13:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (365, 236, '20220819142129', 64, 'IF2022081929', 72, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 11:16:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (366, 236, '20220819145515', 12, 'IF2022081915', 1094, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 14:21:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (367, 236, '20220819205101', 16, 'IF2022081901', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 16:18:20', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (368, 236, '20220823103219', 76, 'IF2022082319', 48, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 20:51:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (369, 229, '20220819205514', 1, 'RTV20220819001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 20:55:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (370, 220, '20220927100854', 26, 'R1122', 1122, NULL, '', NULL, NULL, 0, 0, '', '2022-08-19 21:12:27', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (371, 209, '20220820160129', 7, 'WS058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 09:48:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (372, 215, '20220820222241', 39, 'MO202208200039', 39, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 10:00:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (373, 226, '20220820215444', 21, 'R20220820021', 21, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 10:13:38', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (374, 227, '20220820110825', 2, 'T078', 78, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 11:08:24', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (375, 227, '20220820220731', 17, 'T095', 95, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 11:08:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (376, 225, '20220820160353', 3, 'IQC20220820003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 13:27:37', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (377, 209, '20220927105615', 22, 'WS080', 80, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 16:01:30', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (378, 227, '20220823083639', 10, 'T105', 105, NULL, '', NULL, NULL, 0, 0, '', '2022-08-20 22:07:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (379, 215, '20220821192938', 5, 'MO202208210005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 00:51:58', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (380, 214, '20220821094815', 1, 'M0042', 42, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 09:48:15', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (381, 212, '20221005194759', 8, 'A0034', 34, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:28:13', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (382, 214, '20220823173340', 13, 'M0055', 55, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:31:39', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (383, 217, '20220823205336', 11, 'TT058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 13:45:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (384, 226, '20220821225220', 7, 'R20220821007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-21 15:16:36', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (385, 215, '20220822234830', 19, 'MO202208220019', 19, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 08:38:59', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (386, 226, '20220822192029', 25, 'R20220822025', 25, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 08:48:16', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (387, 219, '20220822090456', 1, 'PROCESS140', 140, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:04:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (388, 219, '20220822090503', 1, 'PROCESS152', 152, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:05:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (389, 206, '20220927101231', 10, 'ITEM_TYPE_0095', 95, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:11:56', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (390, 229, '20220822155824', 7, 'RTV20220822007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 09:13:49', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (391, 207, '20220822100442', 1, 'C00153', 153, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:04:42', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (392, 207, '20220822102252', 5, 'C00167', 167, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:05:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (393, 207, '20220927102713', 32, 'C00199', 199, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 10:22:53', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (394, 210, '20220823083833', 3, 'WH139', 139, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 14:53:46', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (395, 225, '20220822154721', 1, 'IQC20220822001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-08-22 15:47:21', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (396, 226, '20220823203609', 20, 'R20220823020', 20, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 00:41:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (397, 215, '20220823200644', 52, 'MO202208230052', 52, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 07:51:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (398, 210, '20220927131638', 18, 'WH157', 157, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:38:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (399, 229, '20220823205401', 5, 'RTV20220823005', 5, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:43:32', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (400, 227, '20220823184025', 12, 'T117', 117, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 08:58:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (401, 225, '20220823192837', 7, 'IQC20220823007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 09:47:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (402, 236, '20220823173612', 17, 'IF2022082312', 51, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 10:41:04', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (403, 208, '20220823181426', 10, 'V00058', 58, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 15:09:35', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (404, 236, '20220823192141', 10, 'IF2022082341', 154, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 19:08:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (405, 236, '20220927102019', 16, 'IF2022092719', 95, NULL, '', NULL, NULL, 0, 0, '', '2022-08-23 19:21:45', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (406, 215, '20220828084935', 6, 'MO202208280006', 6, NULL, '', NULL, NULL, 0, 0, '', '2022-08-28 08:36:52', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (407, 237, '20220829224554', 4, 'IPQC202208290004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-08-29 22:09:01', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (408, 225, '20220831211548', 3, 'IQC20220831003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-08-31 20:57:09', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (409, 238, '20220901212705', 4, 'OQC20220901004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-09-01 20:35:11', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (410, 226, '20220902104056', 4, 'R20220902004', 4, NULL, '', NULL, NULL, 0, 0, '', '2022-09-02 10:36:07', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (411, 233, '20220902104302', 1, 'ISSUE20220902001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-02 10:43:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (412, 239, '20220904223417', 10, 'PBACK20220904010', 10, NULL, '', NULL, NULL, 0, 0, '', '2022-09-03 23:50:32', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (413, 237, '20220909211934', 1, 'IPQC202209090001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-09 21:19:38', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (414, 226, '20220910111422', 2, 'R20220910002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-10 10:57:18', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (415, 226, '20220912232033', 1, 'R20220912001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-12 23:20:33', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (416, 226, '20220913223354', 1, 'R20220913001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-13 22:33:54', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (417, 233, '20220913225049', 2, 'ISSUE20220913002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-13 22:35:02', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (418, 240, '20220915232017', 1, 'RT202209150001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-15 23:20:17', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (419, 226, '20220916212404', 1, 'R20220916001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-16 21:24:06', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (420, 241, '20220923105914', 1, 'PR20220923001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-09-23 10:59:14', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (421, 215, '20220926212817', 2, 'MO202209260002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-26 21:27:05', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (422, 215, '20220927112106', 2, 'MO202209270002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-27 10:25:50', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (423, 226, '20220927131833', 2, 'R20220927002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-27 13:15:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (424, 242, '20220928220423', 2, 'REP2022002', 2, NULL, '', NULL, NULL, 0, 0, '', '2022-09-28 22:02:26', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (425, 243, '20221005194837', 3, 'PS20221005003', 3, NULL, '', NULL, NULL, 0, 0, '', '2022-10-05 19:46:57', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (426, 233, '20221006132703', 1, 'ISSUE20221006001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-10-06 13:27:03', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (427, 244, '20221006214134', 1, 'RS20221006001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-10-06 21:41:34', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (428, 245, '20221011233528', 7, 'PACK202210110007', 7, NULL, '', NULL, NULL, 0, 0, '', '2022-10-11 01:23:50', '', NULL);
+INSERT INTO `sys_auto_code_result` VALUES (429, 240, '20221015152217', 1, 'RT202210150001', 1, NULL, '', NULL, NULL, 0, 0, '', '2022-10-15 15:22:17', '', NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 73 - 0
doc/实施文档/sys_auto_code_rule.sql

@@ -0,0 +1,73 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_auto_code_rule
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_auto_code_rule`;
+CREATE TABLE `sys_auto_code_rule`  (
+  `rule_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '规则ID',
+  `rule_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则编码',
+  `rule_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则名称',
+  `rule_desc` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  `max_length` int(11) NULL DEFAULT NULL COMMENT '最大长度',
+  `is_padded` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '是否补齐',
+  `padded_char` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '补齐字符',
+  `padded_method` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'L' COMMENT '补齐方式',
+  `enable_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'Y' COMMENT '是否启用',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  `attr1` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段1',
+  `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '预留字段2',
+  `attr3` int(11) NULL DEFAULT 0 COMMENT '预留字段3',
+  `attr4` int(11) NULL DEFAULT 0 COMMENT '预留字段4',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`rule_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 246 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '编码生成规则表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_auto_code_rule
+-- ----------------------------
+INSERT INTO `sys_auto_code_rule` VALUES (206, 'ITEM_TYPE_CODE', '物料分类编码', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-04-26 23:01:09', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (207, 'CLIENT_CODE', '客户编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 21:20:29', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (208, 'VENDOR_CODE', '供应商编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-06 22:50:13', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (209, 'WORKSHOP_CODE', '车间编码生成规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 17:48:52', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (210, 'WAREHOUSE_CODE', '仓库编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-07 21:59:51', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (211, 'LOCATION_CODE', '库区编码生成规则', NULL, 4, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 14:49:56', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (212, 'AREA_CODE', '库位编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 18:38:08', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (213, 'MACHINERY_TYPE_CODE', '设备类型编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 19:46:09', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (214, 'MACHINERY_CODE', '设备编码规则', NULL, 13, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-08 21:26:39', 'admin', '2022-08-23 09:15:17');
+INSERT INTO `sys_auto_code_rule` VALUES (215, 'WORKORDER_CODE', '生产工单编码规则1', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-09 11:39:59', 'admin', '2022-08-20 09:12:40');
+INSERT INTO `sys_auto_code_rule` VALUES (216, 'WORKSTATION_CODE', '工作站编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-10 21:55:24', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (217, 'TOOL_TYPE_CODE', '工装夹具类型编码', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 00:21:37', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (218, 'TOOL_CODE', '工装夹具编码规则', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-11 22:07:17', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (219, 'PROCESS_CODE', '工序编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 00:09:45', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (220, 'ROUTE_CODE', '工艺流程编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-12 23:06:36', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (221, 'TASK_CODE', '生产任务编码规则', NULL, 12, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-15 18:22:29', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (222, 'QC_INDEX_CODE', '检测项编码规则', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 21:57:23', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (223, 'QC_TEMPLATE_CODE', '检测模板编码规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-17 22:43:08', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (224, 'DEFECT_CODE', '常见缺陷编码', NULL, 5, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 11:33:27', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (225, 'QC_IQC_CODE', '来料检验单编码规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-19 16:28:07', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (226, 'ITEMRECPT_CODE', '物料入库单编码规则', NULL, 12, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-05-22 20:51:29', 'admin', '2022-05-22 20:53:12');
+INSERT INTO `sys_auto_code_rule` VALUES (227, 'CAL_TEAM_CODE', '班组编码规则', NULL, 4, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 19:54:22', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (228, 'CAL_PLAN_CODE', '排班计划编号', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-06 22:08:10', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (229, 'WM_RTVENDOR_CODE', '供应商退货单编码', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-13 15:48:07', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (230, 'SUBJECT_CODE', '设备点检保养项目编码', NULL, 6, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 20:27:54', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (231, 'CHECKPLAN_CODE', '点检编码规则', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-06-16 21:50:00', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (232, 'BATCH_CODE', '批次规则', NULL, 11, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-14 12:02:10', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (233, 'ISSUE_CODE', '生产领料单编码', NULL, 16, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-17 19:32:10', 'admin', '2022-07-17 19:32:57');
+INSERT INTO `sys_auto_code_rule` VALUES (234, '1', '2', NULL, 1, 'Y', '3', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-07-29 16:34:20', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (236, 'ITEM_CODE', '物料规则', NULL, 10, 'N', '32', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-19 10:44:20', 'admin', '2022-08-19 11:26:02');
+INSERT INTO `sys_auto_code_rule` VALUES (237, 'IPQC_CODE', '过程检验单编码', NULL, 16, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-08-29 22:07:13', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (238, 'OQC_CODE', '出货编码规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-01 20:30:31', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (239, 'PBACK_CODE', '生产退料单编码', '生产退料单编码', 16, 'N', '0', 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-03 23:47:11', 'admin', '2022-09-03 23:47:57');
+INSERT INTO `sys_auto_code_rule` VALUES (240, 'RTISSUE_CODE', '生产退库单编号规则', NULL, 14, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-15 23:18:40', 'admin', '2022-09-15 23:19:04');
+INSERT INTO `sys_auto_code_rule` VALUES (241, 'PRODUCTRECPT_CODE', '产品入库单编码规则', NULL, 13, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-23 10:57:47', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (242, 'REPAIR_CODE', '维修工单编号规则', NULL, 10, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-09-28 21:59:54', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (243, 'PRODUCTSALSE_CODE', '销售出库单编号', NULL, 13, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-05 19:45:35', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (244, 'RTSALSE_CODE', '销售退货单编码规则', NULL, 13, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-06 21:40:18', '', NULL);
+INSERT INTO `sys_auto_code_rule` VALUES (245, 'PACKAGE_CODE', '装箱单编码规则', NULL, 16, 'N', NULL, 'L', 'Y', NULL, NULL, NULL, 0, 0, 'admin', '2022-10-11 01:22:08', '', NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 157 - 0
doc/实施文档/sys_dict_data.sql

@@ -0,0 +1,157 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_dict_data
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_data`;
+CREATE TABLE `sys_dict_data`  (
+  `dict_code` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典编码',
+  `dict_sort` int(4) NULL DEFAULT 0 COMMENT '字典排序',
+  `dict_label` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典标签',
+  `dict_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典键值',
+  `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型',
+  `css_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '样式属性(其他样式扩展)',
+  `list_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表格回显样式',
+  `is_default` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'N' COMMENT '是否默认(Y是 N否)',
+  `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`dict_code`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 200 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典数据表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_dict_data
+-- ----------------------------
+INSERT INTO `sys_dict_data` VALUES (1, 1, '男', '0', 'sys_user_sex', '', 'info', 'Y', '0', 'admin', '2022-04-07 00:29:32', 'admin', '2022-08-19 20:53:31', '性别男');
+INSERT INTO `sys_dict_data` VALUES (2, 2, '女', '1', 'sys_user_sex', '', '', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '性别女');
+INSERT INTO `sys_dict_data` VALUES (3, 3, '未知', '2', 'sys_user_sex', '', '', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '性别未知');
+INSERT INTO `sys_dict_data` VALUES (4, 1, '显示', '0', 'sys_show_hide', '', 'primary', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '显示菜单');
+INSERT INTO `sys_dict_data` VALUES (5, 2, '隐藏', '1', 'sys_show_hide', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '隐藏菜单');
+INSERT INTO `sys_dict_data` VALUES (6, 1, '正常', '0', 'sys_normal_disable', '', 'primary', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (7, 2, '停用', '1', 'sys_normal_disable', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (8, 1, '正常', '0', 'sys_job_status', '', 'primary', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (9, 2, '暂停', '1', 'sys_job_status', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (10, 1, '默认', 'DEFAULT', 'sys_job_group', '', '', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '默认分组');
+INSERT INTO `sys_dict_data` VALUES (11, 2, '系统', 'SYSTEM', 'sys_job_group', '', '', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '系统分组');
+INSERT INTO `sys_dict_data` VALUES (12, 1, '是', 'Y', 'sys_yes_no', '', 'primary', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '系统默认是');
+INSERT INTO `sys_dict_data` VALUES (13, 2, '否', 'N', 'sys_yes_no', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '系统默认否');
+INSERT INTO `sys_dict_data` VALUES (14, 1, '通知', '1', 'sys_notice_type', '', 'warning', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '通知');
+INSERT INTO `sys_dict_data` VALUES (15, 2, '公告', '2', 'sys_notice_type', '', 'success', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '公告');
+INSERT INTO `sys_dict_data` VALUES (16, 1, '正常', '0', 'sys_notice_status', '', 'primary', 'Y', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (17, 2, '关闭', '1', 'sys_notice_status', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '关闭状态');
+INSERT INTO `sys_dict_data` VALUES (18, 1, '新增', '1', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '新增操作');
+INSERT INTO `sys_dict_data` VALUES (19, 2, '修改', '2', 'sys_oper_type', '', 'info', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '修改操作');
+INSERT INTO `sys_dict_data` VALUES (20, 3, '删除', '3', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '删除操作');
+INSERT INTO `sys_dict_data` VALUES (21, 4, '授权', '4', 'sys_oper_type', '', 'primary', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '授权操作');
+INSERT INTO `sys_dict_data` VALUES (22, 5, '导出', '5', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '导出操作');
+INSERT INTO `sys_dict_data` VALUES (23, 6, '导入', '6', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '导入操作');
+INSERT INTO `sys_dict_data` VALUES (24, 7, '强退', '7', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '强退操作');
+INSERT INTO `sys_dict_data` VALUES (25, 8, '生成代码', '8', 'sys_oper_type', '', 'warning', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '生成操作');
+INSERT INTO `sys_dict_data` VALUES (26, 9, '清空数据', '9', 'sys_oper_type', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '清空操作');
+INSERT INTO `sys_dict_data` VALUES (27, 1, '成功', '0', 'sys_common_status', '', 'primary', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '正常状态');
+INSERT INTO `sys_dict_data` VALUES (28, 2, '失败', '1', 'sys_common_status', '', 'danger', 'N', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '停用状态');
+INSERT INTO `sys_dict_data` VALUES (100, 1, '物料', 'ITEM', 'mes_item_product', NULL, 'default', 'N', '0', 'admin', '2022-04-16 16:34:46', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (101, 2, '产品', 'PRODUCT', 'mes_item_product', NULL, 'default', 'N', '0', 'admin', '2022-04-16 16:35:02', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (102, 1, '输入字符', 'INPUTCHAR', 'sys_autocode_parttype', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:33:47', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (103, 2, '当前日期时间', 'NOWDATE', 'sys_autocode_parttype', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:34:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (104, 3, '固定字符', 'FIXCHAR', 'sys_autocode_parttype', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:34:27', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (105, 4, '流水号', 'SERIALNO', 'sys_autocode_parttype', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:34:53', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (106, 1, '按年', 'YEAR', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:35:17', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (107, 2, '按月', 'MONTH', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:35:29', 'admin', '2022-04-26 15:35:55', NULL);
+INSERT INTO `sys_dict_data` VALUES (108, 3, '按天', 'DAY', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:36:13', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (109, 4, '按小时', 'HOUR', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:36:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (110, 5, '按分钟', 'MINUTE', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:36:59', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (111, 6, '按传入字符', 'OTHER', 'sys_autocode_cyclemethod', NULL, 'default', 'N', '0', 'admin', '2022-04-26 15:37:19', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (112, 1, '企业客户', 'ENTERPRISE', 'mes_client_type', NULL, 'default', 'N', '0', 'admin', '2022-05-06 20:54:37', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (113, 2, '个人', 'PERSON', 'mes_client_type', NULL, 'default', 'N', '0', 'admin', '2022-05-06 20:55:00', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (114, 1, '优质供应商', 'A', 'mes_vendor_level', NULL, 'default', 'N', '0', 'admin', '2022-05-06 22:45:52', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (115, 2, '正常', 'B', 'mes_vendor_level', NULL, 'default', 'N', '0', 'admin', '2022-05-06 22:46:02', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (116, 3, '重点关注', 'C', 'mes_vendor_level', NULL, 'default', 'N', '0', 'admin', '2022-05-06 22:46:15', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (117, 4, '劣质供应商', 'D', 'mes_vendor_level', NULL, 'default', 'N', '0', 'admin', '2022-05-06 22:46:41', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (118, 5, '黑名单', 'E', 'mes_vendor_level', NULL, 'default', 'N', '0', 'admin', '2022-05-06 22:46:54', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (119, 1, '草稿', 'PREPARE', 'mes_order_status', NULL, 'default', 'N', '0', 'admin', '2022-05-09 10:35:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (120, 2, '已确认', 'CONFIRMED', 'mes_order_status', NULL, 'default', 'N', '0', 'admin', '2022-05-09 10:36:37', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (121, 3, '审批中', 'APPROVING', 'mes_order_status', NULL, 'default', 'N', '0', 'admin', '2022-05-09 10:39:30', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (122, 4, '已审批', 'APPROVED', 'mes_order_status', NULL, 'default', 'N', '0', 'admin', '2022-05-09 10:39:45', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (123, 5, '已完成', 'FINISHED', 'mes_order_status', NULL, 'default', 'N', '0', 'admin', '2022-05-09 10:40:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (124, 1, '客户订单', 'ORDER', 'mes_workorder_sourcetype', NULL, 'default', 'N', '0', 'admin', '2022-05-09 11:23:47', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (125, 2, '库存备货', 'STORE', 'mes_workorder_sourcetype', NULL, 'default', 'N', '0', 'admin', '2022-05-09 11:24:04', 'admin', '2022-05-09 11:24:24', NULL);
+INSERT INTO `sys_dict_data` VALUES (126, 1, '定期维护', 'REGULAR', 'mes_mainten_type', NULL, 'default', 'N', '0', 'admin', '2022-05-10 23:40:57', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (127, 2, '按使用次数维护', 'USAGE', 'mes_mainten_type', NULL, 'default', 'N', '0', 'admin', '2022-05-10 23:41:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (128, 1, '在库', 'STORE', 'mes_tool_status', NULL, 'default', 'N', '0', 'admin', '2022-05-11 20:51:13', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (129, 2, '被领用', 'ISSUE', 'mes_tool_status', NULL, 'default', 'N', '0', 'admin', '2022-05-11 20:51:36', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (130, 3, '报废', 'SCRAP', 'mes_tool_status', NULL, 'default', 'N', '0', 'admin', '2022-05-11 20:52:02', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (131, 4, '维修中', 'REPARE', 'mes_tool_status', NULL, 'default', 'N', '0', 'admin', '2022-05-11 20:52:20', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (132, 1, 'S-to-S', 'SS', 'mes_link_type', NULL, 'default', 'N', '0', 'admin', '2022-05-13 21:51:28', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (133, 2, 'F-to-F', 'FF', 'mes_link_type', NULL, 'default', 'N', '0', 'admin', '2022-05-13 21:51:51', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (134, 3, 'S-to-F', 'SF', 'mes_link_type', NULL, 'default', 'N', '0', 'admin', '2022-05-13 21:52:05', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (135, 4, 'F-to-S', 'FS', 'mes_link_type', NULL, 'default', 'N', '0', 'admin', '2022-05-13 21:52:21', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (136, 1, '秒', 'SECOND', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:41:14', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (137, 2, '分钟', 'MINUTE', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:41:25', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (138, 3, '小时', 'HOUR', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:41:46', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (139, 4, '天', 'DAY', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:41:57', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (140, 5, '周', 'WEEK', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:42:12', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (141, 6, '月', 'MONTH', 'mes_time_type', NULL, 'default', 'N', '0', 'admin', '2022-05-14 08:42:26', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (142, 1, '尺寸', 'SIZE', 'mes_index_type', NULL, 'default', 'N', '0', 'admin', '2022-05-17 21:26:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (143, 2, '外观', 'APPEARANCE', 'mes_index_type', NULL, 'default', 'N', '0', 'admin', '2022-05-17 21:28:19', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (144, 3, '重量', 'WEIGHT', 'mes_index_type', NULL, 'default', 'N', '0', 'admin', '2022-05-17 21:28:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (145, 4, '性能', 'PERFORMANCE', 'mes_index_type', NULL, 'default', 'N', '0', 'admin', '2022-05-17 21:29:28', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (146, 5, '成分', 'COMPONENT', 'mes_index_type', NULL, 'default', 'N', '0', 'admin', '2022-05-17 21:30:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (147, 1, '[来料检验]', 'IQC', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:38:58', 'admin', '2022-05-18 10:38:43', NULL);
+INSERT INTO `sys_dict_data` VALUES (148, 2, '[首检]', 'FIRST', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:39:19', 'admin', '2022-09-08 22:22:34', NULL);
+INSERT INTO `sys_dict_data` VALUES (149, 3, '[末检]', 'FINAL', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:39:46', 'admin', '2022-09-08 22:22:39', NULL);
+INSERT INTO `sys_dict_data` VALUES (150, 4, '[巡检]', 'PATROL', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:40:05', 'admin', '2022-09-08 22:22:55', NULL);
+INSERT INTO `sys_dict_data` VALUES (151, 5, '[成品检验]', 'FQC', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:40:27', 'admin', '2022-05-18 10:39:08', NULL);
+INSERT INTO `sys_dict_data` VALUES (152, 6, '[发货检验]', 'OQC', 'mes_qc_type', NULL, 'default', 'N', '0', 'admin', '2022-05-18 09:40:52', 'admin', '2022-05-18 10:39:14', NULL);
+INSERT INTO `sys_dict_data` VALUES (153, 1, '致命缺陷', 'CR', 'mes_defect_level', NULL, 'default', 'N', '0', 'admin', '2022-05-19 10:24:05', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (154, 2, '严重缺陷', 'MAJ', 'mes_defect_level', NULL, 'default', 'N', '0', 'admin', '2022-05-19 10:24:20', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (155, 3, '轻微缺陷', 'MIN', 'mes_defect_level', NULL, 'default', 'N', '0', 'admin', '2022-05-19 10:24:33', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (156, 1, '检验通过', 'ACCEPT', 'mes_qc_result', NULL, 'default', 'N', '0', 'admin', '2022-05-19 16:38:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (157, 2, '检验不通过', 'REJECT', 'mes_qc_result', NULL, 'default', 'N', '0', 'admin', '2022-05-19 16:38:22', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (159, 1, '白班', 'SINGLE', 'mes_shift_type', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:33:56', 'admin', '2022-06-06 21:35:05', NULL);
+INSERT INTO `sys_dict_data` VALUES (160, 2, '两班倒', 'SHIFT_TWO', 'mes_shift_type', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:34:19', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (161, 3, '三班倒', 'SHIFT_THREE', 'mes_shift_type', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:34:38', 'admin', '2022-06-06 21:34:45', NULL);
+INSERT INTO `sys_dict_data` VALUES (162, 1, '按天', 'DAY', 'mes_shift_method', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:39:51', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (163, 2, '按周', 'WEEK', 'mes_shift_method', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:40:14', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (164, 3, '按月', 'MONTH', 'mes_shift_method', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:40:31', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (165, 4, '按季度', 'QUARTER', 'mes_shift_method', NULL, 'default', 'N', '0', 'admin', '2022-06-06 21:40:55', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (166, 1, '注塑', 'ZS', 'mes_calendar_type', NULL, 'default', 'N', '0', 'admin', '2022-06-08 13:27:23', 'admin', '2022-06-11 21:05:57', NULL);
+INSERT INTO `sys_dict_data` VALUES (167, 2, '机加工', 'CNC', 'mes_calendar_type', NULL, 'default', 'N', '0', 'admin', '2022-06-08 13:27:35', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (168, 3, '组装', 'ZZ', 'mes_calendar_type', NULL, 'default', 'N', '0', 'admin', '2022-06-08 13:27:55', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (169, 4, '仓库', 'CK', 'mes_calendar_type', NULL, 'default', 'N', '0', 'admin', '2022-06-08 13:28:24', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (170, 1, '设备点检', 'CHECK', 'mes_dvsubject_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 16:50:51', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (171, 2, '设备保养', 'MAINTEN', 'mes_dvsubject_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 16:51:19', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (172, 1, '小时', 'HOUR', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:47:54', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (173, 2, '天', 'DAY', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:49:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (174, 3, '周', 'WEEK', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:49:21', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (175, 4, '月', 'MONTH', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:49:32', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (176, 5, '季度', 'QUARTER', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:50:00', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (177, 6, '年', 'YEAR', 'mes_cycle_type', NULL, 'default', 'N', '0', 'admin', '2022-06-16 20:50:22', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (178, 1, '设备点检计划', 'CHECK', 'dv_plan_type', NULL, 'default', 'N', '0', 'admin', '2022-06-19 17:03:44', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (179, 2, '设备保养计划', 'MAINTEN', 'dv_plan_type', NULL, 'default', 'N', '0', 'admin', '2022-06-19 17:03:56', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (180, 1, 'QR二维码', 'QR_CODE', 'mes_barcode_formart', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:06:50', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (181, 2, 'EAN码', 'EAN_CODE', 'mes_barcode_formart', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:07:40', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (182, 3, 'UPC码', 'UPC_CODE', 'mes_barcode_formart', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:07:58', 'admin', '2022-08-01 11:08:03', NULL);
+INSERT INTO `sys_dict_data` VALUES (183, 1, '物料产品条码', 'ITEM', 'mes_barcode_type', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:09:07', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (184, 2, '小包装条码', 'BOX_SMALL', 'mes_barcode_type', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:10:19', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (185, 3, '库存条码', 'STOCK', 'mes_barcode_type', NULL, 'default', 'N', '0', 'admin', '2022-08-01 11:10:40', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (186, 1, '修复成功', 'SUCCESS', 'mes_repair_result', NULL, 'default', 'N', '0', 'admin', '2022-08-06 11:27:48', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (187, 2, '报废', 'SCRAP', 'mes_repair_result', NULL, 'default', 'N', '0', 'admin', '2022-08-06 11:28:18', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (188, 0, '汉族', '0', 'nation_type', NULL, 'default', 'N', '0', 'admin', '2022-08-15 14:26:52', 'admin', '2022-08-15 14:27:35', NULL);
+INSERT INTO `sys_dict_data` VALUES (189, 1, '首检', 'FIRST', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:19:20', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (190, 2, '末检', 'FINAL', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:19:38', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (191, 3, '自检', 'SELF', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:19:52', 'admin', '2022-08-29 20:19:57', NULL);
+INSERT INTO `sys_dict_data` VALUES (192, 4, '巡检', 'PATROL', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:20:13', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (193, 5, '点检', 'CHECK', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:20:28', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (194, 6, '终检', 'FQC', 'mes_ipqc_type', NULL, 'default', 'N', '0', 'admin', '2022-08-29 20:20:44', 'admin', '2022-08-29 20:58:07', NULL);
+INSERT INTO `sys_dict_data` VALUES (195, 1, '自行报工', 'SELF', 'mes_feedback_type', NULL, 'default', 'N', '0', 'admin', '2022-10-02 15:52:45', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (196, 2, '统一报工', 'UNI', 'mes_feedback_type', NULL, 'default', 'N', '0', 'admin', '2022-10-02 15:53:03', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (197, 1, '停机', 'STOP', 'mes_machinery_status', NULL, 'default', 'N', '0', 'admin', '2022-10-09 19:24:34', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (198, 2, '生产中', 'WORKING', 'mes_machinery_status', NULL, 'default', 'N', '0', 'admin', '2022-10-09 19:24:54', '', NULL, NULL);
+INSERT INTO `sys_dict_data` VALUES (199, 3, '维修中', 'REPAIR', 'mes_machinery_status', NULL, 'default', 'N', '0', 'admin', '2022-10-09 19:25:28', '', NULL, NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 64 - 0
doc/实施文档/sys_dict_type.sql

@@ -0,0 +1,64 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_dict_type
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict_type`;
+CREATE TABLE `sys_dict_type`  (
+  `dict_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '字典主键',
+  `dict_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典名称',
+  `dict_type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '字典类型',
+  `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '状态(0正常 1停用)',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`dict_id`) USING BTREE,
+  UNIQUE INDEX `dict_type`(`dict_type`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 129 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典类型表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_dict_type
+-- ----------------------------
+INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '用户性别列表');
+INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '菜单状态列表');
+INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '系统开关列表');
+INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '任务状态列表');
+INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '任务分组列表');
+INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '系统是否列表');
+INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '通知类型列表');
+INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '通知状态列表');
+INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '操作类型列表');
+INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', 'admin', '2022-04-07 00:29:32', '', NULL, '登录状态列表');
+INSERT INTO `sys_dict_type` VALUES (100, '物料or产品', 'mes_item_product', '0', 'admin', '2022-04-16 16:34:20', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (101, '编码规则组成类型', 'sys_autocode_parttype', '0', 'admin', '2022-04-26 15:32:42', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (102, '编码规则组成循环方式', 'sys_autocode_cyclemethod', '0', 'admin', '2022-04-26 15:33:02', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (103, '客户类型', 'mes_client_type', '0', 'admin', '2022-05-06 20:53:28', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (104, '供应商级别', 'mes_vendor_level', '0', 'admin', '2022-05-06 22:44:56', 'admin', '2022-05-06 22:45:35', NULL);
+INSERT INTO `sys_dict_type` VALUES (105, '单据状态【通用】', 'mes_order_status', '0', 'admin', '2022-05-09 10:34:41', 'admin', '2022-05-09 10:35:10', NULL);
+INSERT INTO `sys_dict_type` VALUES (106, '生产工单来源', 'mes_workorder_sourcetype', '0', 'admin', '2022-05-09 11:23:22', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (107, '维护类型表', 'mes_mainten_type', '0', 'admin', '2022-05-10 23:40:36', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (108, '工装夹具状态', 'mes_tool_status', '0', 'admin', '2022-05-11 20:50:46', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (109, '工序关系类型', 'mes_link_type', '0', 'admin', '2022-05-13 21:50:44', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (110, '时间单位', 'mes_time_type', '0', 'admin', '2022-05-14 08:40:53', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (111, '检测项类型', 'mes_index_type', '0', 'admin', '2022-05-17 21:26:05', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (112, '检测类型', 'mes_qc_type', '0', 'admin', '2022-05-18 09:38:32', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (113, '缺陷等级', 'mes_defect_level', '0', 'admin', '2022-05-19 10:23:38', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (114, '检验结果', 'mes_qc_result', '0', 'admin', '2022-05-19 16:37:45', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (116, '倒班方式', 'mes_shift_type', '0', 'admin', '2022-06-06 21:33:17', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (117, '轮班方式', 'mes_shift_method', '0', 'admin', '2022-06-06 21:39:26', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (118, '排班类型', 'mes_calendar_type', '0', 'admin', '2022-06-08 13:26:56', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (119, '设备点检保养项目类型', 'mes_dvsubject_type', '0', 'admin', '2022-06-16 16:50:14', 'admin', '2022-06-16 16:50:29', NULL);
+INSERT INTO `sys_dict_type` VALUES (120, '设备点检频率', 'mes_cycle_type', '0', 'admin', '2022-06-16 20:47:19', 'admin', '2022-06-16 20:51:22', NULL);
+INSERT INTO `sys_dict_type` VALUES (121, '设备点检保养计划类型', 'dv_plan_type', '0', 'admin', '2022-06-19 17:03:18', 'admin', '2022-06-19 17:04:17', NULL);
+INSERT INTO `sys_dict_type` VALUES (122, '条码格式', 'mes_barcode_formart', '0', 'admin', '2022-08-01 11:05:54', 'admin', '2022-08-01 11:06:15', NULL);
+INSERT INTO `sys_dict_type` VALUES (123, '条码类型', 'mes_barcode_type', '0', 'admin', '2022-08-01 11:08:27', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (124, '维修结果', 'mes_repair_result', '0', 'admin', '2022-08-06 11:27:05', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (125, '民族', 'nation_type', '0', 'admin', '2022-08-15 14:25:55', 'admin', '2022-08-15 14:26:34', '民族');
+INSERT INTO `sys_dict_type` VALUES (126, '过程质量检验类型', 'mes_ipqc_type', '0', 'admin', '2022-08-29 20:18:48', 'admin', '2022-08-29 20:18:59', NULL);
+INSERT INTO `sys_dict_type` VALUES (127, '生产报工类型', 'mes_feedback_type', '0', 'admin', '2022-10-02 15:51:21', '', NULL, NULL);
+INSERT INTO `sys_dict_type` VALUES (128, '设备状态', 'mes_machinery_status', '0', 'admin', '2022-10-09 19:23:54', '', NULL, NULL);
+
+SET FOREIGN_KEY_CHECKS = 1;

+ 368 - 0
doc/实施文档/sys_menu.sql

@@ -0,0 +1,368 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu`  (
+  `menu_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
+  `menu_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
+  `order_num` int(4) NULL DEFAULT 0 COMMENT '显示顺序',
+  `path` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址',
+  `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件路径',
+  `query` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '路由参数',
+  `is_frame` int(1) NULL DEFAULT 1 COMMENT '是否为外链(0是 1否)',
+  `is_cache` int(1) NULL DEFAULT 0 COMMENT '是否缓存(0缓存 1不缓存)',
+  `menu_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '菜单类型(M目录 C菜单 F按钮)',
+  `visible` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
+  `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
+  `perms` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限标识',
+  `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
+  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+  `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
+  `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`menu_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2256 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单权限表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES (1, '系统管理', 0, 1, 'system', NULL, '', 1, 0, 'M', '0', '0', '', 'system', 'admin', '2022-04-07 00:29:31', '', NULL, '系统管理目录');
+INSERT INTO `sys_menu` VALUES (2, '系统监控', 0, 2, 'monitor', NULL, '', 1, 0, 'M', '0', '0', '', 'monitor', 'admin', '2022-04-07 00:29:31', '', NULL, '系统监控目录');
+INSERT INTO `sys_menu` VALUES (3, '系统工具', 0, 3, 'tool', NULL, '', 1, 0, 'M', '0', '0', '', 'tool', 'admin', '2022-04-07 00:29:31', '', NULL, '系统工具目录');
+INSERT INTO `sys_menu` VALUES (100, '用户管理', 2210, 4, 'user', 'system/user/index', '', 1, 0, 'C', '0', '0', 'system:user:list', 'user', 'admin', '2022-04-07 00:29:31', 'admin', '2022-08-13 21:41:42', '用户管理菜单');
+INSERT INTO `sys_menu` VALUES (101, '角色管理', 2210, 3, 'role', 'system/role/index', '', 1, 0, 'C', '0', '0', 'system:role:list', 'peoples', 'admin', '2022-04-07 00:29:31', 'admin', '2022-08-13 21:42:03', '角色管理菜单');
+INSERT INTO `sys_menu` VALUES (102, '菜单管理', 1, 3, 'menu', 'system/menu/index', '', 1, 0, 'C', '0', '0', 'system:menu:list', 'tree-table', 'admin', '2022-04-07 00:29:31', '', NULL, '菜单管理菜单');
+INSERT INTO `sys_menu` VALUES (103, '部门管理', 2210, 1, 'dept', 'system/dept/index', '', 1, 0, 'C', '0', '0', 'system:dept:list', 'tree', 'admin', '2022-04-07 00:29:31', 'admin', '2022-08-13 21:42:27', '部门管理菜单');
+INSERT INTO `sys_menu` VALUES (104, '岗位管理', 2210, 2, 'post', 'system/post/index', '', 1, 0, 'C', '0', '0', 'system:post:list', 'post', 'admin', '2022-04-07 00:29:31', 'admin', '2022-08-13 21:42:38', '岗位管理菜单');
+INSERT INTO `sys_menu` VALUES (105, '字典管理', 1, 6, 'dict', 'system/dict/index', '', 1, 0, 'C', '0', '0', 'system:dict:list', 'dict', 'admin', '2022-04-07 00:29:31', '', NULL, '字典管理菜单');
+INSERT INTO `sys_menu` VALUES (106, '参数设置', 1, 7, 'config', 'system/config/index', '', 1, 0, 'C', '0', '0', 'system:config:list', 'edit', 'admin', '2022-04-07 00:29:31', '', NULL, '参数设置菜单');
+INSERT INTO `sys_menu` VALUES (107, '通知公告', 1, 8, 'notice', 'system/notice/index', '', 1, 0, 'C', '0', '0', 'system:notice:list', 'message', 'admin', '2022-04-07 00:29:31', '', NULL, '通知公告菜单');
+INSERT INTO `sys_menu` VALUES (108, '日志管理', 1, 9, 'log', '', '', 1, 0, 'M', '0', '0', '', 'log', 'admin', '2022-04-07 00:29:31', '', NULL, '日志管理菜单');
+INSERT INTO `sys_menu` VALUES (109, '在线用户', 2, 1, 'online', 'monitor/online/index', '', 1, 0, 'C', '0', '0', 'monitor:online:list', 'online', 'admin', '2022-04-07 00:29:31', '', NULL, '在线用户菜单');
+INSERT INTO `sys_menu` VALUES (110, '定时任务', 2, 2, 'job', 'monitor/job/index', '', 1, 0, 'C', '0', '0', 'monitor:job:list', 'job', 'admin', '2022-04-07 00:29:31', '', NULL, '定时任务菜单');
+INSERT INTO `sys_menu` VALUES (111, '数据监控', 2, 3, 'druid', 'monitor/druid/index', '', 1, 0, 'C', '0', '0', 'monitor:druid:list', 'druid', 'admin', '2022-04-07 00:29:31', '', NULL, '数据监控菜单');
+INSERT INTO `sys_menu` VALUES (112, '服务监控', 2, 4, 'server', 'monitor/server/index', '', 1, 0, 'C', '0', '0', 'monitor:server:list', 'server', 'admin', '2022-04-07 00:29:31', '', NULL, '服务监控菜单');
+INSERT INTO `sys_menu` VALUES (113, '缓存监控', 2, 5, 'cache', 'monitor/cache/index', '', 1, 0, 'C', '0', '0', 'monitor:cache:list', 'redis', 'admin', '2022-04-07 00:29:31', '', NULL, '缓存监控菜单');
+INSERT INTO `sys_menu` VALUES (114, '表单构建', 3, 1, 'build', 'tool/build/index', '', 1, 0, 'C', '0', '0', 'tool:build:list', 'build', 'admin', '2022-04-07 00:29:31', '', NULL, '表单构建菜单');
+INSERT INTO `sys_menu` VALUES (115, '代码生成', 3, 2, 'gen', 'tool/gen/index', '', 1, 0, 'C', '0', '0', 'tool:gen:list', 'code', 'admin', '2022-04-07 00:29:31', '', NULL, '代码生成菜单');
+INSERT INTO `sys_menu` VALUES (116, '系统接口', 3, 3, 'swagger', 'tool/swagger/index', '', 1, 0, 'C', '0', '0', 'tool:swagger:list', 'swagger', 'admin', '2022-04-07 00:29:31', '', NULL, '系统接口菜单');
+INSERT INTO `sys_menu` VALUES (500, '操作日志', 108, 1, 'operlog', 'monitor/operlog/index', '', 1, 0, 'C', '0', '0', 'monitor:operlog:list', 'form', 'admin', '2022-04-07 00:29:31', '', NULL, '操作日志菜单');
+INSERT INTO `sys_menu` VALUES (501, '登录日志', 108, 2, 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor', 'admin', '2022-04-07 00:29:31', '', NULL, '登录日志菜单');
+INSERT INTO `sys_menu` VALUES (1001, '用户查询', 100, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:user:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1002, '用户新增', 100, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:user:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1003, '用户修改', 100, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:user:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1004, '用户删除', 100, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:user:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1005, '用户导出', 100, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:user:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1006, '用户导入', 100, 6, '', '', '', 1, 0, 'F', '0', '0', 'system:user:import', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1007, '重置密码', 100, 7, '', '', '', 1, 0, 'F', '0', '0', 'system:user:resetPwd', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1008, '角色查询', 101, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:role:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1009, '角色新增', 101, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:role:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1010, '角色修改', 101, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:role:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1011, '角色删除', 101, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:role:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1012, '角色导出', 101, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:role:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1013, '菜单查询', 102, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1014, '菜单新增', 102, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1015, '菜单修改', 102, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1016, '菜单删除', 102, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:menu:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1017, '部门查询', 103, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1018, '部门新增', 103, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1019, '部门修改', 103, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1020, '部门删除', 103, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:dept:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1021, '岗位查询', 104, 1, '', '', '', 1, 0, 'F', '0', '0', 'system:post:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1022, '岗位新增', 104, 2, '', '', '', 1, 0, 'F', '0', '0', 'system:post:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1023, '岗位修改', 104, 3, '', '', '', 1, 0, 'F', '0', '0', 'system:post:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1024, '岗位删除', 104, 4, '', '', '', 1, 0, 'F', '0', '0', 'system:post:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1025, '岗位导出', 104, 5, '', '', '', 1, 0, 'F', '0', '0', 'system:post:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1026, '字典查询', 105, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1027, '字典新增', 105, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1028, '字典修改', 105, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1029, '字典删除', 105, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1030, '字典导出', 105, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:dict:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1031, '参数查询', 106, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1032, '参数新增', 106, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1033, '参数修改', 106, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1034, '参数删除', 106, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1035, '参数导出', 106, 5, '#', '', '', 1, 0, 'F', '0', '0', 'system:config:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1036, '公告查询', 107, 1, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1037, '公告新增', 107, 2, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1038, '公告修改', 107, 3, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1039, '公告删除', 107, 4, '#', '', '', 1, 0, 'F', '0', '0', 'system:notice:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1040, '操作查询', 500, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1041, '操作删除', 500, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1042, '日志导出', 500, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:operlog:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1043, '登录查询', 501, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1044, '登录删除', 501, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1045, '日志导出', 501, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:logininfor:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1046, '在线查询', 109, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1047, '批量强退', 109, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1048, '单条强退', 109, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1049, '任务查询', 110, 1, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1050, '任务新增', 110, 2, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:add', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1051, '任务修改', 110, 3, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1052, '任务删除', 110, 4, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1053, '状态修改', 110, 5, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:changeStatus', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1054, '任务导出', 110, 7, '#', '', '', 1, 0, 'F', '0', '0', 'monitor:job:export', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1055, '生成查询', 115, 1, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:query', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1056, '生成修改', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:edit', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1057, '生成删除', 115, 3, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:remove', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1058, '导入代码', 115, 2, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:import', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1059, '预览代码', 115, 4, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (1060, '生成代码', 115, 5, '#', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', '2022-04-07 00:29:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2000, '主数据', 0, 4, 'mes/md', NULL, NULL, 1, 0, 'M', '0', '0', '', 'build', 'admin', '2022-04-16 14:41:55', 'admin', '2022-08-18 11:44:29', '');
+INSERT INTO `sys_menu` VALUES (2001, '物料产品管理', 2000, 1, 'mditem', 'mes/md/mditem/index', NULL, 1, 0, 'C', '0', '0', 'ms:md:mditem', 'excel', 'admin', '2022-04-16 14:44:00', 'admin', '2022-05-04 18:13:08', '');
+INSERT INTO `sys_menu` VALUES (2002, '物料产品分类', 2000, 2, 'itemtype', 'mes/md/itemtype/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:itemtype', 'nested', 'admin', '2022-04-16 16:03:18', 'admin', '2022-04-16 16:05:56', '');
+INSERT INTO `sys_menu` VALUES (2003, '编码规则', 1, 10, 'autocodeRule', 'system/autocode/index', NULL, 1, 0, 'C', '0', '0', 'system:autocode:rule', 'code', 'admin', '2022-04-24 21:43:28', 'admin', '2022-04-24 21:49:31', '');
+INSERT INTO `sys_menu` VALUES (2004, '编码规则查询', 2003, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'system:autocode:rule:list', '#', 'admin', '2022-04-24 21:46:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2005, '编码规则新增', 2003, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'system:autocode:rule:add', '#', 'admin', '2022-04-24 21:46:30', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2006, '编码规则更新', 2003, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'system:autocode:rule:edit', '#', 'admin', '2022-04-24 21:46:59', 'admin', '2022-04-24 21:47:42', '');
+INSERT INTO `sys_menu` VALUES (2007, '编码规则删除', 2003, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'system:autocode:rule:remove', '#', 'admin', '2022-04-24 21:47:20', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2008, '新增物料分类', 2002, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:itemtype:add', '#', 'admin', '2022-04-27 16:46:06', 'admin', '2022-08-16 16:15:39', '');
+INSERT INTO `sys_menu` VALUES (2009, '更新物料分类', 2002, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:itemtype:edit', '#', 'admin', '2022-04-27 16:46:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2010, '删除物料分类', 2002, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:itemtype:remove', '#', 'admin', '2022-04-27 16:47:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2011, '新增物料产品', 2001, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:mditem:add', '#', 'admin', '2022-04-27 16:47:46', 'admin', '2022-08-17 08:56:36', '');
+INSERT INTO `sys_menu` VALUES (2012, '更新物料产品', 2001, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:mditem:edit', '#', 'admin', '2022-04-27 16:48:11', 'admin', '2022-05-04 18:05:40', '');
+INSERT INTO `sys_menu` VALUES (2013, '删除物料产品', 2001, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:mditem:remove', '#', 'admin', '2022-04-27 16:48:36', 'admin', '2022-05-04 18:05:55', '');
+INSERT INTO `sys_menu` VALUES (2014, '计量单位', 2000, 3, 'unitmeasure', 'mes/md/unitmeasure/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:unitmeasure', 'tab', 'admin', '2022-04-27 18:08:08', 'admin', '2022-04-27 21:27:43', '');
+INSERT INTO `sys_menu` VALUES (2015, '新增单位', 2014, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:unitmeasure:add', '#', 'admin', '2022-04-27 18:14:06', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2016, '更新单位', 2014, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:unitmeasure:edit', '#', 'admin', '2022-04-27 18:14:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2017, '删除单位', 2014, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:unitmeasure:remove', '#', 'admin', '2022-04-27 18:14:44', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2018, '物料明细查看', 2001, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:mditem:query', '#', 'admin', '2022-05-04 17:51:19', 'admin', '2022-05-04 18:06:04', '');
+INSERT INTO `sys_menu` VALUES (2019, '物料分类明细', 2002, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:itemtype:query', '#', 'admin', '2022-05-04 17:52:22', 'admin', '2022-08-16 16:16:59', '');
+INSERT INTO `sys_menu` VALUES (2020, '单位明细', 2014, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:unitmeasure:query', '#', 'admin', '2022-05-04 17:54:06', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2021, '物料产品列表查询', 2001, 0, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:mditem:list', '#', 'admin', '2022-05-04 18:04:36', 'admin', '2022-05-04 18:05:23', '');
+INSERT INTO `sys_menu` VALUES (2022, '物料分类列表查询', 2002, 0, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:itemtype:list', '#', 'admin', '2022-05-04 18:08:57', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2023, '单位列表查询', 2014, 0, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:unitmeasure:list', '#', 'admin', '2022-05-04 18:09:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2024, '客户管理', 2000, 4, 'client', 'mes/md/client/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:client', 'people', 'admin', '2022-05-06 20:37:28', 'admin', '2022-05-06 20:43:03', '');
+INSERT INTO `sys_menu` VALUES (2025, '客户列表查询', 2024, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:client:list', '#', 'admin', '2022-05-06 20:38:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2026, '客户新增', 2024, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:client:add', '#', 'admin', '2022-05-06 20:38:33', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2027, '客户编辑', 2024, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:client:edit', '#', 'admin', '2022-05-06 20:38:55', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2028, '客户明细', 2024, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:client:query', '#', 'admin', '2022-05-06 20:39:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2029, '客户删除', 2024, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:client:remove', '#', 'admin', '2022-05-06 20:39:49', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2030, '供应商管理', 2000, 5, 'vendor', 'mes/md/vendor/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:vendor', 'peoples', 'admin', '2022-05-06 22:34:09', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2031, '供应商列表查询', 2030, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:vendor:list', '#', 'admin', '2022-05-06 22:34:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2032, '供应商查看', 2030, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:vendor:query', '#', 'admin', '2022-05-06 22:35:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2033, '供应商新增', 2030, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:vendor:add', '#', 'admin', '2022-05-06 22:35:38', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2034, '供应商编辑', 2030, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:vendor:edit', '#', 'admin', '2022-05-06 22:35:59', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2035, '供应商删除', 2030, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:vendor:remove', '#', 'admin', '2022-05-06 22:36:21', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2036, '车间设置', 2000, 6, 'workshop', 'mes/md/workshop/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:workshop', 'zip', 'admin', '2022-05-07 16:40:48', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2037, '车间列表查询', 2036, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workshop:list', '#', 'admin', '2022-05-07 16:41:09', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2038, '车间查看', 2036, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workshop:query', '#', 'admin', '2022-05-07 16:41:36', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2039, '车间新增', 2036, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workshop:add', '#', 'admin', '2022-05-07 16:41:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2040, '车间修改', 2036, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workshop:edit', '#', 'admin', '2022-05-07 16:42:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2041, '车间删除', 2036, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workshop:remove', '#', 'admin', '2022-05-07 16:42:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2042, '仓储管理', 0, 5, 'mes/wm', NULL, NULL, 1, 0, 'M', '0', '0', '', 'zip', 'admin', '2022-05-07 21:06:28', 'admin', '2022-08-13 21:44:45', '');
+INSERT INTO `sys_menu` VALUES (2043, '仓库设置', 2042, 1, 'warehouse', 'mes/wm/warehouse/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:warehouse', 'dict', 'admin', '2022-05-07 21:07:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2044, '仓库清单查询', 2043, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:warehouse:list', '#', 'admin', '2022-05-07 21:08:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2045, '仓库查看', 2043, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:warehouse:query', '#', 'admin', '2022-05-07 21:08:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2046, '仓库新增', 2043, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:warehouse:add', '#', 'admin', '2022-05-07 21:09:29', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2047, '仓库编辑', 2043, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:warehouse:edit', '#', 'admin', '2022-05-07 21:09:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2048, '仓库删除', 2043, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:warehouse:remove', '#', 'admin', '2022-05-07 21:10:13', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2049, '库区列表查询', 2043, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:location:list', '#', 'admin', '2022-05-08 18:19:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2050, '库区查看', 2043, 7, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:location:query', '#', 'admin', '2022-05-08 18:20:28', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2051, '库区新增', 2043, 8, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:location:add', '#', 'admin', '2022-05-08 18:20:57', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2052, '库区编辑', 2043, 9, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:location:edit', '#', 'admin', '2022-05-08 18:21:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2053, '库区删除', 2043, 10, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:location:remove', '#', 'admin', '2022-05-08 18:21:57', 'admin', '2022-05-08 18:24:34', '');
+INSERT INTO `sys_menu` VALUES (2054, '库位列表查询', 2043, 11, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:area:list', '#', 'admin', '2022-05-08 18:22:30', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2055, '库位查看', 2043, 12, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:area:query', '#', 'admin', '2022-05-08 18:22:54', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2056, '库位新增', 2043, 13, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:area:add', '#', 'admin', '2022-05-08 18:23:17', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2057, '库位编辑', 2043, 14, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:area:edit', '#', 'admin', '2022-05-08 18:23:43', 'admin', '2022-05-08 18:23:53', '');
+INSERT INTO `sys_menu` VALUES (2058, '库位删除', 2043, 15, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:area:remove', '#', 'admin', '2022-05-08 18:24:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2059, '设备管理', 0, 6, 'mes/dv', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'redis', 'admin', '2022-05-08 19:10:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2060, '设备类型设置', 2059, 1, 'machinerytype', 'mes/dv/machinerytype/index', NULL, 1, 0, 'C', '0', '0', 'mes:dv:machinerytype', 'swagger', 'admin', '2022-05-08 19:11:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2061, '设备类型列表', 2060, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinerytype:list', '#', 'admin', '2022-05-08 19:12:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2062, '设备类型查看', 2060, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinerytype:query', '#', 'admin', '2022-05-08 19:12:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2063, '设备类型新增', 2060, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinerytype:add', '#', 'admin', '2022-05-08 19:13:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2064, '设备类型编辑', 2060, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinerytype:edit', '#', 'admin', '2022-05-08 19:13:33', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2065, '设备类型删除', 2060, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinerytype:remove', '#', 'admin', '2022-05-08 19:13:59', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2066, '设备台账', 2059, 2, 'machinery', 'mes/dv/machinery/index', NULL, 1, 0, 'C', '0', '0', 'mes:dv:machinery', 'system', 'admin', '2022-05-08 21:28:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2067, '设备列表查询', 2066, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinery:list', '#', 'admin', '2022-05-08 21:29:14', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2068, '设备查看', 2066, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinery:query', '#', 'admin', '2022-05-08 21:29:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2069, '设备新增', 2066, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinery:add', '#', 'admin', '2022-05-08 21:30:00', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2070, '设备编辑', 2066, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinery:edit', '#', 'admin', '2022-05-08 21:30:16', 'admin', '2022-05-08 21:30:40', '');
+INSERT INTO `sys_menu` VALUES (2071, '设备删除', 2066, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:machinery:remove', '#', 'admin', '2022-05-08 21:30:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2072, '生产管理', 0, 8, 'mes/pro', NULL, NULL, 1, 0, 'M', '0', '0', '', 'switch', 'admin', '2022-05-09 10:58:07', 'admin', '2022-05-11 00:07:21', '');
+INSERT INTO `sys_menu` VALUES (2073, '生产工单', 2072, 1, 'workorder', 'mes/pro/workorder/index', NULL, 1, 0, 'C', '0', '0', 'mes:pro:workorder', 'log', 'admin', '2022-05-09 10:59:26', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2074, '工单列表查询', 2073, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorder:list', '#', 'admin', '2022-05-09 11:00:02', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2075, '工单查看', 2073, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorder:query', '#', 'admin', '2022-05-09 11:00:24', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2076, '工单新增', 2073, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorder:add', '#', 'admin', '2022-05-09 11:00:55', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2077, '工单编辑', 2073, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorder:edit', '#', 'admin', '2022-05-09 11:01:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2078, '工单删除', 2073, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorder:remove', '#', 'admin', '2022-05-09 11:01:38', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2079, 'BOM列表查询', 2001, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:bom:list', '#', 'admin', '2022-05-10 10:17:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2080, 'BOM查看', 2001, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:bom:query', '#', 'admin', '2022-05-10 10:17:55', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2081, 'BOM新增', 2001, 7, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:bom:add', '#', 'admin', '2022-05-10 10:18:22', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2082, 'BOM编辑', 2001, 8, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:bom:edit', '#', 'admin', '2022-05-10 10:18:44', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2083, 'BOM删除', 2001, 9, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:bom:remove', '#', 'admin', '2022-05-10 10:19:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2084, '工单BOM列表查询', 2073, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorderbom:list', '#', 'admin', '2022-05-10 16:17:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2085, '工单BOM查看', 2073, 7, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorderbom:query', '#', 'admin', '2022-05-10 16:17:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2086, '工单BOM编辑', 2073, 8, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorderbom:edit', '#', 'admin', '2022-05-10 16:18:28', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2087, '工单BOM删除', 2073, 9, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:workorderbom:remove', '#', 'admin', '2022-05-10 16:18:59', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2088, '工作站', 2000, 7, 'workstation', 'mes/md/workstation/index', NULL, 1, 0, 'C', '0', '0', 'mes:md:workstation', 'job', 'admin', '2022-05-10 21:44:36', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2089, '工作站列表查询', 2088, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:list', '#', 'admin', '2022-05-10 21:45:11', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2090, '工作站查看', 2088, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:query', '#', 'admin', '2022-05-10 21:45:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2091, '工作站新增', 2088, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:add', '#', 'admin', '2022-05-10 21:45:48', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2092, '工作站编辑', 2088, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:edit', '#', 'admin', '2022-05-10 21:46:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2093, '工作站删除', 2088, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:remove', '#', 'admin', '2022-05-10 21:46:28', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2094, '工作站导出', 2088, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:md:workstation:export', '#', 'admin', '2022-05-10 21:47:04', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2095, '工装夹具管理', 0, 7, 'tm', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'lock', 'admin', '2022-05-11 00:07:13', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2096, '类型设置', 2095, 1, 'tooltype', 'mes/tm/tooltype/index', NULL, 1, 0, 'C', '0', '0', 'mes:tm:tooltype', 'tree', 'admin', '2022-05-11 00:08:25', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2097, '类型列表查询', 2096, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tooltype:list', '#', 'admin', '2022-05-11 00:09:01', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2098, '类型查看', 2096, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tooltype:query', '#', 'admin', '2022-05-11 00:09:27', 'admin', '2022-05-11 00:09:48', '');
+INSERT INTO `sys_menu` VALUES (2099, '类型新增', 2096, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tooltype:add', '#', 'admin', '2022-05-11 00:10:14', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2100, '类型编辑', 2096, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tooltype:edit', '#', 'admin', '2022-05-11 00:10:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2101, '类型删除', 2096, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tooltype:remove', '#', 'admin', '2022-05-11 00:10:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2102, '工装夹具台账', 2095, 2, 'tool', 'mes/tm/tool/index', NULL, 1, 0, 'C', '0', '0', 'mes:tm:tool', 'date-range', 'admin', '2022-05-11 21:23:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2103, '工装夹具列表查询', 2102, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:list', '#', 'admin', '2022-05-11 21:23:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2104, '工装夹具查看', 2102, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:query', '#', 'admin', '2022-05-11 21:24:15', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2105, '工装夹具新增', 2102, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:add', '#', 'admin', '2022-05-11 21:24:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2106, '工装夹具编辑', 2102, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:edit', '#', 'admin', '2022-05-11 21:24:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2107, '工装夹具删除', 2102, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:remove', '#', 'admin', '2022-05-11 21:25:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2108, '工装夹具导出', 2102, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:tm:tool:export', '#', 'admin', '2022-05-11 21:25:46', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2109, '工序设置', 2072, 2, 'process', 'mes/pro/process/index', NULL, 1, 0, 'C', '0', '0', 'mes:pro:process', 'druid', 'admin', '2022-05-12 00:03:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2110, '工序列表查询', 2109, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:list', '#', 'admin', '2022-05-12 00:04:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2111, '工序查看', 2109, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:query', '#', 'admin', '2022-05-12 00:04:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2112, '工序新增', 2109, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:add', '#', 'admin', '2022-05-12 00:04:54', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2113, '工序编辑', 2109, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:edit', '#', 'admin', '2022-05-12 00:05:10', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2114, '工序删除', 2109, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:remove', '#', 'admin', '2022-05-12 00:05:28', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2115, '工序导出', 2109, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:process:export', '#', 'admin', '2022-05-12 00:05:41', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2116, '工艺流程', 2072, 3, 'proroute', 'mes/pro/proroute/index', NULL, 1, 0, 'C', '0', '0', 'mes:pro:proroute', 'nested', 'admin', '2022-05-12 23:08:26', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2117, '工艺流程列表查询', 2116, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:list', '#', 'admin', '2022-05-12 23:08:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2118, '工艺流程查看', 2116, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:query', '#', 'admin', '2022-05-12 23:09:13', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2119, '工艺流程新增', 2116, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:add', '#', 'admin', '2022-05-12 23:09:36', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2120, '工艺流程编辑', 2116, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:edit', '#', 'admin', '2022-05-12 23:09:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2121, '工艺流程删除', 2116, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:remove', '#', 'admin', '2022-05-12 23:10:11', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2122, '工艺流程导出', 2116, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:pro:proroute:export', '#', 'admin', '2022-05-12 23:10:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2123, '生产排产', 2072, 4, 'proschedule', 'mes/pro/schedule/index', NULL, 1, 0, 'C', '0', '0', 'mes:pro:schedule', 'build', 'admin', '2022-05-15 15:01:21', 'admin', '2022-05-15 15:01:36', '');
+INSERT INTO `sys_menu` VALUES (2124, '质量管理', 0, 9, 'mes/qc', NULL, NULL, 1, 0, 'M', '0', '0', '', 'time-range', 'admin', '2022-05-17 21:51:23', 'admin', '2022-08-13 21:45:33', '');
+INSERT INTO `sys_menu` VALUES (2125, '检测项设置', 2124, 2, 'qcindex', 'mes/qc/qcindex/index', NULL, 1, 0, 'C', '0', '0', 'mes:qc:qcindex', 'checkbox', 'admin', '2022-05-17 21:52:33', 'admin', '2022-05-19 11:26:35', '');
+INSERT INTO `sys_menu` VALUES (2126, '检测项列表查询', 2125, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:list', '#', 'admin', '2022-05-17 21:53:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2127, '检测项查看', 2125, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:query', '#', 'admin', '2022-05-17 21:53:36', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2128, '检测项新增', 2125, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:add', '#', 'admin', '2022-05-17 21:54:04', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2129, '检测项编辑', 2125, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:edit', '#', 'admin', '2022-05-17 21:54:24', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2130, '检测项删除', 2125, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:remove', '#', 'admin', '2022-05-17 21:54:50', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2131, '检测项导出', 2125, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcindex:export', '#', 'admin', '2022-05-17 21:55:12', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2132, '检测模板', 2124, 3, 'qctemplate', 'mes/qc/qctemplate/index', NULL, 1, 0, 'C', '0', '0', 'mes:qc:qctemplate', 'example', 'admin', '2022-05-17 22:23:48', 'admin', '2022-05-19 11:26:41', '');
+INSERT INTO `sys_menu` VALUES (2133, '检测模板列表查询', 2132, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qctemplate:list', '#', 'admin', '2022-05-17 22:24:05', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2134, '检测模板查看', 2132, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qctemplate:query', '#', 'admin', '2022-05-17 22:24:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2135, '检测模板新增', 2132, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qctemplate:add', '#', 'admin', '2022-05-17 22:24:50', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2136, '检测模板编辑', 2132, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qctemplate:edit', '#', 'admin', '2022-05-17 22:25:09', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2137, '检测模板删除', 2132, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qctemplate:remove', '#', 'admin', '2022-05-17 22:25:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2138, '常见缺陷', 2124, 1, 'qcdefect', 'mes/qc/qcdefect/index', NULL, 1, 0, 'C', '0', '0', 'mes:qc:qcdefect', 'bug', 'admin', '2022-05-19 11:26:15', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2139, '缺陷列表查询', 2138, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcdefect:list', '#', 'admin', '2022-05-19 11:27:04', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2140, '缺陷查看', 2138, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcdefect:query', '#', 'admin', '2022-05-19 11:27:28', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2141, '缺陷新增', 2138, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcdefect:add', '#', 'admin', '2022-05-19 11:27:47', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2142, '缺陷编辑', 2138, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcdefect:edit', '#', 'admin', '2022-05-19 11:28:11', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2143, '缺陷删除', 2138, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:qcdefect:remove', '#', 'admin', '2022-05-19 11:28:31', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2144, '来料检验', 2124, 4, 'iqc', 'mes/qc/iqc/iqc', NULL, 1, 0, 'C', '0', '0', 'mes:qc:iqc', 'edit', 'admin', '2022-05-19 16:32:24', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2145, '来料检验单列表查询', 2144, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:list', '#', 'admin', '2022-05-19 16:33:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2146, '来料检验单查看', 2144, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:query', '#', 'admin', '2022-05-19 16:33:41', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2147, '来料检验单新增', 2144, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:add', '#', 'admin', '2022-05-19 16:34:01', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2148, '来料检验单编辑', 2144, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:edit', '#', 'admin', '2022-05-19 16:34:19', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2149, '来料检验单删除', 2144, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:remove', '#', 'admin', '2022-05-19 16:34:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2150, '来料检验单导出', 2144, 6, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:iqc:export', '#', 'admin', '2022-05-19 16:34:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2151, '物料入库单', 2042, 3, 'itemrecpt', 'mes/wm/itemrecpt/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:itemrecpt', 'form', 'admin', '2022-05-22 17:35:11', 'admin', '2022-06-14 16:22:12', '');
+INSERT INTO `sys_menu` VALUES (2152, '物料入库单列表查询', 2151, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:itemrecpt:list', '#', 'admin', '2022-05-22 17:35:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2153, '物料入库单查看', 2151, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:itemrecpt:query', '#', 'admin', '2022-05-22 17:35:53', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2154, '物料入库单新增', 2151, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:itemrecpt:add', '#', 'admin', '2022-05-22 17:36:09', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2155, '物料入库单编辑', 2151, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:itemrecpt:edit', '#', 'admin', '2022-05-22 17:36:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2156, '物料入库单删除', 2151, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:itemrecpt:remove', '#', 'admin', '2022-05-22 17:36:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2157, '库存现有量', 2042, 2, 'wmstock', 'mes/wm/wmstock/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:wmstock', 'chart', 'admin', '2022-05-30 23:36:40', 'admin', '2022-06-14 16:22:19', '');
+INSERT INTO `sys_menu` VALUES (2158, '库存现有量列表查询', 2157, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:wmstock:list', '#', 'admin', '2022-05-30 23:37:07', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2159, '库存现有量导出', 2157, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:wmstock:export', '#', 'admin', '2022-05-30 23:37:30', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2160, '排班管理', 0, 10, 'cal', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'peoples', 'admin', '2022-06-05 21:52:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2161, '班组设置    ', 2160, 1, 'team', 'mes/cal/team/index', NULL, 1, 0, 'C', '0', '0', 'mes:cal:team', 'peoples', 'admin', '2022-06-05 21:53:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2162, '班组列表查看', 2161, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:team:list', '#', 'admin', '2022-06-05 21:56:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2163, '班组查看', 2161, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:team:query', '#', 'admin', '2022-06-05 21:57:20', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2164, '班组新增', 2161, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:team:add', '#', 'admin', '2022-06-05 21:57:40', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2165, '班组编辑', 2161, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:team:edit', '#', 'admin', '2022-06-05 21:57:59', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2168, '排班计划', 2160, 2, 'plan', 'mes/cal/plan/index', NULL, 1, 0, 'C', '0', '0', 'mes:cal:plan', 'build', 'admin', '2022-06-06 21:47:04', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2169, '排班计划列表查询', 2168, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:plan:list', '#', 'admin', '2022-06-06 21:47:27', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2170, '排班计划查看', 2168, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:plan:query', '#', 'admin', '2022-06-06 21:47:49', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2171, '排班计划新增', 2168, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:plan:add', '#', 'admin', '2022-06-06 21:48:13', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2172, '排班计划编辑', 2168, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:plan:edit', '#', 'admin', '2022-06-06 21:48:30', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2173, '排班计划删除', 2168, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:plan:remove', '#', 'admin', '2022-06-06 21:48:49', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2174, '节假日设置', 2160, 3, 'holiday', 'mes/cal/holiday/index', NULL, 1, 0, 'C', '0', '0', 'mes:cal:holiday', 'date', 'admin', '2022-06-07 23:25:52', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2175, '节假日查看', 2174, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:holiday:query', '#', 'admin', '2022-06-07 23:26:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2176, '节假日设置', 2174, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:holiday:edit', '#', 'admin', '2022-06-07 23:26:41', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2177, '排班日历', 2160, 4, 'calendar', 'mes/cal/calendar/index', NULL, 1, 0, 'C', '0', '0', 'mes:cal:calendar', 'date-range', 'admin', '2022-06-09 21:08:06', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2178, '查看排班日历', 2177, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:cal:calendar:list', '#', 'admin', '2022-06-09 21:08:52', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2179, '供应商退货', 2042, 4, 'rtvendor', 'mes/wm/rtvendor/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:rtvendor', 'link', 'admin', '2022-06-13 15:29:43', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2180, '退货单列表查询', 2179, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtvendor:list', '#', 'admin', '2022-06-13 15:30:45', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2181, '退货单信息查看', 2179, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtvendor:query', '#', 'admin', '2022-06-13 15:31:13', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2182, '退货单新增', 2179, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtvendor:add', '#', 'admin', '2022-06-13 15:31:32', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2183, '退货单编辑', 2179, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtvendor:edit', '#', 'admin', '2022-06-13 15:31:49', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2184, '退货单删除', 2179, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtvendor:remove', '#', 'admin', '2022-06-13 15:32:06', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2185, '点检保养项目', 2059, 3, 'dvsubject', 'mes/dv/subject/index', NULL, 1, 0, 'C', '0', '0', 'mes:dv:dvsubject', 'cascader', 'admin', '2022-06-16 20:17:37', 'admin', '2022-06-16 20:20:44', '');
+INSERT INTO `sys_menu` VALUES (2186, '项目列表查询', 2185, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:dvsubject:list', '#', 'admin', '2022-06-16 20:18:10', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2187, '项目信息查看', 2185, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:dvsubject:query', '#', 'admin', '2022-06-16 20:18:37', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2188, '项目信息新增', 2185, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:dvsubject:add', '#', 'admin', '2022-06-16 20:18:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2189, '项目信息编辑', 2185, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:dvsubject:edit', '#', 'admin', '2022-06-16 20:19:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2190, '项目删除', 2185, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:dvsubject:remove', '#', 'admin', '2022-06-16 20:19:54', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2191, '点检保养计划', 2059, 4, 'checkplan', 'mes/dv/checkplan/index', NULL, 1, 0, 'C', '0', '0', 'mes:dv:checkplan', 'build', 'admin', '2022-06-16 21:35:31', 'admin', '2022-09-01 22:17:50', '');
+INSERT INTO `sys_menu` VALUES (2192, '点检计划列表查询', 2191, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:checkplan:list', '#', 'admin', '2022-06-16 21:36:03', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2193, '点检计划查看', 2191, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:checkplan:query', '#', 'admin', '2022-06-16 21:36:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2194, '点检计划新增', 2191, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:checkplan:add', '#', 'admin', '2022-06-16 21:36:56', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2195, '点检计划编辑', 2191, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:checkplan:edit', '#', 'admin', '2022-06-16 21:37:15', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2196, '点检计划删除', 2191, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:checkplan:remove', '#', 'admin', '2022-06-16 21:37:35', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2197, '生产领料', 2042, 5, 'issue', 'mes/wm/issue/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:issueheader', 'edit', 'admin', '2022-07-17 19:24:17', 'admin', '2022-08-22 13:52:30', '');
+INSERT INTO `sys_menu` VALUES (2198, '生产领料新增', 2197, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:issueheader:add', '#', 'admin', '2022-07-17 19:24:43', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2199, '生产领料列表查询', 2197, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:issueheader:list', '#', 'admin', '2022-07-17 19:25:12', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2200, '生产领料信息查看', 2197, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:issueheader:query', '#', 'admin', '2022-07-17 19:25:37', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2201, '生产领料编辑', 2197, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:issueheader:edit', '#', 'admin', '2022-07-17 19:25:54', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2202, '生产领料删除', 2197, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:issueheader:remove', '#', 'admin', '2022-07-17 19:26:12', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2203, '条码清单', 2042, 10, 'barcode', 'mes/wm/barcode/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:barcode', 'barcode', 'admin', '2022-08-01 11:19:01', 'admin', '2022-10-10 12:50:47', '');
+INSERT INTO `sys_menu` VALUES (2204, '条码清单', 2203, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:barcode:list', '#', 'admin', '2022-08-01 11:19:23', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2205, '维修单', 2059, 5, 'repair', 'mes/dv/repair/index', NULL, 1, 0, 'C', '0', '0', 'mes:dv:repair', 'system', 'admin', '2022-08-06 15:19:26', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2206, '维修单列表查询', 2205, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:repair:list', '#', 'admin', '2022-08-06 15:19:59', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2207, '维修单查看', 2205, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:repair:query', '#', 'admin', '2022-08-06 15:20:19', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2208, '维修单修改', 2205, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:repair:edit', '#', 'admin', '2022-08-06 15:20:41', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2209, '维修单删除', 2205, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:dv:repair:remove', '#', 'admin', '2022-08-06 15:20:58', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2210, '组织架构', 0, 0, 'user', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'tree', 'admin', '2022-08-13 21:41:16', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2214, '过程检验', 2124, 5, 'ipqc', 'mes/qc/ipqc/index', NULL, 1, 0, 'C', '0', '0', 'mes:qc:ipqc', 'job', 'admin', '2022-08-29 20:46:27', 'admin', '2022-08-29 20:46:45', '');
+INSERT INTO `sys_menu` VALUES (2215, '过程检验单列表查询', 2214, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:ipqc:list', '#', 'admin', '2022-08-29 20:47:26', 'admin', '2022-08-29 20:47:46', '');
+INSERT INTO `sys_menu` VALUES (2216, '过程检验单详情查看', 2214, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:ipqc:query', '#', 'admin', '2022-08-29 20:48:10', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2217, '过程检验单新增', 2214, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:ipqc:add', '#', 'admin', '2022-08-29 20:48:39', 'admin', '2022-08-29 20:48:56', '');
+INSERT INTO `sys_menu` VALUES (2218, '过程检验单编辑', 2214, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:ipqc:edit', '#', 'admin', '2022-08-29 20:49:22', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2219, '过程检验单删除', 2214, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:ipqc:remove', '#', 'admin', '2022-08-29 20:49:44', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2220, '出货检验', 2124, 6, 'oqc', 'mes/qc/oqc/index', NULL, 1, 0, 'C', '0', '0', 'mes:qc:oqc', 'guide', 'admin', '2022-08-31 22:17:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2221, '出货检验单列表查询', 2220, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:oqc:list', '#', 'admin', '2022-08-31 22:18:20', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2222, '出货检验单明细查看', 2220, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:oqc:query', '#', 'admin', '2022-08-31 22:18:47', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2223, '出货检验单新增', 2220, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:oqc:add', '#', 'admin', '2022-08-31 22:19:10', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2224, '出货检验单编辑', 2220, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:oqc:edit', '#', 'admin', '2022-08-31 22:19:27', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2225, '出货检验单删除', 2220, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:qc:oqc:remove', '#', 'admin', '2022-08-31 22:19:45', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2226, '生产退料', 2042, 6, 'rtissue', 'mes/wm/rtissue/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:rtissue', 'logininfor', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 22:59:05', '生产退料单头菜单');
+INSERT INTO `sys_menu` VALUES (2227, '生产退料单列表查询', 2226, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtissue:list', '#', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 22:59:42', '');
+INSERT INTO `sys_menu` VALUES (2228, '生产退料单头新增', 2226, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtissue:add', '#', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 22:59:55', '');
+INSERT INTO `sys_menu` VALUES (2229, '生产退料单头修改', 2226, 3, '#', '', NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtissue:edit', '#', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 23:00:06', '');
+INSERT INTO `sys_menu` VALUES (2230, '生产退料单头删除', 2226, 4, '#', '', NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtissue:remove', '#', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 23:00:17', '');
+INSERT INTO `sys_menu` VALUES (2231, '生产退料明细查看', 2226, 5, '#', '', NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtissue:query', '#', 'admin', '2022-09-03 23:39:43', 'admin', '2022-09-15 23:00:44', '');
+INSERT INTO `sys_menu` VALUES (2232, '产品入库', 2042, 7, 'productrecpt', 'mes/wm/productrecpt/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:productrecpt', 'shopping', 'admin', '2022-09-22 21:02:47', 'admin', '2022-10-06 18:20:41', '');
+INSERT INTO `sys_menu` VALUES (2233, '产品入库单列表查询', 2232, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:productrecpt:list', '#', 'admin', '2022-09-22 21:03:12', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2234, '产品入库单明细查看', 2232, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:productrecpt:query', '#', 'admin', '2022-09-22 21:03:34', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2235, '产品入库单编辑', 2232, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:productrecpt:edit', '#', 'admin', '2022-09-22 21:03:57', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2236, '产品入库单删除', 2232, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:productrecpt:remove', '#', 'admin', '2022-09-22 21:04:15', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2237, '生产报工', 2072, 5, 'feedback', 'mes/pro/feedback/index', NULL, 1, 0, 'C', '0', '0', 'mes:pro:feedback', 'chart', 'admin', '2022-10-03 20:13:20', 'admin', '2022-10-03 20:13:43', '');
+INSERT INTO `sys_menu` VALUES (2238, '销售出库', 2042, 8, 'productsalse', 'mes/wm/productsalse/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:productsalse', 'guide', 'admin', '2022-10-05 18:54:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2239, '出库单列表查询', 2238, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:productsalse:list', '#', 'admin', '2022-10-05 18:55:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2240, '销售出库单明细查看', 2238, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:productsalse:query', '#', 'admin', '2022-10-05 18:55:43', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2241, '销售出库单新增', 2238, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:productsalse:add', '#', 'admin', '2022-10-05 18:56:04', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2242, '销售出库单编辑', 2238, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:productsalse:edit', '#', 'admin', '2022-10-05 18:56:21', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2243, '销售出库单删除', 2238, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:productsalse:remove', '#', 'admin', '2022-10-05 18:56:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2244, '销售退货', 2042, 9, 'rtsalse', 'mes/wm/rtsalse/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:rtsalse', 'link', 'admin', '2022-10-06 21:28:47', 'admin', '2022-10-06 22:02:18', '');
+INSERT INTO `sys_menu` VALUES (2245, '退货单列表查询', 2244, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtsalse:list', '#', 'admin', '2022-10-06 21:29:27', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2246, '销售退货单明细查看', 2244, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtsalse:query', '#', 'admin', '2022-10-06 21:29:51', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2247, '销售退货单新增', 2244, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtsalse:add', '#', 'admin', '2022-10-06 21:30:18', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2248, '销售退货单编辑', 2244, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtsalse:edit', '#', 'admin', '2022-10-06 21:30:39', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2249, '销售退货单删除', 2244, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:rtsalse:remove', '#', 'admin', '2022-10-06 21:31:03', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2250, '装箱管理', 2042, 11, 'package', 'mes/wm/package/index', NULL, 1, 0, 'C', '0', '0', 'mes:wm:package', 'table', 'admin', '2022-10-10 12:48:22', 'admin', '2022-10-10 12:51:46', '');
+INSERT INTO `sys_menu` VALUES (2251, '装箱单列表查询', 2250, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:package:list', '#', 'admin', '2022-10-10 12:49:03', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2252, '装箱单明细查看', 2250, 2, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:package:query', '#', 'admin', '2022-10-10 12:49:26', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2253, '装箱单新增', 2250, 3, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:package:add', '#', 'admin', '2022-10-10 12:49:42', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2254, '装箱单编辑', 2250, 4, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:package:edit', '#', 'admin', '2022-10-10 12:50:01', '', NULL, '');
+INSERT INTO `sys_menu` VALUES (2255, '装箱单删除', 2250, 5, '', NULL, NULL, 1, 0, 'F', '0', '0', 'mes:wm:package:remove', '#', 'admin', '2022-10-10 12:50:23', '', NULL, '');
+
+SET FOREIGN_KEY_CHECKS = 1;

BIN
doc/实施文档/初始化配置数据.xlsx


BIN
doc/实施文档/系统权限清单.xlsx


BIN
doc/开发进度/进度甘特图.xlsx


BIN
doc/设计文档/功能设计/功能清单.xlsx


BIN
doc/设计文档/原型设计/原型/APP.rp


BIN
doc/设计文档/原型设计/截图/工作站设置.png


BIN
doc/设计文档/原型设计/截图/库存现有量.png


BIN
doc/设计文档/原型设计/截图/报表设计.png


BIN
doc/设计文档/原型设计/截图/排班日历.png


BIN
doc/设计文档/原型设计/截图/条码管理.png


BIN
doc/设计文档/原型设计/截图/物料产品设置.png


BIN
doc/设计文档/原型设计/截图/生产排产.png


BIN
doc/设计文档/原型设计/截图/节假日设置.png


BIN
doc/设计文档/原型设计/截图/触控屏-登录页面.png


BIN
doc/设计文档/原型设计/截图/触控屏-质量管理.png


BIN
doc/设计文档/原型设计/草图/IQC-打印.png


BIN
doc/设计文档/原型设计/草图/IQC.png


BIN
doc/设计文档/原型设计/草图/IQC2.png


BIN
doc/设计文档/原型设计/草图/巡检计划.png


BIN
doc/设计文档/原型设计/草图/库存核心.png


BIN
doc/设计文档/原型设计/草图/手机端-首页.png


BIN
doc/设计文档/原型设计/草图/排产.png


BIN
doc/设计文档/原型设计/草图/排班日历-班组.png


BIN
doc/设计文档/原型设计/草图/排班日历-类型.png


BIN
doc/设计文档/原型设计/草图/排班计划.png


BIN
doc/设计文档/原型设计/草图/触控屏-生产.png


BIN
doc/设计文档/原型设计/草图/触控屏-登录.png


BIN
doc/设计文档/原型设计/草图/质量检测-缺陷记录.png


BIN
doc/设计文档/原型设计/草图/质量检测-缺陷记录2.png


BIN
doc/设计文档/原型设计/草图/质量检测.png


BIN
doc/设计文档/原型设计/草图/首页.png


+ 172 - 0
doc/设计文档/数据库设计/mes-cal.sql

@@ -0,0 +1,172 @@
+-- ----------------------------
+-- 1、班组表
+-- ----------------------------
+drop table if exists cal_team;
+create table cal_team (
+  team_id                bigint(20)      not null auto_increment    comment '班组ID',
+  team_code              varchar(64)     not null                   comment '班组编号',
+  team_name              varchar(255)    not null                   comment '班组名称', 
+  calendar_type          varchar(64)                                comment '班组类型',
+  remark                 varchar(500)    default ''                 comment '备注',
+  attr1                  varchar(64)     default null               comment '预留字段1',
+  attr2                  varchar(255)     default null              comment '预留字段2',
+  attr3                  int(11)         default 0                  comment '预留字段3',
+  attr4                  int(11)         default 0                  comment '预留字段4',
+  create_by              varchar(64)     default ''                 comment '创建者',
+  create_time 	         datetime                                   comment '创建时间',
+  update_by              varchar(64)     default ''                 comment '更新者',
+  update_time            datetime                                   comment '更新时间',
+  primary key (team_id)
+) engine=innodb auto_increment=200 comment = '班组表';
+
+
+-- ----------------------------
+-- 2、班组成员表
+-- ----------------------------
+drop table if exists cal_team_member;
+create table cal_team_member (
+  member_id                bigint(20)      not null auto_increment    comment '班组成员ID',
+  team_id                  bigint(20)      not null                   comment '班组ID',
+  user_id                  bigint(20)      not null                   comment '用户ID', 
+  user_name                varchar(64)     not null                   comment '用户名', 
+  nick_name                varchar(64)                                comment '用户昵称',
+  tel                      varchar(64)                                comment '电话',
+  remark                   varchar(500)    default ''                 comment '备注',
+  attr1                    varchar(64)     default null               comment '预留字段1',
+  attr2                    varchar(255)    default null               comment '预留字段2',
+  attr3                    int(11)         default 0                  comment '预留字段3',
+  attr4                    int(11)         default 0                  comment '预留字段4',
+  create_by                varchar(64)     default ''                 comment '创建者',
+  create_time 	           datetime                                   comment '创建时间',
+  update_by                varchar(64)     default ''                 comment '更新者',
+  update_time              datetime                                   comment '更新时间',
+  primary key (member_id)
+) engine=innodb auto_increment=200 comment = '班组成员表';
+
+
+-- ----------------------------
+-- 3、排班计划
+-- ----------------------------
+drop table if exists cal_plan;
+create table cal_plan (
+  plan_id                  bigint(20)      not null auto_increment    comment '计划ID',
+  plan_code                varchar(64)     not null                  comment '计划编号',
+  plan_name                varchar(255)    not null                   comment '计划名称', 
+  calendar_type            varchar(64)                                comment '班组类型',
+  start_date               datetime        not null                   comment '开始日期',
+  end_date                 datetime        not null                   comment '结束日期',
+  shift_type               varchar(64)                                comment '轮班方式',
+  shift_method             varchar(64)                                comment '倒班方式',
+  shift_count              int(11)                                    comment '数',
+  status                   varchar(64)     default 'PREPARE'          comment '状态',
+  remark                   varchar(500)    default ''                 comment '备注',
+  attr1                    varchar(64)     default null               comment '预留字段1',
+  attr2                    varchar(255)    default null               comment '预留字段2',
+  attr3                    int(11)         default 0                  comment '预留字段3',
+  attr4                    int(11)         default 0                  comment '预留字段4',
+  create_by                varchar(64)     default ''                 comment '创建者',
+  create_time 	           datetime                                   comment '创建时间',
+  update_by                varchar(64)     default ''                 comment '更新者',
+  update_time              datetime                                   comment '更新时间',
+  primary key (plan_id)
+) engine=innodb auto_increment=200 comment = '排班计划表';
+
+
+
+-- ----------------------------
+-- 4、计划班次
+-- ----------------------------
+drop table if exists cal_shift;
+create table cal_shift (
+  shift_id                  bigint(20)      not null auto_increment    comment '班次ID',
+  plan_id                   bigint(20)      not null                   comment '计划ID',
+  order_num                 int(2)          not null                   comment '序号', 
+  shift_name                varchar(64)     not null                   comment '班次名称',
+  start_time                varchar(10)     not null                   comment '开始时间',
+  end_time                  varchar(10)     not null                   comment '结束时间',
+  remark                    varchar(500)    default ''                 comment '备注',
+  attr1                     varchar(64)     default null               comment '预留字段1',
+  attr2                     varchar(255)    default null               comment '预留字段2',
+  attr3                     int(11)         default 0                  comment '预留字段3',
+  attr4                     int(11)         default 0                  comment '预留字段4',
+  create_by                 varchar(64)     default ''                 comment '创建者',
+  create_time 	            datetime                                   comment '创建时间',
+  update_by                 varchar(64)     default ''                 comment '更新者',
+  update_time               datetime                                   comment '更新时间',
+  primary key (shift_id)
+) engine=innodb auto_increment=200 comment = '计划班次表';
+
+
+-- ----------------------------
+-- 5、计划班组
+-- ----------------------------
+drop table if exists cal_plan_team;
+create table cal_plan_team (
+  record_id                 bigint(20)      not null auto_increment    comment '流水号',
+  plan_id                   bigint(20)      not null                   comment '计划ID',
+  team_id                   bigint(20)      not null                   comment '班组ID',
+  team_code                 varchar(64)                                comment '班组编号',
+  team_name                 varchar(64)                                comment '班组名称',
+  remark                    varchar(500)    default ''                 comment '备注',
+  attr1                     varchar(64)     default null               comment '预留字段1',
+  attr2                     varchar(255)    default null               comment '预留字段2',
+  attr3                     int(11)         default 0                  comment '预留字段3',
+  attr4                     int(11)         default 0                  comment '预留字段4',
+  create_by                 varchar(64)     default ''                 comment '创建者',
+  create_time 	            datetime                                   comment '创建时间',
+  update_by                 varchar(64)     default ''                 comment '更新者',
+  update_time               datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '计划班组表';
+
+
+-- ----------------------------
+-- 6、节假日设置
+-- ----------------------------
+drop table if exists cal_holiday;
+create table cal_holiday (
+  holiday_id                bigint(20)      not null auto_increment    comment '流水号',  
+  the_day                   datetime                                   comment '日期',
+  holiday_type              varchar(64)                                comment '日期类型',
+  start_time                datetime                                   comment '开始时间',
+  end_time                  datetime                                   comment '结束时间',
+  remark                    varchar(500)    default ''                 comment '备注',
+  attr1                     varchar(64)     default null               comment '预留字段1',
+  attr2                     varchar(255)    default null               comment '预留字段2',
+  attr3                     int(11)         default 0                  comment '预留字段3',
+  attr4                     int(11)         default 0                  comment '预留字段4',
+  create_by                 varchar(64)     default ''                 comment '创建者',
+  create_time 	            datetime                                   comment '创建时间',
+  update_by                 varchar(64)     default ''                 comment '更新者',
+  update_time               datetime                                   comment '更新时间',
+  primary key (holiday_id)
+) engine=innodb auto_increment=200 comment = '节假日设置';
+
+
+-- ----------------------------
+-- 7、班组排班表
+-- ----------------------------
+drop table if exists cal_teamshift;
+create table cal_teamshift (
+  record_id                 bigint(20)      not null auto_increment    comment '流水号',
+  the_day                   varchar(64)     not null                   comment '日期',
+  team_id                   bigint(20)      not null                   comment '班组ID',
+  team_name                 varchar(255)                               comment '班组名称',
+  shift_id                  bigint(20)      not null                   comment '班次ID',
+  shift_name                varchar(255)                               comment '班次名称',
+  order_num                 int(11)                                    comment '序号',
+  plan_id                   bigint(20)                                 comment '计划ID',
+  calendar_type             varchar(64)                                comment '班组类型',
+  shift_type                varchar(64)                                comment '轮班方式',
+  remark                    varchar(500)    default ''                 comment '备注',
+  attr1                     varchar(64)     default null               comment '预留字段1',
+  attr2                     varchar(255)    default null               comment '预留字段2',
+  attr3                     int(11)         default 0                  comment '预留字段3',
+  attr4                     int(11)         default 0                  comment '预留字段4',
+  create_by                 varchar(64)     default ''                 comment '创建者',
+  create_time 	            datetime                                   comment '创建时间',
+  update_by                 varchar(64)     default ''                 comment '更新者',
+  update_time               datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '班组排班表';
+

+ 372 - 0
doc/设计文档/数据库设计/mes-dv.sql

@@ -0,0 +1,372 @@
+-- ----------------------------
+-- 1、设备类型表
+-- ----------------------------
+drop table if exists dv_machinery_type;
+create table dv_machinery_type (
+  machinery_type_id           bigint(20)      not null auto_increment    comment '设备类型ID',
+  machinery_type_code         varchar(64)     not null                   comment '设备类型编码',
+  machinery_type_name         varchar(255)    not null                   comment '设备类型名称',
+  parent_type_id              bigint(20)      default 0                  comment '父类型ID',
+  ancestors                   varchar(255)    not null                   comment '所有父节点ID',
+  enable_flag                 char(1)         default 'Y' not null       comment '是否启用',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (machinery_type_id)
+) engine=innodb auto_increment=200 comment = '设备类型表';
+
+
+-- ----------------------------
+-- 2、设备表
+-- ----------------------------
+drop table if exists dv_machinery;
+create table dv_machinery (
+  machinery_id                bigint(20)      not null auto_increment    comment '设备类型ID',
+  machinery_code              varchar(64)     not null                   comment '设备类型编码',
+  machinery_name              varchar(255)    not null                   comment '设备类型名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  machinery_type_id           bigint(20)      not null                   comment '设备类型ID',
+  machinery_type_code         varchar(64)                                comment '设备类型编码',
+  machinery_type_name         varchar(255)                               comment '设备类型名称',
+  workshop_id                 bigint(20)      not null                   comment '所属车间ID',
+  workshop_code               varchar(64)                                comment '所属车间编码',
+  workshop_name               varchar(255)                               comment '所属车间名称',
+  status                      varchar(64)     default 'STOP' not null    comment '设备状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (machinery_id)
+) engine=innodb auto_increment=200 comment = '设备表';
+
+
+-- ----------------------------
+-- 3、设备点检保养项目表
+-- ----------------------------
+drop table if exists dv_subject;
+create table dv_subject (
+  subject_id                  bigint(20)      not null auto_increment    comment '项目ID',
+  subject_code                varchar(64)     not null                   comment '项目编码',
+  subject_name                varchar(255)                               comment '项目名称',
+  subject_type                varchar(64)     default 0                  comment '项目类型',
+  subject_content             varchar(500)    not null                   comment '项目内容',
+  subject_standard            varchar(255)                               comment '标准',
+  enable_flag                 char(1)         default 'Y' not null       comment '是否启用',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (subject_id)
+) engine=innodb auto_increment=200 comment = '设备点检保养项目表';
+
+
+
+-- ----------------------------
+-- 4、设备点检保养计划头表
+-- ----------------------------
+drop table if exists dv_check_plan;
+create table dv_check_plan (
+  plan_id                     bigint(20)      not null auto_increment    comment '计划ID',
+  plan_code                   varchar(64)     not null                   comment '计划编码',
+  plan_name                   varchar(255)                               comment '计划名称',
+  plan_type                   varchar(64)     not null                   comment '计划类型',
+  start_date                  datetime                                   comment '开始日期',
+  end_date                    datetime                                   comment '结束日期',
+  cycle_type                  varchar(64)                                comment '频率',
+  cycle_count                 int(11)                                    comment '次数',
+  status                      varchar(64)                                comment '状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (plan_id)
+) engine=innodb auto_increment=200 comment = '设备点检保养计划头表';
+
+
+
+
+-- ----------------------------
+-- 5、点检保养计划设备表
+-- ----------------------------
+drop table if exists dv_check_machinery;
+create table dv_check_machinery (
+  record_id                   bigint(20)      not null auto_increment    comment '流水号',
+  plan_id                     bigint(20)      not null                   comment '计划ID',
+  machinery_id                bigint(20)      not null                   comment '设备ID',
+  machinery_code              varchar(64)     not null                   comment '设备编码',
+  machinery_name              varchar(255)    not null                   comment '设备名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '点检设备表';
+
+
+-- ----------------------------
+-- 6、点检保养计划项目表
+-- ----------------------------
+drop table if exists dv_check_subject;
+create table dv_check_subject (
+  record_id                   bigint(20)      not null auto_increment    comment '流水号',
+  plan_id                     bigint(20)      not null                   comment '计划ID',
+  subject_id                  bigint(20)      not null                   comment '项目ID',
+  subject_code                varchar(64)     not null                   comment '项目编码',
+  subject_name                varchar(255)                               comment '项目名称',
+  subject_type                varchar(64)                                comment '项目类型',
+  subject_content             varchar(500)    not null                   comment '项目内容',
+  subject_standard            varchar(255)                               comment '标准',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '点检项目表';
+
+
+
+-- ----------------------------
+-- 7、设备点检记录表
+-- ----------------------------
+drop table if exists dv_check_record;
+create table dv_check_record (
+  record_id                   bigint(20)      not null auto_increment    comment '计划ID',
+  plan_id                     bigint(20)                                 comment '计划ID',
+  plan_code                   varchar(64)                                comment '计划编码',
+  plan_name                   varchar(255)                               comment '计划名称',
+  plan_type                   varchar(64)                                comment '计划类型',
+  machinery_id                bigint(20)      not null                   comment '设备ID',
+  machinery_code              varchar(64)     not null                   comment '设备编码',
+  machinery_name              varchar(255)    not null                   comment '设备名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  check_time                  datetime        not null                   comment '点检时间',  
+  status                      varchar(64)     default 'PREPARE'          comment '状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time                 datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '设备点检记录表';
+
+
+-- ----------------------------
+-- 8、设备点检记录行表
+-- ----------------------------
+drop table if exists dv_check_record_line;
+create table dv_check_record_line (
+  line_id                     bigint(20)      not null auto_increment    comment '计划ID',
+  record_id                   bigint(20)      not null                   comment '计划ID',
+  subject_id                  bigint(20)      not null                   comment '项目ID',
+  subject_code                varchar(64)     not null                   comment '项目编码',
+  subject_name                varchar(255)                               comment '项目名称',
+  subject_type                varchar(64)                                comment '项目类型',
+  subject_content             varchar(500)    not null                   comment '项目内容',
+  subject_standard            varchar(255)                               comment '标准',
+  check_status                varchar(64)     not null                   comment '点检结果',
+  check_result                varchar(500)                               comment '异常描述',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time                 datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '设备点检记录行表';
+
+
+
+
+
+
+-- ----------------------------
+-- 7、设备保养记录表
+-- ----------------------------
+drop table if exists dv_mainten_record;
+create table dv_mainten_record (
+  record_id                   bigint(20)      not null auto_increment    comment '计划ID',
+  plan_id                     bigint(20)                                 comment '计划ID',
+  plan_code                   varchar(64)                                comment '计划编码',
+  plan_name                   varchar(255)                               comment '计划名称',
+  plan_type                   varchar(64)                                comment '计划类型',
+  machinery_id                bigint(20)      not null                   comment '设备ID',
+  machinery_code              varchar(64)     not null                   comment '设备编码',
+  machinery_name              varchar(255)    not null                   comment '设备名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  mainten_time                  datetime        not null                 comment '保养时间',  
+  status                      varchar(64)     default 'PREPARE'          comment '状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time                 datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '设备保养记录表';
+
+
+-- ----------------------------
+-- 8、设备保养记录行表
+-- ----------------------------
+drop table if exists dv_mainten_record_line;
+create table dv_mainten_record_line (
+  line_id                     bigint(20)      not null auto_increment    comment '计划ID',
+  record_id                   bigint(20)      not null                   comment '计划ID',
+  subject_id                  bigint(20)      not null                   comment '项目ID',
+  subject_code                varchar(64)     not null                   comment '项目编码',
+  subject_name                varchar(255)                               comment '项目名称',
+  subject_type                varchar(64)                                comment '项目类型',
+  subject_content             varchar(500)    not null                   comment '项目内容',
+  subject_standard            varchar(255)                               comment '标准',
+  mainten_status              varchar(64)     not null                   comment '保养结果',
+  mainten_result              varchar(500)                               comment '异常描述',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time                 datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '设备保养记录行表';
+
+
+
+
+
+-- ----------------------------
+-- 7、设备维修单
+-- ----------------------------
+drop table if exists dv_repair;
+create table dv_repair (
+  repair_id                   bigint(20)      not null auto_increment    comment '维修单ID',    
+  repair_code                 varchar(64)     not null                   comment '维修单编号',
+  repair_name                 varchar(255)                               comment '维修单名称',
+  machinery_id                bigint(20)      not null                   comment '设备ID',
+  machinery_code              varchar(64)     not null                   comment '设备编码',
+  machinery_name              varchar(255)    not null                   comment '设备名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  machinery_type_id           bigint(20)      not null                   comment '设备类型ID',
+  require_date                datetime                                   comment '报修日期',
+  finish_date                 datetime                                   comment '维修完成日期',
+  confirm_date                datetime                                   comment '验收日期',
+  repair_result               varchar(64)                                comment '维修结果',
+  accepted_by                 varchar(64)                                comment '维修人员',  
+  confirm_by                  varchar(64)                                comment '验收人员',
+  status                      varchar(64)     default 'PREPARE'          comment '单据状态',  
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (repair_id)
+) engine=innodb auto_increment=200 comment = '设备维修单';
+
+
+
+-- ----------------------------
+-- 7、设备维修单行
+-- ----------------------------
+drop table if exists dv_repair_line;
+create table dv_repair_line (
+  line_id                     bigint(20)      not null auto_increment    comment '行ID',    
+  repair_id                   bigint(20)      not null                   comment '维修单ID',
+  subject_id                  bigint(20)                                 comment '项目ID',
+  subject_code                varchar(64)                                comment '项目编码',
+  subject_name                varchar(255)                               comment '项目名称',
+  subject_type                varchar(64)                                comment '项目类型',
+  subject_content             varchar(500)                               comment '项目内容',
+  subject_standard            varchar(255)                               comment '标准',
+  malfunction                 varchar(500)    not null                   comment '故障描述',
+  malfunction_url             varchar(255)                               comment '故障描述资源',
+  repair_des                  varchar(500)                               comment '维修情况',  
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '设备维修单行';
+
+
+-- ----------------------------
+-- 7、设备开停机记录表
+-- ----------------------------
+drop table if exists dv_dss_record;
+create table dv_dss_record (
+  record_id                   bigint(20)      not null auto_increment    comment '记录ID',
+  plan_code                   varchar(64)                                comment '记录编号',
+  record_type                 varchar(64)     default 'STOP'             comment '记录类型',
+  machinery_id                bigint(20)      not null                   comment '设备ID',
+  machinery_code              varchar(64)     not null                   comment '设备编码',
+  machinery_name              varchar(255)    not null                   comment '设备名称',
+  machinery_brand             varchar(255)                               comment '品牌',
+  machinery_spec              varchar(255)                               comment '规格型号',
+  record_time                 datetime        not null                   comment '记录时间',  
+  status                      varchar(64)     default 'PREPARE'          comment '状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time                 datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '设备保养记录表';

+ 372 - 0
doc/设计文档/数据库设计/mes-md.sql

@@ -0,0 +1,372 @@
+-- ----------------------------
+-- 1、物料产品表
+-- ----------------------------
+drop table if exists md_item;
+create table md_item (
+  item_id           bigint(20)      not null auto_increment    comment '产品物料ID',
+  item_code         varchar(64)     not null                   comment '产品物料编码',
+  item_name         varchar(255)    not null                   comment '产品物料名称',
+  specification     varchar(500)    default null               comment '规格型号',
+  unit_of_measure   varchar(64)     not null                   comment '单位编码',
+  unit_name         varchar(64)                                comment '单位名称'
+  item_or_product   varchar(20)     not null                   comment '产品物料标识',
+  item_type_id      bigint(20)      default 0                  comment '物料类型ID',
+  item_type_code    varchar(64)     default ''                 comment '物料类型编码',
+  item_type_name    varchar(255)    default ''                 comment '物料类型名称',
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  safe_stock_flag   char(1)         default 'N' not null       comment '是否设置安全库存',
+  min_stock         double(12,4)    default 0                  comment '最低库存量',
+  max_stock         double(12,4)    default 0                  comment '最大库存量',
+  high_value        char(1)         default 'N' not null       comment '高价值物资',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null              comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (item_id)
+) engine=innodb auto_increment=200 comment = '物料产品表';
+
+-- ----------------------------
+-- 2、物料产品分类表
+-- ----------------------------
+drop table if exists md_item_type;
+create table md_item_type (
+  item_type_id      bigint(20)      not null auto_increment    comment '产品物料类型ID',
+  item_type_code    varchar(64)     not null                   comment '产品物料类型编码',
+  item_type_name    varchar(255)    not null                   comment '产品物料类型名称',
+  parent_type_id    bigint          default 0 not null         comment '父类型ID',
+  ancestors         varchar(255)    not null                   comment '所有层级父节点',
+  item_or_product   varchar(20)     not null                   comment '产品物料标识',
+  order_num         int(11)         default 1                  comment '排列顺序',
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null               comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (item_type_id)
+) engine=innodb auto_increment=200 comment = '物料产品分类表';
+
+-- ----------------------------
+-- 3、产品BOM关系表
+-- ----------------------------
+drop table if exists md_product_bom;
+create table md_product_bom (
+  bom_id            bigint(20)      not null auto_increment    comment '流水号',
+  item_id           bigint(20)      not null                   comment '物料产品ID',
+  bom_item_id       bigint(20)      not null                   comment 'BOM物料ID',
+  bom_item_code     varchar(64)     not null                   comment 'BOM物料编码',
+  bom_item_name     varchar(255)    not null                   comment 'BOM物料名称',
+  bom_item_spec     varchar(500)                               comment 'BOM物料规格',
+  unit_of_measure   varchar(64)     not null                   comment 'BOM物料单位',
+  item_or_product   varchar(20)     not null                   comment '产品物料标识',
+  quantity          double(12,4)    default 0 not null         comment '物料使用比例',
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null               comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (bom_id)
+) engine=innodb auto_increment=200 comment = '产品BOM关系表';
+
+
+-- ----------------------------
+-- 4、供应商表
+-- ----------------------------
+drop table if exists md_vendor;
+create table md_vendor (
+  vendor_id         bigint(20)      not null auto_increment    comment '供应商ID',
+  vendor_code       varchar(64)     not null                   comment '供应商编码',
+  vendor_name       varchar(255)    not null                   comment '供应商名称',
+  vendor_nick       varchar(255)                               comment '供应商简称',
+  vendor_en         varchar(255)                               comment '供应商英文名称',
+  vendor_des        varchar(500)                               comment '供应商简介',  
+  vendor_logo       varchar(255)                               comment '供应商LOGO地址',  
+  vendor_level      varchar(64)                                comment '供应商等级',  
+  vendor_score      int(11)                                    comment '供应商评分',
+  address           varchar(500)                               comment '供应商地址',
+  website           varchar(255)                               comment '供应商官网地址',
+  email             varchar(255)                               comment '供应商邮箱地址',
+  tel               varchar(64)                                comment '供应商电话',
+  contact1          varchar(64)                                comment '联系人1',
+  contact1_tel      varchar(64)                                comment '联系人1-电话',
+  contact1_email    varchar(255)                               comment '联系人1-邮箱',
+  contact2          varchar(64)                                comment '联系人2',
+  contact2_tel      varchar(64)                                comment '联系人2-电话',
+  contact2_email    varchar(255)                               comment '联系人2-邮箱',
+  credit_code       varchar(64)                                comment '统一社会信用代码',  
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null               comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (vendor_id)
+) engine=innodb auto_increment=200 comment = '供应商表';
+
+
+-- ----------------------------
+-- 5、客户表
+-- ----------------------------
+drop table if exists md_client;
+create table md_client (
+  client_id         bigint(20)      not null auto_increment    comment '客户ID',
+  client_code       varchar(64)     not null                   comment '客户编码',
+  client_name       varchar(255)    not null                   comment '客户名称',
+  client_nick       varchar(255)                               comment '客户简称',
+  client_en         varchar(255)                               comment '客户英文名称',
+  client_des        varchar(500)                               comment '客户简介',  
+  client_logo       varchar(255)                               comment '客户LOGO地址',  
+  client_type       varchar(64)     default 'ENTERPRISE'       comment '客户类型',  
+  address           varchar(500)                               comment '客户地址',
+  website           varchar(255)                               comment '客户官网地址',
+  email             varchar(255)                               comment '客户邮箱地址',
+  tel               varchar(64)                                comment '客户电话',
+  contact1          varchar(64)                                comment '联系人1',
+  contact1_tel      varchar(64)                                comment '联系人1-电话',
+  contact1_email    varchar(255)                               comment '联系人1-邮箱',
+  contact2          varchar(64)                                comment '联系人2',
+  contact2_tel      varchar(64)                                comment '联系人2-电话',
+  contact2_email    varchar(255)                               comment '联系人2-邮箱',
+  credit_code       varchar(64)                                comment '统一社会信用代码',  
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null               comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (client_id)
+) engine=innodb auto_increment=200 comment = '客户表';
+
+-- ----------------------------
+-- 6、单位表
+-- ----------------------------
+drop table if exists md_unit_measure;
+create table md_unit_measure (
+  measure_id         bigint(20)      not null auto_increment    comment '单位ID',
+  measure_code       varchar(64)     not null                   comment '单位编码',
+  measure_name       varchar(255)    not null                   comment '单位名称',
+  primary_flag       char(1)         default 'Y' not null       comment '是否是主单位',
+  primary_id         bigint(20)                                 comment '主单位ID',
+  change_rate        double(12,4)                               comment '与主单位换算比例',  
+  enable_flag       char(1)         default 'Y' not null        comment '是否启用',
+  remark            varchar(500)    default ''                  comment '备注',
+  attr1             varchar(64)     default null                comment '预留字段1',
+  attr2             varchar(255)     default null               comment '预留字段2',
+  attr3             int(11)         default 0                   comment '预留字段3',
+  attr4             int(11)         default 0                   comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (measure_id)
+) engine=innodb auto_increment=200 comment = '单位表';
+
+
+-- ----------------------------
+-- 7、车间表
+-- ----------------------------
+drop table if exists md_workshop;
+create table md_workshop (
+  workshop_id         bigint(20)      not null auto_increment      comment '车间ID',
+  workshop_code       varchar(64)     not null                     comment '车间编码',
+  workshop_name       varchar(255)    not null                     comment '车间名称',
+  area                double(12,2)                                 comment '面积',
+  charge              varchar(64)                                  comment '负责人',
+  enable_flag         char(1)         default 'Y' not null         comment '是否启用',
+  remark              varchar(500)    default ''                   comment '备注',
+  attr1               varchar(64)     default null                 comment '预留字段1',
+  attr2               varchar(255)     default null                comment '预留字段2',
+  attr3               int(11)         default 0                    comment '预留字段3',
+  attr4               int(11)         default 0                    comment '预留字段4',
+  create_by           varchar(64)     default ''                   comment '创建者',
+  create_time 	      datetime                                     comment '创建时间',
+  update_by           varchar(64)     default ''                   comment '更新者',
+  update_time         datetime                                     comment '更新时间',
+  primary key (workshop_id)
+) engine=innodb auto_increment=200 comment = '车间表';
+
+
+-- ----------------------------
+-- 8、工作站表
+-- ----------------------------
+drop table if exists md_workstation;
+create table md_workstation (
+  workstation_id         bigint(20)      not null auto_increment      comment '工作站ID',
+  workstation_code       varchar(64)     not null                     comment '工作站编码',
+  workstation_name       varchar(255)    not null                     comment '工作站名称',
+  workstation_address    varchar(255)                                 comment '工作站地点',
+  workshop_id            bigint(20)                                   comment '所在车间ID',
+  workshop_code          varchar(64)                                  comment '所在车间编码',
+  workshop_name          varchar(255)                                 comment '所在车间名称',
+  process_id             bigint(20)                                   comment '工序ID',
+  process_code           varchar(64)                                  comment '工序编码',
+  process_name           varchar(255)                                 comment '工序名称',
+  warehouse_id           bigint(20)      not null                     comment '线边库ID',
+  warehouse_code         varchar(64)                                  comment '线边库编码',
+  warehouse_name         varchar(255)                                 comment '线边库名称',
+  location_id            bigint(20)      not null                     comment '库区ID',
+  location_code          varchar(64)                                  comment '库区编码',
+  location_name          varchar(255)                                 comment '库区名称',
+  area_id                bigint(20)      not null                     comment '库位ID',
+  area_code              varchar(64)                                  comment '库位编码',
+  area_name              varchar(255)                                 comment '库位名称', 
+  enable_flag            char(1)         default 'Y' not null         comment '是否启用',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time 	         datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (workstation_id)
+) engine=innodb auto_increment=200 comment = '工作站表';
+
+
+-- ----------------------------
+-- 9、设备资源表
+-- ----------------------------
+drop table if exists md_workstation_machine;
+create table md_workstation_machine (
+  record_id              bigint(20)      not null auto_increment      comment '记录ID',
+  workstation_id         bigint(20)      not null                     comment '工作站ID',
+  machinery_id           bigint(20)      not null                     comment '设备ID',
+  machinery_code         varchar(64)                                  comment '设备编码',
+  machinery_name         varchar(255)                                 comment '设备名称',
+  quantity               int(4)          default 1                    comment '数量',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time 	         datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '设备资源表';
+
+
+-- ----------------------------
+-- 10、人力资源表
+-- ----------------------------
+drop table if exists md_workstation_worker;
+create table md_workstation_worker (
+  record_id              bigint(20)      not null auto_increment      comment '记录ID',
+  workstation_id         bigint(20)      not null                     comment '工作站ID',
+  post_id                bigint(20)      not null                     comment '岗位ID',
+  post_code              varchar(64)                                  comment '岗位编码',
+  post_name              varchar(255)                                 comment '岗位名称',
+  quantity               int(4)          default 1 not null           comment '数量',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time 	         datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '人力资源表';
+
+
+-- ----------------------------
+-- 11、工装夹具资源表
+-- ----------------------------
+drop table if exists md_workstation_tool;
+create table md_workstation_tool (
+  record_id              bigint(20)      not null auto_increment      comment '记录ID',
+  workstation_id         bigint(20)      not null                     comment '工作站ID',
+  tool_type_id           bigint(20)      not null                     comment '工装夹具类型ID',
+  tool_type_code         varchar(64)                                  comment '类型编码',
+  tool_type_name         varchar(255)                                 comment '类型名称',
+  quantity               int(4)          default 1 not null           comment '数量',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time 	         datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '工装夹具资源表';
+
+
+-- ----------------------------
+-- 12、产品SOP表
+-- ----------------------------
+drop table if exists md_product_sop;
+create table md_product_sop (
+  sop_id                 bigint(20)      not null auto_increment      comment '记录ID',
+  item_id                bigint(20)      not null                     comment '物料产品ID',
+  order_num              int(4)                                       comment '排列顺序',
+  process_id             bigint(20)                                   comment '对应的工序',
+  process_code           varchar(64)                                  comment '工序编号',
+  process_name           varchar(255)                                 comment '工序名称',
+  sop_title               varchar(255)                                comment '标题',
+  sop_description        varchar(500)                                 comment '详细描述',
+  sop_url                varchar(255)                                 comment '图片地址',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time 	         datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (sop_id)
+) engine=innodb auto_increment=200 comment = '产品SOP表';
+
+
+-- ----------------------------
+-- 12、产品SIP表
+-- ----------------------------
+drop table if exists md_product_sip;
+create table md_product_sip (
+  sip_id                 bigint(20)      not null auto_increment      comment '记录ID',
+  item_id                bigint(20)      not null                     comment '物料产品ID',
+  order_num              int(4)                                       comment '排列顺序',
+  process_id             bigint(20)                                   comment '对应的工序',
+  process_code           varchar(64)                                  comment '工序编号',
+  process_name           varchar(255)                                 comment '工序名称',
+  sip_title               varchar(255)                                comment '标题',
+  sip_description        varchar(500)                                 comment '详细描述',
+  sip_url                varchar(255)                                 comment '图片地址',
+  remark                 varchar(500)    default ''                   comment '备注',
+  attr1                  varchar(64)     default null                 comment '预留字段1',
+  attr2                  varchar(255)     default null                comment '预留字段2',
+  attr3                  int(11)         default 0                    comment '预留字段3',
+  attr4                  int(11)         default 0                    comment '预留字段4',
+  create_by              varchar(64)     default ''                   comment '创建者',
+  create_time            datetime                                     comment '创建时间',
+  update_by              varchar(64)     default ''                   comment '更新者',
+  update_time            datetime                                     comment '更新时间',
+  primary key (sip_id)
+) engine=innodb auto_increment=200 comment = '产品SIP表';

+ 572 - 0
doc/设计文档/数据库设计/mes-pro.sql

@@ -0,0 +1,572 @@
+-- ----------------------------
+-- 1、生产工单表
+-- ----------------------------
+drop table if exists pro_workorder;
+create table pro_workorder (
+  workorder_id                bigint(20)      not null auto_increment    comment '工单ID',
+  workorder_code              varchar(64)     not null                   comment '工单编码',
+  workorder_name              varchar(255)    not null                   comment '工单名称',
+  workorder_type              varchar(64)     default 'SELF'             comment '工单类型',
+  order_source                varchar(64)     not null                   comment '来源类型',
+  source_code                 varchar(64)                                comment '来源单据',
+  product_id                  bigint(20)      not null                   comment '产品ID',
+  product_code                varchar(64)     not null                   comment '产品编号',
+  product_name                varchar(255)    not null                   comment '产品名称',
+  product_spc                 varchar(255)                               comment '规格型号',
+  unit_of_measure             varchar(64)     not null                   comment '单位',
+  quantity                    double(14,2)    default 0 not null         comment '生产数量',
+  quantity_produced           double(14,2)    default 0                  comment '已生产数量',
+  quantity_changed            double(14,2)    default 0                  comment '调整数量',
+  quantity_scheduled          double(14,2)    default 0                  comment '已排产数量', 
+  client_id                   bigint(20)                                 comment '客户ID',
+  client_code                 varchar(64)                                comment '客户编码',
+  client_name                 varchar(255)                               comment '客户名称',
+  vendor_id                   bigint(20)                                 comment '供应商ID',
+  vendor_code                 varchar(64)                                comment '供应商编号',
+  vendor_name                 varchar(255)                               comment '供应商名称',
+  batch_code                  varchar(64)                                comment '批次号',
+  request_date                datetime        not null                   comment '需求日期',
+  parent_id                   bigint(20)      default 0 not null         comment '父工单',
+  ancestors                   varchar(500)    not null                   comment '所有父节点ID',
+  finish_date                 datetime                                   comment '完成时间',
+  status                      varchar(64)     default 'PREPARE'          comment '单据状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (workorder_id)
+) engine=innodb auto_increment=200 comment = '生产工单表';
+
+
+-- ----------------------------
+-- 2、生产工单BOM组成表
+-- ----------------------------
+drop table if exists pro_workorder_bom;
+create table pro_workorder_bom (
+  line_id                     bigint(20)      not null auto_increment    comment '行ID',
+  workorder_id                bigint(20)      not null                   comment '生产工单ID',
+  item_id                     bigint(20)      not null                   comment 'BOM物料ID',
+  item_code                   varchar(64)     not null                   comment 'BOM物料编号',
+  item_name                   varchar(255)    not null                   comment 'BOM物料名称',
+  item_spc                    varchar(255)                               comment '规格型号',
+  unit_of_measure             varchar(64)     not null                   comment '单位',
+  item_or_product             varchar(20)     not null                   comment '物料产品标识',
+  quantity                    double(14,2)    default 0 not null         comment '预计使用量',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '生产工单BOM组成表';
+
+
+-- ----------------------------
+-- 3、生产工序表
+-- ----------------------------
+drop table if exists pro_process;
+create table pro_process (
+  process_id                     bigint(20)      not null auto_increment    comment '工序ID',
+  process_code                   varchar(64)     not null                   comment '工序编码',
+  process_name                   varchar(255)    not null                   comment '工序名称',
+  attention                      varchar(1000)                              comment '工艺要求',
+  enable_flag                    char(1)         default 'Y' not null       comment '是否启用',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (process_id)
+) engine=innodb auto_increment=200 comment = '生产工序表';
+
+
+-- ----------------------------
+-- 4、生产工序内容表
+-- ----------------------------
+drop table if exists pro_process_content;
+create table pro_process_content (
+  content_id                     bigint(20)      not null auto_increment    comment '内容ID',
+  process_id                     bigint(20)      not null                   comment '工序ID',
+  order_num                      int(4)          default 0                  comment '顺序编号',
+  content_text                   varchar(500)                               comment '内容说明',
+  device                         varchar(255)                               comment '辅助设备',
+  material                       varchar(255)                               comment '辅助材料',
+  doc_url                        varchar(255)                               comment '材料URL',  
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (content_id)
+) engine=innodb auto_increment=200 comment = '生产工序内容表';
+
+
+-- ----------------------------
+-- 3、工艺路线表
+-- ----------------------------
+drop table if exists pro_route;
+create table pro_route (
+  route_id                       bigint(20)      not null auto_increment    comment '工艺路线ID',
+  route_code                     varchar(64)     not null                   comment '工艺路线编号',
+  route_name                     varchar(255)    not null                   comment '工艺路线名称',
+  route_desc                     varchar(500)                               comment '工艺路线说明',
+  enable_flag                    char(1)         default 'Y' not null       comment '是否启用',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (route_id)
+) engine=innodb auto_increment=200 comment = '工艺路线表';
+
+
+-- ----------------------------
+-- 4、工艺组成表
+-- ----------------------------
+drop table if exists pro_route_process;
+create table pro_route_process (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  route_id                       bigint(20)      not null                   comment '工艺路线ID',
+  process_id                     bigint(20)      not null                   comment '工序ID',
+  process_code                   varchar(64)                                comment '工序编码',
+  process_name                   varchar(255)                               comment '工序名称',
+  order_num                      int(4)          default 1                  comment '序号',
+  next_process_id                bigint(20)      not null                   comment '工序ID',
+  next_process_code              varchar(64)                                comment '工序编码',
+  next_process_name              varchar(255)                               comment '工序名称',
+  link_type                      varchar(64)     default 'SS'               comment '与下一道工序关系',
+  default_pre_time               int(11)         default 0                  comment '准备时间',
+  default_suf_time               int(11)         default 0                  comment '等待时间',
+  color_code                     char(7)         default '#00AEF3'          comment '甘特图显示颜色',
+  key_flag                       varchar(64)     default 'N'                comment '关键工序',
+  is_check                       char(1)         default 'N'                comment '是否检验',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '工艺组成表';
+
+
+-- ----------------------------
+-- 4、产品制程
+-- ----------------------------
+drop table if exists pro_route_product;
+create table pro_route_product (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  route_id                       bigint(20)      not null                   comment '工艺路线ID',
+  item_id                        bigint(20)      not null                   comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  specification                  varchar(500)    default null               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  quantity                       int(11)         default 1                  comment '生产数量',
+  production_time                double(12,2)    default 1                  comment '生产用时',
+  time_unit_type                 varchar(64)     default 'MINUTE'           comment '时间单位',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '产品制程';
+
+
+
+-- ----------------------------
+-- 4、产品制程物料BOM表
+-- ----------------------------
+drop table if exists pro_route_product_bom;
+create table pro_route_product_bom (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  route_id                       bigint(20)      not null                   comment '工艺路线ID',
+  process_id                     bigint(20)      not null                   comment '工序ID',
+  product_id                     bigint(20)      not null                   comment '产品BOM中的唯一ID',
+  item_id                        bigint(20)      not null                   comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  specification                  varchar(500)    default null               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  quantity                       double(12,2)         default 1                  comment '用料比例',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '产品制程物料BOM表';
+
+
+-- ----------------------------
+-- 4、生产任务表
+-- ----------------------------
+drop table if exists pro_task;
+create table pro_task (
+  task_id                        bigint(20)      not null auto_increment    comment '任务ID',
+  task_code                      varchar(64)     not null                   comment '任务编号',
+  task_name                      varchar(255)    not null                   comment '任务名称',
+  workorder_id                   bigint(20)      not null                   comment '生产工单ID',
+  workorder_code                 varchar(64)     not null                   comment '生产工单编号',
+  workorder_name                 varchar(255)    not null                   comment '工单名称',
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)     not null                   comment '工作站编号',
+  workstation_name               varchar(255)    not null                   comment '工作站名称',
+  route_id                       bigint(20)      not null                   comment '工艺ID',
+  route_code                     varchar(64)                                comment '工艺编号',
+  process_id                     bigint(20)      not null                   comment '工序ID',
+  process_code                   varchar(64)                                comment '工序编码',
+  process_name                   varchar(255)                               comment '工序名称',
+  item_id                        bigint(20)      not null                   comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  specification                  varchar(500)                               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  quantity                       double(14,2)    default 1 not null         comment '排产数量',
+  quantity_produced              double(14,2)    default 0                  comment '已生产数量',
+  quantity_quanlify              double(14,2)    default 0                  comment '合格品数量',
+  quantity_unquanlify            double(14,2)    default 0                  comment '不良品数量',
+  quantity_changed               double(14,2)    default 0                  comment '调整数量',
+  client_id                      bigint(20)                                 comment '客户ID',
+  client_code                    varchar(64)                                comment '客户编码',
+  client_name                    varchar(255)                               comment '客户名称',
+  client_nick                    varchar(255)                               comment '客户简称',
+  start_time                     datetime        default CURRENT_TIMESTAMP  comment '开始生产时间',
+  duration                       int(11)         default 1                  comment '生产时长',
+  end_time                       datetime                                   comment '完成生产时间',
+  color_code                     char(7)         default '#00AEF3'          comment '甘特图显示颜色',
+  request_date                   datetime                                   comment '需求日期',
+  status                         varchar(64)     default 'NORMARL'          comment '生产状态',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (task_id)
+) engine=innodb auto_increment=200 comment = '生产任务表';
+
+
+-- ----------------------------
+-- 4、生产报工记录表
+-- ----------------------------
+drop table if exists pro_feedback;
+create table pro_feedback (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  feedback_type                  varchar(64)     not null                   comment '报工类型',
+  feedback_code                  varchar(64)                                comment '报工单编号',
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(255)                               comment '工作站名称',
+  workorder_id                   bigint(20)      not null                   comment '生产工单ID',
+  workorder_code                 varchar(64)                                comment '生产工单编号',
+  workorder_name                 varchar(255)                               comment '生产工单名称',
+  route_id                       bigint(20)      not null                   comment '工艺流程ID',
+  route_code                     varchar(64)                                comment '工艺流程编号',
+  process_id                     bigint(20)      not null                   comment '工序ID',
+  process_code                   varchar(64)                                comment '工序编码',
+  process_name                   varchar(255)                               comment '工序名称',
+  task_id                        bigint(20)                                 comment '生产任务ID',
+  task_code                      varchar(64)                                comment '生产任务编号',
+  item_id                        bigint(20)      not null                   comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  unit_of_measure                varchar(64)                                comment '单位',
+  specification                  varchar(500)                               comment '规格型号',
+  quantity                       double(14,2)                               comment '排产数量',
+  quantity_feedback              double(14,2)                               comment '本次报工数量',
+  quantity_qualified             double(14,2)                               comment '合格品数量',
+  quantity_unquanlified          double(14,2)                               comment '不良品数量',
+  quantity_uncheck               double(14,2)                               comment '待检测数量',
+  user_name                      varchar(64)                                comment '报工用户名',
+  nick_name                      varchar(64)                                comment '昵称',
+  feedback_channel               varchar(64)                                comment '报工途径',
+  feedback_time                  datetime                                   comment '报工时间',
+  record_user                    varchar(64)                                comment '记录人',
+  record_nick                    varchar(64)                                comment '记录人名称',
+  status                         varchar(64)     default 'PREPARE'          comment '状态',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '生产报工记录表';
+
+
+
+
+
+-- ----------------------------
+-- 4、生产任务投料表
+-- ----------------------------
+drop table if exists pro_task_issue;
+create table pro_task_issue (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  task_id                        bigint(20)      not null                   comment '生产任务ID',
+  workorder_id                   bigint(20)                                 comment '生产工单ID',
+  workstation_id                 bigint(20)                                 comment '工作站ID',
+  source_doc_id                  bigint(20)      not null                   comment '单据ID',
+  source_doc_code                varchar(64)                                comment '单据编号',
+  batch_code                     varchar(64)                                comment '投料批次',
+  source_line_id                 bigint(20)                                 comment '行ID',
+  item_id                        bigint(20)                                 comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  specification                  varchar(500)    default null               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  quantity_issued                double(12,2)                               comment '总的投料数量',
+  quantity_available             double(12,2)                               comment '当前可用数量',
+  quantity_used                  double(12,2)                               comment '当前使用数量',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '生产任务投料表';
+
+
+
+
+-- ----------------------------
+-- 4、流转单表
+-- ----------------------------
+drop table if exists pro_trans_order;
+create table pro_trans_order (
+  trans_order_id                 bigint(20)      not null auto_increment    comment '流转单ID',
+  trans_order_code               varchar(64)                                comment '流转单编号',
+  task_id                        bigint(20)      not null                   comment '生产任务ID',
+  task_code                      varchar(64)                                comment '生产任务编号',
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(255)                               comment '工作站名称', 
+  process_id                     bigint(20)                                 comment '工序ID',
+  process_code                   varchar(64)                                comment '工序编号',
+  process_name                   varchar(255)                               comment '工序名称',
+  workorder_id                   bigint(20)                                 comment '生产工单ID',
+  workorder_code                 varchar(64)                                comment '生产工单编号',
+  workorder_name                 varchar(255)                               comment '生产工单名称', 
+  batch_code                     varchar(64)                                comment '批次号',  
+  item_id                        bigint(20)                                 comment '产品物料ID',
+  item_code                      varchar(64)     not null                   comment '产品物料编码',
+  item_name                      varchar(255)    not null                   comment '产品物料名称',
+  specification                  varchar(500)    default null               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  barcode_url                    varchar(255)                               comment '赋码地址',
+  quantity_transfered            double(12,2)                               comment '流转数量',  
+  produce_date                   datetime                                   comment '生产日期',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (trans_order_id)
+) engine=innodb auto_increment=200 comment = '流转单表';
+
+
+
+
+
+-- ----------------------------
+-- 4、物料消耗记录表
+-- ----------------------------
+drop table if exists pro_trans_consume;
+create table pro_trans_consume (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  trans_order_id                 bigint(20)                                 comment '流转单ID',
+  trans_order_code               varchar(64)                                comment '流转单编号',
+  task_id                        bigint(20)      not null                   comment '生产任务ID',  
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  process_id                     bigint(20)                                 comment '工序ID',
+  workorder_id                   bigint(20)                                 comment '生产工单ID',
+  batch_code                     varchar(64)                                comment '批次号',  
+  source_doc_id                  bigint(20)                                 comment '被消耗单据ID',
+  source_doc_code                varchar(64)                                comment '被消耗单据编号',
+  source_doc_type                varchar(64)                                comment '被消耗单据类型',
+  source_line_id                 bigint(20)                                 comment '被消耗单据行ID',
+  source_batch_code              varchar(64)                                comment '被消耗物料批次号',  
+  item_id                        bigint(20)                                 comment '被消耗产品物料ID',
+  item_code                      varchar(64)     not null                   comment '被消耗产品物料编码',
+  item_name                      varchar(255)    not null                   comment '被消耗产品物料名称',
+  specification                  varchar(500)    default null               comment '规格型号',
+  unit_of_measure                varchar(64)     not null                   comment '单位',
+  quantity_consumed              double(12,2)                               comment '消耗数量',  
+  consume_date                   datetime                                   comment '消耗时间',
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time 	                 datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '物料消耗记录表';
+
+
+
+-- ----------------------------
+-- 4、上下工记录表
+-- ----------------------------
+drop table if exists pro_workrecord;
+create table pro_workrecord (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  user_id                        bigint(20)      not null                   comment '用户ID',
+  user_name                      varchar(64)                                comment '用户名',
+  nick_name                      bigint(125)                                comment '名称',  
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(125)                               comment '工作站名称',
+  operation_flag                 char(1)         not null                   comment '操作类型',  
+  operation_time                 datetime                                   comment '操作时间',  
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time                    datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '上下工记录表';
+
+
+
+-- ----------------------------
+-- 4、用户工作站绑定关系
+-- ----------------------------
+drop table if exists pro_user_workstation;
+create table pro_user_workstation (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  user_id                        bigint(20)      not null                   comment '用户ID',
+  user_name                      varchar(64)                                comment '用户名',
+  nick_name                      bigint(125)                                comment '名称',  
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(125)                               comment '工作站名称', 
+  operation_time                 datetime                                   comment '操作时间',  
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time                    datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '用户工作站绑定关系';
+
+
+-- ----------------------------
+-- 4、安灯呼叫记录
+-- ----------------------------
+drop table if exists pro_andon_record;
+create table pro_andon_record (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(125)                               comment '工作站名称', 
+  user_id                        bigint(20)      not null                   comment '用户ID',
+  user_name                      varchar(64)                                comment '用户名',
+  nick_name                      varchar(125)                               comment '名称',  
+  workorder_id                   bigint(20)                                 comment '生产工单ID',
+  workorder_code                 varchar(64)                                comment '生产工单编号',
+  workorder_name                 varchar(255)                               comment '生产工单名称', 
+  process_id                     bigint(20)                                 comment '工序ID',
+  process_code                   varchar(64)                                comment '工序编号',
+  process_name                   varchar(255)                               comment '工序名称',
+  andon_reason                   varchar(500)    not null                   comment '呼叫原因',
+  andon_level                    varchar(64)     default 'LEVEL3'           comment '级别',
+  operation_time                 datetime                                   comment '操作时间',
+  status                         varchar(64)     default 'ACTIVE'           comment '激活中',  
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time                    datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '安灯呼叫记录';
+
+-- ----------------------------
+-- 4、停机记录
+-- ----------------------------
+drop table if exists pro_shutdown_record;
+create table pro_shutdown_record (
+  record_id                      bigint(20)      not null auto_increment    comment '记录ID',
+  workstation_id                 bigint(20)      not null                   comment '工作站ID',
+  workstation_code               varchar(64)                                comment '工作站编号',
+  workstation_name               varchar(125)                               comment '工作站名称', 
+  machinery_id                   bigint(20)                                 comment '设备ID',
+  machinery_code                 varchar(64)                                comment '设备编号',
+  machinery_name                 varchar(255)                               comment '设备名称', 
+  shutdown_reason                varchar(500)    not null                   comment '停机原因',
+  operation_time                 datetime                                   comment '操作时间', 
+  remark                         varchar(500)    default ''                 comment '备注',
+  attr1                          varchar(64)     default null               comment '预留字段1',
+  attr2                          varchar(255)    default null               comment '预留字段2',
+  attr3                          int(11)         default 0                  comment '预留字段3',
+  attr4                          int(11)         default 0                  comment '预留字段4',
+  create_by                      varchar(64)     default ''                 comment '创建者',
+  create_time                    datetime                                   comment '创建时间',
+  update_by                      varchar(64)     default ''                 comment '更新者',
+  update_time                    datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '停机记录记录';
+
+

+ 432 - 0
doc/设计文档/数据库设计/mes-qc.sql

@@ -0,0 +1,432 @@
+-- ----------------------------
+-- 1、检测项表
+-- ----------------------------
+drop table if exists qc_index;
+create table qc_index (
+  index_id                    bigint(20)      not null auto_increment    comment '检测项ID',
+  index_code                  varchar(64)     not null                   comment '检测项编码',
+  index_name                  varchar(255)    not null                   comment '检测项名称',
+  index_type                  varchar(64)     not null                   comment '检测项类型',
+  qc_tool                     varchar(255)                               comment '检测工具',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (index_id)
+) engine=innodb auto_increment=200 comment = '检测项表';
+
+
+-- ----------------------------
+-- 2、检测模板表
+-- ----------------------------
+drop table if exists qc_template;
+create table qc_template (
+  template_id                 bigint(20)      not null auto_increment    comment '检测模板ID',
+  template_code               varchar(64)     not null                   comment '检测模板编号',
+  template_name               varchar(255)    not null                   comment '检测模板名称',
+  qc_types                    varchar(255)    not null                   comment '检测种类',
+  enable_flag                 char(1)         default 'Y'                comment '是否启用',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (template_id)
+) engine=innodb auto_increment=200 comment = '检测模板表';
+
+
+-- ----------------------------
+-- 3、检测模板-检测项表
+-- ----------------------------
+drop table if exists qc_template_index;
+create table qc_template_index (
+  record_id                   bigint(20)      not null auto_increment    comment '记录ID',
+  template_id                 bigint(20)      not null                   comment '检测模板ID',
+  index_id                    bigint(20)      not null                   comment '检测项ID',
+  index_code                  varchar(64)     not null                   comment '检测项编码',
+  index_name                  varchar(255)    not null                   comment '检测项名称',
+  index_type                  varchar(64)     not null                   comment '检测项类型',
+  qc_tool                     varchar(255)                               comment '检测工具',
+  check_method                varchar(500)                               comment '检测要求',
+  stander_val                 double(12,4)                               comment '标准值',
+  unit_of_measure             varchar(64)                                comment '单位',
+  threshold_max               double(12,4)                               comment '误差上限',
+  threshold_min               double(12,4)                               comment '误差下限',
+  doc_url                     varchar(255)                               comment '说明图',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '检测模板-检测项表';
+
+
+
+-- ----------------------------
+-- 4、检测模板-产品表
+-- ----------------------------
+drop table if exists qc_template_product;
+create table qc_template_product (
+  record_id                   bigint(20)      not null auto_increment    comment '记录ID',
+  template_id                 bigint(20)      not null                   comment '检测模板ID',
+  item_id                     bigint(20)      not null                   comment '产品物料ID',
+  item_code                   varchar(64)                                comment '产品物料编码',
+  item_name                   varchar(255)                               comment '产品物料名称',
+  specification               varchar(500)                               comment '规格型号',
+  unit_of_measure             varchar(64)                                comment '单位',
+  quantity_check              int(11)         default 1                  comment '最低检测数',
+  quantity_unqualified        int(11)         default 0                  comment '最大不合格数',
+  cr_rate                     double(12,2)    default 0                  comment '最大致命缺陷率',
+  maj_rate                    double(12,2)    default 0                  comment '最大严重缺陷率',
+  min_rate                    double(12,2)    default 100                comment '最大轻微缺陷率',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '检测模板-产品表';
+
+
+-- ----------------------------
+-- 5、常用缺陷表
+-- ----------------------------
+drop table if exists qc_defect;
+create table qc_defect (
+  defect_id                   bigint(20)      not null auto_increment    comment '缺陷ID',
+  defect_code                 varchar(64)     not null                   comment '缺陷编码',
+  defect_name                 varchar(500)    not null                   comment '缺陷描述',
+  index_type                  varchar(64)     not null                   comment '检测项类型',
+  defect_level                varchar(64)     not null                   comment '缺陷等级',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (defect_id)
+) engine=innodb auto_increment=200 comment = '常见缺陷表';
+
+
+
+-- ----------------------------
+-- 6、来料检验单表
+-- ----------------------------
+drop table if exists qc_iqc;
+create table qc_iqc (
+  iqc_id                      bigint(20)      not null auto_increment    comment '来料检验单ID',
+  iqc_code                    varchar(64)     not null                   comment '来料检验单编号',
+  iqc_name                    varchar(500)    not null                   comment '来料检验单名称',
+  template_id                 bigint(20)      not null                   comment '检验模板ID',
+  source_doc_id               bigint(20)                                 comment '来源单据ID',
+  source_doc_type             varchar(64)                                comment '来源单据类型',
+  source_doc_code             varchar(64)                                comment '来源单据编号',
+  source_line_id              bigint(20)                                 comment '来源单据行ID',
+  vendor_id                   bigint(20)      not null                   comment '供应商ID',
+  vendor_code                 varchar(64)     not null                   comment '供应商编码',
+  vendor_name                 varchar(255)    not null                   comment '供应商名称',
+  vendor_nick                 varchar(255)                               comment '供应商简称',
+  vendor_batch                varchar(64)                                comment '供应商批次号',
+  item_id                     bigint(20)      not null                   comment '产品物料ID',
+  item_code                   varchar(64)                                comment '产品物料编码',
+  item_name                   varchar(255)                               comment '产品物料名称',
+  specification               varchar(500)                               comment '规格型号',
+  unit_of_measure             varchar(64)                                comment '单位',
+  quantity_min_check          int(11)         default 1                  comment '最低检测数',
+  quantity_max_unqualified    int(11)         default 0                  comment '最大不合格数',
+  quantity_recived            double(12,2)    not null                   comment '本次接收数量',
+  quantity_check              int(11)         not null                   comment '本次检测数量',
+  quantity_unqualified        int(11)         default 0                  comment '不合格数',
+  cr_rate                     double(12,2)    default 0                  comment '致命缺陷率',
+  maj_rate                    double(12,2)    default 0                  comment '严重缺陷率',
+  min_rate                    double(12,2)    default 0                  comment '轻微缺陷率',
+  cr_quantity                 int(11)         default 0                  comment '致命缺陷数量',
+  maj_quantity                int(11)         default 0                  comment '严重缺陷数量',
+  min_quantity                int(11)         default 0                  comment '轻微缺陷数量',
+  check_result                varchar(64)                                comment '检测结果',
+  recive_date                 datetime                                   comment '来料日期',
+  inspect_date                datetime                                   comment '检测日期',
+  inspector                   varchar(64)                                comment '检测人员',
+  status                      varchar(64)                                comment '单据状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (iqc_id)
+) engine=innodb auto_increment=200 comment = '来料检验单表';
+
+
+
+
+-- ----------------------------
+-- 7、来料检验单行表
+-- ----------------------------
+drop table if exists qc_iqc_line;
+create table qc_iqc_line (
+  line_id                     bigint(20)      not null auto_increment    comment '记录ID',
+  iqc_id                      bigint(20)      not null                   comment '检验单ID',
+  index_id                    bigint(20)      not null                   comment '检测项ID',
+  index_code                  varchar(64)                                comment '检测项编码',
+  index_name                  varchar(255)                               comment '检测项名称',
+  index_type                  varchar(64)                                comment '检测项类型',
+  qc_tool                     varchar(255)                               comment '检测工具',
+  check_method                varchar(500)                               comment '检测要求',
+  stander_val                 double(12,4)                               comment '标准值',
+  unit_of_measure             varchar(64)                                comment '单位',
+  threshold_max               double(12,4)                               comment '误差上限',
+  threshold_min               double(12,4)                               comment '误差下限',
+  cr_quantity                 int(11)         default 0                  comment '致命缺陷数量',
+  maj_quantity                int(11)         default 0                  comment '严重缺陷数量',
+  min_quantity                int(11)         default 0                  comment '轻微缺陷数量',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '来料检验单行表';
+
+
+
+
+-- ----------------------------
+-- 8、检验单缺陷记录表
+-- ----------------------------
+drop table if exists qc_defect_record;
+create table qc_defect_record (
+  record_id                   bigint(20)      not null auto_increment    comment '缺陷ID',
+  qc_type                     varchar(64)     not null                   comment '检验单类型',
+  qc_id                       bigint(20)      not null                   comment '检验单ID',
+  line_id                     bigint(20)      not null                   comment '检验单行ID',
+  defect_name                 varchar(500)    not null                   comment '缺陷描述',  
+  defect_level                varchar(64)     not null                   comment '缺陷等级',
+  defect_quantity             int(11)         default 1                  comment '缺陷数量',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '检验单缺陷记录表';
+
+
+
+
+
+-- ----------------------------
+-- 9、过程检验单表
+-- ----------------------------
+drop table if exists qc_ipqc;
+create table qc_ipqc (
+  ipqc_id                     bigint(20)      not null auto_increment    comment '检验单ID',
+  ipqc_code                   varchar(64)     not null                   comment '检验单编号',
+  ipqc_name                   varchar(255)                               comment '检验单名称',
+  ipqc_type                   varchar(64)     not null                   comment '检验类型',
+  template_id                 bigint(20)      not null                   comment '检验模板ID',
+  source_doc_id               bigint(20)                                 comment '来源单据ID',
+  source_doc_type             varchar(64)                                comment '来源单据类型',
+  source_doc_code             varchar(64)                                comment '来源单据编号',
+  source_line_id              bigint(20)                                 comment '来源单据行ID',
+  workorder_id                bigint(20)      not null                   comment '工单ID',
+  workorder_code              varchar(64)                                comment '工单编码',
+  workorder_name              varchar(255)                               comment '工单名称',
+  task_id                     bigint(20)                                 comment '任务ID',
+  task_code                   varchar(64)                                comment '任务编号',
+  task_name                   varchar(255)                               comment '任务名称',
+  workstation_id              bigint(20)      not null                   comment '工作站ID',
+  workstation_code            varchar(64)                                comment '工作站编号',
+  workstation_name            varchar(255)                               comment '工作站名称',
+  process_id                  bigint(20)                                 comment '工序ID',
+  process_code                varchar(64)                                comment '工序编码',
+  process_name                varchar(255)                               comment '工序名称',
+  
+  item_id                     bigint(20)      not null                   comment '产品物料ID',
+  item_code                   varchar(64)                                comment '产品物料编码',
+  item_name                   varchar(255)                               comment '产品物料名称',
+  specification               varchar(500)                               comment '规格型号',
+  unit_of_measure             varchar(64)                                comment '单位',
+  
+  quantity_check              double(12,4)    default 1                  comment '检测数量',
+  quantity_unqualified        double(12,4)    default 0                  comment '不合格数',
+  quantity_qualified          double(12,4)                               comment '合格品数量',
+
+  cr_rate                     double(12,2)    default 0                  comment '致命缺陷率',
+  maj_rate                    double(12,2)    default 0                  comment '严重缺陷率',
+  min_rate                    double(12,2)    default 0                  comment '轻微缺陷率',
+  cr_quantity                 double(12,4)    default 0                  comment '致命缺陷数量',
+  maj_quantity                double(12,4)    default 0                  comment '严重缺陷数量',
+  min_quantity                double(12,4)    default 0                  comment '轻微缺陷数量',
+  check_result                varchar(64)                                comment '检测结果',
+  
+  inspect_date                datetime                                   comment '检测日期',
+  inspector                   varchar(64)                                comment '检测人员',
+  status                      varchar(64)                                comment '单据状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (ipqc_id)
+) engine=innodb auto_increment=200 comment = '过程检验单表';
+
+
+-- ----------------------------
+-- 10、过程检验单行表
+-- ----------------------------
+drop table if exists qc_ipqc_line;
+create table qc_ipqc_line (
+  line_id                     bigint(20)      not null auto_increment    comment '记录ID',
+  ipqc_id                     bigint(20)      not null                   comment '检验单ID',
+  index_id                    bigint(20)      not null                   comment '检测项ID',
+  index_code                  varchar(64)                                comment '检测项编码',
+  index_name                  varchar(255)                               comment '检测项名称',
+  index_type                  varchar(64)                                comment '检测项类型',
+  qc_tool                     varchar(255)                               comment '检测工具',
+  check_method                varchar(500)                               comment '检测要求',
+  stander_val                 double(12,4)                               comment '标准值',
+  unit_of_measure             varchar(64)                                comment '单位',
+  threshold_max               double(12,4)                               comment '误差上限',
+  threshold_min               double(12,4)                               comment '误差下限',
+  cr_quantity                 double(12,4)    default 0                  comment '致命缺陷数量',
+  maj_quantity                double(12,4)    default 0                  comment '严重缺陷数量',
+  min_quantity                double(12,4)    default 0                  comment '轻微缺陷数量',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '过程检验单行表';
+
+
+-- ----------------------------
+-- 12、出货检验单表
+-- ----------------------------
+drop table if exists qc_oqc;
+create table qc_oqc (
+  oqc_id                      bigint(20)      not null auto_increment    comment '出货检验单ID',
+  oqc_code                    varchar(64)     not null                   comment '出货检验单编号',
+  oqc_name                    varchar(500)                               comment '出货检验单名称',
+  template_id                 bigint(20)      not null                   comment '检验模板ID',
+  source_doc_id               bigint(20)                                 comment '来源单据ID',
+  source_doc_type             varchar(64)                                comment '来源单据类型',
+  source_doc_code             varchar(64)                                comment '来源单据编号',
+  source_line_id              bigint(20)                                 comment '来源单据行ID',
+  client_id                   bigint(20)      not null                   comment '客户ID',
+  client_code                 varchar(64)     not null                   comment '客户编码',
+  client_name                 varchar(255)    not null                   comment '客户名称',  
+  batch_code                  varchar(64)                                comment '批次号',
+  item_id                     bigint(20)      not null                   comment '产品物料ID',
+  item_code                   varchar(64)                                comment '产品物料编码',
+  item_name                   varchar(255)                               comment '产品物料名称',
+  specification               varchar(500)                               comment '规格型号',
+  unit_of_measure             varchar(64)                                comment '单位',
+  
+  quantity_min_check          double(12,4)    default 1                  comment '最低检测数',
+  quantity_max_unqualified    double(12,4)    default 0                  comment '最大不合格数',
+  quantity_out                double(12,4)    not null                   comment '发货数量',
+  quantity_check              double(12,4)    not null                   comment '本次检测数量',
+  quantity_unqualified        double(12,4)    default 0                  comment '不合格数',
+  quantity_quanlified         double(12,4)    default 0                  comment '合格数量',
+  cr_rate                     double(12,4)    default 0                  comment '致命缺陷率',
+  maj_rate                    double(12,4)    default 0                  comment '严重缺陷率',
+  min_rate                    double(12,4)    default 0                  comment '轻微缺陷率',
+  cr_quantity                 double(12,4)    default 0                  comment '致命缺陷数量',
+  maj_quantity                double(12,4)    default 0                  comment '严重缺陷数量',
+  min_quantity                double(12,4)    default 0                  comment '轻微缺陷数量',
+  check_result                varchar(64)                                comment '检测结果',
+  
+  out_date                    datetime                                   comment '出货日期',
+  inspect_date                datetime                                   comment '检测日期',
+  inspector                   varchar(64)                                comment '检测人员',
+  status                      varchar(64)                                comment '单据状态',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (oqc_id)
+) engine=innodb auto_increment=200 comment = '出货检验单表';
+
+
+-- ----------------------------
+-- 13、出货检验单行表
+-- ----------------------------
+drop table if exists qc_oqc_line;
+create table qc_oqc_line (
+  line_id                     bigint(20)      not null auto_increment    comment '记录ID',
+  oqc_id                      bigint(20)      not null                   comment '检验单ID',
+  index_id                    bigint(20)      not null                   comment '检测项ID',
+  index_code                  varchar(64)                                comment '检测项编码',
+  index_name                  varchar(255)                               comment '检测项名称',
+  index_type                  varchar(64)                                comment '检测项类型',
+  qc_tool                     varchar(255)                               comment '检测工具',
+  check_method                varchar(500)                               comment '检测要求',
+  stander_val                 double(12,4)                               comment '标准值',
+  unit_of_measure             varchar(64)                                comment '单位',
+  threshold_max               double(12,4)                               comment '误差上限',
+  threshold_min               double(12,4)                               comment '误差下限',
+  cr_quantity                 double(12,4)    default 0                  comment '致命缺陷数量',
+  maj_quantity                double(12,4)    default 0                  comment '严重缺陷数量',
+  min_quantity                double(12,4)    default 0                  comment '轻微缺陷数量',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '出货检验单行表';
+
+
+
+

+ 56 - 0
doc/设计文档/数据库设计/mes-tm.sql

@@ -0,0 +1,56 @@
+-- ----------------------------
+-- 1、工装夹具类型表
+-- ----------------------------
+drop table if exists tm_tool_type;
+create table tm_tool_type (
+  tool_type_id                bigint(20)      not null auto_increment    comment '工装夹具类型ID',
+  tool_type_code              varchar(64)     not null                   comment '类型编码',
+  tool_type_name              varchar(255)    not null                   comment '类型名称',
+  code_flag                   char(1)         default 'Y' not null       comment '是否编码管理',
+  mainten_type                varchar(20)                                comment '保养维护类型',
+  mainten_period              int(11)                                    comment '保养周期',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (tool_type_id)
+) engine=innodb auto_increment=200 comment = '工装夹具类型表';
+
+
+
+-- ----------------------------
+-- 2、工装夹具清单表
+-- ----------------------------
+drop table if exists tm_tool;
+create table tm_tool (
+  tool_id                     bigint(20)      not null auto_increment    comment '工装夹具ID',
+  tool_code                   varchar(64)                                comment '工装夹具编码',
+  tool_name                   varchar(255)    not null                   comment '工装夹具名称',
+  brand                       varchar(255)                               comment '品牌',
+  spec                        varchar(255)                               comment '型号',
+  tool_type_id                bigint(11)      not null                   comment '工装夹具类型ID',  
+  tool_type_code              varchar(64)                                comment '工装夹具类型编码',
+  tool_type_name              varchar(255)                               comment '工装夹具类型名称',
+  code_flag                   char(1)         default 'Y' not null       comment '是否单独编码管理',
+  quantity                    int(11)         default 1 not null         comment '数量',
+  quantity_avail              int(11)         default 1                  comment '可用数量',     
+  mainten_type                varchar(20)                                comment '保养维护类型',
+  next_mainten_period         int(11)                                    comment '下一次保养周期',
+  next_mainten_date           datetime                                   comment '下一次保养日期',
+  status                      varchar(64)     default 'STORE'            comment '状态[MES_TOOL_STATUS]',
+  remark                      varchar(500)    default ''                 comment '备注',
+  attr1                       varchar(64)     default null               comment '预留字段1',
+  attr2                       varchar(255)    default null               comment '预留字段2',
+  attr3                       int(11)         default 0                  comment '预留字段3',
+  attr4                       int(11)         default 0                  comment '预留字段4',
+  create_by                   varchar(64)     default ''                 comment '创建者',
+  create_time 	              datetime                                   comment '创建时间',
+  update_by                   varchar(64)     default ''                 comment '更新者',
+  update_time                 datetime                                   comment '更新时间',
+  primary key (tool_id)
+) engine=innodb auto_increment=200 comment = '工装夹具清单表';

+ 1390 - 0
doc/设计文档/数据库设计/mes-wm.sql

@@ -0,0 +1,1390 @@
+-- ----------------------------
+-- 1、仓库表
+-- ----------------------------
+drop table if exists wm_warehouse;
+create table wm_warehouse (
+  warehouse_id           bigint(20)      not null auto_increment    comment '仓库ID',
+  warehouse_code         varchar(64)     not null UNIQUE            comment '仓库编码',
+  warehouse_name         varchar(255)    not null                   comment '仓库名称',
+  location               varchar(500)                               comment '位置',
+  area                   double(12,2)                               comment '面积',
+  charge                 varchar(64)                                comment '负责人',
+  enable_flag            char(1)         default 'N'                comment '是否启用',
+  remark                 varchar(500)    default ''                 comment '备注',
+  attr1                  varchar(64)     default null               comment '预留字段1',
+  attr2                  varchar(255)     default null              comment '预留字段2',
+  attr3                  int(11)         default 0                  comment '预留字段3',
+  attr4                  int(11)         default 0                  comment '预留字段4',
+  create_by              varchar(64)     default ''                 comment '创建者',
+  create_time 	         datetime                                   comment '创建时间',
+  update_by              varchar(64)     default ''                 comment '更新者',
+  update_time            datetime                                   comment '更新时间',
+  primary key (warehouse_id)
+) engine=innodb auto_increment=200 comment = '仓库表';
+
+
+
+-- ----------------------------
+-- 2、库区表
+-- ----------------------------
+drop table if exists wm_storage_location;
+create table wm_storage_location (
+  location_id           bigint(20)      not null auto_increment     comment '库区ID',
+  location_code         varchar(64)     not null UNIQUE             comment '库区编码',
+  location_name         varchar(255)    not null                    comment '库区名称',
+  warehouse_id          bigint(20)      not null                    comment '仓库ID',
+  area                  double(12,2)                                comment '面积',
+  area_flag             char(1)         default 'Y'                 comment '是否开启库位管理',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (location_id)
+) engine=innodb auto_increment=200 comment = '库区表';
+
+
+-- ----------------------------
+-- 3、库位表
+-- ----------------------------
+drop table if exists wm_storage_area;
+create table wm_storage_area (
+  area_id               bigint(20)      not null auto_increment     comment '库位ID',
+  area_code             varchar(64)     not null UNIQUE             comment '库位编码',
+  area_name             varchar(255)    not null                    comment '库位名称',
+  location_id           bigint(20)      not null                    comment '库区ID',
+  area                  double(8,2)                                 comment '面积',
+  max_loa               double(8,2)                                 comment '最大载重量',
+  position_x            int(11)                                     comment '库位位置X',
+  position_y            int(11)                                     comment '库位位置y',
+  position_z            int(11)                                     comment '库位位置z',
+  enable_flag           char(1)                                     comment '是否启用',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (area_id)
+) engine=innodb auto_increment=200 comment = '库位表';
+
+
+
+
+-- ----------------------------
+-- 4、库存事务表
+-- ----------------------------
+drop table if exists wm_transaction;
+create table wm_transaction (
+  transaction_id        bigint(20)      not null auto_increment     comment '事务ID',
+  transaction_type      varchar(64)     not null                    comment '事务类型',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',   
+  batch_code            varchar(255)                                comment '入库批次号',
+  warehouse_id          bigint(20)      not null                    comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  pakcage_id            bigint(20)                                  comment '容器ID',
+  package_code          varchar(64)                                 comment '容器编号',
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编号',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(64)                                 comment '供应商简称',
+  source_doc_type       varchar(64)                                 comment '单据类型',
+  source_doc_id         bigint(20)                                  comment '单据ID',
+  source_doc_code       varchar(64)                                 comment '单据编号',
+  source_doc_line_id    bigint(20)                                  comment '单据行ID',
+  material_stock_id     bigint(20)      not null                    comment '库存记录ID',
+  transaction_flag      int(1)          default 1                   comment '库存方向',
+  transaction_quantity  double(12,2)                                comment '事务数量',
+  transaction_date      datetime                                    comment '事务日期',
+  related_transaction_id bigint(20)                                 comment '关联的事务ID', 
+  erp_date              datetime                                    comment 'ERP账期',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编号',
+  recpt_date            datetime                                    comment '接收日期',
+  expire_date           datetime                                    comment '库存有效期',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (transaction_id)
+) engine=innodb auto_increment=200 comment = '库存事务表';
+
+
+
+-- ----------------------------
+-- 5、库存记录表
+-- ----------------------------
+drop table if exists wm_material_stock;
+create table wm_material_stock (
+  material_stock_id     bigint(20)      not null auto_increment     comment '事务ID',
+  item_type_id          bigint(20)                                  comment '物料类型ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',   
+  batch_code            varchar(255)                                comment '批次号',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编号',
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编号',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(64)                                 comment '供应商简称',
+  client_id             bigint(20)                                  comment '客户ID',
+  client_code           varchar(64)                                 comment '客户编码',
+  client_name           varchar(255)                                comment '客户名称',
+  client_nick           varchar(255)                                comment '客户简称',
+  warehouse_id          bigint(20)      not null                    comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  package_id            bigint(20)                                  comment '容器ID',
+  package_code          varchar(64)                                 comment '容器编号',
+  quantity_onhand       double(12,2)                                comment '在库数量',
+  quantity_reserved     double(12,2)                                comment '保留数量',
+  recpt_date            datetime                                    comment '入库时间',
+  expire_date           datetime                                    comment '库存有效期',
+  frozen_flag           char(1)         default 'N' not null        comment '是否冻结',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (material_stock_id)
+) engine=innodb auto_increment=200 comment = '库存记录表';
+
+
+
+-- ----------------------------
+-- 6、物料入库单表
+-- ----------------------------
+drop table if exists wm_item_recpt;
+create table wm_item_recpt (
+  recpt_id              bigint(20)      not null auto_increment     comment '入库单ID',
+  recpt_code            varchar(64)     not null                    comment '入库单编号',
+  recpt_name            varchar(255)    not null                    comment '入库单名称',
+  iqc_id                bigint(20)                                  comment '来料检验单ID',
+  iqc_code              varchar(64)                                 comment '来料检验单编号',  
+  po_code               varchar(64)                                 comment '采购订单编号',  
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编码',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(255)                                comment '供应商简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  recpt_date            datetime                                    comment '入库日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (recpt_id)
+) engine=innodb auto_increment=200 comment = '物料入库单表';
+
+
+-- ----------------------------
+-- 7、物料入库单行表
+-- ----------------------------
+drop table if exists wm_item_recpt_line;
+create table wm_item_recpt_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  recpt_id              bigint(20)                                  comment '入库单ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_recived      double(12,2)    not null                    comment '入库数量',
+  batch_code            varchar(255)                                comment '入库批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  expire_date           datetime                                    comment '有效期', 
+  iqc_check             char(1)                                     comment '是否来料检验',
+  iqc_id                bigint(20)                                  comment '来料检验单ID',
+  iqc_code              varchar(64)                                 comment '来料检验单编号',                 
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '物料入库单行表';
+
+
+
+-- ----------------------------
+-- 8、供应商退货表
+-- ----------------------------
+drop table if exists wm_rt_vendor;
+create table wm_rt_vendor (
+  rt_id              bigint(20)      not null auto_increment        comment '退货单ID',
+  rt_code            varchar(64)     not null                       comment '退货单编号',
+  rt_name            varchar(255)    not null                       comment '退货单名称',  
+  po_code               varchar(64)                                 comment '采购订单编号',  
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编码',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(255)                                comment '供应商简称',
+  batch_code            varchar(255)                                comment '批次号',
+  rt_date               datetime                                    comment '退货日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (rt_id)
+) engine=innodb auto_increment=200 comment = '供应商退货表';
+
+
+-- ----------------------------
+-- 9、供应商退货行表
+-- ----------------------------
+drop table if exists wm_rt_vendor_line;
+create table wm_rt_vendor_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  rt_id                 bigint(20)                                  comment '退货单ID',
+  material_stock_id     bigint(20)                                  comment '库存记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_rted         double(12,2)    not null                    comment '退货数量',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '供应商退货行表';
+
+
+
+-- ----------------------------
+-- 10、生产领料单头表
+-- ----------------------------
+drop table if exists wm_issue_header;
+create table wm_issue_header (
+  issue_id              bigint(20)      not null auto_increment     comment '领料单ID',
+  issue_code            varchar(64)     not null                    comment '领料单编号',
+  issue_name            varchar(255)    not null                    comment '领料单名称',
+  workstation_id        bigint(20)                                  comment '工作站ID',
+  workstation_code      varchar(64)                                 comment '工作站编号',    
+  workstation_name      varchar(255)                                comment '工作站名称',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码',
+  task_id               bigint(20)                                  comment '生产任务ID',
+  task_code             varchar(64)                                 comment '生产任务编码',
+  client_id             bigint(20)                                  comment '客户ID',
+  client_code           varchar(64)                                 comment '客户编码',
+  client_name           varchar(255)                                comment '客户名称',
+  client_nick           varchar(255)                                comment '客户简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  issue_date            datetime                                    comment '领料日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (issue_id)
+) engine=innodb auto_increment=200 comment = '生产领料单头表';
+
+
+
+-- ----------------------------
+-- 11、生产领料单行表
+-- ----------------------------
+drop table if exists wm_issue_line;
+create table wm_issue_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  issue_id              bigint(20)                                  comment '领料单ID',
+  material_stock_id     bigint(20)                                  comment '库存ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_issued       double(12,2)    not null                    comment '领料数量',
+  batch_code            varchar(255)                                comment '领料批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '生产领料单行表';
+
+
+
+
+
+-- ----------------------------
+-- 10、生产退料单头表
+-- ----------------------------
+drop table if exists wm_rt_issue;
+create table wm_rt_issue (
+  rt_id                 bigint(20)      not null auto_increment     comment '退料单ID',
+  rt_code               varchar(64)     not null                    comment '退料单编号',
+  rt_name               varchar(255)                                comment '退料单名称', 
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码', 
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  rt_date               datetime                                    comment '退料日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (rt_id)
+) engine=innodb auto_increment=200 comment = '生产退料单头表';
+
+
+
+-- ----------------------------
+-- 11、生产领料单行表
+-- ----------------------------
+drop table if exists wm_rt_issue_line;
+create table wm_rt_issue_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  rt_id              bigint(20)                                     comment '退料单ID',
+  material_stock_id     bigint(20)                                  comment '库存ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_rt           double(12,2)    not null                    comment '退料数量',
+  batch_code            varchar(255)                                comment '领料批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '生产退料单行表';
+
+
+
+
+-- ----------------------------
+-- 10、物料消耗记录表
+-- ----------------------------
+drop table if exists wm_item_consume;
+create table wm_item_consume (
+  record_id             bigint(20)      not null auto_increment     comment '记录ID',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码', 
+  workorder_name        varchar(255)                                comment '生产工单名称',
+  task_id               bigint(20)                                  comment '生产任务ID',
+  task_code             varchar(64)                                 comment '生产任务编号',
+  task_name             varchar(255)                                comment '生产任务名称',
+  workstation_id        bigint(20)                                  comment '工作站ID',
+  workstation_code      varchar(64)                                 comment '工作站编号',    
+  workstation_name      varchar(255)                                comment '工作站名称',
+  process_id            bigint(20)                                  comment '工序ID',
+  process_code          varchar(64)                                 comment '工序编号',
+  process_name          varchar(255)                                comment '工序名称',
+  consume_date          datetime                                    comment '消耗日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '物料消耗记录表';
+
+
+-- ----------------------------
+-- 11、物料消耗记录行表
+-- ----------------------------
+drop table if exists wm_item_consume_line;
+create table wm_item_consume_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  record_id             bigint(20)                                  comment '消耗记录ID',
+  material_stock_id     bigint(20)                                  comment '库存ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_consume      double(12,2)    not null                    comment '消耗数量',
+  batch_code            varchar(255)                                comment '领料批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '物料消耗记录行表';
+
+
+
+-- ----------------------------
+-- 8、产品产出记录表(入线边库)
+-- ----------------------------
+drop table if exists wm_product_produce;
+create table wm_product_produce (
+  record_id             bigint(20)      not null auto_increment     comment '入库单ID',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码', 
+  workorder_name        varchar(255)                                comment '生产工单名称',
+  task_id               bigint(20)                                  comment '生产任务ID',
+  task_code             varchar(64)                                 comment '生产任务编号',
+  task_name             varchar(255)                                comment '生产任务名称',
+  workstation_id        bigint(20)                                  comment '工作站ID',
+  workstation_code      varchar(64)                                 comment '工作站编号',    
+  workstation_name      varchar(255)                                comment '工作站名称',
+  process_id            bigint(20)                                  comment '工序ID',
+  process_code          varchar(64)                                 comment '工序编号',
+  process_name          varchar(255)                                comment '工序名称',
+  produce_date          datetime                                    comment '生产日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (record_id)
+) engine=innodb auto_increment=200 comment = '产品产出记录表';
+
+
+
+
+-- ----------------------------
+-- 11、产品产出记录表行表
+-- ----------------------------
+drop table if exists wm_product_produce_line;
+create table wm_product_produce_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  record_id             bigint(20)                                  comment '产出记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_produce      double(12,2)    not null                    comment '产出数量',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '产品产出记录表行表';
+
+
+
+
+-- ----------------------------
+-- 12、产品入库录表(线边库入正式库)
+-- ----------------------------
+drop table if exists wm_product_recpt;
+create table wm_product_recpt (
+  recpt_id              bigint(20)      not null auto_increment     comment '入库单ID',
+  recpt_code            varchar(64)     not null                    comment '入库单编号',
+  recpt_name            varchar(255)                                comment '入库单名称',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码', 
+  workorder_name        varchar(255)                                comment '生产工单名称', 
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  recpt_date            datetime                                    comment '入库日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (recpt_id)
+) engine=innodb auto_increment=200 comment = '产品入库录表';
+
+
+
+-- ----------------------------
+-- 13、产品入库记录表行表
+-- ----------------------------
+drop table if exists wm_product_recpt_line;
+create table wm_product_recpt_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  recpt_id              bigint(20)                                  comment '入库记录ID',
+  material_stock_id     bigint(20)                                  comment '库存记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_recived      double(12,2)    not null                    comment '入库数量',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码', 
+  workorder_name        varchar(255)                                comment '生产工单名称',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  expire_date           datetime                                    comment '有效期', 
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '产品入库记录表行表';
+
+
+
+
+-- ----------------------------
+-- 14、产品销售出库单表
+-- ----------------------------
+drop table if exists wm_product_salse;
+create table wm_product_salse (
+  salse_id              bigint(20)      not null auto_increment     comment '出库单ID',
+  salse_code            varchar(64)     not null                    comment '出库单编号',
+  salse_name            varchar(255)    not null                    comment '出库单名称',
+  oqc_id                bigint(20)                                  comment '出货检验单ID',
+  oqc_code              varchar(64)                                 comment '出货检验单编号',  
+  so_code               varchar(64)                                 comment '销售订单编号',  
+  client_id             bigint(20)                                  comment '客户ID',
+  client_code           varchar(64)                                 comment '客户编码',
+  client_name           varchar(255)                                comment '客户名称',
+  client_nick           varchar(255)                                comment '客户简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  salse_date            datetime                                    comment '出库日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (salse_id)
+) engine=innodb auto_increment=200 comment = '销售出库单表';
+
+
+-- ----------------------------
+-- 15、产品销售出库行表
+-- ----------------------------
+drop table if exists wm_product_salse_line;
+create table wm_product_salse_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  salse_id              bigint(20)                                  comment '出库记录ID',
+  material_stock_id     bigint(20)                                  comment '库存记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_salse        double(12,2)    not null                    comment '出库数量',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  oqc_check             char(1)                                     comment '是否出货检验',
+  oqc_id                bigint(20)                                  comment '出货检验单ID',
+  oqc_code              varchar(64)                                 comment '出货检验单编号', 
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '产品销售出库行表';
+
+
+
+-- ----------------------------
+-- 16、产品销售退货单表
+-- ----------------------------
+drop table if exists wm_rt_salse;
+create table wm_rt_salse (
+  rt_id                 bigint(20)      not null auto_increment     comment '退货单ID',
+  rt_code               varchar(64)     not null                    comment '退货单编号',
+  rt_name               varchar(255)    not null                    comment '退货单名称',
+  so_code               varchar(64)                                 comment '销售订单编号',  
+  client_id             bigint(20)                                  comment '客户ID',
+  client_code           varchar(64)                                 comment '客户编码',
+  client_name           varchar(255)                                comment '客户名称',
+  client_nick           varchar(255)                                comment '客户简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  rt_date               datetime                                    comment '退货日期',
+  rt_reason             varchar(255)                                comment '退货原因',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (rt_id)
+) engine=innodb auto_increment=200 comment = '产品销售退货单表';
+
+
+
+-- ----------------------------
+-- 17、产品销售退货行表
+-- ----------------------------
+drop table if exists wm_rt_salse_line;
+create table wm_rt_salse_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  rt_id                 bigint(20)                                  comment '退货单ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_rted         double(12,2)    not null                    comment '退货数量',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  expire_date           datetime                                    comment '有效期',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '产品销售退货行表';
+
+
+
+-- ----------------------------
+-- 18、条码清单表
+-- ----------------------------
+drop table if exists wm_barcode;
+create table wm_barcode (
+  barcode_id            bigint(20)      not null auto_increment     comment '条码ID',
+  barcode_formart       varchar(64)     not null                    comment '条码格式',
+  barcode_type          varchar(64)     not null                    comment '条码类型',
+  barcode_content       varchar(255)    not null                    comment '条码内容',
+  bussiness_id          bigint(20)      not null                    comment '业务ID',
+  bussiness_code        varchar(64)                                 comment '业务编码',
+  bussiness_name        varchar(255)                                comment '业务名称',
+  barcode_url           varchar(255)                                comment '条码地址',
+  enable_flag           char(1)         default 'Y'                 comment '是否生效',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time 	        datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (barcode_id)
+) engine=innodb auto_increment=200 comment = '条码清单表';
+
+
+
+
+-- ----------------------------
+-- 18、条码配置
+-- ----------------------------
+drop table if exists wm_barcode_config;
+create table wm_barcode_config (
+  config_id             bigint(20)      not null auto_increment     comment '配置ID',
+  barcode_formart       varchar(64)     not null                    comment '条码格式',
+  barcode_type          varchar(64)     not null                    comment '条码类型',
+  content_formart       varchar(255)    not null                    comment '内容格式',
+  content_example       varchar(255)                                comment '内容样例',
+  auto_gen_flag         char(1)         default 'Y'                 comment '是否自动生成',
+  default_template      varchar(255)                                comment '默认的打印模板',
+  enable_flag           char(1)         default 'Y'                 comment '是否生效',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (config_id)
+) engine=innodb auto_increment=200 comment = '条码配置';
+
+
+
+-- ----------------------------
+-- 19、装箱单表
+-- ----------------------------
+drop table if exists wm_package;
+create table wm_package (
+  package_id            bigint(20)      not null auto_increment     comment '装箱单ID',
+  parent_id             bigint(20)      not null default 0          comment '父箱ID',
+  ancestors             varchar(255)    not null default 0          comment '所有父节点ID',
+  package_code          varchar(64)                                 comment '装箱单编号',
+  barcode_id            bigint(20)                                  comment '条码ID',
+  barcode_content       varchar(255)                                comment '条码内容',
+  barcode_url           varchar(255)                                comment '条码地址',
+  package_date          datetime        not null                    comment '装箱日期',
+  so_code               varchar(64)                                 comment '销售订单编号',
+  invoice_code          varchar(255)                                comment '发票编号',
+  client_id             bigint(20)                                  comment '客户ID',
+  client_code           varchar(64)                                 comment '客户编码',
+  client_name           varchar(255)                                comment '客户名称',
+  client_nick           varchar(255)                                comment '客户简称',
+  package_length        double(12,4)                                comment '箱长度',
+  package_width         double(12,4)                                comment '箱宽度',
+  package_height        double(12,4)                                comment '箱高度',
+  size_unit             varchar(64)                                 comment '尺寸单位',
+  net_weight            double(12,4)                                comment '净重',
+  cross_weight          double(12,4)                                comment '毛重',
+  weight_unit           varchar(64)                                 comment '重量单位',
+  inspector             varchar(64)                                 comment '检查员用户名',
+  inspector_name        varchar(64)                                 comment '检查员名称',
+  status                varchar(64)     default 'PREPARE'           comment '状态',
+  enable_flag           char(1)         default 'Y'                 comment '是否生效',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (package_id)
+) engine=innodb auto_increment=200 comment = '装箱单表';
+
+
+
+-- ----------------------------
+-- 20、装箱明细表
+-- ----------------------------
+drop table if exists wm_package_line;
+create table wm_package_line (
+  line_id               bigint(20)      not null auto_increment     comment '明细行ID',
+  package_id            bigint(20)      not null                    comment '装箱单ID',
+  material_stock_id     bigint(20)                                  comment '库存记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_package      double(12,2)    not null                    comment '装箱数量',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编号',
+  batch_code            varchar(255)                                comment '批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  expire_date           datetime                                    comment '有效期',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '装箱明细表';
+
+
+
+-- ----------------------------
+-- 21、转移单表
+-- ----------------------------
+drop table if exists wm_transfer;
+create table wm_transfer (
+  transfer_id           bigint(20)      not null auto_increment     comment '转移单ID',
+  transfer_code         varchar(64)     not null                    comment '转移单编号',
+  transfer_name         varchar(255)                                comment '转移单名称',  
+  transfer_type         varchar(64)     not null                    comment '转移单类型',
+  destination           varchar(255)                                comment '目的地',
+  carrier               varchar(64)                                 comment '承运商',
+  booking_note          varchar(64)                                 comment '托运单号',
+  receiver              varchar(64)                                 comment '收货人',
+  receiver_nick         varchar(64)                                 comment '收货人名称',
+  from_warehouse_id     bigint(20)                                  comment '移出仓库ID',
+  from_warehouse_code   varchar(64)                                 comment '移出仓库编码',
+  from_warehouse_name   varchar(255)                                comment '移出仓库名称',
+  to_warehouse_id       bigint(20)                                  comment '移入仓库ID',
+  to_warehouse_code     varchar(64)                                 comment '移入仓库编码',
+  to_warehouse_name     varchar(255)                                comment '移入仓库名称',
+  transfer_date         datetime                                    comment '转移日期',  
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (transfer_id)
+) engine=innodb auto_increment=200 comment = '转移单表';
+
+
+-- ----------------------------
+-- 22、转移单行表
+-- ----------------------------
+drop table if exists wm_transfer_line;
+create table wm_transfer_line (
+  line_id               bigint(20)      not null auto_increment     comment '明细行ID',
+  transfer_id           bigint(20)      not null                    comment '装箱单ID',
+  material_stock_id     bigint(20)      not null                    comment '库存记录ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_transfer     double(12,2)    not null                    comment '装箱数量',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编号',
+  batch_code            varchar(255)                                comment '批次号',
+  from_warehouse_id     bigint(20)                                  comment '移出仓库ID',
+  from_warehouse_code   varchar(64)                                 comment '移出仓库编码',
+  from_warehouse_name   varchar(255)                                comment '移出仓库名称',
+  from_location_id      bigint(20)                                  comment '移出库区ID',
+  from_location_code    varchar(64)                                 comment '移出库区编码',
+  from_location_name    varchar(255)                                comment '移出库区名称',
+  from_area_id          bigint(20)                                  comment '移出库位ID',
+  from_area_code        varchar(64)                                 comment '移出库位编码',
+  from_area_name        varchar(255)                                comment '移出库位名称',   
+  to_warehouse_id       bigint(20)                                  comment '移入仓库ID',
+  to_warehouse_code     varchar(64)                                 comment '移入仓库编码',
+  to_warehouse_name     varchar(255)                                comment '移入仓库名称',
+  to_location_id        bigint(20)                                  comment '移入库区ID',
+  to_location_code      varchar(64)                                 comment '移入库区编码',
+  to_location_name      varchar(255)                                comment '移入库区名称',
+  to_area_id            bigint(20)                                  comment '移入库位ID',
+  to_area_code          varchar(64)                                 comment '移入库位编码',
+  to_area_name          varchar(255)                                comment '移入库位名称',   
+  expire_date           datetime                                    comment '有效期',
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编码',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(255)                                comment '供应商简称',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '转移单行表';
+
+
+
+
+-- ----------------------------
+-- 23、SN码表
+-- ----------------------------
+drop table if exists wm_sn;
+create table wm_sn (
+  sn_id                 bigint(20)      not null auto_increment     comment 'SN码ID',
+  sn_code               varchar(64)     not null                    comment 'SN码',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  batch_code            varchar(255)                                comment '批次号',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (sn_id)
+) engine=innodb auto_increment=200 comment = 'SN码表';
+
+
+
+-- ----------------------------
+-- 24、库存盘点记录表
+-- ----------------------------
+drop table if exists wm_stock_taking;
+create table wm_stock_taking (
+  taking_id             bigint(20)      not null auto_increment     comment '盘点单ID',
+  taking_code           varchar(64)     not null                    comment '盘点单编号', 
+  taking_name           varchar(255)                                comment '盘点单名称',
+  taking_date           datetime        not null                    comment '盘点日期',
+  user_name             varchar(64)                                 comment '盘点人用户名',
+  nick_name             varchar(64)                                 comment '盘点人',
+  taking_type           varchar(64)     not null                    comment '盘点类型',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (taking_id)
+) engine=innodb auto_increment=200 comment = '库存盘点记录表';
+
+
+
+-- ----------------------------
+-- 25、库存盘点明细表
+-- ----------------------------
+drop table if exists wm_stock_taking_line;
+create table wm_stock_taking_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  taking_id             bigint(20)                                  comment '报废单ID',
+  material_stock_id     bigint(20)                                  comment '库存ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  unit_name             varchar(64)                                 comment '单位名称',
+  quantity              int(11)         not null default 1          comment '数量',
+  taking_quantity       int(11)                                     comment '盘点数量',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  taking_status         varchar(64)     not null default 'LOSS'     comment '盘点状态',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '库存盘点明细表';
+
+
+-- ----------------------------
+-- 26、库存盘点结果表
+-- ----------------------------
+drop table if exists wm_stock_taking_result;
+create table wm_stock_taking_result (
+  result_id             bigint(20)      not null auto_increment     comment '结果ID',
+  taking_id             bigint(20)                                  comment '盘点单ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  unit_name             varchar(64)                                 comment '单位名称',
+  quantity              int(11)         not null default 1          comment '数量',
+  taking_quantity       int(11)                                     comment '盘点数量',
+  taking_status         varchar(64)     not null default 'LOSS'     comment '盘点状态',
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (result_id)
+) engine=innodb auto_increment=200 comment = '库存盘点结果表';
+
+
+
+-- ----------------------------
+-- 27、外协领料单头表
+-- ----------------------------
+drop table if exists wm_outsource_issue;
+create table wm_outsource_issue (
+  issue_id              bigint(20)      not null auto_increment     comment '领料单ID',
+  issue_code            varchar(64)     not null                    comment '领料单编号',
+  issue_name            varchar(255)    not null                    comment '领料单名称',
+  workorder_id          bigint(20)                                  comment '生产工单ID',
+  workorder_code        varchar(64)                                 comment '生产工单编码',  
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编码',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(255)                                comment '供应商简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  issue_date            datetime                                    comment '领料日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (issue_id)
+) engine=innodb auto_increment=200 comment = '外协领料单头表';
+
+
+-- ----------------------------
+-- 28、外协领料单行表
+-- ----------------------------
+drop table if exists wm_outsource_issue_line;
+create table wm_outsource_issue_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  issue_id              bigint(20)                                  comment '领料单ID',
+  material_stock_id     bigint(20)                                  comment '库存ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_issued       double(12,2)    not null                    comment '领料数量',
+  batch_code            varchar(255)                                comment '领料批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称',   
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '外协领料单行表';
+
+
+
+-- ----------------------------
+-- 29、外协入库单表
+-- ----------------------------
+drop table if exists wm_outsource_recpt;
+create table wm_outsource_recpt (
+  recpt_id              bigint(20)      not null auto_increment     comment '入库单ID',
+  recpt_code            varchar(64)     not null                    comment '入库单编号',
+  recpt_name            varchar(255)    not null                    comment '入库单名称',
+  iqc_id                bigint(20)                                  comment '来料检验单ID',
+  iqc_code              varchar(64)                                 comment '来料检验单编号',  
+  workorder_id          bigint(20)                                  comment '外协工单ID',
+  workorder_code        varchar(64)                                 comment '外协工单编号',  
+  vendor_id             bigint(20)                                  comment '供应商ID',
+  vendor_code           varchar(64)                                 comment '供应商编码',
+  vendor_name           varchar(255)                                comment '供应商名称',
+  vendor_nick           varchar(255)                                comment '供应商简称',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  recpt_date            datetime                                    comment '入库日期',
+  status                varchar(64)     default 'PREPARE'           comment '单据状态',  
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (recpt_id)
+) engine=innodb auto_increment=200 comment = '外协入库单表';
+
+
+-- ----------------------------
+-- 30、外协入库单行表
+-- ----------------------------
+drop table if exists wm_outsource_recpt_line;
+create table wm_outsource_recpt_line (
+  line_id               bigint(20)      not null auto_increment     comment '行ID',
+  recpt_id              bigint(20)                                  comment '入库单ID',
+  item_id               bigint(20)      not null                    comment '产品物料ID',
+  item_code             varchar(64)                                 comment '产品物料编码',
+  item_name             varchar(255)                                comment '产品物料名称',
+  specification         varchar(500)                                comment '规格型号',
+  unit_of_measure       varchar(64)                                 comment '单位',
+  quantity_recived      double(12,2)    not null                    comment '入库数量',
+  batch_code            varchar(255)                                comment '入库批次号',
+  warehouse_id          bigint(20)                                  comment '仓库ID',
+  warehouse_code        varchar(64)                                 comment '仓库编码',
+  warehouse_name        varchar(255)                                comment '仓库名称',
+  location_id           bigint(20)                                  comment '库区ID',
+  location_code         varchar(64)                                 comment '库区编码',
+  location_name         varchar(255)                                comment '库区名称',
+  area_id               bigint(20)                                  comment '库位ID',
+  area_code             varchar(64)                                 comment '库位编码',
+  area_name             varchar(255)                                comment '库位名称', 
+  expire_date           datetime                                    comment '有效期', 
+  iqc_check             char(1)                                     comment '是否来料检验',
+  iqc_id                bigint(20)                                  comment '来料检验单ID',
+  iqc_code              varchar(64)                                 comment '来料检验单编号',                 
+  remark                varchar(500)    default ''                  comment '备注',
+  attr1                 varchar(64)     default null                comment '预留字段1',
+  attr2                 varchar(255)    default null                comment '预留字段2',
+  attr3                 int(11)         default 0                   comment '预留字段3',
+  attr4                 int(11)         default 0                   comment '预留字段4',
+  create_by             varchar(64)     default ''                  comment '创建者',
+  create_time           datetime                                    comment '创建时间',
+  update_by             varchar(64)     default ''                  comment '更新者',
+  update_time           datetime                                    comment '更新时间',
+  primary key (line_id)
+) engine=innodb auto_increment=200 comment = '外协入库单行表';
+
+

+ 143 - 0
doc/设计文档/数据库设计/mes_sys.sql

@@ -0,0 +1,143 @@
+-- ----------------------------
+-- 1、编码生成规则表
+-- ----------------------------
+drop table if exists sys_auto_code_rule;
+create table sys_auto_code_rule (
+  rule_id           bigint(20)      not null auto_increment    comment '规则ID',
+  rule_code         varchar(64)     not null                   comment '规则编码',
+  rule_name         varchar(255)    not null                   comment '规则名称',
+  rule_desc     	varchar(500)    default null               comment '描述',
+  max_length        int(11)                                    comment '最大长度',
+  is_padded         char(1)         not null                   comment '是否补齐',
+  padded_char       varchar(20)          	                   comment '补齐字符',
+  padded_method     char(1)         default 'L'                comment '补齐方式',
+  enable_flag       char(1)         default 'Y' not null       comment '是否启用',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null              comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (rule_id)
+) engine=innodb auto_increment=200 comment = '编码生成规则表';
+
+
+-- ----------------------------
+-- 2、编码生成规则组成表
+-- ----------------------------
+drop table if exists sys_auto_code_part;
+create table sys_auto_code_part (
+  part_id           bigint(20)      not null auto_increment    comment '分段ID',
+  rule_id           bigint(20)      not null                   comment '规则ID',
+  part_index        int(11)         not null                   comment '分段序号',
+  part_type         varchar(20)     not null                   comment '分段类型,INPUTCHAR:输入字符,NOWDATE:当前日期时间,FIXCHAR:固定字符,SERIALNO:流水号',
+  part_code			varchar(64)                                comment '分段编号',
+  part_name         varchar(255)                               comment '分段名称',
+  part_length       int(11)         not null                   comment '分段长度',
+  date_format      varchar(20)          	                   comment '日期时间格式',
+  input_character   varchar(64)                                comment '输入字符',
+  fix_character     varchar(64)                                comment '固定字符',
+  seria_start_no    int(11)         					       comment '流水号起始值',
+  seria_step        int(11)         					       comment '流水号步长',
+  seria_now_no      int(11)         					       comment '流水号当前值',
+  cycle_flag        char(1)         					       comment '流水号是否循环',
+  cycle_method      varchar(20)     					       comment '循环方式,YEAR:按年,MONTH:按月,DAY:按天,HOUR:按小时,MINITE:按分钟,OTHER:按传入字符变',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null              comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (part_id)
+) engine=innodb auto_increment=200 comment = '编码生成规则组成表';
+
+
+-- ----------------------------
+-- 3、编码生成记录表
+-- ----------------------------
+drop table if exists sys_auto_code_result;
+create table sys_auto_code_result (
+  code_id           bigint(20)      not null auto_increment    comment '记录ID',
+  rule_id           bigint(20)      not null                   comment '规则ID',
+  gen_date          varchar(20)     not null                   comment '生成日期时间',
+  gen_index         int(11)                                    comment '最后产生的序号',
+  last_result		varchar(64)                                comment '最后产生的值',
+  last_serial_no    int(11)                                    comment '最后产生的流水号',
+  last_input_char   varchar(64)                                comment '最后传入的参数',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)    default null               comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (code_id)
+) engine=innodb auto_increment=200 comment = '编码生成记录表';
+
+
+-- ----------------------------
+-- 4、附件表
+-- ----------------------------
+drop table if exists sys_attachment;
+create table sys_attachment (
+  attachment_id     bigint(20)      not null auto_increment    comment '附件ID',
+  source_doc_id     bigint(20)                                 comment '关联的业务单据ID',
+  source_doc_type   varchar(64)                                comment '业务单据类型',
+  file_url          varchar(255)    not null                   comment '访问URL',
+  base_path         varchar(64)                                comment '域名',
+  file_name         varchar(255)                               comment '文件名',
+  orignal_name      varchar(255)                               comment '原来的文件名',
+  file_type         varchar(64)                                comment '文件类型',
+  file_size         double(12,2)                               comment '文件大小', 
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null              comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time 	    datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (attachment_id)
+) engine=innodb auto_increment=200 comment = '附件表';
+
+
+-- ----------------------------
+-- 5、消息表
+-- ----------------------------
+drop table if exists sys_messsage;
+create table sys_message (
+  message_id        bigint(20)      not null auto_increment    comment '附件ID',
+  message_type      varchar(64)     not null                   comment '消息类型',
+  message_level     varchar(64)     not null                   comment '消息级别',
+  message_title     varchar(64)                                comment '标题',
+  message_content   longblob                                   comment '内容',
+  sender_id         bigint(20)                                 comment '发送人ID',
+  sender_name       varchar(64)                                comment '发送人名称',
+  sender_nick       varchar(64)                                comment '发送人昵称', 
+  recipient_id      bigint(20)      not null                   comment '接收人ID',
+  recipient_name    varchar(64)                                comment '接收人名称',
+  recipient_nick    varchar(64)                                comment '接收人昵称',
+  process_time      datetime                                   comment '处理时间',
+  call_back         varchar(255)                               comment '回调地址',
+  status            varchar(64)     not null default 'UNREAD'  comment '状态',
+  deleted_flag      char(1)         not null default 'N'       comment '是否删除',
+  remark            varchar(500)    default ''                 comment '备注',
+  attr1             varchar(64)     default null               comment '预留字段1',
+  attr2             varchar(255)     default null              comment '预留字段2',
+  attr3             int(11)         default 0                  comment '预留字段3',
+  attr4             int(11)         default 0                  comment '预留字段4',
+  create_by         varchar(64)     default ''                 comment '创建者',
+  create_time       datetime                                   comment '创建时间',
+  update_by         varchar(64)     default ''                 comment '更新者',
+  update_time       datetime                                   comment '更新时间',
+  primary key (message_id)
+) engine=innodb auto_increment=200 comment = '消息表';

+ 17 - 0
doc/设计文档/数据库设计/ureport_file_tbl.sql

@@ -0,0 +1,17 @@
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for ureport_file_tbl
+-- ----------------------------
+DROP TABLE IF EXISTS `ureport_file_tbl`;
+CREATE TABLE `ureport_file_tbl`  (
+  `id_` int(11) NOT NULL AUTO_INCREMENT,
+  `name_` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `content_` mediumblob NULL,
+  `create_time_` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+  `update_time_` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`id_`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
+
+SET FOREIGN_KEY_CHECKS = 1;

BIN
doc/设计文档/数据库设计/数据库设计.xlsx


+ 102 - 0
ktg-admin/pom.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ktg</artifactId>
+        <groupId>com.ktg</groupId>
+        <version>3.8.2</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>ktg-admin</artifactId>
+
+    <description>
+        web服务入口
+    </description>
+
+    <dependencies>
+
+        <!-- spring-boot-devtools -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional> <!-- 表示依赖不会传递 -->
+        </dependency>
+
+        <!-- swagger3-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-boot-starter</artifactId>
+        </dependency>
+
+        <!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+            <version>1.6.2</version>
+        </dependency>
+
+         <!-- Mysql驱动包 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+
+        <!-- 核心模块-->
+        <dependency>
+            <groupId>com.ktg</groupId>
+            <artifactId>ktg-framework</artifactId>
+        </dependency>
+
+        <!-- 定时任务-->
+        <dependency>
+            <groupId>com.ktg</groupId>
+            <artifactId>ktg-quartz</artifactId>
+        </dependency>
+
+        <!-- 代码生成-->
+        <dependency>
+            <groupId>com.ktg</groupId>
+            <artifactId>ktg-generator</artifactId>
+        </dependency>
+
+        <!-- MES业务模块-->
+        <dependency>
+            <groupId>com.ktg</groupId>
+            <artifactId>ktg-mes</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.1.RELEASE</version>
+                <configuration>
+                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>   
+                <groupId>org.apache.maven.plugins</groupId>   
+                <artifactId>maven-war-plugin</artifactId>   
+                <version>3.1.0</version>   
+                <configuration>
+                    <failOnMissingWebXml>false</failOnMissingWebXml>
+                    <warName>${project.artifactId}</warName>
+                </configuration>   
+           </plugin>   
+        </plugins>
+        <finalName>${project.artifactId}</finalName>
+    </build>
+
+</project>

+ 35 - 0
ktg-admin/src/main/java/com/ktg/RuoYiApplication.java

@@ -0,0 +1,35 @@
+package com.ktg;
+
+import com.bstek.ureport.console.UReportServlet;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ImportResource;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+/**
+ * 启动程序
+ * 
+ * @author ruoyi
+ */
+@EnableAsync
+@ImportResource("classpath:ureport-console-context.xml")
+@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
+public class RuoYiApplication
+{
+    public static void main(String[] args)
+    {
+        // System.setProperty("spring.devtools.restart.enabled", "false");
+        SpringApplication.run(RuoYiApplication.class, args);
+        System.out.println("(♥◠‿◠)ノ゙  KTM-MES启动成功   ლ(´ڡ`ლ)゙  \n");
+    }
+
+    @Bean
+    public ServletRegistrationBean urportServlet(){
+        ServletRegistrationBean bean = new ServletRegistrationBean(new UReportServlet());
+        bean.addUrlMappings("/ureport/*");
+        return bean;
+    }
+}

+ 18 - 0
ktg-admin/src/main/java/com/ktg/RuoYiServletInitializer.java

@@ -0,0 +1,18 @@
+package com.ktg;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * web容器中进行部署
+ * 
+ * @author ruoyi
+ */
+public class RuoYiServletInitializer extends SpringBootServletInitializer
+{
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
+    {
+        return application.sources(RuoYiApplication.class);
+    }
+}

+ 94 - 0
ktg-admin/src/main/java/com/ktg/web/controller/common/CaptchaController.java

@@ -0,0 +1,94 @@
+package com.ktg.web.controller.common;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ktg.common.config.RuoYiConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.FastByteArrayOutputStream;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.google.code.kaptcha.Producer;
+import com.ktg.common.constant.Constants;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.redis.RedisCache;
+import com.ktg.common.utils.sign.Base64;
+import com.ktg.common.utils.uuid.IdUtils;
+import com.ktg.system.service.ISysConfigService;
+
+/**
+ * 验证码操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class CaptchaController
+{
+    @Resource(name = "captchaProducer")
+    private Producer captchaProducer;
+
+    @Resource(name = "captchaProducerMath")
+    private Producer captchaProducerMath;
+
+    @Autowired
+    private RedisCache redisCache;
+    
+    @Autowired
+    private ISysConfigService configService;
+    /**
+     * 生成验证码
+     */
+    @GetMapping("/captchaImage")
+    public AjaxResult getCode(HttpServletResponse response) throws IOException
+    {
+        AjaxResult ajax = AjaxResult.success();
+        boolean captchaOnOff = configService.selectCaptchaOnOff();
+        ajax.put("captchaOnOff", captchaOnOff);
+        if (!captchaOnOff)
+        {
+            return ajax;
+        }
+
+        // 保存验证码信息
+        String uuid = IdUtils.simpleUUID();
+        String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
+
+        String capStr = null, code = null;
+        BufferedImage image = null;
+
+        // 生成验证码
+        String captchaType = RuoYiConfig.getCaptchaType();
+        if ("math".equals(captchaType))
+        {
+            String capText = captchaProducerMath.createText();
+            capStr = capText.substring(0, capText.lastIndexOf("@"));
+            code = capText.substring(capText.lastIndexOf("@") + 1);
+            image = captchaProducerMath.createImage(capStr);
+        }
+        else if ("char".equals(captchaType))
+        {
+            capStr = code = captchaProducer.createText();
+            image = captchaProducer.createImage(capStr);
+        }
+
+        redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
+        // 转换流信息写出
+        FastByteArrayOutputStream os = new FastByteArrayOutputStream();
+        try
+        {
+            ImageIO.write(image, "jpg", os);
+        }
+        catch (IOException e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+
+        ajax.put("uuid", uuid);
+        ajax.put("img", Base64.encode(os.toByteArray()));
+        return ajax;
+    }
+}

+ 180 - 0
ktg-admin/src/main/java/com/ktg/web/controller/common/CommonController.java

@@ -0,0 +1,180 @@
+package com.ktg.web.controller.common;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ktg.common.config.RuoYiConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.ktg.common.constant.Constants;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.file.FileUploadUtils;
+import com.ktg.common.utils.file.FileUtils;
+import com.ktg.framework.config.ServerConfig;
+
+/**
+ * 通用请求处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/common")
+public class CommonController
+{
+    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
+
+    @Autowired
+    private ServerConfig serverConfig;
+
+    private static final String FILE_DELIMETER = ",";
+
+    /**
+     * 通用下载请求
+     * 
+     * @param fileName 文件名称
+     * @param delete 是否删除
+     */
+    @GetMapping("/download")
+    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
+    {
+        try
+        {
+            if (!FileUtils.checkAllowDownload(fileName))
+            {
+                throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
+            }
+            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
+            String filePath = RuoYiConfig.getDownloadPath() + fileName;
+
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, realFileName);
+            FileUtils.writeBytes(filePath, response.getOutputStream());
+            if (delete)
+            {
+                FileUtils.deleteFile(filePath);
+            }
+        }
+        catch (Exception e)
+        {
+            log.error("下载文件失败", e);
+        }
+    }
+
+    /**
+     * 通用上传请求(单个)
+     */
+    @PostMapping("/upload")
+    public AjaxResult uploadFile(MultipartFile file) throws Exception
+    {
+        try
+        {
+            // 上传文件路径
+            String filePath = RuoYiConfig.getUploadPath();
+            // 上传并返回新文件名称
+            String fileName = FileUploadUtils.upload(filePath, file);
+            String url = serverConfig.getUrl() + fileName;
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("url", url);
+            ajax.put("fileName", fileName);
+            ajax.put("newFileName", FileUtils.getName(fileName));
+            ajax.put("originalFilename", file.getOriginalFilename());
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 通用上传请求(多个)
+     */
+    @PostMapping("/uploads")
+    public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception
+    {
+        try
+        {
+            // 上传文件路径
+            String filePath = RuoYiConfig.getUploadPath();
+            List<String> urls = new ArrayList<String>();
+            List<String> fileNames = new ArrayList<String>();
+            List<String> newFileNames = new ArrayList<String>();
+            List<String> originalFilenames = new ArrayList<String>();
+            for (MultipartFile file : files)
+            {
+                // 上传并返回新文件名称
+                String fileName = FileUploadUtils.upload(filePath, file);
+                String url = serverConfig.getUrl() + fileName;
+                urls.add(url);
+                fileNames.add(fileName);
+                newFileNames.add(FileUtils.getName(fileName));
+                originalFilenames.add(file.getOriginalFilename());
+            }
+            AjaxResult ajax = AjaxResult.success();
+            ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+            ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+            ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));
+            ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+            return ajax;
+        }
+        catch (Exception e)
+        {
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 本地资源通用下载
+     */
+    @GetMapping("/download/resource")
+    public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
+            throws Exception
+    {
+        try
+        {
+            if (!FileUtils.checkAllowDownload(resource))
+            {
+                throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
+            }
+            // 本地资源路径
+            String localPath = RuoYiConfig.getProfile();
+            // 数据库资源地址
+            String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
+            // 下载名称
+            String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            FileUtils.setAttachmentResponseHeader(response, downloadName);
+            FileUtils.writeBytes(downloadPath, response.getOutputStream());
+        }
+        catch (Exception e)
+        {
+            log.error("下载文件失败", e);
+        }
+    }
+
+    @PostMapping("/uploadMinio")
+    public AjaxResult uploadFileMinio(MultipartFile file) throws Exception{
+        try{
+            String fileName = FileUploadUtils.uploadMinio(file);
+            AjaxResult rt = AjaxResult.success();
+            rt.put("url",fileName);
+            rt.put("fileName",fileName);
+            rt.put("newFileName",FileUtils.getName(fileName));
+            rt.put("originalFileName",file.getOriginalFilename());
+            return rt;
+        }catch (Exception e){
+            return AjaxResult.error(e.getMessage());
+        }
+    }
+
+}

+ 53 - 0
ktg-admin/src/main/java/com/ktg/web/controller/monitor/CacheController.java

@@ -0,0 +1,53 @@
+package com.ktg.web.controller.monitor;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.utils.StringUtils;
+
+/**
+ * 缓存监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/cache")
+public class CacheController
+{
+    @Autowired
+    private RedisTemplate<String, String> redisTemplate;
+
+    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
+    @GetMapping()
+    public AjaxResult getInfo() throws Exception
+    {
+        Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
+        Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
+        Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
+
+        Map<String, Object> result = new HashMap<>(3);
+        result.put("info", info);
+        result.put("dbSize", dbSize);
+
+        List<Map<String, String>> pieList = new ArrayList<>();
+        commandStats.stringPropertyNames().forEach(key -> {
+            Map<String, String> data = new HashMap<>(2);
+            String property = commandStats.getProperty(key);
+            data.put("name", StringUtils.removeStart(key, "cmdstat_"));
+            data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
+            pieList.add(data);
+        });
+        result.put("commandStats", pieList);
+        return AjaxResult.success(result);
+    }
+}

+ 27 - 0
ktg-admin/src/main/java/com/ktg/web/controller/monitor/ServerController.java

@@ -0,0 +1,27 @@
+package com.ktg.web.controller.monitor;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.framework.web.domain.Server;
+
+/**
+ * 服务器监控
+ * 
+ * @author ktg
+ */
+@RestController
+@RequestMapping("/monitor/server")
+public class ServerController
+{
+    @PreAuthorize("@ss.hasPermi('monitor:server:list')")
+    @GetMapping()
+    public AjaxResult getInfo() throws Exception
+    {
+        Server server = new Server();
+        server.copyTo();
+        return AjaxResult.success(server);
+    }
+}

+ 69 - 0
ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysLogininforController.java

@@ -0,0 +1,69 @@
+package com.ktg.web.controller.monitor;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.domain.SysLogininfor;
+import com.ktg.system.service.ISysLogininforService;
+
+/**
+ * 系统访问记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/logininfor")
+public class SysLogininforController extends BaseController
+{
+    @Autowired
+    private ISysLogininforService logininforService;
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysLogininfor logininfor)
+    {
+        startPage();
+        List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
+        return getDataTable(list);
+    }
+
+    @Log(title = "登录日志", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysLogininfor logininfor)
+    {
+        List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
+        ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
+        util.exportExcel(response, list, "登录日志");
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
+    @Log(title = "登录日志", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{infoIds}")
+    public AjaxResult remove(@PathVariable Long[] infoIds)
+    {
+        return toAjax(logininforService.deleteLogininforByIds(infoIds));
+    }
+
+    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
+    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/clean")
+    public AjaxResult clean()
+    {
+        logininforService.cleanLogininfor();
+        return AjaxResult.success();
+    }
+}

+ 69 - 0
ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysOperlogController.java

@@ -0,0 +1,69 @@
+package com.ktg.web.controller.monitor;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.domain.SysOperLog;
+import com.ktg.system.service.ISysOperLogService;
+
+/**
+ * 操作日志记录
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/operlog")
+public class SysOperlogController extends BaseController
+{
+    @Autowired
+    private ISysOperLogService operLogService;
+
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysOperLog operLog)
+    {
+        startPage();
+        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
+        return getDataTable(list);
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysOperLog operLog)
+    {
+        List<SysOperLog> list = operLogService.selectOperLogList(operLog);
+        ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
+        util.exportExcel(response, list, "操作日志");
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.DELETE)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
+    @DeleteMapping("/{operIds}")
+    public AjaxResult remove(@PathVariable Long[] operIds)
+    {
+        return toAjax(operLogService.deleteOperLogByIds(operIds));
+    }
+
+    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
+    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
+    @DeleteMapping("/clean")
+    public AjaxResult clean()
+    {
+        operLogService.cleanOperLog();
+        return AjaxResult.success();
+    }
+}

+ 92 - 0
ktg-admin/src/main/java/com/ktg/web/controller/monitor/SysUserOnlineController.java

@@ -0,0 +1,92 @@
+package com.ktg.web.controller.monitor;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.Constants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.model.LoginUser;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.core.redis.RedisCache;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.system.domain.SysUserOnline;
+import com.ktg.system.service.ISysUserOnlineService;
+
+/**
+ * 在线用户监控
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/monitor/online")
+public class SysUserOnlineController extends BaseController
+{
+    @Autowired
+    private ISysUserOnlineService userOnlineService;
+
+    @Autowired
+    private RedisCache redisCache;
+
+    @PreAuthorize("@ss.hasPermi('monitor:online:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(String ipaddr, String userName)
+    {
+        Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
+        List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
+        for (String key : keys)
+        {
+            LoginUser user = redisCache.getCacheObject(key);
+            if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(ipaddr))
+            {
+                if (StringUtils.equals(ipaddr, user.getIpaddr()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
+                }
+            }
+            else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser()))
+            {
+                if (StringUtils.equals(userName, user.getUsername()))
+                {
+                    userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
+                }
+            }
+            else
+            {
+                userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
+            }
+        }
+        Collections.reverse(userOnlineList);
+        userOnlineList.removeAll(Collections.singleton(null));
+        return getDataTable(userOnlineList);
+    }
+
+    /**
+     * 强退用户
+     */
+    @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
+    @Log(title = "在线用户", businessType = BusinessType.FORCE)
+    @DeleteMapping("/{tokenId}")
+    public AjaxResult forceLogout(@PathVariable String tokenId)
+    {
+        redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + tokenId);
+        return AjaxResult.success();
+    }
+}

+ 78 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/LoginController.java

@@ -0,0 +1,78 @@
+package com.ktg.web.controller.system;
+
+
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.model.LoginUser;
+import com.ktg.framework.web.service.MobileLoginService;
+import com.ktg.framework.web.service.TokenService;
+import com.ktg.system.domain.LoginParams;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 登录控制器
+ *
+ * @author SK
+ * @since 2018/6/13
+ */
+@RestController
+@RequestMapping("/mobile/login")
+public class LoginController{
+
+    @Autowired(required = false)
+    private TokenService tokenService;
+
+    @Autowired(required = false)
+    private MobileLoginService loginService;
+
+
+
+    /**
+     * 会员登录
+     * @return -1 用户名或密码错误  -2 账号冻结  -3 账号锁定 1 成功  -4 验证码错误
+     */
+    @PostMapping("/loginByPassword")
+    @ResponseBody
+    public AjaxResult loginByPassword(HttpServletRequest request) {
+        String username = request.getParameter("username");
+        String password = request.getParameter("password");
+        String phoneNo = request.getParameter("phoneNo");
+        String validCode = request.getParameter("validCode");
+        String loginType = request.getParameter("loginType");
+        // 登录结果
+        LoginParams loginParams = new LoginParams();
+        loginParams.setUsername(username);
+        loginParams.setPassword(password);
+        loginParams.setPhoneNo(phoneNo);
+        loginParams.setValidCode(validCode);
+        loginParams.setLoginType(loginType);
+        return loginService.login(loginParams);
+    }
+    /**
+     * 发送验证码
+     */
+    @PostMapping("/sendCode")
+    @ResponseBody
+    public AjaxResult sendRegisterCode(HttpServletRequest request) {
+        String phoneNo = request.getParameter("phoneNo");
+        String validCodeType = request.getParameter("validCodeType");
+        // 登录结果
+        LoginParams loginParams = new LoginParams();
+        loginParams.setPhoneNo(phoneNo);
+        loginParams.setValidCodeType(validCodeType);
+        return loginService.sendCode(loginParams);
+    }
+
+    @GetMapping("/logout")
+    @ResponseBody
+    public AjaxResult logout(HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        if(null != loginUser){
+            tokenService.delLoginUser(loginUser.getToken());
+        }
+        return AjaxResult.success("退出成功!");
+    }
+
+}

+ 104 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAttachmentController.java

@@ -0,0 +1,104 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.system.domain.SysAttachment;
+import com.ktg.system.service.ISysAttachmentService;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.common.core.page.TableDataInfo;
+
+/**
+ * 附件Controller
+ * 
+ * @author yinjinlu
+ * @date 2022-07-26
+ */
+@RestController
+@RequestMapping("/system/attachment")
+public class SysAttachmentController extends BaseController
+{
+    @Autowired
+    private ISysAttachmentService sysAttachmentService;
+
+    /**
+     * 查询附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysAttachment sysAttachment)
+    {
+        startPage();
+        List<SysAttachment> list = sysAttachmentService.selectSysAttachmentList(sysAttachment);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出附件列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:export')")
+    @Log(title = "附件", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysAttachment sysAttachment)
+    {
+        List<SysAttachment> list = sysAttachmentService.selectSysAttachmentList(sysAttachment);
+        ExcelUtil<SysAttachment> util = new ExcelUtil<SysAttachment>(SysAttachment.class);
+        util.exportExcel(response, list, "附件数据");
+    }
+
+    /**
+     * 获取附件详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:query')")
+    @GetMapping(value = "/{attachmentId}")
+    public AjaxResult getInfo(@PathVariable("attachmentId") Long attachmentId)
+    {
+        return AjaxResult.success(sysAttachmentService.selectSysAttachmentByAttachmentId(attachmentId));
+    }
+
+    /**
+     * 新增附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:add')")
+    @Log(title = "附件", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SysAttachment sysAttachment)
+    {
+        return toAjax(sysAttachmentService.insertSysAttachment(sysAttachment));
+    }
+
+    /**
+     * 修改附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:edit')")
+    @Log(title = "附件", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SysAttachment sysAttachment)
+    {
+        return toAjax(sysAttachmentService.updateSysAttachment(sysAttachment));
+    }
+
+    /**
+     * 删除附件
+     */
+    @PreAuthorize("@ss.hasPermi('system:attachment:remove')")
+    @Log(title = "附件", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{attachmentIds}")
+    public AjaxResult remove(@PathVariable Long[] attachmentIds)
+    {
+        return toAjax(sysAttachmentService.deleteSysAttachmentByAttachmentIds(attachmentIds));
+    }
+}

+ 32 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeController.java

@@ -0,0 +1,32 @@
+package com.ktg.web.controller.system;
+
+import com.ktg.system.strategy.AutoCodeUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api("用户信息管理")
+@RestController
+@RequestMapping("/system/autocode")
+public class SysAutoCodeController {
+
+    @Autowired
+    private AutoCodeUtil autoCodeUtil;
+
+    @ApiOperation("获取一个自动生成的编码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "ruleCode", value = "规则编码", required = true, dataType = "String", paramType = "path", dataTypeClass = String.class),
+            @ApiImplicitParam(name = "inputCharacter", value = "输入字符", required = false,dataType = "String", paramType = "path", dataTypeClass = String.class)
+    })
+    @GetMapping(value = {"/get/{ruleCode}/{inputCharacter}","/get/{ruleCode}"})
+    public String getAutoCode(@PathVariable String ruleCode,@PathVariable(required = false) String inputCharacter){
+        return autoCodeUtil.genSerialCode(ruleCode,inputCharacter);
+    }
+
+}

+ 70 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodePartController.java

@@ -0,0 +1,70 @@
+package com.ktg.web.controller.system;
+
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysAutoCodePart;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.system.service.IAutoCodePartService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/system/autocode/part")
+public class SysAutoCodePartController extends BaseController {
+
+    @Autowired
+    private IAutoCodePartService iAutoCodePartService;
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:part:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysAutoCodePart sysAutoCodePart){
+        startPage();
+        List<SysAutoCodePart> parts = iAutoCodePartService.listPart(sysAutoCodePart);
+        return getDataTable(parts);
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:part:query')")
+    @GetMapping("/{partId}")
+    public AjaxResult getInfo(@PathVariable Long partId){
+        return AjaxResult.success(iAutoCodePartService.findById(partId));
+    }
+
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:part:insert')")
+    @Log(title = "新增编码生产规则组成部分",businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysAutoCodePart part){
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodePartService.checkPartUnique(part))){
+            return AjaxResult.error("规则组成不唯一,清检查组成编码、组成名称、组成序号");
+        }
+        part.setCreateBy(getUsername());
+        return toAjax(iAutoCodePartService.insertPart(part));
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:part:update')")
+    @Log(title = "更新物料编码",businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult update(@Validated @RequestBody SysAutoCodePart sysAutoCodePart){
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodePartService.checkPartUnique(sysAutoCodePart))){
+            return AjaxResult.error("规则组成不唯一,清检查组成编码、组成名称、组成序号");
+        }
+        sysAutoCodePart.setUpdateBy(getUsername());
+        return toAjax(iAutoCodePartService.updatePart(sysAutoCodePart));
+    }
+
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:part:remove')")
+    @Log(title = "删除物料编码",businessType = BusinessType.DELETE)
+    @DeleteMapping("/{partIds}")
+    public AjaxResult delete(@PathVariable Long[] partIds){
+        return toAjax(iAutoCodePartService.deleteByIds(partIds));
+    }
+
+}

+ 79 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysAutoCodeRuleController.java

@@ -0,0 +1,79 @@
+package com.ktg.web.controller.system;
+
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysAutoCodeRule;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.system.service.IAutoCodeRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/system/autocode/rule")
+public class SysAutoCodeRuleController extends BaseController {
+
+    @Autowired
+    private IAutoCodeRuleService iAutoCodeRuleService;
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:rule:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysAutoCodeRule sysAutoCodeRule){
+        startPage();
+        List<SysAutoCodeRule> rules = iAutoCodeRuleService.selectAutoCodeList(sysAutoCodeRule);
+        return getDataTable(rules);
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:rule:query')")
+    @GetMapping("/{ruleId}")
+    public AjaxResult getInfo(@PathVariable Long ruleId){
+        return AjaxResult.success(iAutoCodeRuleService.findById(ruleId));
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:rule:add')")
+    @Log(title = "新增自动编码规则",businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysAutoCodeRule sysAutoCodeRule){
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodeRuleService.checkRuleCodeUnique(sysAutoCodeRule))){
+            return AjaxResult.error("自动编码规则的编号重复");
+        }
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodeRuleService.checkRuleNameUnique(sysAutoCodeRule))){
+            return AjaxResult.error("自动编码规则的名称重复");
+        }
+        if("N".equals(sysAutoCodeRule.getIsPadded())){
+            sysAutoCodeRule.setPaddedChar(null);
+            sysAutoCodeRule.setPaddedMethod(null);
+        }
+        sysAutoCodeRule.setCreateBy(getUsername());
+        return toAjax(iAutoCodeRuleService.insertInfo(sysAutoCodeRule));
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:rule:edit')")
+    @Log(title = "更新自动编码规则",businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult updateInfo(@Validated @RequestBody SysAutoCodeRule sysAutoCodeRule){
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodeRuleService.checkRuleCodeUnique(sysAutoCodeRule))){
+            return AjaxResult.error("自动编码规则的编号重复");
+        }
+        if(UserConstants.NOT_UNIQUE.equals(iAutoCodeRuleService.checkRuleNameUnique(sysAutoCodeRule))){
+            return AjaxResult.error("自动编码规则的名称重复");
+        }
+        sysAutoCodeRule.setUpdateBy(getUsername());
+        return toAjax(iAutoCodeRuleService.updateInfo(sysAutoCodeRule));
+    }
+
+    @PreAuthorize("@ss.hasPermi('system:autocode:rule:remove')")
+    @Log(title = "删除自动编码规则",businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ruleIds}")
+    public AjaxResult remove(@PathVariable Long[] ruleIds){
+
+        return toAjax(iAutoCodeRuleService.deleteByIds(ruleIds));
+    }
+
+}

+ 134 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysConfigController.java

@@ -0,0 +1,134 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.domain.SysConfig;
+import com.ktg.system.service.ISysConfigService;
+
+/**
+ * 参数配置 信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/config")
+public class SysConfigController extends BaseController
+{
+    @Autowired
+    private ISysConfigService configService;
+
+    /**
+     * 获取参数配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysConfig config)
+    {
+        startPage();
+        List<SysConfig> list = configService.selectConfigList(config);
+        return getDataTable(list);
+    }
+
+    @Log(title = "参数管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:config:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysConfig config)
+    {
+        List<SysConfig> list = configService.selectConfigList(config);
+        ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
+        util.exportExcel(response, list, "参数数据");
+    }
+
+    /**
+     * 根据参数编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:query')")
+    @GetMapping(value = "/{configId}")
+    public AjaxResult getInfo(@PathVariable Long configId)
+    {
+        return AjaxResult.success(configService.selectConfigById(configId));
+    }
+
+    /**
+     * 根据参数键名查询参数值
+     */
+    @GetMapping(value = "/configKey/{configKey}")
+    public AjaxResult getConfigKey(@PathVariable String configKey)
+    {
+        return AjaxResult.success(configService.selectConfigByKey(configKey));
+    }
+
+    /**
+     * 新增参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:add')")
+    @Log(title = "参数管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysConfig config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setCreateBy(getUsername());
+        return toAjax(configService.insertConfig(config));
+    }
+
+    /**
+     * 修改参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:edit')")
+    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysConfig config)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config)))
+        {
+            return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
+        }
+        config.setUpdateBy(getUsername());
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 删除参数配置
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{configIds}")
+    public AjaxResult remove(@PathVariable Long[] configIds)
+    {
+        configService.deleteConfigByIds(configIds);
+        return success();
+    }
+
+    /**
+     * 刷新参数缓存
+     */
+    @PreAuthorize("@ss.hasPermi('system:config:remove')")
+    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/refreshCache")
+    public AjaxResult refreshCache()
+    {
+        configService.resetConfigCache();
+        return AjaxResult.success();
+    }
+}

+ 163 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysDeptController.java

@@ -0,0 +1,163 @@
+package com.ktg.web.controller.system;
+
+import java.util.Iterator;
+import java.util.List;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysDept;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.system.service.ISysDeptService;
+
+/**
+ * 部门信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dept")
+public class SysDeptController extends BaseController
+{
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 获取部门列表
+     */
+    @GetMapping("/list")
+    public AjaxResult list(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return AjaxResult.success(depts);
+    }
+
+    /**
+     * 查询部门列表(排除节点)
+     */
+    @GetMapping("/list/exclude/{deptId}")
+    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        Iterator<SysDept> it = depts.iterator();
+        while (it.hasNext())
+        {
+            SysDept d = (SysDept) it.next();
+            if (d.getDeptId().intValue() == deptId
+                    || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""))
+            {
+                it.remove();
+            }
+        }
+        return AjaxResult.success(depts);
+    }
+
+    /**
+     * 根据部门编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:query')")
+    @GetMapping(value = "/{deptId}")
+    public AjaxResult getInfo(@PathVariable Long deptId)
+    {
+        deptService.checkDeptDataScope(deptId);
+        return AjaxResult.success(deptService.selectDeptById(deptId));
+    }
+
+    /**
+     * 获取部门下拉树列表
+     */
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(SysDept dept)
+    {
+        List<SysDept> depts = deptService.selectDeptList(dept);
+        return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
+    }
+
+    /**
+     * 加载对应角色部门列表树
+     */
+    @GetMapping(value = "/roleDeptTreeselect/{roleId}")
+    public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        List<SysDept> depts = deptService.selectDeptList(new SysDept());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
+        ajax.put("depts", deptService.buildDeptTreeSelect(depts));
+        return ajax;
+    }
+
+    /**
+     * 新增部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:add')")
+    @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDept dept)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        dept.setCreateBy(getUsername());
+        return toAjax(deptService.insertDept(dept));
+    }
+
+    /**
+     * 修改部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:edit')")
+    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDept dept)
+    {
+        Long deptId = dept.getDeptId();
+        deptService.checkDeptDataScope(deptId);
+        if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
+        {
+            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
+        }
+        else if (dept.getParentId().equals(deptId))
+        {
+            return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
+        }
+        else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus()) && deptService.selectNormalChildrenDeptById(deptId) > 0)
+        {
+            return AjaxResult.error("该部门包含未停用的子部门!");
+        }
+        dept.setUpdateBy(getUsername());
+        return toAjax(deptService.updateDept(dept));
+    }
+
+    /**
+     * 删除部门
+     */
+    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
+    @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{deptId}")
+    public AjaxResult remove(@PathVariable Long deptId)
+    {
+        if (deptService.hasChildByDeptId(deptId))
+        {
+            return AjaxResult.error("存在下级部门,不允许删除");
+        }
+        if (deptService.checkDeptExistUser(deptId))
+        {
+            return AjaxResult.error("部门存在用户,不允许删除");
+        }
+        deptService.checkDeptDataScope(deptId);
+        return toAjax(deptService.deleteDeptById(deptId));
+    }
+}

+ 121 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysDictDataController.java

@@ -0,0 +1,121 @@
+package com.ktg.web.controller.system;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysDictData;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.service.ISysDictDataService;
+import com.ktg.system.service.ISysDictTypeService;
+
+/**
+ * 数据字典信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dict/data")
+public class SysDictDataController extends BaseController
+{
+    @Autowired
+    private ISysDictDataService dictDataService;
+
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+    @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysDictData dictData)
+    {
+        startPage();
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        return getDataTable(list);
+    }
+
+    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysDictData dictData)
+    {
+        List<SysDictData> list = dictDataService.selectDictDataList(dictData);
+        ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
+        util.exportExcel(response, list, "字典数据");
+    }
+
+    /**
+     * 查询字典数据详细
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictCode}")
+    public AjaxResult getInfo(@PathVariable Long dictCode)
+    {
+        return AjaxResult.success(dictDataService.selectDictDataById(dictCode));
+    }
+
+    /**
+     * 根据字典类型查询字典数据信息
+     */
+    @GetMapping(value = "/type/{dictType}")
+    public AjaxResult dictType(@PathVariable String dictType)
+    {
+        List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
+        if (StringUtils.isNull(data))
+        {
+            data = new ArrayList<SysDictData>();
+        }
+        return AjaxResult.success(data);
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典数据", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setCreateBy(getUsername());
+        return toAjax(dictDataService.insertDictData(dict));
+    }
+
+    /**
+     * 修改保存字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDictData dict)
+    {
+        dict.setUpdateBy(getUsername());
+        return toAjax(dictDataService.updateDictData(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{dictCodes}")
+    public AjaxResult remove(@PathVariable Long[] dictCodes)
+    {
+        dictDataService.deleteDictDataByIds(dictCodes);
+        return success();
+    }
+}

+ 132 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysDictTypeController.java

@@ -0,0 +1,132 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysDictType;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.service.ISysDictTypeService;
+
+/**
+ * 数据字典信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/dict/type")
+public class SysDictTypeController extends BaseController
+{
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+    @PreAuthorize("@ss.hasPermi('system:dict:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysDictType dictType)
+    {
+        startPage();
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        return getDataTable(list);
+    }
+
+    @Log(title = "字典类型", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:dict:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysDictType dictType)
+    {
+        List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
+        ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
+        util.exportExcel(response, list, "字典类型");
+    }
+
+    /**
+     * 查询字典类型详细
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:query')")
+    @GetMapping(value = "/{dictId}")
+    public AjaxResult getInfo(@PathVariable Long dictId)
+    {
+        return AjaxResult.success(dictTypeService.selectDictTypeById(dictId));
+    }
+
+    /**
+     * 新增字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:add')")
+    @Log(title = "字典类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setCreateBy(getUsername());
+        return toAjax(dictTypeService.insertDictType(dict));
+    }
+
+    /**
+     * 修改字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
+    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysDictType dict)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
+        {
+            return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+        }
+        dict.setUpdateBy(getUsername());
+        return toAjax(dictTypeService.updateDictType(dict));
+    }
+
+    /**
+     * 删除字典类型
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{dictIds}")
+    public AjaxResult remove(@PathVariable Long[] dictIds)
+    {
+        dictTypeService.deleteDictTypeByIds(dictIds);
+        return success();
+    }
+
+    /**
+     * 刷新字典缓存
+     */
+    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
+    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
+    @DeleteMapping("/refreshCache")
+    public AjaxResult refreshCache()
+    {
+        dictTypeService.resetDictCache();
+        return AjaxResult.success();
+    }
+
+    /**
+     * 获取字典选择框列表
+     */
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
+        return AjaxResult.success(dictTypes);
+    }
+}

+ 29 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysIndexController.java

@@ -0,0 +1,29 @@
+package com.ktg.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.config.RuoYiConfig;
+import com.ktg.common.utils.StringUtils;
+
+/**
+ * 首页
+ *
+ * @author ruoyi
+ */
+@RestController
+public class SysIndexController
+{
+    /** 系统基础配置 */
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    /**
+     * 访问首页,提示语
+     */
+    @RequestMapping("/")
+    public String index()
+    {
+        return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
+    }
+}

+ 86 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysLoginController.java

@@ -0,0 +1,86 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import java.util.Set;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.constant.Constants;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysMenu;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.domain.model.LoginBody;
+import com.ktg.common.utils.SecurityUtils;
+import com.ktg.framework.web.service.SysLoginService;
+import com.ktg.framework.web.service.SysPermissionService;
+import com.ktg.system.service.ISysMenuService;
+
+/**
+ * 登录验证
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class SysLoginController
+{
+    @Autowired
+    private SysLoginService loginService;
+
+    @Autowired
+    private ISysMenuService menuService;
+
+    @Autowired
+    private SysPermissionService permissionService;
+
+    /**
+     * 登录方法
+     * 
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @PostMapping("/login")
+    public AjaxResult login(@RequestBody LoginBody loginBody)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        // 生成令牌
+        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+                loginBody.getUuid());
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
+    /**
+     * 获取用户信息
+     * 
+     * @return 用户信息
+     */
+    @GetMapping("getInfo")
+    public AjaxResult getInfo()
+    {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        // 角色集合
+        Set<String> roles = permissionService.getRolePermission(user);
+        // 权限集合
+        Set<String> permissions = permissionService.getMenuPermission(user);
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("user", user);
+        ajax.put("roles", roles);
+        ajax.put("permissions", permissions);
+        return ajax;
+    }
+
+    /**
+     * 获取路由信息
+     * 
+     * @return 路由信息
+     */
+    @GetMapping("getRouters")
+    public AjaxResult getRouters()
+    {
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
+        return AjaxResult.success(menuService.buildMenus(menus));
+    }
+}

+ 142 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysMenuController.java

@@ -0,0 +1,142 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysMenu;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.system.service.ISysMenuService;
+
+/**
+ * 菜单信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/menu")
+public class SysMenuController extends BaseController
+{
+    @Autowired
+    private ISysMenuService menuService;
+
+    /**
+     * 获取菜单列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:list')")
+    @GetMapping("/list")
+    public AjaxResult list(SysMenu menu)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
+        return AjaxResult.success(menus);
+    }
+
+    /**
+     * 根据菜单编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:query')")
+    @GetMapping(value = "/{menuId}")
+    public AjaxResult getInfo(@PathVariable Long menuId)
+    {
+        return AjaxResult.success(menuService.selectMenuById(menuId));
+    }
+
+    /**
+     * 获取菜单下拉树列表
+     */
+    @GetMapping("/treeselect")
+    public AjaxResult treeselect(SysMenu menu)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
+        return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
+    }
+
+    /**
+     * 加载对应角色菜单列表树
+     */
+    @GetMapping(value = "/roleMenuTreeselect/{roleId}")
+    public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
+    {
+        List<SysMenu> menus = menuService.selectMenuList(getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
+        ajax.put("menus", menuService.buildMenuTreeSelect(menus));
+        return ajax;
+    }
+
+    /**
+     * 新增菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:add')")
+    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
+        {
+            return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        menu.setCreateBy(getUsername());
+        return toAjax(menuService.insertMenu(menu));
+    }
+
+    /**
+     * 修改菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:edit')")
+    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysMenu menu)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
+        }
+        else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
+        }
+        else if (menu.getMenuId().equals(menu.getParentId()))
+        {
+            return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
+        }
+        menu.setUpdateBy(getUsername());
+        return toAjax(menuService.updateMenu(menu));
+    }
+
+    /**
+     * 删除菜单
+     */
+    @PreAuthorize("@ss.hasPermi('system:menu:remove')")
+    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{menuId}")
+    public AjaxResult remove(@PathVariable("menuId") Long menuId)
+    {
+        if (menuService.hasChildByMenuId(menuId))
+        {
+            return AjaxResult.error("存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(menuId))
+        {
+            return AjaxResult.error("菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.deleteMenuById(menuId));
+    }
+}

+ 121 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageController.java

@@ -0,0 +1,121 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.framework.message.MessageProvider;
+import com.ktg.system.service.ISysUserService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.system.domain.SysMessage;
+import com.ktg.system.service.ISysMessageService;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.common.core.page.TableDataInfo;
+
+/**
+ * 消息Controller
+ * 
+ * @author yinjinlu
+ * @date 2023-03-06
+ */
+@RestController
+@RequestMapping("/system/message")
+public class SysMessageController extends BaseController
+{
+    @Autowired
+    private ISysMessageService sysMessageService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private MessageProvider messageProvider;
+
+    /**
+     * 查询消息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysMessage sysMessage)
+    {
+        startPage();
+        List<SysMessage> list = sysMessageService.selectSysMessageList(sysMessage);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出消息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:export')")
+    @Log(title = "消息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysMessage sysMessage)
+    {
+        List<SysMessage> list = sysMessageService.selectSysMessageList(sysMessage);
+        ExcelUtil<SysMessage> util = new ExcelUtil<SysMessage>(SysMessage.class);
+        util.exportExcel(response, list, "消息数据");
+    }
+
+    /**
+     * 获取消息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:query')")
+    @GetMapping(value = "/{messageId}")
+    public AjaxResult getInfo(@PathVariable("messageId") Long messageId)
+    {
+        return AjaxResult.success(sysMessageService.selectSysMessageByMessageId(messageId));
+    }
+
+    /**
+     * 新增消息
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:add')")
+    @Log(title = "消息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SysMessage sysMessage)
+    {
+        messageProvider.sendMessage(sysMessage);
+        return AjaxResult.success();
+    }
+
+    /**
+     * 修改消息
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:edit')")
+    @Log(title = "消息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SysMessage sysMessage)
+    {
+        return toAjax(sysMessageService.updateSysMessage(sysMessage));
+    }
+
+    /**
+     * 删除消息
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:remove')")
+    @Log(title = "消息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{messageIds}")
+    public AjaxResult remove(@PathVariable Long[] messageIds)
+    {
+        for (Long messageId: messageIds
+             ) {
+            SysMessage sysMessage = sysMessageService.selectSysMessageByMessageId(messageId);
+            sysMessage.setDeletedFlag(UserConstants.YES);
+            sysMessageService.updateSysMessage(sysMessage);
+        }
+        return AjaxResult.success();
+    }
+}

+ 38 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysMessageMobController.java

@@ -0,0 +1,38 @@
+package com.ktg.web.controller.system;
+
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.utils.SecurityUtils;
+import com.ktg.system.domain.SysMessage;
+import com.ktg.system.service.ISysMessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/mobile/system/message")
+public class SysMessageMobController extends BaseController {
+
+    @Autowired
+    private ISysMessageService sysMessageService;
+
+    /**
+     * 查询当前人的消息
+     */
+    @PreAuthorize("@ss.hasPermi('system:message:list')")
+    @GetMapping("/getMyMessage")
+    public TableDataInfo list(SysMessage sysMessage)
+    {
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        startPage();
+        sysMessage.setRecipientId(user.getUserId());
+        List<SysMessage> list = sysMessageService.selectSysMessageList(sysMessage);
+        return getDataTable(list);
+    }
+
+}

+ 91 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysNoticeController.java

@@ -0,0 +1,91 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.system.domain.SysNotice;
+import com.ktg.system.service.ISysNoticeService;
+
+/**
+ * 公告 信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/notice")
+public class SysNoticeController extends BaseController
+{
+    @Autowired
+    private ISysNoticeService noticeService;
+
+    /**
+     * 获取通知公告列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysNotice notice)
+    {
+        startPage();
+        List<SysNotice> list = noticeService.selectNoticeList(notice);
+        return getDataTable(list);
+    }
+
+    /**
+     * 根据通知公告编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:query')")
+    @GetMapping(value = "/{noticeId}")
+    public AjaxResult getInfo(@PathVariable Long noticeId)
+    {
+        return AjaxResult.success(noticeService.selectNoticeById(noticeId));
+    }
+
+    /**
+     * 新增通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:add')")
+    @Log(title = "通知公告", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setCreateBy(getUsername());
+        return toAjax(noticeService.insertNotice(notice));
+    }
+
+    /**
+     * 修改通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
+    @Log(title = "通知公告", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysNotice notice)
+    {
+        notice.setUpdateBy(getUsername());
+        return toAjax(noticeService.updateNotice(notice));
+    }
+
+    /**
+     * 删除通知公告
+     */
+    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
+    @Log(title = "通知公告", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{noticeIds}")
+    public AjaxResult remove(@PathVariable Long[] noticeIds)
+    {
+        return toAjax(noticeService.deleteNoticeByIds(noticeIds));
+    }
+}

+ 141 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysPostController.java

@@ -0,0 +1,141 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.domain.SysPost;
+import com.ktg.system.service.ISysPostService;
+
+/**
+ * 岗位信息操作处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/post")
+public class SysPostController extends BaseController
+{
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取岗位列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(SysPost post)
+    {
+        startPage();
+        List<SysPost> list = postService.selectPostList(post);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询所有有效岗位信息以List方式返回
+     * @return
+     */
+    @GetMapping("/listAll")
+    public AjaxResult listAll(){
+        SysPost post = new SysPost();
+        post.setStatus("0");
+        List<SysPost> list = postService.selectPostList(post);
+        return AjaxResult.success(list);
+    }
+
+    @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:post:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysPost post)
+    {
+        List<SysPost> list = postService.selectPostList(post);
+        ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
+        util.exportExcel(response, list, "岗位数据");
+    }
+
+    /**
+     * 根据岗位编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:query')")
+    @GetMapping(value = "/{postId}")
+    public AjaxResult getInfo(@PathVariable Long postId)
+    {
+        return AjaxResult.success(postService.selectPostById(postId));
+    }
+
+    /**
+     * 新增岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:add')")
+    @Log(title = "岗位管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setCreateBy(getUsername());
+        return toAjax(postService.insertPost(post));
+    }
+
+    /**
+     * 修改岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:edit')")
+    @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysPost post)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
+        {
+            return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
+        {
+            return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
+        }
+        post.setUpdateBy(getUsername());
+        return toAjax(postService.updatePost(post));
+    }
+
+    /**
+     * 删除岗位
+     */
+    @PreAuthorize("@ss.hasPermi('system:post:remove')")
+    @Log(title = "岗位管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{postIds}")
+    public AjaxResult remove(@PathVariable Long[] postIds)
+    {
+        return toAjax(postService.deletePostByIds(postIds));
+    }
+
+    /**
+     * 获取岗位选择框列表
+     */
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        List<SysPost> posts = postService.selectPostAll();
+        return AjaxResult.success(posts);
+    }
+}

+ 142 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysProfileController.java

@@ -0,0 +1,142 @@
+package com.ktg.web.controller.system;
+
+import java.io.IOException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.config.RuoYiConfig;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.domain.model.LoginUser;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.SecurityUtils;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.file.FileUploadUtils;
+import com.ktg.framework.web.service.TokenService;
+import com.ktg.system.service.ISysUserService;
+
+/**
+ * 个人信息 业务处理
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/user/profile")
+public class SysProfileController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private TokenService tokenService;
+
+    /**
+     * 个人信息
+     */
+    @GetMapping
+    public AjaxResult profile()
+    {
+        LoginUser loginUser = getLoginUser();
+        SysUser user = loginUser.getUser();
+        AjaxResult ajax = AjaxResult.success(user);
+        ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
+        ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
+        return ajax;
+    }
+
+    /**
+     * 修改用户
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult updateProfile(@RequestBody SysUser user)
+    {
+        LoginUser loginUser = getLoginUser();
+        SysUser sysUser = loginUser.getUser();
+        user.setUserName(sysUser.getUserName());
+        if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setUserId(sysUser.getUserId());
+        user.setPassword(null);
+        if (userService.updateUserProfile(user) > 0)
+        {
+            // 更新缓存用户信息
+            sysUser.setNickName(user.getNickName());
+            sysUser.setPhonenumber(user.getPhonenumber());
+            sysUser.setEmail(user.getEmail());
+            sysUser.setSex(user.getSex());
+            tokenService.setLoginUser(loginUser);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改个人信息异常,请联系管理员");
+    }
+
+    /**
+     * 重置密码
+     */
+    @Log(title = "个人信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/updatePwd")
+    public AjaxResult updatePwd(String oldPassword, String newPassword)
+    {
+        LoginUser loginUser = getLoginUser();
+        String userName = loginUser.getUsername();
+        String password = loginUser.getPassword();
+        if (!SecurityUtils.matchesPassword(oldPassword, password))
+        {
+            return AjaxResult.error("修改密码失败,旧密码错误");
+        }
+        if (SecurityUtils.matchesPassword(newPassword, password))
+        {
+            return AjaxResult.error("新密码不能与旧密码相同");
+        }
+        if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
+        {
+            // 更新缓存用户密码
+            loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
+            tokenService.setLoginUser(loginUser);
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改密码异常,请联系管理员");
+    }
+
+    /**
+     * 头像上传
+     */
+    @Log(title = "用户头像", businessType = BusinessType.UPDATE)
+    @PostMapping("/avatar")
+    public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
+    {
+        if (!file.isEmpty())
+        {
+            LoginUser loginUser = getLoginUser();
+            String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
+            if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
+            {
+                AjaxResult ajax = AjaxResult.success();
+                ajax.put("imgUrl", avatar);
+                // 更新缓存用户头像
+                loginUser.getUser().setAvatar(avatar);
+                tokenService.setLoginUser(loginUser);
+                return ajax;
+            }
+        }
+        return AjaxResult.error("上传图片异常,请联系管理员");
+    }
+}

+ 38 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysRegisterController.java

@@ -0,0 +1,38 @@
+package com.ktg.web.controller.system;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.model.RegisterBody;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.framework.web.service.SysRegisterService;
+import com.ktg.system.service.ISysConfigService;
+
+/**
+ * 注册验证
+ * 
+ * @author ruoyi
+ */
+@RestController
+public class SysRegisterController extends BaseController
+{
+    @Autowired
+    private SysRegisterService registerService;
+
+    @Autowired
+    private ISysConfigService configService;
+
+    @PostMapping("/register")
+    public AjaxResult register(@RequestBody RegisterBody user)
+    {
+        if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser"))))
+        {
+            return error("当前系统没有开启注册功能!");
+        }
+        String msg = registerService.register(user);
+        return StringUtils.isEmpty(msg) ? success() : error(msg);
+    }
+}

+ 245 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysRoleController.java

@@ -0,0 +1,245 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysRole;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.domain.model.LoginUser;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.framework.web.service.SysPermissionService;
+import com.ktg.framework.web.service.TokenService;
+import com.ktg.system.domain.SysUserRole;
+import com.ktg.system.service.ISysRoleService;
+import com.ktg.system.service.ISysUserService;
+
+/**
+ * 角色信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/role")
+public class SysRoleController extends BaseController
+{
+    @Autowired
+    private ISysRoleService roleService;
+
+    @Autowired
+    private TokenService tokenService;
+    
+    @Autowired
+    private SysPermissionService permissionService;
+    
+    @Autowired
+    private ISysUserService userService;
+
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(SysRole role)
+    {
+        startPage();
+        List<SysRole> list = roleService.selectRoleList(role);
+        return getDataTable(list);
+    }
+
+    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:role:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysRole role)
+    {
+        List<SysRole> list = roleService.selectRoleList(role);
+        ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
+        util.exportExcel(response, list, "角色数据");
+    }
+
+    /**
+     * 根据角色编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping(value = "/{roleId}")
+    public AjaxResult getInfo(@PathVariable Long roleId)
+    {
+        roleService.checkRoleDataScope(roleId);
+        return AjaxResult.success(roleService.selectRoleById(roleId));
+    }
+
+    /**
+     * 新增角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:add')")
+    @Log(title = "角色管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysRole role)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+        {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+        {
+            return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setCreateBy(getUsername());
+        return toAjax(roleService.insertRole(role));
+
+    }
+
+    /**
+     * 修改保存角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
+        {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
+        }
+        else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
+        {
+            return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
+        }
+        role.setUpdateBy(getUsername());
+        
+        if (roleService.updateRole(role) > 0)
+        {
+            // 更新缓存用户权限
+            LoginUser loginUser = getLoginUser();
+            if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
+            {
+                loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
+                loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
+                tokenService.setLoginUser(loginUser);
+            }
+            return AjaxResult.success();
+        }
+        return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
+    }
+
+    /**
+     * 修改保存数据权限
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/dataScope")
+    public AjaxResult dataScope(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        return toAjax(roleService.authDataScope(role));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody SysRole role)
+    {
+        roleService.checkRoleAllowed(role);
+        roleService.checkRoleDataScope(role.getRoleId());
+        role.setUpdateBy(getUsername());
+        return toAjax(roleService.updateRoleStatus(role));
+    }
+
+    /**
+     * 删除角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:remove')")
+    @Log(title = "角色管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{roleIds}")
+    public AjaxResult remove(@PathVariable Long[] roleIds)
+    {
+        return toAjax(roleService.deleteRoleByIds(roleIds));
+    }
+
+    /**
+     * 获取角色选择框列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:query')")
+    @GetMapping("/optionselect")
+    public AjaxResult optionselect()
+    {
+        return AjaxResult.success(roleService.selectRoleAll());
+    }
+
+    /**
+     * 查询已分配用户角色列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/authUser/allocatedList")
+    public TableDataInfo allocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectAllocatedList(user);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询未分配用户角色列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:list')")
+    @GetMapping("/authUser/unallocatedList")
+    public TableDataInfo unallocatedList(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUnallocatedList(user);
+        return getDataTable(list);
+    }
+
+    /**
+     * 取消授权用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/cancel")
+    public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
+    {
+        return toAjax(roleService.deleteAuthUser(userRole));
+    }
+
+    /**
+     * 批量取消授权用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/cancelAll")
+    public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
+    {
+        return toAjax(roleService.deleteAuthUsers(roleId, userIds));
+    }
+
+    /**
+     * 批量选择用户授权
+     */
+    @PreAuthorize("@ss.hasPermi('system:role:edit')")
+    @Log(title = "角色管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authUser/selectAll")
+    public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
+    {
+        roleService.checkRoleDataScope(roleId);
+        return toAjax(roleService.insertAuthUsers(roleId, userIds));
+    }
+}

+ 236 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/SysUserController.java

@@ -0,0 +1,236 @@
+package com.ktg.web.controller.system;
+
+import java.util.List;
+import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import com.ktg.common.annotation.Log;
+import com.ktg.common.constant.UserConstants;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysRole;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.common.enums.BusinessType;
+import com.ktg.common.utils.SecurityUtils;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.system.service.ISysPostService;
+import com.ktg.system.service.ISysRoleService;
+import com.ktg.system.service.ISysUserService;
+
+/**
+ * 用户信息
+ * 
+ * @author ruoyi
+ */
+@RestController
+@RequestMapping("/system/user")
+public class SysUserController extends BaseController
+{
+    @Autowired
+    private ISysUserService userService;
+
+    @Autowired
+    private ISysRoleService roleService;
+
+    @Autowired
+    private ISysPostService postService;
+
+    /**
+     * 获取用户列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(SysUser user)
+    {
+        startPage();
+        List<SysUser> list = userService.selectUserList(user);
+        return getDataTable(list);
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:export')")
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysUser user)
+    {
+        List<SysUser> list = userService.selectUserList(user);
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        util.exportExcel(response, list, "用户数据");
+    }
+
+    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('system:user:import')")
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        List<SysUser> userList = util.importExcel(file.getInputStream());
+        String operName = getUsername();
+        String message = userService.importUser(userList, updateSupport, operName);
+        return AjaxResult.success(message);
+    }
+
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        util.importTemplateExcel(response, "用户数据");
+    }
+
+    /**
+     * 根据用户编号获取详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping(value = { "/", "/{userId}" })
+    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
+    {
+        userService.checkUserDataScope(userId);
+        AjaxResult ajax = AjaxResult.success();
+        List<SysRole> roles = roleService.selectRoleAll();
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        ajax.put("posts", postService.selectPostAll());
+        if (StringUtils.isNotNull(userId))
+        {
+            SysUser sysUser = userService.selectUserById(userId);
+            ajax.put(AjaxResult.DATA_TAG, sysUser);
+            ajax.put("postIds", postService.selectPostListByUserId(userId));
+            ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
+        }
+        return ajax;
+    }
+
+    /**
+     * 新增用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:add')")
+    @Log(title = "用户管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@Validated @RequestBody SysUser user)
+    {
+        if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setCreateBy(getUsername());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        return toAjax(userService.insertUser(user));
+    }
+
+    /**
+     * 修改用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@Validated @RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        if (StringUtils.isNotEmpty(user.getPhonenumber())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getEmail())
+                && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
+        {
+            return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
+        }
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.updateUser(user));
+    }
+
+    /**
+     * 删除用户
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:remove')")
+    @Log(title = "用户管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{userIds}")
+    public AjaxResult remove(@PathVariable Long[] userIds)
+    {
+        if (ArrayUtils.contains(userIds, getUserId()))
+        {
+            return error("当前用户不能删除");
+        }
+        return toAjax(userService.deleteUserByIds(userIds));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/resetPwd")
+    public AjaxResult resetPwd(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.resetPwd(user));
+    }
+
+    /**
+     * 状态修改
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeStatus")
+    public AjaxResult changeStatus(@RequestBody SysUser user)
+    {
+        userService.checkUserAllowed(user);
+        userService.checkUserDataScope(user.getUserId());
+        user.setUpdateBy(getUsername());
+        return toAjax(userService.updateUserStatus(user));
+    }
+
+    /**
+     * 根据用户编号获取授权角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:query')")
+    @GetMapping("/authRole/{userId}")
+    public AjaxResult authRole(@PathVariable("userId") Long userId)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        SysUser user = userService.selectUserById(userId);
+        List<SysRole> roles = roleService.selectRolesByUserId(userId);
+        ajax.put("user", user);
+        ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+        return ajax;
+    }
+
+    /**
+     * 用户授权角色
+     */
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
+    @Log(title = "用户管理", businessType = BusinessType.GRANT)
+    @PutMapping("/authRole")
+    public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
+    {
+        userService.checkUserDataScope(userId);
+        userService.insertUserAuth(userId, roleIds);
+        return success();
+    }
+}

+ 103 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/UserController.java

@@ -0,0 +1,103 @@
+package com.ktg.web.controller.system;
+
+
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.common.core.domain.model.LoginUser;
+import com.ktg.common.utils.SecurityUtils;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.framework.web.service.MobileLoginService;
+import com.ktg.framework.web.service.TokenService;
+import com.ktg.system.domain.LoginParams;
+import com.ktg.system.service.ISysUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 登录控制器
+ *
+ * @author SK
+ * @since 2018/6/13
+ */
+@Api("用户信息")
+@RestController
+@RequestMapping("/mobile/user")
+public class UserController {
+
+    @Autowired
+    private ISysUserService sysUserService;
+
+
+    @Autowired
+    private TokenService tokenService;
+
+    @Autowired
+    private MobileLoginService loginService;
+
+    /**
+     * 注册用户
+     *
+     * @return -1 用户名或密码错误  -2 账号冻结  -3 账号锁定 1 成功  -4 验证码错误
+     */
+    @PostMapping("/registerUser")
+    @ResponseBody
+    public AjaxResult registerUser(HttpServletRequest request) {
+        String phoneNo = request.getParameter("phoneNo");
+        String validCode = request.getParameter("validCode");
+        // 登录结果
+        LoginParams loginParams = new LoginParams();
+        loginParams.setPhoneNo(phoneNo);
+        loginParams.setValidCode(validCode);
+        return loginService.registerUser(loginParams);
+    }
+
+    /**
+     * 获取用户信息
+     *
+     * @return 用户信息
+     */
+    @ApiOperation("获取用户信息")
+    @ApiResponses({
+            @ApiResponse(code = 200,message = "查询成功",response = AjaxResult.class),
+    })
+    @GetMapping("getUserInfo")
+    public AjaxResult getUserInfo(HttpServletRequest request) {
+        LoginUser loginUser = tokenService.getLoginUser(request);
+        SysUser user = sysUserService.selectUserById(loginUser.getUser().getUserId());
+        AjaxResult ajax = AjaxResult.success();
+        ajax.put("user", user);
+        return ajax;
+    }
+
+    @PostMapping({"saveUserInfo"})
+    @ResponseBody
+    public AjaxResult saveUserInfo(SysUser user, HttpServletRequest request) {
+        AjaxResult ajax = AjaxResult.success("个人信息修改成功!");
+        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
+        currentUser = sysUserService.selectUserById(currentUser.getUserId());
+        if (StringUtils.isNotBlank(user.getNickName())) {
+            currentUser.setNickName(user.getNickName());
+        }
+        if (StringUtils.isNotBlank(user.getEmail())) {
+            currentUser.setEmail(user.getEmail());
+        } else {
+            currentUser.setEmail("");
+        }
+        if (StringUtils.isNotBlank(user.getPhonenumber())) {
+            currentUser.setPhonenumber(user.getPhonenumber());
+        } else {
+            currentUser.setPhonenumber("");
+        }
+        if (StringUtils.isNotBlank(user.getSex())) {
+            currentUser.setSex(user.getSex());
+        }
+        sysUserService.updateUser(currentUser);
+        return ajax;
+    }
+}

+ 52 - 0
ktg-admin/src/main/java/com/ktg/web/controller/system/UserTaskController.java

@@ -0,0 +1,52 @@
+package com.ktg.web.controller.system;
+
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.page.TableDataInfo;
+import com.ktg.system.domain.UserTask;
+import com.ktg.system.service.IUserTaskService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Api("用户的代办已办任务")
+@RestController
+@RequestMapping("/mobile/usertask")
+public class UserTaskController extends BaseController {
+
+    @Autowired
+    private IUserTaskService userTaskService;
+
+    /**
+     * 查询待处理的任务和单据
+     * 1.所有自己起草的,草稿状态的单据(目前阶段只实现此条)
+     * 2.根据具体的业务审批流程配置,需要自己审批的单据
+     */
+    @ApiOperation("查询待处理的任务和单据(分页)")
+    @GetMapping("/listTodo")
+    public TableDataInfo listTodoList(String userName)
+    {
+        startPage();
+        List<UserTask> list = userTaskService.listTodoList(userName);
+        return getDataTable(list);
+    }
+
+    /**
+     * 查询已处理的任务和单据
+     * 1.所有自己起草,非草稿状态的单据(目前阶段只实现此条)
+     * 2.根据具体的业务审批流程配置,流经自己的单据
+     */
+    @ApiOperation("查询已处理的任务和单据(分页)")
+    @GetMapping("/listFinished")
+    public TableDataInfo listFinishedList(String userName)
+    {
+        startPage();
+        List<UserTask> list = userTaskService.listFinishedList(userName);
+        return getDataTable(list);
+    }
+
+}

+ 25 - 0
ktg-admin/src/main/java/com/ktg/web/controller/tool/SwaggerController.java

@@ -0,0 +1,25 @@
+package com.ktg.web.controller.tool;
+
+import com.ktg.common.core.controller.BaseController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+/**
+ * swagger 接口
+ * 
+ * @author ruoyi
+ */
+@Controller
+@RequestMapping("/tool/swagger")
+public class SwaggerController extends BaseController
+{
+    @PreAuthorize("@ss.hasPermi('tool:swagger:view')")
+    @GetMapping()
+    public String index()
+    {
+        return redirect("/swagger-ui.html");
+    }
+}

+ 181 - 0
ktg-admin/src/main/java/com/ktg/web/controller/tool/TestController.java

@@ -0,0 +1,181 @@
+package com.ktg.web.controller.tool;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ktg.common.core.controller.BaseController;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.utils.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * swagger 用户测试方法
+ * 
+ * @author ruoyi
+ */
+@Api("用户信息管理")
+@RestController
+@RequestMapping("/test/user")
+public class TestController extends BaseController
+{
+    private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
+    {
+        users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
+        users.put(2, new UserEntity(2, "ry", "admin123", "15666666666"));
+    }
+
+    @ApiOperation("获取用户列表")
+    @GetMapping("/list")
+    public AjaxResult userList()
+    {
+        List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
+        return AjaxResult.success(userList);
+    }
+
+    @ApiOperation("获取用户详细")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+    @GetMapping("/{userId}")
+    public AjaxResult getUser(@PathVariable Integer userId)
+    {
+        if (!users.isEmpty() && users.containsKey(userId))
+        {
+            return AjaxResult.success(users.get(userId));
+        }
+        else
+        {
+            return error("用户不存在");
+        }
+    }
+
+    @ApiOperation("新增用户")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer", dataTypeClass = Integer.class),
+        @ApiImplicitParam(name = "username", value = "用户名称", dataType = "String", dataTypeClass = String.class),
+        @ApiImplicitParam(name = "password", value = "用户密码", dataType = "String", dataTypeClass = String.class),
+        @ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String", dataTypeClass = String.class)
+    })
+    @PostMapping("/save")
+    public AjaxResult save(UserEntity user)
+    {
+        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
+        {
+            return error("用户ID不能为空");
+        }
+        return AjaxResult.success(users.put(user.getUserId(), user));
+    }
+
+    @ApiOperation("更新用户")
+    @PutMapping("/update")
+    public AjaxResult update(@RequestBody UserEntity user)
+    {
+        if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
+        {
+            return error("用户ID不能为空");
+        }
+        if (users.isEmpty() || !users.containsKey(user.getUserId()))
+        {
+            return error("用户不存在");
+        }
+        users.remove(user.getUserId());
+        return AjaxResult.success(users.put(user.getUserId(), user));
+    }
+
+    @ApiOperation("删除用户信息")
+    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path", dataTypeClass = Integer.class)
+    @DeleteMapping("/{userId}")
+    public AjaxResult delete(@PathVariable Integer userId)
+    {
+        if (!users.isEmpty() && users.containsKey(userId))
+        {
+            users.remove(userId);
+            return success();
+        }
+        else
+        {
+            return error("用户不存在");
+        }
+    }
+}
+
+@ApiModel(value = "UserEntity", description = "用户实体")
+class UserEntity
+{
+    @ApiModelProperty("用户ID")
+    private Integer userId;
+
+    @ApiModelProperty("用户名称")
+    private String username;
+
+    @ApiModelProperty("用户密码")
+    private String password;
+
+    @ApiModelProperty("用户手机")
+    private String mobile;
+
+    public UserEntity()
+    {
+
+    }
+
+    public UserEntity(Integer userId, String username, String password, String mobile)
+    {
+        this.userId = userId;
+        this.username = username;
+        this.password = password;
+        this.mobile = mobile;
+    }
+
+    public Integer getUserId()
+    {
+        return userId;
+    }
+
+    public void setUserId(Integer userId)
+    {
+        this.userId = userId;
+    }
+
+    public String getUsername()
+    {
+        return username;
+    }
+
+    public void setUsername(String username)
+    {
+        this.username = username;
+    }
+
+    public String getPassword()
+    {
+        return password;
+    }
+
+    public void setPassword(String password)
+    {
+        this.password = password;
+    }
+
+    public String getMobile()
+    {
+        return mobile;
+    }
+
+    public void setMobile(String mobile)
+    {
+        this.mobile = mobile;
+    }
+}

+ 126 - 0
ktg-admin/src/main/java/com/ktg/web/core/config/SwaggerConfig.java

@@ -0,0 +1,126 @@
+package com.ktg.web.core.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.ktg.common.config.RuoYiConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.ApiKey;
+import springfox.documentation.service.AuthorizationScope;
+import springfox.documentation.service.Contact;
+import springfox.documentation.service.SecurityReference;
+import springfox.documentation.service.SecurityScheme;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spi.service.contexts.SecurityContext;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * Swagger2的接口配置
+ * 
+ * @author ruoyi
+ */
+@Configuration
+public class SwaggerConfig
+{
+    /** 系统基础配置 */
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    /** 是否开启swagger */
+    @Value("${swagger.enabled}")
+    private boolean enabled;
+
+    /** 设置请求的统一前缀 */
+    @Value("${swagger.pathMapping}")
+    private String pathMapping;
+
+    /**
+     * 创建API
+     */
+    @Bean
+    public Docket createRestApi()
+    {
+        return new Docket(DocumentationType.OAS_30)
+                // 是否启用Swagger
+                .enable(enabled)
+                // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
+                .apiInfo(apiInfo())
+                // 设置哪些接口暴露给Swagger展示
+                .select()
+                // 扫描所有有注解的api,用这种方式更灵活
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+                // 扫描指定包中的swagger注解
+                // .apis(RequestHandlerSelectors.basePackage("com.ktg.project.tool.swagger"))
+                // 扫描所有 .apis(RequestHandlerSelectors.any())
+                .paths(PathSelectors.any())
+                .build()
+                /* 设置安全模式,swagger可以设置访问token */
+                .securitySchemes(securitySchemes())
+                .securityContexts(securityContexts())
+                .pathMapping(pathMapping);
+    }
+
+    /**
+     * 安全模式,这里指定token通过Authorization头请求头传递
+     */
+    private List<SecurityScheme> securitySchemes()
+    {
+        List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
+        apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
+        return apiKeyList;
+    }
+
+    /**
+     * 安全上下文
+     */
+    private List<SecurityContext> securityContexts()
+    {
+        List<SecurityContext> securityContexts = new ArrayList<>();
+        securityContexts.add(
+                SecurityContext.builder()
+                        .securityReferences(defaultAuth())
+                        .operationSelector(o -> o.requestMappingPattern().matches("/.*"))
+                        .build());
+        return securityContexts;
+    }
+
+    /**
+     * 默认的安全上引用
+     */
+    private List<SecurityReference> defaultAuth()
+    {
+        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
+        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
+        authorizationScopes[0] = authorizationScope;
+        List<SecurityReference> securityReferences = new ArrayList<>();
+        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
+        return securityReferences;
+    }
+
+    /**
+     * 添加摘要信息
+     */
+    private ApiInfo apiInfo()
+    {
+        // 用ApiInfoBuilder进行定制
+        return new ApiInfoBuilder()
+                // 设置标题
+                .title("标题:若依管理系统_接口文档")
+                // 描述
+                .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
+                // 作者信息
+                .contact(new Contact(ruoyiConfig.getName(), null, null))
+                // 版本
+                .version("版本号:" + ruoyiConfig.getVersion())
+                .build();
+    }
+}

+ 39 - 0
ktg-admin/src/main/java/com/ktg/web/core/config/UReportConfig.java

@@ -0,0 +1,39 @@
+package com.ktg.web.core.config;
+
+import com.bstek.ureport.definition.datasource.BuildinDatasource;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+@EnableAutoConfiguration
+@Configuration
+public class UReportConfig implements BuildinDatasource {
+
+    @Resource
+    DataSource dataSource;
+
+    /**
+     * 返回数据源的名称
+     * @return
+     */
+    @Override
+    public String name() {
+        return "内置数据源";
+    }
+
+    @Override
+    public Connection getConnection() {
+        try {
+            return dataSource.getConnection();
+        } catch (SQLException e) {
+            e.printStackTrace();
+            System.out.println("连接数据源失败!");
+        }
+        return null;
+    }
+}
+

+ 1 - 0
ktg-admin/src/main/resources/META-INF/spring-devtools.properties

@@ -0,0 +1 @@
+restart.include.json=/com.alibaba.fastjson.*.jar

Some files were not shown because too many files changed in this diff