代码初始化

master
17737207832 1 month ago
commit f9d9a4a254

3
.gitattributes vendored

@ -0,0 +1,3 @@
*.js linguist-language=java
*.css linguist-language=java
*.html linguist-language=java

17
.gitignore vendored

@ -0,0 +1,17 @@
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
classes
/target/
/.project/
/.metadata/
/logs/

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>skyeye</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 智能制造云办公
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.

@ -0,0 +1,36 @@
# erp_pro
#### Description
基于SpringBoot框架和SaaS模式立志为中小企业提供开源好用的ERP软件目前专注进销存+财务功能。主要模块有零售管理、采购管理、销售管理、仓库管理、财务管理、报表查询、系统管理等。支持预付款、收入支出、仓库调拨、组装拆卸、订单等特色功能。拥有库存状况、出入库统计等报表。同时对角色和权限进行了细致全面控制,精确到每个按钮和菜单。
#### 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/)

@ -0,0 +1,190 @@
# :tw-1f308: erp-pro
> Skyeye云源代码采用Springboot + winUI + UNI-APP的低代码平台开发模式。包含30多个应用模块、50多种电子流程CRM、PM、ERP、MES、ADM、EHR、笔记、知识库、项目、门店、商城、财务、多班次考勤、薪资、招聘、云售后、论坛、公告、问卷、报表设计、工作流、日程、云盘等全面管理实现智能制造行业一体化管理。
**郑重声明:**
**1. Skyeye云【源代码】针对 {星球用户} 开源。拿到源码后可进行学习、毕设、企业等使用。**
**2. [开发文档](https://articles.zsxq.com/id_xi3xhacte72g.html) [视频教程](https://space.bilibili.com/87396008/channel/series)**
**3. [常见问题](https://gitee.com/dromara/skyeye/blob/company_server/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98.md),优先看这个。《《《《《《《《《《《《《《这个文件必看,有`移动端`的详细说明。**
**4. 我们的功能多达500个功能点包含PC和移动端。本着`姜太公钓鱼愿者上钩`的心态来开放星球用户。`Skyeye云的功能是全网最全价格最低的一款软件没有之一`。如果你买了之后觉得不划算那么进入星球后1个月内你可以找一套具备相同功能的软件源码提供给作者并给作者提供一年的免费更新和维护作者会原价退还给您。**
**为什么推荐使用本项目?**
① 无论你是学生、个人与企业,进入星球后皆可 100% 免费使用不用保留类作者、Copyright 信息。
② 代码全部开放,让你可以了解整个项目的架构设计。
③ 具备低代码、功能全面、快速便捷开发、无需重复的CRUD等优点短时间内可完成一款系统的开发。
④ [国产开源项目对比--以及Skyeye云功能点](https://docs.qq.com/sheet/DYUtPdWhTbVBITlpL?tab=000001)。
![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/mindMap/compare.png)
本项目的GitCode地址: https://gitcode.com/doc_wei/erp-pro
## 🐶 沟通交流
| | 知识星球 | 微信公众号(Skyeye智能制造云办公) | QQ交流群 |
|:---------------------:|:---------------------:|:--------------------------------:|:--------------------------------:|
| 微信扫码 | ![](https://gitee.com/dromara/skyeye/raw/company_server/images/mindMap/知识星球.png) | ![](https://gitee.com/dromara/skyeye/raw/company_server/images/mindMap/微信公众号.jpg) | ![](https://gitee.com/dromara/skyeye/raw/company_server/images/mindMap/Dromara-Skyeye云交流群群聊二维码.png) |
## 项目框架介绍
### 环境依赖
| 依赖 | 版本 | 端口 |
|:---------------------:|:---------------------:|:---------------------:|
| Java | 1.8 | 无 |
| rocket MQ | 4.9.2 | 9876 |
| Redis | 5.0 / 6.0 | 6379 |
| nacos | 2.3.0 | 9000 |
| MySQL | 5.7或更高版本 | 3308 |
### 微服务项目
> 介绍整体微服务的目录结构以及端口的占用情况。
| 工程 | 端口 | 介绍 | jar包名称 |
|:---------------------:|:---------------------:|:---------------------:|:---------------------:|
| - | - | 后台微服务公共配置项 |
|skyeye-web |8080 | **前端工程** |web.jar |
|skyeye-promote |8081 | **基础工程** (包含用户、组织、权限、API、消息队列、Skyeye系列的服务注册等基础服务) **优先启动该工程** 。 |skyeye-web.jar |
|skyeye-shop |8082 |商城 |shop-web.jar |
|skyeye-flowable |8083 |工作流 |flowable-web.jar |
|skyeye-report |8085 |报表设计器 |report-web.jar |
|xxl-job-2.3.0 |8200 |定时任务 |xxl-job-admin-2.3.0.jar |
|skyeye-school |8084 |学校模块 |school-web.jar |
|skyeye-wages |8101 |薪资模块 |wages-web.jar |
|skyeye-deploy |8010 |部署模块 |deploy-web.war |
|skyeye-adm |8103 |行政模块 |adm-web.jar |
|skyeye-boss |8104 |招聘模块 |boss-web.jar |
|skyeye-checkwork |8105 |考勤模块 |checkwork-web.jar |
|skyeye-crm |8102 |客户管理模块 |crm-web.jar |
|skyeye-ifs |8107 |财务模块 |ifs-web.jar |
|skyeye-project |8109 |PM项目管理模块 |project-web.jar |
|skyeye-erp |8106 |ERP+生产模块 |erp-web.jar |
|skyeye-seal-service |8108 |售后服务模块 |seal-service-web.jar |
## :tw-1f31e: 架构介绍
![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/mindMap/image11.png)
### :jack_o_lantern: 技术选型
#### 后端技术:
| 框架 | 说明 | 版本 | 学习指南 |
|---|---|---|---|
| [Spring Cloud Alibaba](https://github.com/alibaba/spring-cloud-alibaba) | 微服务框架 | 2.1.0.RELEASE | [文档](https://github.com/YunaiV/SpringBoot-Labs) |
| [Nacos](https://nacos.io/) | 配置中心 & 注册中心 | 1.4.3 | [文档](https://nacos.io/docs/v1/what-is-nacos/) |
| [RocketMQ](https://rocketmq.apache.org/zh/) | 消息队列 | 4.0.0 | [文档](https://rocketmq.apache.org/zh/docs/4.x/) |
| [Sentinel](https://github.com/alibaba/sentinel) | 服务保障| 2.1.0.RELEASE | [文档](https://zhuanlan.zhihu.com/p/681044230) |
| [XXL Job](https://github.com/xuxueli/xxl-job) | 定时任务 | 2.3.0 | [文档](https://www.xuxueli.com/xxl-job/#google_vignette) |
| [Spring Cloud Zuul](https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul.html) | 服务网关 | 3.4.1 | [文档](https://www.jianshu.com/p/cf748031a08d) |
| [MySQL](https://www.mysql.com/cn/) | 数据库服务器 | 5.7 / 8.0+ | |
| [Druid](https://github.com/alibaba/druid) | JDBC 连接池、监控组件 | 1.2.23 | [文档](https://zhuanlan.zhihu.com/p/555116830) |
| [MyBatis Plus](https://baomidou.com/) | MyBatis 增强工具包 | 3.5.7 | [文档](https://baomidou.com/introduce/) |
| [Redis](https://redis.io/) | key-value 数据库 | 5.0 / 6.0 | |
| [Flowable](https://github.com/flowable/flowable-engine) | 工作流引擎 | 6.8.0 | [文档](https://doc.iocoder.cn/bpm/) |
| [Spring Boot Admin](https://github.com/codecentric/spring-boot-admin) | Spring Boot 监控平台 | 2.0.3 | [文档](https://blog.51cto.com/u_15916106/7063036) |
| [hutool](https://www.hutool.cn/) | 一个小而全的Java工具类库 | 5.5.4 | [文档](https://doc.hutool.cn/pages/index/) |
| [Lombok](https://projectlombok.org/) | 消除冗长的 Java 代码 | 1.16.22 | [文档](https://zhuanlan.zhihu.com/p/32779910) |
| [JUnit](https://junit.org/junit5/) | Java 单元测试框架 | 4.12 | - |
#### 前端技术:
| 框架 | 技术 | 版本 | 学习指南 |
|---|---|---|---|
|[layui](https://layui.uimaker.com/)|模块化前端UI| 2.6.7 | [文档](https://layui.uimaker.com/doc/index.html) |
|winui|win10风格UI|自研|-|
|[uni-app](https://uniapp.dcloud.net.cn/)|一个使用Vue.js开发所有前端应用的框架开发者编写一套代码可发布到iOS、Android、Web响应式、以及各种小程序、快应用等多个平台。| VUE3 |[文档](https://uniapp.dcloud.net.cn/component/)|
## :tw-1f30f: PC端效果图
### 基础内容
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|组件管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/20240802001image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/2024080202image.png)||
|布局/操作/属性管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/2024080203image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/2024080204image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/20240802005image.png)|
|菜单/角色/编码管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/20240802010image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/20240802011image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/base/20240802012image.png)|
### CRM
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|客户管理(包括合同、跟单、文档等)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/1image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/2image.png)|
|客户管理(包括合同、跟单、文档等)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/3image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/4image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/5image.png)|
|报表分析|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/6image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/7image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/crm/8image.png)|
### ERP
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|商品管理 **(支持一物一码)** |![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/08image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/07image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/09image.png)|
|采购模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/01image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/02image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/03image.png)|
|采购模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/04image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/05image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/06image.png)|
|销售模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/10image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/11image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/12image.png)|
|报表模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/13image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/14image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erp/15image.png)|
### ERP仓库
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|其他单据管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/1image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/2image.png)|
|仓库管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/3image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/4image.png)||
|盘点管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/5image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/6image.png)||
|出入库管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/7image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/8image.png)||
|商品条形码|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/9image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/erpDepot/10image.png)||
### MES生产
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|生产管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/1image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/2image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/3image.png)|
|设置中心|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/4image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/5image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/6image.png)|
|物料管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/7image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/8image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/9image.png)|
|生产执行|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/10image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/11image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/12image.png)|
|物料确认|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/13image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/14image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/mes/15image.png)|
### 行政办公
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|会议室模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/1image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/2image.png)||
|用品模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/3image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/4image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/5image.png)|
|资产模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/6image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/7image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/8image.png)|
|公文模块|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/9image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/10image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/11image.png)|
|印章,证照,车辆|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/12image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/13image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/oa/14image.png)|
### 售后管理模块
|功能| 效果图 | 效果图 | 效果图 |
|----|-------|-----|------|
|工单管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/1image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/2image.png)||
|配件管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/3image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/4image.png)||
|工人管理|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/5image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/6image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/sealService/7image.png)|
## :tw-1f30f: 移动端效果图
> 移动端和PC端功能类似这里不截那么多图拉。
### 基础模块
| 效果图 | 效果图 | 效果图 | 效果图 |
|--------|-------|-------|-------|
|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/20240730image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073002image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073003image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073004image.png)|
### ERP
| 效果图 | 效果图 | 效果图 | 效果图 |
|--------|-------|-------|-------|
|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073005image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073006image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073007image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073008image.png)|
### CRM
| 效果图 | 效果图 | 效果图 | 效果图 |
|--------|-------|-------|-------|
|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073012image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073009image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073010image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073011image.png)|
### OA
| 效果图 | 效果图 | 效果图 | 效果图 |
|--------|-------|-------|-------|
|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073013image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073014image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073015image.png)|![输入图片说明](https://gitee.com/dromara/skyeye/raw/company_server/images/show/phone/2024073016image.png)|

@ -0,0 +1,18 @@
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
/images/
classes
/target/
/.project/
/.metadata/
/logs/

@ -0,0 +1,18 @@
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
/images/
classes
/target/
/.project/
/.metadata/
/logs/

@ -0,0 +1,34 @@
<?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>skyeye-adm</artifactId>
<groupId>com.skyeye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>adm-common</artifactId>
<dependencies>
<!-- 引入公共Rest模块 -->
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>skyeye-common-rest</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 电子书插件 -->
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>15.8.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/aspose-words-15.8.0-jdk16.jar</systemPath>
</dependency>
</dependencies>
</project>

@ -0,0 +1,27 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.constans;
/**
* @ClassName: DiskCloudConstants
* @Description:
* @author: skyeye--
* @date: 2021/6/14 11:48
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public class DiskCloudConstants {
/**
* ---logo
*/
public static final String SYS_FILE_CONSOLE_IS_FOLDER_LOGO_PATH = "../../assets/images/icon/folder-show.png";
// 文件分享路径
public static final String getFileShareUrl(String id) {
return "tpl/shareFile/shareFilepwd.html?id=" + id;
}
}

@ -0,0 +1,83 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.constans;
/**
* @ClassName: ForumConstants
* @Description:
* @author: skyeye--
* @date: 2021/6/15 21:44
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public class ForumConstants {
// 获取上线的论坛标签
public static final String FORUM_TAG_UP_STATE_LIST = "forum_tag_up_state_list";
// 获取论坛敏感词的redis的key
public static final String FORUM_SENSITIVE_WORDS_ALL = "forum_sensitive_words_all";
public static String forumSensitiveWordsAll() {
return FORUM_SENSITIVE_WORDS_ALL;
}
// 获取论坛帖子评论量的redis的key(实时的)
public static final String FORUM_COMMENT_NUMS_BY_ = "forum_comment_nums_by_";
public static String forumCommentNumsByForumId(String forumId) {
return FORUM_COMMENT_NUMS_BY_ + forumId;
}
// 获取论坛帖子评论量的redis的key(执行上一次定时任务时的)
public static final String FORUMYESTERDAY_COMMENT_NUMS_BYFORUMID = "forum_yesterday_comment_nums_by_";
public static String forumYesterdayCommentNumsByForumId(String forumId) {
return FORUMYESTERDAY_COMMENT_NUMS_BYFORUMID + forumId;
}
// 获取论坛帖子浏览量的redis的key(实时的)
public static final String FORUM_BROWSE_NUMS_BYFORUMID = "forum_browse_nums_by_";
public static String forumBrowseNumsByForumId(String forumId) {
return FORUM_BROWSE_NUMS_BYFORUMID + forumId;
}
// 获取论坛帖子浏览量的redis的key(执行上一次定时任务时的)
public static final String FORUMYESTERDAY_BROWSE_NUMS_BYFORUMID = "forum_yesterday_browse_nums_by_";
public static String forumYesterdayBrowseNumsByForumId(String forumId) {
return FORUMYESTERDAY_BROWSE_NUMS_BYFORUMID + forumId;
}
// 获取用户论坛帖子浏览信息的redis的key
public static final String FORUM_BROWSE_MATION_BYUSERID = "forum_browse_mation_by_";
public static String forumBrowseMationByUserid(String userId) {
return FORUM_BROWSE_MATION_BYUSERID + userId;
}
// 获取论坛帖子每天被浏览过帖子的redis的key
public static final String FORUM_EVERYDAY_BROWSE_IDS_BYTIME = "forum_everyday_browse_ids_by_";
public static String forumEverydayBrowseIdsByTime(String time) {
return FORUM_EVERYDAY_BROWSE_IDS_BYTIME + time;
}
// 获取论坛每个帖子每天的浏览和评论数的redis的key
public static final String EVERYFORUM_EVERYDAY_NUMS_BY_ = "everyforum_everyday_nums_by_";
public static String everyforumEverydayNumsByIdAndTime(String id, String time) {
return EVERYFORUM_EVERYDAY_NUMS_BY_ + id + "_" + time;
}
// 获取solr同步数据的时间的redis的key
public static final String FORUM_SOLR_SYNCHRONOUSTIME = "forum_solr_synchronoustime";
public static String forumSolrSynchronoustime() {
return FORUM_SOLR_SYNCHRONOUSTIME;
}
}

@ -0,0 +1,46 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.constans;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName: NoteConstants
* @Description:
* @author: skyeye--
* @date: 2021/6/14 11:55
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public class NoteConstants {
/**
*
*
* @return
*/
public static final List<Map<String, Object>> getFileMyNoteDefaultFolder() {
List<Map<String, Object>> beans = new ArrayList<>();
Map<String, Object> newnotes = new HashMap<>();
newnotes.put("id", "1");
newnotes.put("name", "最新笔记");
newnotes.put("pId", "0");
newnotes.put("isParent", 0);// 是否是文件夹 0否1是
newnotes.put("icon", "../../assets/images/note-folder.png");// 图标
beans.add(newnotes);
Map<String, Object> myfiles = new HashMap<>();
myfiles.put("id", "2");
myfiles.put("name", "我的文件夹");
myfiles.put("pId", "0");
myfiles.put("isParent", 1);// 是否是文件夹 0否1是
myfiles.put("icon", "../../assets/images/cloud/my-folder-icon.png");// 图标
beans.add(myfiles);
return beans;
}
}

@ -0,0 +1,40 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.rest.checkwork;
import com.skyeye.common.client.ClientConfiguration;
import com.skyeye.rest.checkwork.entity.DayWorkMationRest;
import com.skyeye.rest.checkwork.entity.UserOtherDayMationRest;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @ClassName: CheckWorkService
* @Description:
* @author: skyeye--
* @date: 2022/3/26 20:48
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@FeignClient(value = "${webroot.skyeye-checkwork}", configuration = ClientConfiguration.class)
public interface CheckWorkService {
/**
*
*
* @param dayWorkMationRest
*/
@PostMapping("/queryDayWorkMation")
String queryDayWorkMation(DayWorkMationRest dayWorkMationRest);
/**
* []()
*
* @param userOtherDayMationRest
*/
@PostMapping("/getUserOtherDayMation")
String getUserOtherDayMation(UserOtherDayMationRest userOtherDayMationRest);
}

@ -0,0 +1,36 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.rest.checkwork.entity;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @ClassName: DayWorkMationParams
* @Description:
* @author: skyeye--
* @date: 2022/3/26 20:45
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@ApiModel("判断节假日信息的实体类")
public class DayWorkMationRest implements Serializable {
@ApiModelProperty(value = "月份里面的天", required = "required")
private List<Map<String, Object>> beans;
@ApiModelProperty(value = "月份", required = "required")
private List<String> months;
@ApiModelProperty(value = "考勤班次id", required = "required")
private String timeId;
}

@ -0,0 +1,35 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.rest.checkwork.entity;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @ClassName: UserOtherDayMationParams
* @Description: []( )
* @author: skyeye--
* @date: 2022/3/26 21:00
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@ApiModel("获取用户指定班次在指定月份的其他日期信息[审核通过的](例如:请假,出差,加班等)的实体类")
public class UserOtherDayMationRest implements Serializable {
@ApiModelProperty(value = "用户id", required = "required")
private String userId;
@ApiModelProperty(value = "考勤班次id", required = "required")
private String timeId;
@ApiModelProperty(value = "月份", required = "required")
private List<String> months;
}

@ -0,0 +1,33 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.rest.pro.win;
import com.skyeye.common.client.ClientConfiguration;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.Map;
/**
* @ClassName: SysEveWinDragDropService
* @Description:
* @author: skyeye--
* @date: 2022/8/6 0:18
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@FeignClient(value = "${webroot.skyeye-pro}", configuration = ClientConfiguration.class)
public interface SysEveWinDragDropService {
/**
*
*
* @param params
* @return
*/
@PostMapping("/sysevewindragdrop002")
String insertWinCustomMenu(Map<String, Object> params);
}

@ -0,0 +1,37 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.util;
import com.skyeye.common.util.SpringUtils;
import com.skyeye.eve.rest.mq.JobMateUpdateMation;
import com.skyeye.eve.service.IJobMateMationService;
/**
* @ClassName: MqSendUtil
* @Description: mq
* @author: skyeye--
* @date: 2022/8/3 23:24
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public class MqSendUtil {
/**
*
*
* @param jobId id
* @param status
* @param responseBody
*/
public static void comMQJobMation(String jobId, String status, String responseBody) {
JobMateUpdateMation jobMateUpdateMation = new JobMateUpdateMation();
jobMateUpdateMation.setJobId(jobId);
jobMateUpdateMation.setStatus(status);
jobMateUpdateMation.setResponseBody(responseBody);
IJobMateMationService iJobMateMationService = SpringUtils.getBean(IJobMateMationService.class);
iJobMateMationService.comMQJobMation(jobMateUpdateMation);
}
}

@ -0,0 +1,201 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.util;
import com.aspose.words.Document;
import com.aspose.words.ImageSaveOptions;
import com.aspose.words.SaveFormat;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @ClassName: OfficeUtils
* @Description:
* @author: skyeye--
* @date: 2024/4/30 14:56
* @Copyright: 2024 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public class OfficeUtils {
/**
* aspose.word
* 使aspose-words-15.8.0-jdk16.jar
*
* @return
*/
public static boolean isWordLicense() {
boolean result = false;
try {
String s = "<License><Data><Products><Product>Aspose.Total for Java</Product><Product>Aspose.Words for Java</Product></Products><EditionType>Enterprise</EditionType><SubscriptionExpiry>20991231</SubscriptionExpiry><LicenseExpiry>20991231</LicenseExpiry><SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber></Data><Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature></License>";
ByteArrayInputStream inputStream = new ByteArrayInputStream(s.getBytes());
com.aspose.words.License license = new com.aspose.words.License();
license.setLicense(inputStream);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
//outputStream转inputStream
public static ByteArrayInputStream parse(OutputStream out) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos = (ByteArrayOutputStream) out;
ByteArrayInputStream swapStream = new ByteArrayInputStream(baos.toByteArray());
return swapStream;
}
/**
* wordtxt
*
* @param inputStream
* @param
* @return
* @throws Exception
*/
public static List<BufferedImage> wordToImg(InputStream inputStream) throws Exception {
if (!isWordLicense()) {
return null;
}
try {
Date start = new Date();
Document doc = new Document(inputStream);
ImageSaveOptions options = new ImageSaveOptions(SaveFormat.PNG);
options.setPrettyFormat(true);
options.setUseAntiAliasing(true);
options.setUseHighQualityRendering(true);
int pageCount = doc.getPageCount();
//生成前pageCount张这可以限制输出长图时的页数方法入参可以传值pageNum
/*if (pageCount > pageNum) {
pageCount = pageNum;
}*/
List<BufferedImage> imageList = new ArrayList<>();
for (int i = 0; i < pageCount; i++) {
OutputStream output = new ByteArrayOutputStream();
options.setPageIndex(i);
doc.save(output, options);
ImageInputStream imageInputStream = javax.imageio.ImageIO.createImageInputStream(parse(output));
imageList.add(javax.imageio.ImageIO.read(imageInputStream));
}
List<BufferedImage> imageList2 = new ArrayList<BufferedImage>();
//这个重新生成新的图片是因为直接输出的图片底色为红色
for (int j = 0; j < imageList.size(); j++) {
// 生成新图片
BufferedImage destImage = imageList.get(j);
int w1 = destImage.getWidth();
int h1 = destImage.getHeight();
destImage = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) destImage.getGraphics();
g2.setBackground(Color.LIGHT_GRAY);
g2.clearRect(0, 0, w1, h1);
g2.setPaint(Color.RED);
// 从图片中读取RGB
int[] ImageArrayOne = new int[w1 * h1];
ImageArrayOne = imageList.get(j).getRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 逐行扫描图像中各个像素的RGB到数组中
destImage.setRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 设置上半部分或左半部分的RGB
imageList2.add(destImage);
}
Date end = new Date();
long l = end.getTime() - start.getTime();
long hour = l / (1000 * 60 * 60);
long min = (l - hour * (1000 * 60 * 60)) / (1000 * 60);
long s = (l - hour * (1000 * 60 * 60) - min * 1000 * 60) / (1000);
long ss = (l - hour * (1000 * 60 * 60) - min * 1000 * 60 - s * 1000) / (1000 / 60);
System.out.println("word转图片时间:" + min + "分" + s + "秒" + ss + "毫秒");//hour+"小时"+
return imageList2;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
/**
*
*
* @param isHorizontal truefasle
* @param imgs
* @return
* @throws IOException
*/
public static BufferedImage mergeImage(boolean isHorizontal, List<BufferedImage> imgs) throws IOException {
// 生成新图片
BufferedImage destImage = null;
// 计算新图片的长和高
int allw = 0, allh = 0, allwMax = 0, allhMax = 0;
// 获取总长、总宽、最长、最宽
for (int i = 0; i < imgs.size(); i++) {
BufferedImage img = imgs.get(i);
allw += img.getWidth();
if (imgs.size() != i + 1) {
allh += img.getHeight() + 5;
} else {
allh += img.getHeight();
}
if (img.getWidth() > allwMax) {
allwMax = img.getWidth();
}
if (img.getHeight() > allhMax) {
allhMax = img.getHeight();
}
}
// 创建新图片
if (isHorizontal) {
destImage = new BufferedImage(allw, allhMax, BufferedImage.TYPE_INT_RGB);
} else {
destImage = new BufferedImage(allwMax, allh, BufferedImage.TYPE_INT_RGB);
}
Graphics2D g2 = (Graphics2D) destImage.getGraphics();
g2.setBackground(Color.LIGHT_GRAY);
g2.clearRect(0, 0, allw, allh);
g2.setPaint(Color.RED);
// 合并所有子图片到新图片
int wx = 0, wy = 0;
for (int i = 0; i < imgs.size(); i++) {
BufferedImage img = imgs.get(i);
int w1 = img.getWidth();
int h1 = img.getHeight();
// 从图片中读取RGB
int[] ImageArrayOne = new int[w1 * h1];
ImageArrayOne = img.getRGB(0, 0, w1, h1, ImageArrayOne, 0, w1); // 逐行扫描图像中各个像素的RGB到数组中
if (isHorizontal) { // 水平方向合并
destImage.setRGB(wx, 0, w1, h1, ImageArrayOne, 0, w1); // 设置上半部分或左半部分的RGB
} else { // 垂直方向合并
destImage.setRGB(0, wy, w1, h1, ImageArrayOne, 0, w1); // 设置上半部分或左半部分的RGB
}
wx += w1;
wy += h1 + 5;
}
return destImage;
}
// 测试工具类
public static void main(String[] args) {
//word转图片格式
try {
File file = new File("G:\\test\\test22.docx");
InputStream inStream = new FileInputStream(file);
List<BufferedImage> wordToImg = wordToImg(inStream);
//for(int i=0; i<wordToImg.size(); i++){ //可以保存图片(每页保存为一张)
// ImageIO.write(wordToImg.get(i), "jpg", new File("G:\\test\\"+ i +".png")); //将其保存在C:/imageSort/targetPIC/下
//}
BufferedImage mergeImage = mergeImage(false, wordToImg);
//保存图片(长图)
ImageIO.write(mergeImage, "jpg", new File("G:\\test\\test.png"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,18 @@
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
/images/
classes
/target/
/.project/
/.metadata/
/logs/

@ -0,0 +1,24 @@
<?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>skyeye-adm</artifactId>
<groupId>com.skyeye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>adm-ehr</artifactId>
<dependencies>
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>adm-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.archives.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.archives.entity.Archives;
import com.skyeye.archives.service.ArchivesService;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: ArchivesController
* @Description:
* @author: skyeye--
* @date: 2022/5/10 16:34
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工档案", tags = "员工档案", modelName = "员工档案")
public class ArchivesController {
@Autowired
private ArchivesService archivesService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "querySysStaffArchivesList", value = "查询档案信息列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ArchivesController/querySysStaffArchivesList")
public void querySysStaffArchivesList(InputObject inputObject, OutputObject outputObject) {
archivesService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeSysStaffArchives", value = "新增/编辑员工档案信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Archives.class)
@RequestMapping("/post/ArchivesController/writeSysStaffArchives")
public void writeSysStaffArchives(InputObject inputObject, OutputObject outputObject) {
archivesService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteSysStaffArchivesById", value = "删除员工档案信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/ArchivesController/deleteSysStaffArchivesById")
public void deleteSysStaffArchivesById(InputObject inputObject, OutputObject outputObject) {
archivesService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.archives.dao;
import com.skyeye.archives.entity.Archives;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArchivesDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 12:05
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArchivesDao extends SkyeyeBaseMapper<Archives> {
List<Map<String, Object>> querySysStaffArchivesList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,95 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.archives.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.annotation.unique.UniqueField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Archives
* @Description:
* @author: skyeye--
* @date: 2023/5/20 20:46
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@UniqueField(value = {"objectId", "objectKey", "archivesNumber"})
@RedisCacheField(name = "ehr:archives", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_archives")
@ApiModel("员工档案实体类")
public class Archives extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "archives_number")
@ApiModelProperty(value = "档案编号", required = "required")
private String archivesNumber;
@TableField(value = "company_id")
@ApiModelProperty(value = "管理单位id", required = "required")
private String companyId;
@TableField(exist = false)
@Property(value = "管理单位信息")
private Map<String, Object> companyMation;
@TableField(value = "custody_place")
@ApiModelProperty(value = "档案保管地")
private String custodyPlace;
@TableField(value = "archives_center")
@ApiModelProperty(value = "档案室")
private String archivesCenter;
@TableField(value = "archives_time")
@ApiModelProperty(value = "入档时间", required = "required")
private String archivesTime;
@TableField(value = "education_id")
@ApiModelProperty(value = "档案学历id。数据来源数据字典")
private String educationId;
@TableField(value = "whether_archives")
@ApiModelProperty(value = "是否在档,参考#WhetherEnum", required = "required,num")
private Integer whetherArchives;
@TableField(value = "state")
@ApiModelProperty(value = "是否有效,参考#WhetherEnum", required = "required,num")
private Integer state;
@TableField("remark")
@ApiModelProperty(value = "描述")
private String remark;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.archives.service;
import com.skyeye.archives.entity.Archives;
import com.skyeye.base.business.service.SkyeyeBusinessService;
/**
* @ClassName: ArchivesService
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:25
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArchivesService extends SkyeyeBusinessService<Archives> {
}

@ -0,0 +1,38 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.archives.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.archives.dao.ArchivesDao;
import com.skyeye.archives.entity.Archives;
import com.skyeye.archives.service.ArchivesService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArchivesServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:36
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工档案", groupName = "员工档案", teamAuth = true)
public class ArchivesServiceImpl extends SkyeyeBusinessServiceImpl<ArchivesDao, Archives> implements ArchivesService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.querySysStaffArchivesList(commonPageInfo);
return beans;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.certificate.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.certificate.entity.Certificate;
import com.skyeye.certificate.service.CertificateService;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: CertificateController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:25
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工证书", tags = "员工证书", modelName = "员工证书")
public class CertificateController {
@Autowired
private CertificateService certificateService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryCertificateList", value = "查询员工证书列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/CertificateController/queryCertificateList")
public void queryCertificateList(InputObject inputObject, OutputObject outputObject) {
certificateService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeCertificate", value = "新增/编辑员工证书信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Certificate.class)
@RequestMapping("/post/CertificateController/writeCertificate")
public void writeCertificate(InputObject inputObject, OutputObject outputObject) {
certificateService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteCertificateById", value = "根据id删除员工证书信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/CertificateController/deleteCertificateById")
public void deleteCertificateById(InputObject inputObject, OutputObject outputObject) {
certificateService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.certificate.dao;
import com.skyeye.certificate.entity.Certificate;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: CertificateDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 23:21
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface CertificateDao extends SkyeyeBaseMapper<Certificate> {
List<Map<String, Object>> queryCertificateList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,77 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.certificate.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Certificate
* @Description:
* @author: skyeye--
* @date: 2023/11/15 11:45
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "ehr:certificate", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_certificate")
@ApiModel("员工证书实体类")
public class Certificate extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "certificate_number")
@ApiModelProperty(value = "证书编号", required = "required")
private String certificateNumber;
@TableField(value = "`name`")
@ApiModelProperty(value = "证书名称", required = "required")
private String name;
@TableField(value = "type_id")
@ApiModelProperty(value = "证书类型,数据来自数据字典", required = "required")
private String typeId;
@TableField(exist = false)
@Property(value = "证书类型信息")
private Map<String, Object> typeMation;
@TableField(value = "issue_organ")
@ApiModelProperty(value = "签发机构", required = "required")
private String issueOrgan;
@TableField(value = "issue_time")
@ApiModelProperty(value = "签发时间", required = "required")
private String issueTime;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.certificate.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.certificate.entity.Certificate;
/**
* @ClassName: CertificateService
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:26
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface CertificateService extends SkyeyeBusinessService<Certificate> {
}

@ -0,0 +1,45 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.certificate.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.certificate.dao.CertificateDao;
import com.skyeye.certificate.entity.Certificate;
import com.skyeye.certificate.service.CertificateService;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: CertificateServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:37
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工证书", groupName = "员工证书", teamAuth = true)
public class CertificateServiceImpl extends SkyeyeBusinessServiceImpl<CertificateDao, Certificate> implements CertificateService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryCertificateList(commonPageInfo);
return beans;
}
@Override
public Certificate selectById(String id) {
Certificate certificate = super.selectById(id);
iSysDictDataService.setDataMation(certificate, Certificate::getTypeId);
return certificate;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.contract.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.contract.entity.Contract;
import com.skyeye.contract.service.ContractService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: ContractController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 7:56
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工合同信息", tags = "员工合同信息", modelName = "员工合同信息")
public class ContractController {
@Autowired
private ContractService contractService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryContractList", value = "查询合同列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ContractController/queryContractList")
public void queryContractList(InputObject inputObject, OutputObject outputObject) {
contractService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeContract", value = "新增/编辑员工合同信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Contract.class)
@RequestMapping("/post/ContractController/writeContract")
public void writeContract(InputObject inputObject, OutputObject outputObject) {
contractService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteContractById", value = "根据id删除员工合同信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/ContractController/deleteContractById")
public void deleteContractById(InputObject inputObject, OutputObject outputObject) {
contractService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.contract.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.contract.entity.Contract;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ContractDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 20:55
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ContractDao extends SkyeyeBaseMapper<Contract> {
List<Map<String, Object>> queryContractList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,83 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.contract.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.annotation.unique.UniqueField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Contract
* @Description:
* @author: skyeye--
* @date: 2023/11/15 11:45
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@UniqueField(value = {"contractNumber"})
@RedisCacheField(name = "ehr:contract", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_contract")
@ApiModel("员工合同信息实体类")
public class Contract extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "contract_number")
@ApiModelProperty(value = "合同编号", required = "required")
private String contractNumber;
@TableField(value = "type_id")
@ApiModelProperty(value = "合同类别,参考数据字典", required = "required")
private String typeId;
@TableField(exist = false)
@Property(value = "合同类别信息")
private Map<String, Object> typeMation;
@TableField(value = "mold_id")
@ApiModelProperty(value = "合同类型,参考数据字典", required = "required")
private String moldId;
@TableField(exist = false)
@Property(value = "合同类型信息")
private Map<String, Object> moldMation;
@TableField(value = "start_time")
@ApiModelProperty(value = "开始时间", required = "required")
private String startTime;
@TableField(value = "end_time")
@ApiModelProperty(value = "结束时间", required = "required")
private String endTime;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.contract.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.contract.entity.Contract;
/**
* @ClassName: ContractService
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:28
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ContractService extends SkyeyeBusinessService<Contract> {
}

@ -0,0 +1,46 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.contract.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.contract.dao.ContractDao;
import com.skyeye.contract.entity.Contract;
import com.skyeye.contract.service.ContractService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ContractServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:37
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工合同信息", groupName = "员工合同信息", teamAuth = true)
public class ContractServiceImpl extends SkyeyeBusinessServiceImpl<ContractDao, Contract> implements ContractService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryContractList(commonPageInfo);
return beans;
}
@Override
public Contract selectById(String id) {
Contract contract = super.selectById(id);
iSysDictDataService.setDataMation(contract, Contract::getTypeId);
iSysDictDataService.setDataMation(contract, Contract::getMoldId);
return contract;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.education.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.education.entity.Education;
import com.skyeye.education.service.EducationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: EducationController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 7:56
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工教育背景", tags = "员工教育背景", modelName = "员工教育背景")
public class EducationController {
@Autowired
private EducationService educationService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryEducationList", value = "查询教育背景列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/EducationController/queryEducationList")
public void queryEducationList(InputObject inputObject, OutputObject outputObject) {
educationService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeEducation", value = "新增/编辑员工教育背景信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Education.class)
@RequestMapping("/post/EducationController/writeEducation")
public void writeEducation(InputObject inputObject, OutputObject outputObject) {
educationService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteEducationById", value = "根据id删除员工教育背景信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/EducationController/deleteEducationById")
public void deleteEducationById(InputObject inputObject, OutputObject outputObject) {
educationService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.education.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.education.entity.Education;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: EducationDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 12:04
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface EducationDao extends SkyeyeBaseMapper<Education> {
List<Map<String, Object>> queryEducationList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,93 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.education.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Education
* @Description:
* @author: skyeye--
* @date: 2023/11/15 11:45
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "ehr:education", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_education")
@ApiModel("员工教育背景实体类")
public class Education extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "education_id")
@ApiModelProperty(value = "学历id参考数据字典", required = "required")
private String educationId;
@TableField(exist = false)
@Property(value = "学历信息")
private Map<String, Object> educationMation;
@TableField(value = "start_time")
@ApiModelProperty(value = "入校时间", required = "required")
private String startTime;
@TableField(value = "end_time")
@ApiModelProperty(value = "毕业时间", required = "required")
private String endTime;
@TableField(value = "graduction_school")
@ApiModelProperty(value = "毕业学校", required = "required")
private String graductionSchool;
@TableField(value = "major")
@ApiModelProperty(value = "专业")
private String major;
@TableField(value = "learning_modality_id")
@ApiModelProperty(value = "学习形式,参考数据字典", required = "required")
private String learningModalityId;
@TableField(exist = false)
@Property(value = "学习形式信息")
private Map<String, Object> learningModalityMation;
@TableField(value = "school_nature")
@ApiModelProperty(value = "学校性质,参考数据字典", required = "required")
private String schoolNature;
@TableField(exist = false)
@Property(value = "学校性质信息")
private Map<String, Object> schoolNatureMation;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,21 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.education.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.education.entity.Education;
/**
* @ClassName: EducationService
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:29
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface EducationService extends SkyeyeBusinessService<Education> {
}

@ -0,0 +1,47 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.education.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.education.dao.EducationDao;
import com.skyeye.education.entity.Education;
import com.skyeye.education.service.EducationService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: EducationServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:38
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工教育背景", groupName = "员工教育背景", teamAuth = true)
public class EducationServiceImpl extends SkyeyeBusinessServiceImpl<EducationDao, Education> implements EducationService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryEducationList(commonPageInfo);
return beans;
}
@Override
public Education selectById(String id) {
Education education = super.selectById(id);
iSysDictDataService.setDataMation(education, Education::getEducationId);
iSysDictDataService.setDataMation(education, Education::getLearningModalityId);
iSysDictDataService.setDataMation(education, Education::getSchoolNature);
return education;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.family.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.family.entity.Family;
import com.skyeye.family.service.FamilyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: FamilyController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 7:56
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工家庭成员", tags = "员工家庭成员", modelName = "员工家庭成员")
public class FamilyController {
@Autowired
private FamilyService familyService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryFamilyList", value = "查询家庭情况列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/FamilyController/queryFamilyList")
public void queryFamilyList(InputObject inputObject, OutputObject outputObject) {
familyService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeFamily", value = "新增/编辑员工家庭情况", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Family.class)
@RequestMapping("/post/FamilyController/writeFamily")
public void writeFamily(InputObject inputObject, OutputObject outputObject) {
familyService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteFamilyById", value = "根据id删除员工家庭情况信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/FamilyController/deleteFamilyById")
public void deleteFamilyById(InputObject inputObject, OutputObject outputObject) {
familyService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.family.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import com.skyeye.family.entity.Family;
import java.util.List;
import java.util.Map;
/**
* @ClassName: FamilyDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 18:53
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface FamilyDao extends SkyeyeBaseMapper<Family> {
List<Map<String, Object>> queryFamilyList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,101 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.family.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Family
* @Description:
* @author: skyeye--
* @date: 2023/11/15 11:45
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "ehr:family", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_family")
@ApiModel("员工家庭情况实体类")
public class Family extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "relationship_id")
@ApiModelProperty(value = "与本人关系id参考数据字典", required = "required")
private String relationshipId;
@TableField(exist = false)
@Property(value = "与本人关系信息")
private Map<String, Object> relationshipMation;
@TableField(value = "`name`")
@ApiModelProperty(value = "姓名", required = "required")
private String name;
@TableField(value = "card_type")
@ApiModelProperty(value = "证件类型id参考数据字典", required = "required")
private String cardType;
@TableField(exist = false)
@Property(value = "证件类型信息")
private Map<String, Object> cardTypeMation;
@TableField(value = "card_number")
@ApiModelProperty(value = "证件号码", required = "required")
private String cardNumber;
@TableField(value = "sex")
@ApiModelProperty(value = "性别,参考#SexEnum", required = "required")
private Integer sex;
@TableField(value = "work_unit")
@ApiModelProperty(value = "工作单位", required = "required")
private String workUnit;
@TableField(value = "job")
@ApiModelProperty(value = "职位", required = "required")
private String job;
@TableField(value = "politic_id")
@ApiModelProperty(value = "政治面貌id参考数据字典", required = "required")
private String politicId;
@TableField(exist = false)
@Property(value = "政治面貌信息")
private Map<String, Object> politicMation;
@TableField(value = "emergency_contact")
@ApiModelProperty(value = "是否紧急联系人,参考#WhetherEnum", required = "required")
private String emergencyContact;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.family.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.family.entity.Family;
/**
* @ClassName: FamilyService
* @Description:
* @author: skyeye--
* @date: 2023/5/17 17:32
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface FamilyService extends SkyeyeBusinessService<Family> {
}

@ -0,0 +1,47 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.family.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.family.dao.FamilyDao;
import com.skyeye.family.entity.Family;
import com.skyeye.family.service.FamilyService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: FamilyServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:39
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工家庭成员", groupName = "员工家庭成员", teamAuth = true)
public class FamilyServiceImpl extends SkyeyeBusinessServiceImpl<FamilyDao, Family> implements FamilyService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryFamilyList(commonPageInfo);
return beans;
}
@Override
public Family selectById(String id) {
Family family = super.selectById(id);
iSysDictDataService.setDataMation(family, Family::getCardType);
iSysDictDataService.setDataMation(family, Family::getPoliticId);
iSysDictDataService.setDataMation(family, Family::getRelationshipId);
return family;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.job.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.job.entity.JobResume;
import com.skyeye.job.service.JobResumeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: JobResumeController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 7:57
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工工作履历信息", tags = "员工工作履历信息", modelName = "员工工作履历信息")
public class JobResumeController {
@Autowired
private JobResumeService jobResumeService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryJobResumeList", value = "查询工作履历列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/JobResumeController/queryJobResumeList")
public void queryJobResumeList(InputObject inputObject, OutputObject outputObject) {
jobResumeService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeJobResume", value = "新增/编辑员工工作履历信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = JobResume.class)
@RequestMapping("/post/JobResumeController/writeJobResume")
public void writeJobResume(InputObject inputObject, OutputObject outputObject) {
jobResumeService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteEducationById", value = "根据id删除员工工作履历信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/JobResumeController/deleteJobResumeById")
public void deleteJobResumeById(InputObject inputObject, OutputObject outputObject) {
jobResumeService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.job.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import com.skyeye.job.entity.JobResume;
import java.util.List;
import java.util.Map;
/**
* @ClassName: JobResumeDao
* @Description:
* @author: skyeye--
* @date: 2023/5/18 14:13
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface JobResumeDao extends SkyeyeBaseMapper<JobResume> {
List<Map<String, Object>> queryJobResumeList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,70 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.job.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
/**
* @ClassName: JobResume
* @Description:
* @author: skyeye--
* @date: 2023/11/15 11:45
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "ehr:jobResume", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_job_resume")
@ApiModel("员工工作履历实体类")
public class JobResume extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "start_time")
@ApiModelProperty(value = "任职开始时间", required = "required")
private String startTime;
@TableField(value = "end_time")
@ApiModelProperty(value = "任职结束时间", required = "required")
private String endTime;
@TableField(value = "work_unit")
@ApiModelProperty(value = "任职单位", required = "required")
private String workUnit;
@TableField(value = "department")
@ApiModelProperty(value = "部门", required = "required")
private String department;
@TableField(value = "job")
@ApiModelProperty(value = "职务", required = "required")
private String job;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.job.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.job.entity.JobResume;
/**
* @ClassName: JobResumeService
* @Description:
* @author: skyeye--
* @date: 2023/5/18 14:14
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface JobResumeService extends SkyeyeBusinessService<JobResume> {
}

@ -0,0 +1,38 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.job.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.job.dao.JobResumeDao;
import com.skyeye.job.entity.JobResume;
import com.skyeye.job.service.JobResumeService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: JobResumeServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:39
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工工作履历信息", groupName = "员工工作履历信息", teamAuth = true)
public class JobResumeServiceImpl extends SkyeyeBusinessServiceImpl<JobResumeDao, JobResume> implements JobResumeService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryJobResumeList(commonPageInfo);
return beans;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.language.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.language.entity.Language;
import com.skyeye.language.service.LanguageService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: LanguageController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 7:57
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工语言能力", tags = "员工语言能力", modelName = "员工语言能力")
public class LanguageController {
@Autowired
private LanguageService languageService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryLanguageList", value = "查询语言能力列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/LanguageController/queryLanguageList")
public void queryLanguageList(InputObject inputObject, OutputObject outputObject) {
languageService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeLanguage", value = "新增/编辑员工语言能力", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = Language.class)
@RequestMapping("/post/LanguageController/writeLanguage")
public void writeLanguage(InputObject inputObject, OutputObject outputObject) {
languageService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteLanguageById", value = "根据id删除员工语言能力", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/LanguageController/deleteLanguageById")
public void deleteLanguageById(InputObject inputObject, OutputObject outputObject) {
languageService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.language.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import com.skyeye.language.entity.Language;
import java.util.List;
import java.util.Map;
/**
* @ClassName: LanguageDao
* @Description:
* @author: skyeye--
* @date: 2023/5/18 14:15
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface LanguageDao extends SkyeyeBaseMapper<Language> {
List<Map<String, Object>> queryLanguageList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,67 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.language.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.annotation.unique.UniqueField;
import com.skyeye.common.base.handler.enclosure.bean.Enclosure;
import com.skyeye.common.base.handler.enclosure.bean.EnclosureFace;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.OperatorUserInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: Language
* @Description:
* @author: skyeye--
* @date: 2023/5/20 20:46
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@UniqueField(value = {"objectId", "objectKey", "levelId"})
@RedisCacheField(name = "ehr:language", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_language")
@ApiModel("员工语言能力信息实体类")
public class Language extends OperatorUserInfo implements EnclosureFace {
@TableId("id")
@ApiModelProperty(value = "主键id。为空时新增不为空时编辑")
private String id;
@TableField(value = "level_id")
@ApiModelProperty(value = "语种等级id参考数据字典", required = "required")
private String levelId;
@TableField(exist = false)
@Property(value = "语种等级信息")
private Map<String, Object> levelMation;
@TableField(value = "get_time")
@ApiModelProperty(value = "获取时间", required = "required")
private String getTime;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
@TableField(exist = false)
@ApiModelProperty(value = "附件", required = "json")
private Enclosure enclosure;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.language.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.language.entity.Language;
/**
* @ClassName: LanguageService
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:41
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface LanguageService extends SkyeyeBusinessService<Language> {
}

@ -0,0 +1,44 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.language.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.language.dao.LanguageDao;
import com.skyeye.language.entity.Language;
import com.skyeye.language.service.LanguageService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: LanguageServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:40
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工语言能力", groupName = "员工语言能力", teamAuth = true)
public class LanguageServiceImpl extends SkyeyeBusinessServiceImpl<LanguageDao, Language> implements LanguageService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryLanguageList(commonPageInfo);
return beans;
}
@Override
public Language selectById(String id) {
Language language = super.selectById(id);
iSysDictDataService.setDataMation(language, Language::getLevelId);
return language;
}
}

@ -0,0 +1,75 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.reward.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.reward.entity.RewardPunish;
import com.skyeye.reward.service.RewardPunishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: RewardPunishController
* @Description:
* @author: skyeye--
* @date: 2023/5/17 8:02
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "员工奖惩信息", tags = "员工奖惩信息", modelName = "员工奖惩信息")
public class RewardPunishController {
@Autowired
private RewardPunishService rewardPunishService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryRewardPunishList", value = "查询奖惩列表", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/RewardPunishController/queryRewardPunishList")
public void queryRewardPunishList(InputObject inputObject, OutputObject outputObject) {
rewardPunishService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeRewardPunish", value = "新增/编辑员工奖惩信息", method = "POST", allUse = "2")
@ApiImplicitParams(classBean = RewardPunish.class)
@RequestMapping("/post/RewardPunishController/writeRewardPunish")
public void writeRewardPunish(InputObject inputObject, OutputObject outputObject) {
rewardPunishService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "deleteRewardPunishById", value = "根据id删除员工奖惩信息", method = "DELETE", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/RewardPunishController/deleteRewardPunishById")
public void deleteRewardPunishById(InputObject inputObject, OutputObject outputObject) {
rewardPunishService.deleteById(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.reward.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import com.skyeye.reward.entity.RewardPunish;
import java.util.List;
import java.util.Map;
/**
* @ClassName: RewardPunishDao
* @Description:
* @author: skyeye--
* @date: 2021/8/7 23:41
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface RewardPunishDao extends SkyeyeBaseMapper<RewardPunish> {
List<Map<String, Object>> queryRewardPunishList(CommonPageInfo commonPageInfo);
}

@ -0,0 +1,66 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.reward.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.BaseGeneralInfo;
import lombok.Data;
import java.util.Map;
/**
* @ClassName: RewardPunish
* @Description:
* @author: skyeye--
* @date: 2023/5/20 20:46
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "ehr:rewardPunish", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "sys_staff_reward_punish")
@ApiModel("员工奖惩信息实体类")
public class RewardPunish extends BaseGeneralInfo {
@TableField(value = "reward_punish_time")
@ApiModelProperty(value = "奖惩时间", required = "required")
private String rewardPunishTime;
@TableField(value = "price")
@ApiModelProperty(value = "奖惩金额", required = "double", defaultValue = "0")
private String price;
@TableField(value = "content")
@ApiModelProperty(value = "奖惩事件描述", required = "required")
private String content;
@TableField(value = "type_id")
@ApiModelProperty(value = "奖惩分类id参考数据字典", required = "required")
private String typeId;
@TableField(exist = false)
@Property(value = "奖惩分类信息")
private Map<String, Object> typeMation;
@TableField(value = "award_unit")
@ApiModelProperty(value = "授予单位", required = "required")
private String awardUnit;
@TableField(value = "object_id", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据id(员工id)", required = "required")
private String objectId;
@TableField(value = "object_key", updateStrategy = FieldStrategy.NEVER)
@ApiModelProperty(value = "所属第三方业务数据的key(员工key)", required = "required")
private String objectKey;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.reward.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.reward.entity.RewardPunish;
/**
* @ClassName: RewardPunishService
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:41
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface RewardPunishService extends SkyeyeBusinessService<RewardPunish> {
}

@ -0,0 +1,45 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.reward.service.impl;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.reward.dao.RewardPunishDao;
import com.skyeye.reward.entity.RewardPunish;
import com.skyeye.reward.service.RewardPunishService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: RewardPunishServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/6 22:41
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "员工奖惩信息", groupName = "员工奖惩信息", teamAuth = true)
public class RewardPunishServiceImpl extends SkyeyeBusinessServiceImpl<RewardPunishDao, RewardPunish> implements RewardPunishService {
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryRewardPunishList(commonPageInfo);
return beans;
}
@Override
public RewardPunish selectById(String id) {
RewardPunish rewardPunish = super.selectById(id);
iSysDictDataService.setDataMation(rewardPunish, RewardPunish::getTypeId);
return rewardPunish;
}
}

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.archives.dao.ArchivesDao">
<select id="querySysStaffArchivesList" resultType="java.util.Map">
SELECT
a.id,
a.archives_number archivesNumber,
a.custody_place custodyPlace,
a.archives_center archivesCenter,
a.state state,
a.archives_time archivesTime,
a.remark,
a.education_id educationId,
a.whether_archives whetherArchives,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_archives a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
AND a.archives_number LIKE '%${keyword}%'
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.certificate.dao.CertificateDao">
<select id="queryCertificateList" resultType="java.util.Map">
SELECT
a.id,
a.certificate_number certificateNumber,
a.`name`,
a.issue_organ issueOrgan,
a.issue_time issueTime,
a.type_id typeId,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_certificate a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
AND (a.certificate_number LIKE '%${keyword}%' OR a.`name` LIKE '%${keyword}%')
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.contract.dao.ContractDao">
<select id="queryContractList" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.contract_number contractNumber,
a.start_time startTime,
a.end_time endTime,
a.type_id typeId,
a.mold_id moldId,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_contract a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
AND a.contract_number like '%${keyword}%'
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.education.dao.EducationDao">
<select id="queryEducationList" resultType="java.util.Map">
SELECT
a.id,
a.graduction_school graductionSchool,
a.major major,
a.education_id educationId,
a.learning_modality_id learningModalityId,
a.school_nature schoolNature,
a.start_time startTime,
a.end_time endTIme,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_education a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.family.dao.FamilyDao">
<select id="queryFamilyList" resultType="java.util.Map">
SELECT
a.id,
a.`name`,
a.card_number cardNumber,
a.sex,
a.work_unit workUnit,
a.job,
a.relationship_id relationshipId,
a.card_type cardType,
a.politic_id politicId,
a.emergency_contact emergencyContact,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_family a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
AND a.`name` like '%${keyword}%'
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.job.dao.JobResumeDao">
<select id="queryJobResumeList" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.work_unit workUnit,
a.department,
a.job,
a.start_time startTime,
a.end_time endTime,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_job_resume a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.language.dao.LanguageDao">
<select id="queryLanguageList" resultType="java.util.Map">
SELECT
a.id,
a.level_id levelId,
a.get_time getTime,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_language a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.skyeye.reward.dao.RewardPunishDao">
<select id="queryRewardPunishList" parameterType="java.util.Map" resultType="java.util.Map">
SELECT
a.id,
a.`name`,
a.price,
a.content,
a.reward_punish_time rewardPunishTime,
a.award_unit awardUnit,
a.type_id typeId,
a.create_id createId,
CONVERT(a.create_time, char) createTime,
a.last_update_id lastUpdateId,
CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_staff_reward_punish a
<where>
<if test="sqlExtract != '' and sqlExtract != null">
${sqlExtract}
</if>
<if test="keyword != null and keyword != ''">
AND a.`name` like '%${keyword}%'
</if>
<if test="objectId != null and objectId != ''">
AND a.object_id = #{objectId}
</if>
</where>
ORDER BY a.create_time DESC
</select>
</mapper>

@ -0,0 +1,18 @@
*.class
# Package Files #
*.war
*.ear
class
.idea
*.iml
.settings
*.classpath
/bin
/images/
classes
/target/
/.project/
/.metadata/
/logs/

@ -0,0 +1,67 @@
<?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>skyeye-adm</artifactId>
<groupId>com.skyeye</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>adm-pro</artifactId>
<dependencies>
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>adm-survey</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.skyeye</groupId>
<artifactId>adm-ehr</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
<dependency>
<groupId>io.github.draco1023</groupId>
<artifactId>poi-tl-ext</artifactId>
<version>0.3.3</version>
<exclusions>
<exclusion>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
</exclusion>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 电子书插件 -->
<dependency>
<groupId>epublib-core</groupId>
<artifactId>latest</artifactId>
<version>1.3.1</version>
<scope>system</scope>
<systemPath>${basedir}/lib/epublib-core-latest.jar</systemPath>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
<version>2.4.9</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,87 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.entity.Articles;
import com.skyeye.eve.articles.service.ArticlesService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: ArticlesController
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:48
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "用品管理", tags = "用品管理", modelName = "用品模块")
public class ArticlesController {
@Autowired
private ArticlesService articlesService;
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeAssetArticlesMation", value = "新增/编辑用品信息", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = Articles.class)
@RequestMapping("/post/ArticlesController/writeAssetArticlesMation")
public void writeArticlesMation(InputObject inputObject, OutputObject outputObject) {
articlesService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles012", value = "获取用品列表", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ArticlesController/queryArticlesList")
public void queryArticlesList(InputObject inputObject, OutputObject outputObject) {
articlesService.queryPageList(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles014", value = "删除用品", method = "DELETE", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/ArticlesController/deleteArticles")
public void deleteArticles(InputObject inputObject, OutputObject outputObject) {
articlesService.deleteById(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles018", value = "获取所有用品列表信息", method = "GET", allUse = "2")
@RequestMapping("/post/ArticlesController/queryAllArticlesList")
public void queryAllArticlesList(InputObject inputObject, OutputObject outputObject) {
articlesService.queryAllArticlesList(inputObject, outputObject);
}
}

@ -0,0 +1,104 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.entity.ArticlesPurchase;
import com.skyeye.eve.articles.service.ArticlesPurchaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: ArticlesPurchaseController
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:39
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "用品采购", tags = "用品采购", modelName = "用品模块")
public class ArticlesPurchaseController {
@Autowired
private ArticlesPurchaseService articlesPurchaseService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeArticlesPurchase", value = "用品采购申请", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = ArticlesPurchase.class)
@RequestMapping("/post/ArticlesPurchaseController/writeArticlesPurchasee")
public void writeArticlesPurchasee(InputObject inputObject, OutputObject outputObject) {
articlesPurchaseService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles025", value = "获取用品采购申请信息列表", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ArticlesPurchaseController/queryArticlesPurchaseList")
public void queryArticlesPurchaseList(InputObject inputObject, OutputObject outputObject) {
articlesPurchaseService.queryPageList(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles027", value = "用品采购申请提交审批", method = "POST", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required"),
@ApiImplicitParam(id = "approvalId", name = "approvalId", value = "审批人", required = "required")})
@RequestMapping("/post/ArticlesPurchaseController/submitToApproval")
public void submitToApproval(InputObject inputObject, OutputObject outputObject) {
articlesPurchaseService.submitToApproval(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles031", value = "作废用品采购申请", method = "POST", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/ArticlesPurchaseController/invalid")
public void invalid(InputObject inputObject, OutputObject outputObject) {
articlesPurchaseService.invalid(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles035", value = "撤销用品采购申请", method = "PUT", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "processInstanceId", name = "processInstanceId", value = "流程实例id", required = "required")})
@RequestMapping("/post/ArticlesPurchaseController/revoke")
public void revoke(InputObject inputObject, OutputObject outputObject) {
articlesPurchaseService.revoke(inputObject, outputObject);
}
}

@ -0,0 +1,117 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.entity.ArticlesUse;
import com.skyeye.eve.articles.service.ArticlesUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: ArticlesUseController
* @Description:
* @author: skyeye--
* @date: 2021/7/24 9:20
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "用品领用", tags = "用品领用", modelName = "用品模块")
public class ArticlesUseController {
@Autowired
private ArticlesUseService articlesUseService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles017", value = "获取我领用的用品信息", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ArticlesUseController/queryMyUseAssetArticlesMation")
public void queryMyUseAssetArticlesMation(InputObject inputObject, OutputObject outputObject) {
articlesUseService.queryPageList(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeAssetArticlesApplyUse", value = "用品领用申请", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = ArticlesUse.class)
@RequestMapping("/post/ArticlesUseController/writeArticlesApplyUse")
public void writeArticlesApplyUse(InputObject inputObject, OutputObject outputObject) {
articlesUseService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles023", value = "用品领用申请提交审批", method = "POST", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required"),
@ApiImplicitParam(id = "approvalId", name = "approvalId", value = "审批人", required = "required")})
@RequestMapping("/post/ArticlesUseController/articlesUseSubmitToApproval")
public void articlesUseSubmitToApproval(InputObject inputObject, OutputObject outputObject) {
articlesUseService.submitToApproval(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles030", value = "作废用品领用申请", method = "POST", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/ArticlesUseController/invalid")
public void invalid(InputObject inputObject, OutputObject outputObject) {
articlesUseService.invalid(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "assetarticles034", value = "撤销用品领用申请", method = "PUT", allUse = "1")
@ApiImplicitParams({
@ApiImplicitParam(id = "processInstanceId", name = "processInstanceId", value = "流程实例id", required = "required")})
@RequestMapping("/post/ArticlesUseController/revoke")
public void revoke(InputObject inputObject, OutputObject outputObject) {
articlesUseService.revoke(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "myhasmation004", value = "我的用品领用历史", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/ArticlesUseController/queryMyArticlesList")
public void queryMyArticlesList(InputObject inputObject, OutputObject outputObject) {
articlesUseService.queryMyArticlesList(inputObject, outputObject);
}
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.articles.entity.Articles;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArticlesDao
* @Description:
* @author: skyeye--
* @date: 2021/7/24 9:09
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesDao extends SkyeyeBaseMapper<Articles> {
List<Map<String, Object>> queryArticlesList(CommonPageInfo pageInfo);
}

@ -0,0 +1,26 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.articles.entity.ArticlesPurchase;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArticlesPurchaseDao
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:40
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesPurchaseDao extends SkyeyeBaseMapper<ArticlesPurchase> {
List<Map<String, Object>> queryMyPurchaseArticlesList(CommonPageInfo pageInfo);
}

@ -0,0 +1,19 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.dao;
import com.skyeye.eve.articles.entity.ArticlesPurchaseLink;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
/**
* @ClassName: ArticlesPurchaseLinkDao
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:53
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesPurchaseLinkDao extends SkyeyeBaseMapper<ArticlesPurchaseLink> {
}

@ -0,0 +1,28 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.dao;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.eve.articles.entity.ArticlesUse;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArticlesUseDao
* @Description:
* @author: skyeye--
* @date: 2021/7/24 9:21
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesUseDao extends SkyeyeBaseMapper<ArticlesUse> {
List<Map<String, Object>> queryMyUseArticlesMation(CommonPageInfo commonPageInfo);
List<Map<String, Object>> queryMyArticlesList(CommonPageInfo pageInfo);
}

@ -0,0 +1,19 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.dao;
import com.skyeye.eve.articles.entity.ArticlesUseLink;
import com.skyeye.eve.dao.SkyeyeBaseMapper;
/**
* @ClassName: ArticlesUseLinkDao
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:53
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesUseLinkDao extends SkyeyeBaseMapper<ArticlesUseLink> {
}

@ -0,0 +1,77 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.annotation.unique.UniqueField;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.BaseGeneralInfo;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @ClassName: Articles
* @Description:
* @author: skyeye--
* @date: 2022/8/9 9:22
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@UniqueField
@RedisCacheField(name = "assistant:articles", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "asset_articles")
@ApiModel("用品实体类")
public class Articles extends BaseGeneralInfo {
@TableField(value = "articles_num")
@Property("用品编号")
private String articlesNum;
@TableField(value = "type_id")
@ApiModelProperty(value = "用品类别", required = "required")
private String typeId;
@TableField(exist = false)
@Property("用品类别名称")
private String typeName;
@TableField(value = "specifications")
@ApiModelProperty(value = "规格")
private String specifications;
@TableField(value = "unit_of_measurement")
@ApiModelProperty(value = "计量单位", required = "required")
private String unitOfMeasurement;
@TableField(value = "initial_num", fill = FieldFill.INSERT)
@ApiModelProperty(value = "初始化数量【不可修改】", required = "num")
private Integer initialNum;
@TableField(value = "residual_num")
@Property("当前剩余数量,新增时和初始化数量(initialNum)保持一致")
private Integer residualNum;
@TableField(value = "storage_area")
@ApiModelProperty(value = "存放区域")
private String storageArea;
@TableField(value = "asset_admin")
@ApiModelProperty(value = "管理人")
private String assetAdmin;
@TableField(exist = false)
@Property("管理人信息")
private Map<String, Object> assetAdminMation;
}

@ -0,0 +1,48 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.SkyeyeFlowable;
import lombok.Data;
import java.util.List;
/**
* @ClassName: ArticlesPurchase
* @Description:
* @author: skyeye--
* @date: 2022/12/19 18:11
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "assistant:articles:purchase", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "asset_articles_purchase")
@ApiModel("用品采购申请实体类")
public class ArticlesPurchase extends SkyeyeFlowable {
@TableField("title")
@ApiModelProperty(value = "标题", required = "required")
private String title;
@TableField("remark")
@ApiModelProperty(value = "描述")
private String remark;
@TableField(value = "all_price")
@ApiModelProperty(value = "总金额")
private String allPrice;
@TableField(exist = false)
@ApiModelProperty(value = "用品信息", required = "required,json")
private List<ArticlesPurchaseLink> purchaseLink;
}

@ -0,0 +1,48 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.SkyeyeLinkData;
import lombok.Data;
/**
* @ClassName: ArticlesPurchaseLink
* @Description:
* @author: skyeye--
* @date: 2022/12/19 18:16
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@TableName(value = "asset_articles_purchase_goods")
@ApiModel("用品采购申请关联的用品信息实体类")
public class ArticlesPurchaseLink extends SkyeyeLinkData {
@TableField("article_id")
@ApiModelProperty(value = "用品id", required = "required")
private String articleId;
@TableField(exist = false)
@Property("用品信息")
private Articles articleMation;
@TableField("apply_purchase_num")
@ApiModelProperty(value = "申请采购数量", required = "required,num")
private Integer applyPurchaseNum;
@TableField("unit_price")
@ApiModelProperty(value = "用品单价", required = "required,double")
private String unitPrice;
@TableField("amount_of_money")
@ApiModelProperty(value = "金额")
private String amountOfMoney;
}

@ -0,0 +1,44 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.cache.RedisCacheField;
import com.skyeye.common.constans.RedisConstants;
import com.skyeye.common.entity.features.SkyeyeFlowable;
import lombok.Data;
import java.util.List;
/**
* @ClassName: ArticlesUse
* @Description:
* @author: skyeye--
* @date: 2022/12/19 18:11
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@RedisCacheField(name = "assistant:articles:applyUse", cacheTime = RedisConstants.THIRTY_DAY_SECONDS)
@TableName(value = "asset_articles_use")
@ApiModel("用品领用申请实体类")
public class ArticlesUse extends SkyeyeFlowable {
@TableField("title")
@ApiModelProperty(value = "标题", required = "required")
private String title;
@TableField("remark")
@ApiModelProperty(value = "描述")
private String remark;
@TableField(exist = false)
@ApiModelProperty(value = "用品信息", required = "required,json")
private List<ArticlesUseLink> applyUseLnk;
}

@ -0,0 +1,44 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyeye.annotation.api.ApiModel;
import com.skyeye.annotation.api.ApiModelProperty;
import com.skyeye.annotation.api.Property;
import com.skyeye.common.entity.features.SkyeyeLinkData;
import lombok.Data;
/**
* @ClassName: ArticlesUseLink
* @Description:
* @author: skyeye--
* @date: 2022/12/19 18:16
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Data
@TableName(value = "asset_articles_use_goods")
@ApiModel("用品领用申请关联的用品信息实体类")
public class ArticlesUseLink extends SkyeyeLinkData {
@TableField("article_id")
@ApiModelProperty(value = "用品id", required = "required")
private String articleId;
@TableField(exist = false)
@Property("用品信息")
private Articles articleMation;
@TableField("apply_use_num")
@ApiModelProperty(value = "申请领用数量", required = "required,num")
private Integer applyUseNum;
@TableField("actual_use_num")
@Property("实际发放数量")
private Integer actualUseNum;
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service;
import com.skyeye.base.business.service.SkyeyeLinkDataService;
import com.skyeye.eve.articles.entity.ArticlesPurchaseLink;
/**
* @ClassName: ArticlesPurchaseLinkService
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:52
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesPurchaseLinkService extends SkyeyeLinkDataService<ArticlesPurchaseLink> {
}

@ -0,0 +1,20 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service;
import com.skyeye.base.business.service.SkyeyeFlowableService;
import com.skyeye.eve.articles.entity.ArticlesPurchase;
/**
* @ClassName: ArticlesPurchaseService
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:40
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesPurchaseService extends SkyeyeFlowableService<ArticlesPurchase> {
}

@ -0,0 +1,32 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service;
import com.skyeye.base.business.service.SkyeyeBusinessService;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.entity.Articles;
/**
* @ClassName: ArticlesService
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:47
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesService extends SkyeyeBusinessService<Articles> {
void queryAllArticlesList(InputObject inputObject, OutputObject outputObject);
/**
* id
*
* @param id
* @param residualNum
*/
void editResidualNum(String id, Integer residualNum);
}

@ -0,0 +1,22 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service;
import com.skyeye.base.business.service.SkyeyeLinkDataService;
import com.skyeye.eve.articles.entity.ArticlesUseLink;
/**
* @ClassName: ArticlesUseLinkService
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:52
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesUseLinkService extends SkyeyeLinkDataService<ArticlesUseLink> {
void editActualUseNumById(String id, String state, Integer actualUseNum);
}

@ -0,0 +1,24 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service;
import com.skyeye.base.business.service.SkyeyeFlowableService;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.entity.ArticlesUse;
/**
* @ClassName: ArticlesUseService
* @Description:
* @author: skyeye--
* @date: 2021/7/24 9:21
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
public interface ArticlesUseService extends SkyeyeFlowableService<ArticlesUse> {
void queryMyArticlesList(InputObject inputObject, OutputObject outputObject);
}

@ -0,0 +1,53 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeLinkDataServiceImpl;
import com.skyeye.eve.articles.dao.ArticlesPurchaseLinkDao;
import com.skyeye.eve.articles.entity.Articles;
import com.skyeye.eve.articles.entity.ArticlesPurchaseLink;
import com.skyeye.eve.articles.service.ArticlesPurchaseLinkService;
import com.skyeye.eve.articles.service.ArticlesService;
import com.skyeye.exception.CustomException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName: ArticlesPurchaseLinkServiceImpl
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:54
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "用品采购单-用品Link", groupName = "用品模块", manageShow = false)
public class ArticlesPurchaseLinkServiceImpl extends SkyeyeLinkDataServiceImpl<ArticlesPurchaseLinkDao, ArticlesPurchaseLink> implements ArticlesPurchaseLinkService {
@Autowired
private ArticlesService articlesService;
@Override
public void checkLinkList(String pId, List<ArticlesPurchaseLink> beans) {
if (CollectionUtil.isEmpty(beans)) {
throw new CustomException("用品信息不能为空.");
}
List<String> articleIds = beans.stream().map(ArticlesPurchaseLink::getArticleId).distinct().collect(Collectors.toList());
Map<String, Articles> articlesMap = articlesService.selectMapByIds(articleIds);
beans.forEach(assetArticlesApplyUseChild -> {
Articles article = articlesMap.get(assetArticlesApplyUseChild.getArticleId());
if (article == null) {
throw new CustomException("数据中包含不存在的用品信息.");
}
});
}
}

@ -0,0 +1,143 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeFlowableServiceImpl;
import com.skyeye.common.constans.CommonNumConstants;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.enumeration.FlowableChildStateEnum;
import com.skyeye.common.enumeration.FlowableStateEnum;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.util.CalculationUtil;
import com.skyeye.eve.articles.dao.ArticlesPurchaseDao;
import com.skyeye.eve.articles.entity.ArticlesPurchase;
import com.skyeye.eve.articles.entity.ArticlesPurchaseLink;
import com.skyeye.eve.articles.service.ArticlesPurchaseLinkService;
import com.skyeye.eve.articles.service.ArticlesPurchaseService;
import com.skyeye.eve.articles.service.ArticlesService;
import com.skyeye.exception.CustomException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName: ArticlesPurchaseServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/24 11:41
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "用品采购单", groupName = "用品模块", flowable = true)
public class ArticlesPurchaseServiceImpl extends SkyeyeFlowableServiceImpl<ArticlesPurchaseDao, ArticlesPurchase> implements ArticlesPurchaseService {
@Autowired
private ArticlesPurchaseLinkService articlesPurchaseLinkService;
@Autowired
private ArticlesService articlesService;
@Override
public List<Map<String, Object>> queryPageData(InputObject inputObject) {
CommonPageInfo pageInfo = inputObject.getParams(CommonPageInfo.class);
pageInfo.setCreateId(inputObject.getLogParams().get("id").toString());
List<Map<String, Object>> beans = skyeyeBaseMapper.queryMyPurchaseArticlesList(pageInfo);
return beans;
}
@Override
public void validatorEntity(ArticlesPurchase entity) {
chectOrderItem(entity.getPurchaseLink());
getTotalPrice(entity);
}
@Override
public void writeChild(ArticlesPurchase entity, String userId) {
articlesPurchaseLinkService.saveLinkList(entity.getId(), entity.getPurchaseLink());
super.writeChild(entity, userId);
}
private void chectOrderItem(List<ArticlesPurchaseLink> articlesPurchaseLinks) {
if (CollectionUtil.isEmpty(articlesPurchaseLinks)) {
throw new CustomException("请最少选择一条用品信息");
}
List<String> articleIds = articlesPurchaseLinks.stream()
.map(ArticlesPurchaseLink::getArticleId).distinct()
.collect(Collectors.toList());
if (articlesPurchaseLinks.size() != articleIds.size()) {
throw new CustomException("单据中不允许出现同一用品信息");
}
}
private void getTotalPrice(ArticlesPurchase entity) {
String totalPrice = "0";
// 计算关联的用品总价
for (ArticlesPurchaseLink purchaseLink : entity.getPurchaseLink()) {
String amountOfMoney = CalculationUtil.multiply(CommonNumConstants.NUM_TWO, String.valueOf(purchaseLink.getApplyPurchaseNum()), purchaseLink.getUnitPrice());
purchaseLink.setAmountOfMoney(amountOfMoney);
totalPrice = CalculationUtil.add(totalPrice, amountOfMoney);
}
entity.setAllPrice(totalPrice);
}
@Override
public void submitToApprovalPostpose(String id, String processInstanceId) {
super.submitToApprovalPostpose(id, processInstanceId);
articlesPurchaseLinkService.editStateByPId(id, FlowableChildStateEnum.IN_EXAMINE.getKey());
}
@Override
public ArticlesPurchase getDataFromDb(String id) {
ArticlesPurchase articlesPurchase = super.getDataFromDb(id);
List<ArticlesPurchaseLink> articlesPurchaseLinks = articlesPurchaseLinkService.selectByPId(articlesPurchase.getId());
articlesPurchase.setPurchaseLink(articlesPurchaseLinks);
return articlesPurchase;
}
@Override
public ArticlesPurchase selectById(String id) {
ArticlesPurchase articlesPurchase = super.selectById(id);
// 获取用品信息
articlesService.setDataMation(articlesPurchase.getPurchaseLink(), ArticlesPurchaseLink::getArticleId);
articlesPurchase.getPurchaseLink().forEach(bean -> {
bean.setStateName(FlowableChildStateEnum.getStateName(bean.getState()));
});
articlesPurchase.setStateName(FlowableStateEnum.getStateName(articlesPurchase.getState()));
iAuthUserService.setName(articlesPurchase, "createId", "createName");
return articlesPurchase;
}
@Override
public void revokePostpose(ArticlesPurchase entity) {
super.revokePostpose(entity);
articlesPurchaseLinkService.editStateByPId(entity.getId(), FlowableChildStateEnum.DRAFT.getKey());
}
@Override
public void approvalEndIsSuccess(ArticlesPurchase entity) {
ArticlesPurchase purchase = selectById(entity.getId());
for (ArticlesPurchaseLink bean : purchase.getPurchaseLink()) {
// 当前用品剩余的数量
int residualNum = bean.getArticleMation().getResidualNum();
// 重置库存剩余数量
residualNum = residualNum + bean.getApplyPurchaseNum();
// 修改库存
articlesService.editResidualNum(bean.getArticleId(), residualNum);
}
// 修改用品采购状态
articlesPurchaseLinkService.editStateByPId(entity.getId(), FlowableChildStateEnum.ADEQUATE.getKey());
}
@Override
protected void approvalEndIsFailed(ArticlesPurchase entity) {
articlesPurchaseLinkService.editStateByPId(entity.getId(), FlowableChildStateEnum.REJECT.getKey());
}
}

@ -0,0 +1,109 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service.impl;
import cn.hutool.core.map.MapUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl;
import com.skyeye.common.constans.CommonConstants;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.StringUtil;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.eve.articles.dao.ArticlesDao;
import com.skyeye.eve.articles.entity.Articles;
import com.skyeye.eve.articles.service.ArticlesService;
import com.skyeye.eve.coderule.service.ICodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArticlesServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/4/5 13:07
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "用品管理", groupName = "用品模块")
public class ArticlesServiceImpl extends SkyeyeBusinessServiceImpl<ArticlesDao, Articles> implements ArticlesService {
@Autowired
private ICodeRuleService iCodeRuleService;
@Override
public void createPrepose(Articles entity) {
setArticlesNum(entity);
entity.setResidualNum(entity.getInitialNum());
}
private void setArticlesNum(Articles articles) {
String prefix = StringUtil.chineseToFirstLetter(articles.getName());
Map<String, Object> bussness = MapUtil.newHashMap();
bussness.put("prefix", prefix);
String codeNumber = iCodeRuleService.getNextCodeByClassName(this.getClass().getName(), bussness);
articles.setArticlesNum(codeNumber);
}
@Override
public List<Map<String, Object>> queryPageDataList(InputObject inputObject) {
CommonPageInfo pageInfo = inputObject.getParams(CommonPageInfo.class);
List<Map<String, Object>> beans = skyeyeBaseMapper.queryArticlesList(pageInfo);
iSysDictDataService.setNameForMap(beans, "typeId", "typeName");
return beans;
}
@Override
public Articles selectById(String id) {
Articles articles = super.selectById(id);
iSysDictDataService.setName(articles, "typeId", "typeName");
articles.setAssetAdminMation(iAuthUserService.queryDataMationById(articles.getAssetAdmin()));
return articles;
}
@Override
public List<Articles> selectByIds(String... ids) {
List<Articles> articles = super.selectByIds(ids);
iSysDictDataService.setName(articles, "typeId", "typeName");
// 设置管理人信息
iAuthUserService.setDataMation(articles, Articles::getAssetAdmin);
return articles;
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@Override
public void queryAllArticlesList(InputObject inputObject, OutputObject outputObject) {
List<Articles> articlesList = list();
outputObject.setBeans(articlesList);
outputObject.settotal(articlesList.size());
}
/**
* id
*
* @param id
* @param residualNum
*/
@Override
public void editResidualNum(String id, Integer residualNum) {
UpdateWrapper<Articles> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(CommonConstants.ID, id);
updateWrapper.set(MybatisPlusUtil.toColumns(Articles::getResidualNum), residualNum);
update(updateWrapper);
refreshCache(id);
}
}

@ -0,0 +1,69 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeLinkDataServiceImpl;
import com.skyeye.common.constans.CommonConstants;
import com.skyeye.common.util.mybatisplus.MybatisPlusUtil;
import com.skyeye.eve.articles.dao.ArticlesUseLinkDao;
import com.skyeye.eve.articles.entity.Articles;
import com.skyeye.eve.articles.entity.ArticlesUseLink;
import com.skyeye.eve.articles.service.ArticlesService;
import com.skyeye.eve.articles.service.ArticlesUseLinkService;
import com.skyeye.exception.CustomException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @ClassName: ArticlesUseLinkServiceImpl
* @Description:
* @author: skyeye--
* @date: 2022/12/19 19:54
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "用品领用单-用品Link", groupName = "用品模块", manageShow = false)
public class ArticlesUseLinkServiceImpl extends SkyeyeLinkDataServiceImpl<ArticlesUseLinkDao, ArticlesUseLink> implements ArticlesUseLinkService {
@Autowired
private ArticlesService articlesService;
@Override
public void checkLinkList(String pId, List<ArticlesUseLink> beans) {
if (CollectionUtil.isEmpty(beans)) {
throw new CustomException("用品信息不能为空.");
}
List<String> articleIds = beans.stream().map(ArticlesUseLink::getArticleId).distinct().collect(Collectors.toList());
Map<String, Articles> articlesMap = articlesService.selectMapByIds(articleIds);
beans.forEach(assetArticlesApplyUseChild -> {
Articles article = articlesMap.get(assetArticlesApplyUseChild.getArticleId());
if (article == null) {
throw new CustomException("数据中包含不存在的用品信息.");
}
if (article.getResidualNum() < assetArticlesApplyUseChild.getApplyUseNum()) {
throw new CustomException("用品【" + article.getName() + "】库存余量不足。");
}
});
}
@Override
@Transactional(value = TRANSACTION_MANAGER_VALUE, rollbackFor = Exception.class)
public void editActualUseNumById(String id, String state, Integer actualUseNum) {
UpdateWrapper<ArticlesUseLink> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq(CommonConstants.ID, id);
updateWrapper.set(MybatisPlusUtil.toColumns(ArticlesUseLink::getState), state);
updateWrapper.set(MybatisPlusUtil.toColumns(ArticlesUseLink::getActualUseNum), actualUseNum);
update(updateWrapper);
}
}

@ -0,0 +1,136 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.articles.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.skyeye.annotation.service.SkyeyeService;
import com.skyeye.base.business.service.impl.SkyeyeFlowableServiceImpl;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.enumeration.FlowableChildStateEnum;
import com.skyeye.common.enumeration.FlowableStateEnum;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.articles.dao.ArticlesUseDao;
import com.skyeye.eve.articles.entity.ArticlesUse;
import com.skyeye.eve.articles.entity.ArticlesUseLink;
import com.skyeye.eve.articles.service.ArticlesService;
import com.skyeye.eve.articles.service.ArticlesUseLinkService;
import com.skyeye.eve.articles.service.ArticlesUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ArticlesUseServiceImpl
* @Description:
* @author: skyeye--
* @date: 2021/7/24 9:22
* @Copyright: 2021 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Service
@SkyeyeService(name = "用品领用单", groupName = "用品模块", flowable = true)
public class ArticlesUseServiceImpl extends SkyeyeFlowableServiceImpl<ArticlesUseDao, ArticlesUse> implements ArticlesUseService {
@Autowired
private ArticlesUseLinkService articlesUseLinkService;
@Autowired
private ArticlesService articlesService;
@Override
public List<Map<String, Object>> queryPageData(InputObject inputObject) {
CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class);
commonPageInfo.setCreateId(inputObject.getLogParams().get("id").toString());
List<Map<String, Object>> beans = skyeyeBaseMapper.queryMyUseArticlesMation(commonPageInfo);
return beans;
}
@Override
public void writeChild(ArticlesUse entity, String userId) {
articlesUseLinkService.saveLinkList(entity.getId(), entity.getApplyUseLnk());
super.writeChild(entity, userId);
}
@Override
public void submitToApprovalPostpose(String id, String processInstanceId) {
super.submitToApprovalPostpose(id, processInstanceId);
articlesUseLinkService.editStateByPId(id, FlowableChildStateEnum.IN_EXAMINE.getKey());
}
@Override
public ArticlesUse getDataFromDb(String id) {
ArticlesUse articlesUse = super.getDataFromDb(id);
List<ArticlesUseLink> articlesUseLink = articlesUseLinkService.selectByPId(articlesUse.getId());
articlesUse.setApplyUseLnk(articlesUseLink);
return articlesUse;
}
@Override
public ArticlesUse selectById(String id) {
ArticlesUse articlesUse = super.selectById(id);
// 获取用品信息
articlesService.setDataMation(articlesUse.getApplyUseLnk(), ArticlesUseLink::getArticleId);
articlesUse.getApplyUseLnk().forEach(bean -> {
bean.setStateName(FlowableChildStateEnum.getStateName(bean.getState()));
});
articlesUse.setStateName(FlowableStateEnum.getStateName(articlesUse.getState()));
iAuthUserService.setName(articlesUse, "createId", "createName");
return articlesUse;
}
@Override
public void revokePostpose(ArticlesUse entity) {
super.revokePostpose(entity);
articlesUseLinkService.editStateByPId(entity.getId(), FlowableChildStateEnum.DRAFT.getKey());
}
@Override
protected void approvalEndIsSuccess(ArticlesUse entity) {
ArticlesUse articlesApplyUse = selectById(entity.getId());
for (ArticlesUseLink bean : articlesApplyUse.getApplyUseLnk()) {
// 当前用品剩余的数量
int residualNum = bean.getArticleMation().getResidualNum();
// 允许用户领用的数量
int actualUseNum;
// 用品对应的领用状态
String applyState;
if (residualNum >= bean.getApplyUseNum()) {
// 当前库存充足
applyState = FlowableChildStateEnum.ADEQUATE.getKey();
actualUseNum = bean.getApplyUseNum();
} else {
// 当前库存不足
applyState = FlowableChildStateEnum.INSUFFICIENT.getKey();
actualUseNum = residualNum;
}
// 重置库存剩余数量
residualNum = residualNum - actualUseNum;
// 修改库存
articlesService.editResidualNum(bean.getArticleId(), residualNum);
// 修改用品领用状态
articlesUseLinkService.editActualUseNumById(bean.getId(), applyState, actualUseNum);
}
}
@Override
protected void approvalEndIsFailed(ArticlesUse entity) {
articlesUseLinkService.editStateByPId(entity.getId(), FlowableChildStateEnum.REJECT.getKey());
}
@Override
public void queryMyArticlesList(InputObject inputObject, OutputObject outputObject) {
CommonPageInfo pageInfo = inputObject.getParams(CommonPageInfo.class);
pageInfo.setCreateId(inputObject.getLogParams().get("id").toString());
Page pages = PageHelper.startPage(pageInfo.getPage(), pageInfo.getLimit());
List<Map<String, Object>> beans = skyeyeBaseMapper.queryMyArticlesList(pageInfo);
iSysDictDataService.setNameForMap(beans, "typeId", "typeName");
outputObject.setBeans(beans);
outputObject.settotal(pages.getTotal());
}
}

@ -0,0 +1,47 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.assets.classenum;
import com.skyeye.common.base.classenum.SkyeyeEnumClass;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* @ClassName: AssetReportState
* @Description:
* @author: skyeye--
* @date: 2022/12/25 11:21
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum AssetReportState implements SkyeyeEnumClass {
NORMAL(1, "正常", true, false),
REPAIR(2, "维修", true, false),
SCRAP(3, "报废", true, false),
RETURN(4, "退货", true, false);
private Integer key;
private String value;
private Boolean show;
private Boolean isDefault;
public static String getName(Integer state) {
for (AssetReportState bean : AssetReportState.values()) {
if (state == bean.getKey()) {
return bean.getValue();
}
}
return StringUtils.EMPTY;
}
}

@ -0,0 +1,46 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.assets.classenum;
import com.skyeye.common.base.classenum.SkyeyeEnumClass;
import com.skyeye.common.enumeration.FlowableStateEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import java.util.Arrays;
import java.util.List;
/**
* @ClassName: PurchaseOrderStateEnum
* @Description:
* @author: skyeye--
* @date: 2023/2/26 12:09
* @Copyright: 2023 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum PurchaseOrderStateEnum implements SkyeyeEnumClass {
PARTIALLY_COMPLETED("partiallyCompleted", "部分完成", "orange", true, false),
COMPLETED("completed", "已完成", "green", true, false);
private String key;
private String value;
private String color;
private Boolean show;
private Boolean isDefault;
public static List<Class> dependOnEnum() {
return Arrays.asList(FlowableStateEnum.class);
}
}

@ -0,0 +1,35 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.assets.classenum;
import com.skyeye.common.base.classenum.SkyeyeEnumClass;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* @ClassName: PurchasePutFromType
* @Description:
* @author: skyeye--
* @date: 2024/5/22 10:58
* @Copyright: 2024 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum PurchasePutFromType implements SkyeyeEnumClass {
PURCHASE_ORDER(1, "采购订单", true, false);
private Integer key;
private String value;
private Boolean show;
private Boolean isDefault;
}

@ -0,0 +1,35 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.assets.classenum;
import com.skyeye.common.base.classenum.SkyeyeEnumClass;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* @ClassName: PurchaseReturnFromType
* @Description: 退
* @author: skyeye--
* @date: 2024/5/22 10:58
* @Copyright: 2024 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum PurchaseReturnFromType implements SkyeyeEnumClass {
PURCHASE_ORDER(1, "采购订单", true, false);
private Integer key;
private String value;
private Boolean show;
private Boolean isDefault;
}

@ -0,0 +1,89 @@
/*******************************************************************************
* Copyright QQ598748873@qq.com Inc. All rights reserved. https://gitee.com/doc_wei01/skyeye
******************************************************************************/
package com.skyeye.eve.assets.controller;
import com.skyeye.annotation.api.Api;
import com.skyeye.annotation.api.ApiImplicitParam;
import com.skyeye.annotation.api.ApiImplicitParams;
import com.skyeye.annotation.api.ApiOperation;
import com.skyeye.common.entity.search.CommonPageInfo;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.eve.assets.entity.Asset;
import com.skyeye.eve.assets.service.AssetService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @ClassName: AssetController
* @Description:
* @author: skyeye--
* @date: 2022/8/9 10:15
* @Copyright: 2022 https://gitee.com/doc_wei01/skyeye Inc. All rights reserved.
* 使.
*/
@RestController
@Api(value = "资产管理", tags = "资产管理", modelName = "资产模块")
public class AssetController {
@Autowired
private AssetService assetService;
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "asset001", value = "获取所有的资产", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = CommonPageInfo.class)
@RequestMapping("/post/AssetController/selectAllAssetMation")
public void queryAssetMationList(InputObject inputObject, OutputObject outputObject) {
assetService.queryPageList(inputObject, outputObject);
}
/**
* /
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "writeAssetMation", value = "新增/编辑资产", method = "POST", allUse = "1")
@ApiImplicitParams(classBean = Asset.class)
@RequestMapping("/post/AssetController/writeAssetMation")
public void writeAssetMation(InputObject inputObject, OutputObject outputObject) {
assetService.saveOrUpdateEntity(inputObject, outputObject);
}
/**
*
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "asset003", value = "删除资产", method = "DELETE", allUse = "1")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/AssetController/deleteAssetById")
public void deleteAssetById(InputObject inputObject, OutputObject outputObject) {
assetService.deleteById(inputObject, outputObject);
}
/**
* id
*
* @param inputObject
* @param outputObject
*/
@ApiOperation(id = "queryAssetById", value = "根据id查询资产", method = "GET", allUse = "2")
@ApiImplicitParams(value = {
@ApiImplicitParam(id = "id", name = "id", value = "主键id", required = "required")})
@RequestMapping("/post/AssetController/queryAssetById")
public void queryAssetById(InputObject inputObject, OutputObject outputObject) {
assetService.selectById(inputObject, outputObject);
}
}

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

Loading…
Cancel
Save