package com.vincent.emos.wx.service.impl;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.vincent.emos.wx.db.dao.TbMeetingApprovalDao;
import com.vincent.emos.wx.db.dao.TbMeetingDao;
import com.vincent.emos.wx.db.dao.TbUserDao;
import com.vincent.emos.wx.db.pojo.MessageEntity;
import com.vincent.emos.wx.db.pojo.TbMeeting;
import com.vincent.emos.wx.db.pojo.TbMeetingApproval;
import com.vincent.emos.wx.exception.EmosException;
import com.vincent.emos.wx.service.MeetingService;
import com.vincent.emos.wx.task.MessageTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Slf4j
@Service
public class MeetingServiceImpl implements MeetingService {
@Autowired
private TbMeetingDao meetingDao;
@Autowired
private TbMeetingApprovalDao approvalDao;
@Autowired
private TbUserDao userDao;
@Autowired
private MessageTask messageTask;
// 通知回调地址
private String receiveNotify;
//慕课网授权字符串
private String code;
@Override
public void insertMeeting(TbMeeting meeting) {
int row = meetingDao.insertMeeting(meeting);
long id = ((BigInteger) meetingDao.searchMeetingStatus(meeting.getUuid()).get("id")).longValue();
if (row != 1) {
throw new EmosException("会议添加失败");
}
startMeetingWorkflow(id, meeting.getUuid(), meeting.getCreatorId().intValue(),meeting.getTitle());
}
@Override
public ArrayList<HashMap> searchMeetingListByPage(HashMap params) {
ArrayList<HashMap> list = meetingDao.searchMeetingListByPage(params);
String date = "";
ArrayList resultList = new ArrayList();
HashMap resultHashMap = null;
JSONArray array = null;
for (HashMap map : list) {
String tempDate = map.get("date").toString();
if (!tempDate.equals(date)) {
date = tempDate;
resultHashMap = new HashMap();
resultList.add(resultHashMap);
resultHashMap.put("date", date);
array = new JSONArray();
resultHashMap.put("list", array);
}
array.put(map);
}
return resultList;
}
@Override
public HashMap searchMeetingById(int id) {
HashMap map = meetingDao.searchMeetingById(id);
ArrayList<HashMap> list = meetingDao.searchMeetingMembers(id);
map.put("members", list);
return map;
}
@Override
public void updateMeetingInfo(HashMap param) {
int id = (int) param.get("id");
HashMap oldMeeting = meetingDao.searchMeetingById(id);
String uuid = oldMeeting.get("uuid").toString();
Integer creatorId = Integer.parseInt(oldMeeting.get("creatorId").toString());
int row = meetingDao.updateMeetingInfo(param);
if (row != 1) {
throw new EmosException("会议更新失败");
}
// TODO: 2021/2/23 实现工作流
approvalDao.deleteApprovalByUUID(uuid);
//创建新的工作流
startMeetingWorkflow(id, uuid, creatorId,oldMeeting.get("title").toString());
}
@Override
public void deleteMeetingById(int id) {
HashMap meeting = meetingDao.searchMeetingById(id); //查询会议信息
String uuid = meeting.get("uuid").toString();
String instanceId = meeting.get("instanceId").toString();
DateTime date = DateUtil.parse(meeting.get("date") + " " + meeting.get("start"));
DateTime now = DateUtil.date();
//会议开始前20分钟,不能删除会议
if (now.isAfterOrEquals(date.offset(DateField.MINUTE, -20))) {
throw new EmosException("距离会议开始不足20分钟,不能删除会议");
}
int row = meetingDao.deleteMeetingById(id);
if (row != 1) {
throw new EmosException("会议删除失败");
}
// // TODO: 2021/2/23 删除工作流
approvalDao.deleteApprovalByUUID(uuid);
}
@Override
public List<String> searchUserMeetingInMonth(HashMap param) {
return meetingDao.searchUserMeetingInMonth(param);
}
@Override
public ArrayList<HashMap> searchAlreadyApprovalMeeting(int userId) {
//总经理的信息
int gmId = userDao.searchGmId();
HashMap gmInfo = userDao.searchUserInfo(gmId);
ArrayList<HashMap> list;
if (userId == gmId) {
list = approvalDao.searchGMAlreadyApprovalMeeting();
} else {
list = approvalDao.searchMgrAlreadyApprovalMeeting(userId);
}
for (HashMap map : list) {
long creator_id = (long) map.get("creator_id");
long finish_id = (long) map.get("last_user");
int status = (int) map.get("status");
boolean meetingApprovalFinished = status != 1;
JSONArray jsonMembers = JSONUtil.parseArray(map.get("members").toString());
JSONArray jsonApprovals = JSONUtil.parseArray(map.get("approvals").toString());
boolean isSingleDept = jsonMembers.size() == 1;
map.put("sameDept", isSingleDept);
map.put("processStatus", meetingApprovalFinished ? "已结束" : "未结束");
if (isSingleDept) {
if (!meetingApprovalFinished) {
throw new EmosException("会议审批状态错误");
} else {
// HashMap lastUserInfo = userDao.searchUserInfo((int) finish_id);
// map.put("lastUserPhoto", lastUserInfo.get("photo"));
// map.put("lastUserName", lastUserInfo.get("name"));
if (status != 2) {
map.put("result_1", "同意");
map.put("result_2", "同意");
} else {
map.put("result_1", "不同意");
map.put("result_2", "不同意");
}
}
} else {
// map.put("lastUserPhoto", gmInfo.get("photo"));
// map.put("lastUserName", gmInfo.get("name"));
if (meetingApprovalFinished) {
if (status != 2) {
map.put("result_1", "同意");
map.put("result_2", "同意");
} else {
if (finish_id == userId) {
map.put("result_1", "不同意");
} else {
map.put("result_1", "同意");
}
map.put("result_2", "不同意");
}
} else {
map.put("result_1", "同意");
}
}
}
return list;
}
@Override
public ArrayList<HashMap> searchNeedApprovalMeeting(int userId) {
int gmId = userDao.searchGmId();
if (userId == gmId) {
return approvalDao.searchNeedGMApprovalMeeting();
} else {
return approvalDao.searchNeedMgrApprovalMeeting(userId);
}
}
@Override
public int approvalMeeting(HashMap hashMap) {
int userId = (int) hashMap.get("userId");
String uuid = hashMap.get("uuid").toString();
int option = (int) hashMap.get("option");
TbMeetingApproval approval = approvalDao.searchApprovalByUUID(uuid);
JSONArray jsonMembers = JSONUtil.parseArray(approval.getMembers());
JSONArray jsonApprovals;
if (approval.getApprovals() ==
没有合适的资源?快使用搜索试试~ 我知道了~
前后端分离的在线办公系统,项目采用 SpringBoot+Uniapp 开发,前端采用微信小程序展示.zip
共305个文件
java:126个
png:54个
vue:45个
需积分: 0 2 下载量 193 浏览量
2023-08-18
23:08:29
上传
评论
收藏 1.23MB ZIP 举报
温馨提示
毕业设计,课程设计,项目源码均经过助教老师测试,运行无误,欢迎下载交流 ----- 下载后请首先打开README.md文件(如有) ----- 毕业设计,课程设计,项目源码均经过助教老师测试,运行无误,欢迎下载交流 ----- 下载后请首先打开README.md文件(如有)
资源推荐
资源详情
资源评论
收起资源包目录
前后端分离的在线办公系统,项目采用 SpringBoot+Uniapp 开发,前端采用微信小程序展示.zip (305个子文件)
mvnw.cmd 6KB
.gitignore 399B
.gitignore 61B
MeetingServiceImpl.java 12KB
CheckinServiceImpl.java 12KB
UserController.java 8KB
UserServiceImpl.java 7KB
CheckinController.java 7KB
MessageTask.java 6KB
MeetingController.java 6KB
OAuth2Filter.java 6KB
StorageService.java 5KB
EmployeeController.java 4KB
FaceLibraryService.java 4KB
XssHttpServletRequestWrapper.java 4KB
RoleController.java 3KB
MessageDao.java 3KB
RoleServiceImpl.java 3KB
MessageController.java 3KB
ShiroConfig.java 3KB
MeetingApprovalController.java 3KB
MessageRefDao.java 3KB
SwaggerConfig.java 2KB
OAuth2Realm.java 2KB
EmployeeServiceImpl.java 2KB
DeptController.java 2KB
EmosServerApplication.java 2KB
JwtUtil.java 2KB
FaceVerifyService.java 2KB
MessageServiceImpl.java 2KB
RiskUtil.java 2KB
UserService.java 2KB
TbUserDao.java 1KB
HealthyServiceImpl.java 1KB
ExceptionAdvice.java 1KB
DeptServiceImpl.java 1KB
HealthyController.java 1KB
Imagebase64.java 1KB
MessageService.java 1KB
TbMeeting.java 1KB
R.java 1KB
UpdateMeetingInfoForm.java 1KB
TbUser.java 1KB
CheckinService.java 1KB
InsertMeetingForm.java 1KB
TbMeetingDao.java 1KB
DocumentController.java 1020B
TestController.java 984B
TokenAspect.java 972B
ThreadPoolConfig.java 934B
TbCheckin.java 921B
InsertEmployeeForm.java 920B
UpdateEmployeeForm.java 917B
EmailTask.java 876B
TbEmployee.java 809B
MeetingService.java 704B
MessageEntity.java 702B
XssFilter.java 701B
EmployeeList.java 698B
TbMeetingApprovalDao.java 677B
TbCheckinDao.java 674B
TbEmployeeDao.java 670B
ContactList.java 657B
EmosException.java 630B
EmployeeService.java 625B
RegisterForm.java 623B
TencentService.java 604B
TbDeptDao.java 594B
SystemConstants.java 592B
TbRoleDao.java 561B
TbMeetingApproval.java 554B
MessageRefEntity.java 540B
RabbitMQConfig.java 536B
TbPermission.java 531B
SysConfig.java 528B
TbModule.java 527B
TbAction.java 527B
ApprovalMeetingForm.java 488B
EmosServerApplicationTests.java 481B
TbPermissionDao.java 460B
OAuth2Token.java 444B
TbModuleDao.java 432B
TbActionDao.java 432B
SearchMyMeetingListByPageForm.java 431B
TbFaceModel.java 428B
RoleService.java 427B
SearchMessageByPageForm.java 424B
TestSayHelloForm.java 420B
TbRole.java 415B
TbCity.java 404B
SearchMonthCheckinForm.java 403B
UpdateRolePermissionsForm.java 393B
ThreadLocalToken.java 390B
UpdateDeptForm.java 379B
RegisterCodeForm.java 374B
TbHolidays.java 365B
TbWorkday.java 364B
TbDept.java 346B
SearchUserMeetingInMonthForm.java 337B
DeleteRoleForm.java 336B
共 305 条
- 1
- 2
- 3
- 4
资源评论
程皮
- 粉丝: 258
- 资源: 2554
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- IMG_0796.PNG
- Hyper+Lightning5+SDXL大模型比较推荐
- 基于matlab 小波神经网络的时间序列预测-短时交通流量预测源代码+详细教程
- 基于matlab 思维进化算法优化BP神经网络-非线性函数拟合源代码+详细教程
- macOS植物大战僵尸3D 苹果电脑版.7z
- 基于matlab 极限学习机在回归拟合及分类问题中的应用研究-对比实验源代码+详细教程
- ItemApplicationTest.java
- (PC+WAP)公司注册财务会计类网站pbootcms模板 蓝色律师公证网站源码下载.zip
- 高校校园招聘系统 JAVA+Spring+SpringMVC+MyBatis
- 个人发卡源码,发卡系统,二次元发卡系统,二次元发卡源码,发卡程序,动漫发卡,PHP发卡源码,异次元发卡
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功