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资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。
资源推荐
资源详情
资源评论
收起资源包目录
前后端分离的在线办公系统,项目采用 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
TbAction.java 527B
TbModule.java 527B
ApprovalMeetingForm.java 488B
EmosServerApplicationTests.java 481B
TbPermissionDao.java 460B
OAuth2Token.java 444B
TbActionDao.java 432B
TbModuleDao.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
资源评论
独处东汉
- 粉丝: 345
- 资源: 822
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功