From f7f645805387f1bb3db4c9dbe0246241423f1a26 Mon Sep 17 00:00:00 2001
From: weizhiqiang <598748873@qq.com>
Date: Mon, 22 Nov 2021 12:22:57 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=E7=B4=A0=E6=9D=90?=
=?UTF-8?q?=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 156 ++++++++++++++++++
.../com/skyeye/eve/dao/SysEveModelDao.java | 8 +-
.../service/impl/SysEveModelServiceImpl.java | 19 ++-
.../mapper/common/SysEveModelMapper.xml | 32 ++--
4 files changed, 188 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
index 79822f739..d31a74167 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,160 @@
+
# skyeye
+#### 项目介绍
+
+智能办公OA系统[SpringBoot2-快速开发平台],适用于医院,学校,中小型企业等机构的管理。包含文件在线操作、工作日志、多班次考勤、CRM、ERP进销存、项目管理、EHR、拖拽式生成问卷、日程、笔记、工作计划、行政办公、薪资模块、动态表单、知识库、公告模块、企业论坛、云售后模块、生产模块、系统模块化同步模块等多种复杂业务功能。
+
+# 开源版请下载`master`分支
# 开源版请下载`master`分支
+# 开源版请下载`master`分支
+
+- 开源不易,给个`star`吧
+- erp+生产演示视频:https://mp.weixin.qq.com/s/CrFM_VZShi-FIJ8zD0_Nqg
+- 需要进微信群(加我拉你进群,wzq_598748873),请提供自己的邮箱,默认订阅每周更新内容推送。
+- 不需要进群的,请直接加微信:ZhiJinShuLi
+- `本项目分为开源版和企业版,不喜勿喷,谢谢。`
+- 企业版信息:https://docs.qq.com/doc/DQlRxcVRMWWVjbU1i?_from=1&disableReturnList=1
+- 参加企业版改进计划,享受最优惠价格,[点我查看](https://mp.weixin.qq.com/s/YIms04X-bbGJwMs1gree1g)
+- 不会搭建环境的,可以出钱让作者帮忙搭建,一次100,先付。
+- 现接受财务模块+ERP模块的功能扩展需求,有意向的可将需求文档发送给作者。
+- [说明文档](https://gitee.com/doc_wei01/skyeye/blob/master/%E9%A1%B9%E7%9B%AE%E6%96%87%E6%A1%A3.md)
+- 采用Redis缓存做单点登录功能,全新风格的后台管理系统
+- [MIT协议的高性能报表软件](https://gitee.com/doc_wei01/skyeye-report)
+
+#### 功能介绍
+
+功能|简介|功能|简介
+-------|-------|-------|-------
+菜单管理|配置系统菜单,操作权限,按钮权限标识等,用户可自定义桌面展示LOGO|员工管理|操作企业内部的员工信息,进行统一管理
+用户管理|用户是系统操作者,该功能主要完成系统用户配置。|角色管理|角色菜单权限分配、设置角色按机构进行数据范围权限划分。
+权限管理|给角色进行赋权|资源图标|系统中允许使用的font图标库
+日志管理|系统正常操作日志记录和查询;系统异常信息日志记录和查询。|登录日志|系统登录日志记录查询包含登录异常。
+多桌面管理|多个桌面程序,用户可通过鼠标滚动进行切换|系统基础设置|系统的基础信息设置
+代码生成器|只能适用于该框架的代码生成器,配置模板即可生成,然后下载压缩包解压复制到项目中即可|自定义桌面菜单|用户可将自己常用的网站添加到系统中方便记录
+在线性能监控|监视当前系统CPU、内存、磁盘、堆栈等相关信息。|多桌面|[演示](https://www.bilibili.com/video/av43650484)
+聊天功能|[演示](https://www.bilibili.com/video/av43650782),支持单聊,群聊,进群申请,组建群组,在线用户监控等。|[我的日程](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E6%97%A5%E7%A8%8B%E6%A8%A1%E5%9D%97.md)(企业版)|[演示](https://www.bilibili.com/video/av45854959)|APP菜单管理(企业版)|手机端菜单以及权限管理
+小程序管理(企业版)|微信小程序、H5手机自适应页面拖拽生成,可自定义配置小程序组件|多系统集成(企业版)|可以将多个系统进行应用集成,无需多次登陆,无需记录多个网址
+流程图规划(企业版)|规划项目的流程图|问卷调查(企业版)|拖拽式生成问卷,可分页、复制、查看统计信息等
+轻应用(企业版)|系统中提供各种小应用,如快递查询、高德地图等,用户可添加到自己的桌面上|开发文档(企业版)|系统支持二次开发,包含开发文档
+工作日志(企业版)|记录每个员工的日报,周报,月报等,可同时发送多人,按时间轴查看等|多班次考勤管理(企业版)|记录每个员工的考勤打卡信息,包含报表,打卡,班次设置等
+[我的笔记](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E7%AC%94%E8%AE%B0%E6%A8%A1%E5%9D%97.md)(企业版)|员工可记录自己日常的笔记,目前支持MD,富文本,表格操作|报表管理(企业版)|统计功能信息,可根据客户自定义免费定制
+[文件管理](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86.md)(企业版)|公司内部、员工个人的文件管理,支持多格式文件在线查看,文档多人协作,在线解压缩等|附件管理(企业版)|保留员工所有上传过的附件,方便下次使用
+邮件管理(企业版)|目前打通与QQ邮箱的交互,可以发邮件,收邮件,保存为草稿等|[工作流管理](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E5%B7%A5%E4%BD%9C%E6%B5%81%E4%BB%8B%E7%BB%8D%E6%96%87%E6%A1%A3.md)(企业版)|动态表单结合工作流生成自定义业务流程审核,可进行审批、撤回、回退、节点化表单项编辑设置、驳回、终止转办等功能,目前已支持四十多种流程管理
+论坛(企业版)|包括标签管理,关键词管理,举报审核等操作,用户可自由发表文章,系统通过过滤算法进行关键词过滤|计划管理(企业版)|方便公司进行公司计划、部门计划、个人计划的规划,可根据类型(日计划、周计划、月计划、季度计划等)进行定义
+动态表单(企业版)|通过自定义的方式生成提交表单页,可与动态数据进行结合,目前已和工作流结合|行政管理(企业版)|包含车辆管理、会议室管理、用品管理、印章管理、财产管理、证照管理。所有功能审核已和工作流结合
+内部公告(企业版)|系统内部公告通知,可设置邮件通知,定时通知,人员选择等|通讯录(企业版)|记录个人、公司内部、公共通讯录信息
+知识库(企业版)|企业文化支柱;[效果地址](https://gitee.com/doc_wei01/knowlg-pro)|[CRM客户管理](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/CRM%E5%AE%A2%E6%88%B7%E7%AE%A1%E7%90%86%E6%A8%A1%E5%9D%97.md)(企业版)|包含客户、商机、跟单、合同等多个模块化功能
+[ERP进销存管理](https://gitee.com/doc_wei01/erp-pro)(企业版)|包含采购、销售、零售、客户、供应商等多个模块化功能;[效果地址](https://gitee.com/doc_wei01/erp-pro)|[项目管理](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86.md)(企业版)|包含项目、工作量、讨论帖、项目文档、成本费用等功能
+[云售后管理系统](https://gitee.com/doc_wei01/skyeye/blob/master/%E5%8A%9F%E8%83%BD%E6%96%87%E6%A1%A3%E4%BB%8B%E7%BB%8D/%E5%94%AE%E5%90%8E%E5%B7%A5%E5%8D%95%E6%A8%A1%E5%9D%97.md)(企业版)|包含工单的派工,接单,签到,配件申领审批,完工,评价,审核等操作|生产模块(企业版)|已完成,[演示视频](https://www.bilibili.com/video/BV1yA411e7mm/)
+|学校模块以及考试模块(企业版)|[地址](https://gitee.com/doc_wei01/schoolExam)|EHR模块(企业版)|管理企业员工的基础信息|
+|薪资模块(企业版)|员工薪资管理,支持多种类型设定|||
+
+#### 技术选型
+
+##### 后端技术:
+
+技术|名称|官网
+---|---|---
+SpringBoot|核心框架|http://spring.io/projects/spring-boot
+MyBatis|ORM框架|http://www.mybatis.org/mybatis-3/zh/index.html
+Druid|数据库连接池|https://github.com/alibaba/druid
+Maven|项目构建管理|http://maven.apache.org/
+redis|key-value存储系统|https://redis.io/
+webSocket|浏览器与服务器全双工(full-duplex)通信|http://www.runoob.com/html/html5-websocket.html
+Activiti|工作流引擎|https://www.activiti.org/
+spring mvc|视图框架|http://spring.io/
+quartz 2.2.2|定时任务|http://www.quartz-scheduler.org/
+ActiveMQ|消息队列|http://activemq.apache.org/replicated-leveldb-store.html
+solr|企业级搜索应用服务器|https://lucene.apache.org/solr/
+Spring Cloud|微服务框架(目前用户APP端接口)|https://springcloud.cc/
+
+##### 前端技术:
+
+技术|名称|官网
+---|---|---
+jQuery|函式库|http://jquery.com/
+zTree|树插件|http://www.treejs.cn/v3/
+layui|模块化前端UI|https://www.layui.com/
+winui|win10风格UI|https://gitee.com/doc_wei01_admin/skyeye
+codemirror|codemirror代码编辑器|https://codemirror.net/
+handlebars|js模板引擎|http://www.ghostchina.com/introducing-the-handlebars-js-templating-engine/
+webSocket|浏览器与服务器全双工(full-duplex)通信|http://www.runoob.com/html/html5-websocket.html
+G6|流程图开发|https://antv.alipay.com/zh-cn/index.html
+FullCalendar|日历插件|https://blog.csdn.net/qw_xingzhe/article/details/44920943
+
+#### 代码描述
+##### 前后台接口映射
+
+```
+
+
+
+```
+
+##### 后台代码编写规范
+
+###### 控制层
+
+```
+@RequestMapping("后台接口")
+@ResponseBody
+public void 方法名(InputObject inputObject, OutputObject outputObject) throws Exception{
+ 服务层接口对象.方法名(inputObject, outputObject);
+}
+```
+
+###### 服务层
+
+```
+@Override
+public void 方法名(InputObject inputObject, OutputObject outputObject) throws Exception {
+ Map map = inputObject.getParams();//接收参数
+ Map user = inputObject.getLogParams();//获取当前登录用户信息
+ /**
+ * 业务逻辑
+ */
+ outputObject.setBean(bean);//返回单个实体Bean
+ outputObject.setBeans(beans);//返回集合
+ outputObject.settotal(total);//返回数量
+ outputObject.setreturnMessage("信息");//返回前端的错误信息
+ outputObject.setreturnMessage("信息", 错误码);//返回前端的错误信息,同时抛出异常(不常用)
+}
+```
+
+
+
+#### 效果图
+
+|效果图|效果图|
+| ------------- | ------------- |
+|![](https://s2.ax1x.com/2019/04/16/Avo0c8.png "1.png")|![](https://images.gitee.com/uploads/images/2019/0623/142954_6c8612f2_1541735.png "1.png")|
+|![](https://images.gitee.com/uploads/images/2018/1107/104734_d9304e60_1541735.png "2.png")|![](https://images.gitee.com/uploads/images/2018/1107/104903_f244dfde_1541735.png "3.png")|
+|![](https://s2.ax1x.com/2019/06/23/ZPS5h4.png)|![](https://images.gitee.com/uploads/images/2018/1118/191634_497ea929_1541735.png "微信图片_20181118191516.png")|
+|![](https://images.gitee.com/uploads/images/2018/1118/193301_72d0bb49_1541735.png "微信截图_20181118193254.png")|![](https://s2.ax1x.com/2019/04/16/Av7lee.png "微信截图_20181120154643.png")|
+|![](https://images.gitee.com/uploads/images/2018/1121/105120_65de9434_1541735.png "1.png")|![](https://images.gitee.com/uploads/images/2019/0623/145248_4a51c610_1541735.png)|
+|![](https://images.gitee.com/uploads/images/2019/0122/113516_b0600e8f_1541735.png "1.png")|![](https://images.gitee.com/uploads/images/2018/1207/123501_3248346e_1541735.png "微信截图_20181207123447.png")|
+|![](https://images.gitee.com/uploads/images/2019/0113/114947_1c7fa387_1541735.png "微信截图_20190113114922.png")|![](https://images.gitee.com/uploads/images/2019/0202/130711_7ed57951_1541735.png "3.png")|
+|![](https://s2.ax1x.com/2019/06/23/ZPC6cd.png)|![](https://images.gitee.com/uploads/images/2019/0623/145351_dd55da65_1541735.png)|
+|![](https://images.gitee.com/uploads/images/2019/0623/143810_e76aec71_1541735.png)|![](https://images.gitee.com/uploads/images/2019/0623/144143_1063782a_1541735.png)|
+|![](https://images.gitee.com/uploads/images/2019/0904/143828_b7ef9748_1541735.png)|![](https://images.gitee.com/uploads/images/2019/0904/143937_42519798_1541735.png)|
+
+#### 传统风格界面效果图
+
+|效果图|效果图|
+| ------------- | ------------- |
+|![](https://images.gitee.com/uploads/images/2019/0904/143634_0c9da9ad_1541735.png)|![](https://images.gitee.com/uploads/images/2019/0904/143639_2e442328_1541735.png)|
+|![输入图片说明](https://images.gitee.com/uploads/images/2019/1101/170700_738ed970_1541735.png "在这里输入图片标题")||
+
+
+#### 合作方式
+
+- 购买企业版源码
+- 购买企业版Jar包
+- 客户可提供文字版合作方式
+### 捐助
+如果您觉得我们的开源软件对你有所帮助,请扫下方二维码打赏我们一杯咖啡。
+| 支付宝 | 微信 | 更新资讯公众号 |
+| ------ | ---- | ---- |
+| ![ ](https://images.gitee.com/uploads/images/2019/1016/094014_96f92c56_1541735.png "微信截图_20191016093832.png") | ![ ](https://images.gitee.com/uploads/images/2019/1016/094025_65ba24f0_1541735.png "微信截图_20191016093850.png")|![输入图片说明](https://images.gitee.com/uploads/images/2021/0320/091531_8c3ba4d8_1541735.jpeg "qrcode_for_gh_e7f97ff1beda_430.jpg")|
diff --git a/skyeye-common/src/main/java/com/skyeye/eve/dao/SysEveModelDao.java b/skyeye-common/src/main/java/com/skyeye/eve/dao/SysEveModelDao.java
index 392c11cbf..8b5317b4d 100644
--- a/skyeye-common/src/main/java/com/skyeye/eve/dao/SysEveModelDao.java
+++ b/skyeye-common/src/main/java/com/skyeye/eve/dao/SysEveModelDao.java
@@ -4,6 +4,8 @@
package com.skyeye.eve.dao;
+import org.apache.ibatis.annotations.Param;
+
import java.util.List;
import java.util.Map;
@@ -25,11 +27,9 @@ public interface SysEveModelDao {
public int insertSysEveModelMation(Map map) throws Exception;
- public int deleteSysEveModelById(Map map) throws Exception;
-
- public Map selectSysEveModelById(Map map) throws Exception;
+ public int deleteSysEveModelById(@Param("id") String id) throws Exception;
- public Map selectSysEveModelMationById(Map map) throws Exception;
+ public Map selectSysEveModelMationById(@Param("id") String id) throws Exception;
public int editSysEveModelMationById(Map map) throws Exception;
diff --git a/skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEveModelServiceImpl.java b/skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEveModelServiceImpl.java
index 64d0fefb5..9e4e0ec00 100644
--- a/skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEveModelServiceImpl.java
+++ b/skyeye-common/src/main/java/com/skyeye/eve/service/impl/SysEveModelServiceImpl.java
@@ -9,15 +9,16 @@ import com.github.pagehelper.PageHelper;
import com.skyeye.common.object.InputObject;
import com.skyeye.common.object.OutputObject;
import com.skyeye.common.util.DateUtil;
+import com.skyeye.common.util.FileUtil;
import com.skyeye.common.util.ToolUtil;
import com.skyeye.eve.dao.SysEveModelDao;
import com.skyeye.eve.service.SysEveModelService;
import com.skyeye.jedis.JedisClientService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -40,6 +41,9 @@ public class SysEveModelServiceImpl implements SysEveModelService {
@Autowired
public JedisClientService jedisClient;
+ @Value("${IMAGES_PATH}")
+ private String tPath;
+
/**
*
* @Title: querySysEveModelList
@@ -99,7 +103,12 @@ public class SysEveModelServiceImpl implements SysEveModelService {
@Transactional(value="transactionManager")
public void deleteSysEveModelById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map map = inputObject.getParams();
- sysEveModelDao.deleteSysEveModelById(map);
+ String id = map.get("id").toString();
+ Map bean = sysEveModelDao.selectSysEveModelMationById(id);
+ if (bean != null && !bean.isEmpty()) {
+ FileUtil.deleteFile(tPath.replace("images", "") + bean.get("logo").toString());
+ sysEveModelDao.deleteSysEveModelById(id);
+ }
}
/**
@@ -115,7 +124,8 @@ public class SysEveModelServiceImpl implements SysEveModelService {
@Override
public void selectSysEveModelById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map map = inputObject.getParams();
- Map bean = sysEveModelDao.selectSysEveModelById(map);
+ String id = map.get("id").toString();
+ Map bean = sysEveModelDao.selectSysEveModelMationById(id);
outputObject.setBean(bean);
outputObject.settotal(1);
}
@@ -157,7 +167,8 @@ public class SysEveModelServiceImpl implements SysEveModelService {
@Override
public void selectSysEveModelMationById(InputObject inputObject, OutputObject outputObject) throws Exception {
Map map = inputObject.getParams();
- Map bean = sysEveModelDao.selectSysEveModelMationById(map);
+ String id = map.get("id").toString();
+ Map bean = sysEveModelDao.selectSysEveModelMationById(id);
outputObject.setBean(bean);
outputObject.settotal(1);
}
diff --git a/skyeye-common/src/main/resources/mapper/common/SysEveModelMapper.xml b/skyeye-common/src/main/resources/mapper/common/SysEveModelMapper.xml
index fbf259444..037e58a48 100644
--- a/skyeye-common/src/main/resources/mapper/common/SysEveModelMapper.xml
+++ b/skyeye-common/src/main/resources/mapper/common/SysEveModelMapper.xml
@@ -10,11 +10,17 @@
a.logo,
a.content content,
b.type_name firstTypeName,
- c.type_name secondTypeName
+ c.type_name secondTypeName,
+ d.user_name createName,
+ CONVERT(a.create_time, char) createTime,
+ e.user_name lastUpdateName,
+ CONVERT(a.last_update_time, char) lastUpdateTime
FROM
sys_eve_model a
LEFT JOIN sys_eve_model_type b ON a.first_type_id = b.id
LEFT JOIN sys_eve_model_type c ON a.second_type_id = c.id
+ LEFT JOIN sys_eve_user_staff d ON a.create_id = d.user_id
+ LEFT JOIN sys_eve_user_staff e ON a.last_update_id = e.user_id
WHERE 1 = 1
AND a.title LIKE '%${title}%'
@@ -56,36 +62,24 @@
VALUES(#{id}, #{title}, #{content}, #{type}, #{userId}, #{createTime}, #{firstTypeId}, #{secondTypeId}, #{userId}, #{createTime}, #{logo})
-
+
DELETE
FROM
sys_eve_model
WHERE
id = #{id}
-
-
-