|
@@ -5,6 +5,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.github.yulichang.base.MPJBaseServiceImpl;
|
|
@@ -85,17 +86,17 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
@Override
|
|
|
public List<MeetingRoomListVo> listMeetingRoom(MeetingRoomListDto dto) {
|
|
|
List<MeetingRoomListVo> usableResult = new ArrayList<>();
|
|
|
- if(ObjectUtils.isEmpty(dto.getMeetingApplyDate())
|
|
|
+ if (ObjectUtils.isEmpty(dto.getMeetingApplyDate())
|
|
|
|| ObjectUtils.isEmpty(dto.getMeetingApplyS())
|
|
|
|| ObjectUtils.isEmpty(dto.getMeetingApplyE())
|
|
|
- ){
|
|
|
+ ) {
|
|
|
return usableResult;
|
|
|
}
|
|
|
|
|
|
|
|
|
LocalDate meetingApplyDate = LocalDate.parse(dto.getMeetingApplyDate());
|
|
|
- LocalTime startTime = LocalTime.parse(dto.getMeetingApplyS());
|
|
|
- LocalTime endTime = LocalTime.parse(dto.getMeetingApplyE());
|
|
|
+ LocalTime startTime = LocalTime.parse(dto.getMeetingApplyS());
|
|
|
+ LocalTime endTime = LocalTime.parse(dto.getMeetingApplyE());
|
|
|
|
|
|
|
|
|
MPJLambdaWrapper<MeetingRoom> meetingRoomMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
@@ -107,7 +108,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
.selectAs(BaseOfficeBuild::getName, MeetingRoomListVo::getOfficeBuildIdCn)
|
|
|
.leftJoin(BaseOfficeBuild.class, BaseOfficeBuild::getId, MeetingRoom::getOfficeBuildId)
|
|
|
.eq(MeetingRoom::getStatus, 1)
|
|
|
- ;
|
|
|
+ ;
|
|
|
List<MeetingRoomListVo> result = meetingRoomMapper.selectJoinList(MeetingRoomListVo.class, meetingRoomMPJLambdaWrapper);
|
|
|
|
|
|
|
|
@@ -133,7 +134,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
meetingRoomListVo = new MeetingRoomListVo();
|
|
|
for (WfMeetingApply wfMeetingApply : value) {
|
|
|
|
|
|
- if(!(startTime.isBefore(wfMeetingApply.getMeetingApplyS()) || endTime.isAfter(wfMeetingApply.getMeetingApplyE()))){
|
|
|
+ if (!(startTime.isBefore(wfMeetingApply.getMeetingApplyS()) || endTime.isAfter(wfMeetingApply.getMeetingApplyE()))) {
|
|
|
isReservation = true;
|
|
|
}
|
|
|
reservationDetail.append(wfMeetingApply.getMeetingApplyS()).append("-").append(wfMeetingApply.getMeetingApplyE()).append("\r\n");
|
|
@@ -144,13 +145,13 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
reservationMap.put(key, meetingRoomListVo);
|
|
|
}
|
|
|
|
|
|
- for (MeetingRoomListVo vo : result){
|
|
|
+ for (MeetingRoomListVo vo : result) {
|
|
|
vo.setStatus(0);
|
|
|
MeetingRoomListVo reservationRoom = reservationMap.get(vo.getId());
|
|
|
- if(ObjectUtils.isEmpty(reservationRoom)){
|
|
|
+ if (ObjectUtils.isEmpty(reservationRoom)) {
|
|
|
usableResult.add(vo);
|
|
|
}
|
|
|
- if(ObjectUtils.isNotEmpty(reservationRoom) && reservationRoom.getStatus() == 0){
|
|
|
+ if (ObjectUtils.isNotEmpty(reservationRoom) && reservationRoom.getStatus() == 0) {
|
|
|
usableResult.add(vo);
|
|
|
}
|
|
|
}
|
|
@@ -164,8 +165,8 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
public IPage<WfMeetingApplyPageVo> pageRabAndHand(WfMeetingApplyPageDto dto) {
|
|
|
|
|
|
Long loginId = StpUtil.getLoginIdAsLong();
|
|
|
- int permission = 1;
|
|
|
- if(StpUtil.hasRole("Conference") || StpUtil.hasRole("ADMIN")){
|
|
|
+ int permission = 1;
|
|
|
+ if (StpUtil.hasRole("Conference") || StpUtil.hasRole("ADMIN")) {
|
|
|
permission = 2;
|
|
|
}
|
|
|
|
|
@@ -181,7 +182,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
.leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, WfMeetingApply::getMeetingApplyFormat,
|
|
|
wrapper -> wrapper
|
|
|
.selectAs(DictionaryDetail::getName, WfMeetingApplyPageVo::getMeetingApplyFormatCn)
|
|
|
- )
|
|
|
+ )
|
|
|
.leftJoin(MeetingRoom.class, MeetingRoom::getId, WfMeetingApply::getMeetingRoomId,
|
|
|
wrapper -> wrapper
|
|
|
.selectAs(MeetingRoom::getName, WfMeetingApplyPageVo::getMeetingRoomIdCn)
|
|
@@ -191,34 +192,38 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
.selectAs(XjrUser::getName, WfMeetingApplyPageVo::getMeetingApplyHostCn)
|
|
|
.like(StringUtils.isNotEmpty(dto.getMeetingApplyHostCn()), XjrUser::getName, dto.getMeetingApplyHostCn())
|
|
|
)
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getSponsorId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(XjrUser::getName, WfMeetingApplyPageVo::getSponsorIdCn)
|
|
|
+ )
|
|
|
.eq(permission == 1, WfMeetingApply::getSponsorId, loginId)
|
|
|
.eq(WfMeetingApply::getWorkflowStatus, 1)
|
|
|
.ge(ObjectUtils.isNotEmpty(dto.getStartMeetingApplyDate()), WfMeetingApply::getMeetingApplyDate, dto.getStartMeetingApplyDate())
|
|
|
.le(ObjectUtils.isNotEmpty(dto.getEndMeetingApplyDate()), WfMeetingApply::getMeetingApplyDate, dto.getEndMeetingApplyDate())
|
|
|
.eq(StringUtils.isNotEmpty(dto.getMeetingApplyFormat()), WfMeetingApply::getMeetingApplyFormat, dto.getMeetingApplyFormat())
|
|
|
.like(StringUtils.isNotEmpty(dto.getMeetingApplyTheme()), WfMeetingApply::getMeetingApplyTheme, dto.getMeetingApplyTheme())
|
|
|
- ;
|
|
|
- if(ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 0){
|
|
|
+ ;
|
|
|
+ if (ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 0) {
|
|
|
wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
.ge(WfMeetingApply::getMeetingApplyDate, nowLocalDate)
|
|
|
.gt(WfMeetingApply::getMeetingApplyS, nowLocalTime)
|
|
|
- ;
|
|
|
+ ;
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 1){
|
|
|
+ if (ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 1) {
|
|
|
wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
.eq(WfMeetingApply::getMeetingStatus, 1)
|
|
|
;
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 2){
|
|
|
+ if (ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 2) {
|
|
|
wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
.le(WfMeetingApply::getMeetingApplyDate, nowLocalDate)
|
|
|
.lt(WfMeetingApply::getMeetingApplyE, nowLocalTime)
|
|
|
;
|
|
|
}
|
|
|
|
|
|
- if(ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 3){
|
|
|
+ if (ObjectUtils.isNotEmpty(dto.getMeetingStatus()) && dto.getMeetingStatus() == 3) {
|
|
|
wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
.eq(WfMeetingApply::getMeetingApplyDate, nowLocalDate)
|
|
|
.le(WfMeetingApply::getMeetingApplyS, nowLocalTime)
|
|
@@ -228,25 +233,18 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
|
|
|
IPage<WfMeetingApplyPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), WfMeetingApplyPageVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
|
|
|
|
|
|
- List<String> ids = page.getRecords().stream()
|
|
|
- .map(WfMeetingApplyPageVo::getId)
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
- for (WfMeetingApplyPageVo vo : page.getRecords()){
|
|
|
+ for (WfMeetingApplyPageVo vo : page.getRecords()) {
|
|
|
if (vo.getMeetingStatus() != 1) {
|
|
|
if (vo.getMeetingApplyDate().isBefore(nowLocalDate)) {
|
|
|
vo.setMeetingStatus(2);
|
|
|
} else if (vo.getMeetingApplyDate().isAfter(nowLocalDate)) {
|
|
|
- vo.setMeetingStatus(1);
|
|
|
+ vo.setMeetingStatus(0);
|
|
|
} else {
|
|
|
if (vo.getMeetingApplyE().isBefore(nowLocalTime)) {
|
|
|
vo.setMeetingStatus(2);
|
|
|
} else if (vo.getMeetingApplyS().isAfter(nowLocalTime)) {
|
|
|
- vo.setMeetingStatus(1);
|
|
|
+ vo.setMeetingStatus(0);
|
|
|
} else {
|
|
|
vo.setMeetingStatus(3);
|
|
|
}
|
|
@@ -259,8 +257,110 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
|
|
|
@Override
|
|
|
public IPage<TodayMeetingMobilePageVo> todayMeetingMobilePage(TodayMeetingMobilePageDto dto) {
|
|
|
+ LocalTime nowLocalTime = LocalTime.now();
|
|
|
+ if(ObjectUtils.isEmpty(dto.getMeetingApplyDate())){
|
|
|
+ dto.setMeetingApplyDate(LocalDate.now());
|
|
|
+ }
|
|
|
+ Long loginId = StpUtil.getLoginIdAsLong();
|
|
|
|
|
|
- return null;
|
|
|
+ MPJLambdaWrapper<WfMeetingApply> wfMeetingApplyPageVoMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .select(WfMeetingApply::getId)
|
|
|
+ .select(WfMeetingApply.class, x -> VoToColumnUtil.fieldsToColumns(TodayMeetingMobilePageVo.class).contains(x.getProperty()))
|
|
|
+ .innerJoin(MeetingConferee.class, MeetingConferee::getWfMeetingApplyId, WfMeetingApply::getId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(MeetingConferee::getCheckInStatus, TodayMeetingMobilePageVo::getCheckInStatus)
|
|
|
+ )
|
|
|
+ .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, WfMeetingApply::getMeetingApplyFormat,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(DictionaryDetail::getName, TodayMeetingMobilePageVo::getMeetingApplyFormatCn)
|
|
|
+ )
|
|
|
+ .leftJoin(MeetingRoom.class, MeetingRoom::getId, WfMeetingApply::getMeetingRoomId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(MeetingRoom::getName, TodayMeetingMobilePageVo::getMeetingRoomIdCn)
|
|
|
+ )
|
|
|
+ .eq(WfMeetingApply::getMeetingApplyDate, dto.getMeetingApplyDate())
|
|
|
+ .eq(MeetingConferee::getUserId, loginId)
|
|
|
+ .eq(WfMeetingApply::getWorkflowStatus, 1)
|
|
|
+ .orderByAsc(WfMeetingApply::getMeetingApplyS)
|
|
|
+ ;
|
|
|
+ IPage<TodayMeetingMobilePageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), TodayMeetingMobilePageVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
|
|
|
+ List<TodayMeetingMobilePageVo> record = page.getRecords();
|
|
|
+
|
|
|
+
|
|
|
+ List<TodayMeetingMobilePageVo> futureVo = new ArrayList<>();
|
|
|
+ List<TodayMeetingMobilePageVo> pastVo = new ArrayList<>();
|
|
|
+
|
|
|
+
|
|
|
+ for (TodayMeetingMobilePageVo vo : record){
|
|
|
+ if (vo.getMeetingStatus() != 1) {
|
|
|
+ if (vo.getMeetingApplyE().isBefore(nowLocalTime)) {
|
|
|
+ if(vo.getCheckInStatus() == 0){
|
|
|
+ vo.setMeetingStatus(4);
|
|
|
+ }
|
|
|
+ if(vo.getCheckInStatus() == 1){
|
|
|
+ vo.setMeetingStatus(2);
|
|
|
+ }
|
|
|
+ } else if (vo.getMeetingApplyS().isAfter(nowLocalTime)) {
|
|
|
+ vo.setMeetingStatus(0);
|
|
|
+ } else {
|
|
|
+ vo.setMeetingStatus(3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (vo.getMeetingApplyS().isBefore(nowLocalTime)) {
|
|
|
+ pastVo.add(vo);
|
|
|
+ } else {
|
|
|
+ futureVo.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<TodayMeetingMobilePageVo> result = new ArrayList<>();
|
|
|
+ result.addAll(futureVo);
|
|
|
+ result.addAll(pastVo);
|
|
|
+
|
|
|
+ page.setRecords(result);
|
|
|
+
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public MeetingMobileInfoVo mobileInfo(Long id) {
|
|
|
+ MPJLambdaWrapper<WfMeetingApply> wfMeetingApplyPageVoMPJLambdaWrapper = new MPJLambdaWrapper<>();
|
|
|
+ wfMeetingApplyPageVoMPJLambdaWrapper
|
|
|
+ .disableSubLogicDel()
|
|
|
+ .select(WfMeetingApply::getId)
|
|
|
+ .select(" (SELECT GROUP_CONCAT(a.name) FROM xjr_user a" +
|
|
|
+ " LEFT JOIN meeting_conferee b ON b.user_id = a.id" +
|
|
|
+ " WHERE b.delete_mark = 0 AND b.wf_meeting_apply_id = t.id) as meetingApplyParticipantsCn")
|
|
|
+ .select(WfMeetingApply.class, x -> VoToColumnUtil.fieldsToColumns(MeetingMobileInfoVo.class).contains(x.getProperty()))
|
|
|
+ .leftJoin(DictionaryDetail.class, DictionaryDetail::getCode, WfMeetingApply::getMeetingApplyFormat,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(DictionaryDetail::getName, MeetingMobileInfoVo::getMeetingApplyFormatCn)
|
|
|
+ )
|
|
|
+ .leftJoin(MeetingRoom.class, MeetingRoom::getId, WfMeetingApply::getMeetingRoomId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(MeetingRoom::getName, MeetingMobileInfoVo::getMeetingRoomIdCn)
|
|
|
+ )
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getMeetingApplyHost,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(XjrUser::getName, MeetingMobileInfoVo::getMeetingApplyHostCn)
|
|
|
+ )
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getSponsorId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(XjrUser::getName, MeetingMobileInfoVo::getSponsorIdCn)
|
|
|
+ )
|
|
|
+ .eq(WfMeetingApply::getId, id)
|
|
|
+ ;
|
|
|
+
|
|
|
+ MeetingMobileInfoVo info = this.selectJoinOne(MeetingMobileInfoVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
|
|
|
+
|
|
|
+ if (ObjectUtils.isNotEmpty(info)) {
|
|
|
+ List<File> fileList = fileMapper.selectList(Wrappers.<File>query().lambda().eq(File::getFolderId, info.getPreMeetingInfoFileId()));
|
|
|
+ info.setFileInfos(fileList);
|
|
|
+ }
|
|
|
+
|
|
|
+ return info;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -285,12 +385,16 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
wrapper -> wrapper
|
|
|
.selectAs(XjrUser::getName, WfMeetingApplyInWorkflowVo::getMeetingApplyHostCn)
|
|
|
)
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getSponsorId,
|
|
|
+ wrapper -> wrapper
|
|
|
+ .selectAs(XjrUser::getName, WfMeetingApplyInWorkflowVo::getSponsorIdCn)
|
|
|
+ )
|
|
|
.eq(WfMeetingApply::getId, id)
|
|
|
;
|
|
|
|
|
|
WfMeetingApplyInWorkflowVo info = this.selectJoinOne(WfMeetingApplyInWorkflowVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
|
|
|
|
|
|
- if(ObjectUtils.isNotEmpty(info)){
|
|
|
+ if (ObjectUtils.isNotEmpty(info)) {
|
|
|
List<File> fileList = fileMapper.selectList(Wrappers.<File>query().lambda().eq(File::getFolderId, info.getPreMeetingInfoFileId()));
|
|
|
info.setFileInfos(fileList);
|
|
|
|
|
@@ -345,18 +449,13 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
meetingConfereeOpinionMPJLambdaWrapper
|
|
|
.disableSubLogicDel()
|
|
|
.select(MeetingConfereeOpinion::getId)
|
|
|
- .selectAs(MeetingConferee::getUserId, MeetingConfereeOpinionListVo::getUserId)
|
|
|
.select(MeetingConfereeOpinion.class, x -> VoToColumnUtil.fieldsToColumns(MeetingConfereeOpinionListVo.class).contains(x.getProperty()))
|
|
|
- .innerJoin(MeetingConferee.class,
|
|
|
- wrapper -> wrapper
|
|
|
- .eq(MeetingConferee::getId, MeetingConfereeOpinion::getMeetingConfereeId)
|
|
|
- .eq(MeetingConferee::getWfMeetingApplyId, dto.getWfMeetingApplyId())
|
|
|
- )
|
|
|
- .leftJoin(XjrUser.class, XjrUser::getId, MeetingConferee::getUserId,
|
|
|
+ .leftJoin(XjrUser.class, XjrUser::getId, MeetingConfereeOpinion::getUserId,
|
|
|
wrapper -> wrapper
|
|
|
- .selectAs(XjrUser::getName, MeetingConfereeListVo::getUserIdCn)
|
|
|
+ .selectAs(XjrUser::getName, MeetingConfereeOpinionListVo::getUserIdCn)
|
|
|
)
|
|
|
- ;
|
|
|
+ .eq(MeetingConfereeOpinion::getWfMeetingApplyId, dto.getWfMeetingApplyId())
|
|
|
+ ;
|
|
|
return meetingConfereeOpinionMapper.selectJoinList(MeetingConfereeOpinionListVo.class, meetingConfereeOpinionMPJLambdaWrapper);
|
|
|
}
|
|
|
|
|
@@ -369,11 +468,11 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
.select(WfMeetingApply::getId)
|
|
|
.selectAs(MeetingRoom::getName, WfMeetingApply::getMeetingSummary)
|
|
|
.selectAs(XjrUser::getName, WfMeetingApply::getMonogramTheme)
|
|
|
- .select(WfMeetingApply.class,x -> VoToColumnUtil.fieldsToColumns(WfMeetingApply.class).contains(x.getProperty()))
|
|
|
+ .select(WfMeetingApply.class, x -> VoToColumnUtil.fieldsToColumns(WfMeetingApply.class).contains(x.getProperty()))
|
|
|
.leftJoin(MeetingRoom.class, MeetingRoom::getId, WfMeetingApply::getMeetingRoomId)
|
|
|
.leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getSponsorId)
|
|
|
.eq(WfMeetingApply::getId, id)
|
|
|
- ;
|
|
|
+ ;
|
|
|
WfMeetingApply meetingApply = this.selectJoinOne(WfMeetingApply.class, wrapper);
|
|
|
|
|
|
|
|
@@ -399,7 +498,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
List<String> userIds = Arrays.asList(meetingApply.getMeetingApplyParticipants().split(","));
|
|
|
|
|
|
|
|
|
- List<User> userList = userService.list(new QueryWrapper<User>().lambda().in(User::getId, userIds).isNotNull(User::getOpenId));
|
|
|
+ List<User> userList = userService.list(new QueryWrapper<User>().lambda().in(User::getId, userIds));
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
LocalDateTime startLocalDateTime = LocalDateTime.of(meetingApply.getMeetingApplyDate(), meetingApply.getMeetingApplyS());
|
|
|
LocalDateTime endLocalDateTime = LocalDateTime.of(meetingApply.getMeetingApplyDate(), meetingApply.getMeetingApplyE());
|
|
@@ -430,34 +529,36 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
|
|
|
|
|
|
for (User user : userList) {
|
|
|
- WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
|
|
|
- weChatSendMessageDto.setUserId(user.getOpenId());
|
|
|
- weChatSendMessageDto.setTemplateId("Hign0b3e4WSXe__YmBKyDsBgAjkfNYC7c6yIUHjk3Hg");
|
|
|
- weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
|
|
|
- JSONObject paramJson = new JSONObject();
|
|
|
-
|
|
|
- JSONObject thing2 = new JSONObject();
|
|
|
- thing2.put("value", meetingApply.getMeetingApplyTheme());
|
|
|
- paramJson.put("thing2", thing2);
|
|
|
-
|
|
|
- JSONObject time5 = new JSONObject();
|
|
|
- time5.put("value", startTime);
|
|
|
- paramJson.put("time5", time5);
|
|
|
-
|
|
|
- JSONObject time6 = new JSONObject();
|
|
|
- time6.put("value", endTime);
|
|
|
- paramJson.put("time6", time6);
|
|
|
-
|
|
|
- JSONObject thing7 = new JSONObject();
|
|
|
- thing7.put("value", meetingApply.getMeetingSummary());
|
|
|
- paramJson.put("thing7", thing7);
|
|
|
-
|
|
|
- JSONObject thing8 = new JSONObject();
|
|
|
- thing8.put("value", meetingApply.getMonogramTheme());
|
|
|
- paramJson.put("thing8", thing8);
|
|
|
-
|
|
|
- weChatSendMessageDto.setContent(paramJson);
|
|
|
- weChatService.sendTemplateMessage(weChatSendMessageDto);
|
|
|
+ if (ObjectUtils.isNotEmpty(user.getOpenId())) {
|
|
|
+ WeChatSendMessageDto weChatSendMessageDto = new WeChatSendMessageDto();
|
|
|
+ weChatSendMessageDto.setUserId(user.getOpenId());
|
|
|
+ weChatSendMessageDto.setTemplateId("Hign0b3e4WSXe__YmBKyDsBgAjkfNYC7c6yIUHjk3Hg");
|
|
|
+ weChatSendMessageDto.setMsgId(IdUtil.getSnowflakeNextId() + "");
|
|
|
+ JSONObject paramJson = new JSONObject();
|
|
|
+
|
|
|
+ JSONObject thing2 = new JSONObject();
|
|
|
+ thing2.put("value", meetingApply.getMeetingApplyTheme());
|
|
|
+ paramJson.put("thing2", thing2);
|
|
|
+
|
|
|
+ JSONObject time5 = new JSONObject();
|
|
|
+ time5.put("value", startTime);
|
|
|
+ paramJson.put("time5", time5);
|
|
|
+
|
|
|
+ JSONObject time6 = new JSONObject();
|
|
|
+ time6.put("value", endTime);
|
|
|
+ paramJson.put("time6", time6);
|
|
|
+
|
|
|
+ JSONObject thing7 = new JSONObject();
|
|
|
+ thing7.put("value", meetingApply.getMeetingSummary());
|
|
|
+ paramJson.put("thing7", thing7);
|
|
|
+
|
|
|
+ JSONObject thing8 = new JSONObject();
|
|
|
+ thing8.put("value", meetingApply.getMonogramTheme());
|
|
|
+ paramJson.put("thing8", thing8);
|
|
|
+
|
|
|
+ weChatSendMessageDto.setContent(paramJson);
|
|
|
+ weChatService.sendTemplateMessage(weChatSendMessageDto);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -482,7 +583,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
.disableSubLogicDel()
|
|
|
.select(WfMeetingApply::getId)
|
|
|
.selectAs(XjrUser::getName, WfMeetingApply::getMonogramTheme)
|
|
|
- .select(WfMeetingApply.class,x -> VoToColumnUtil.fieldsToColumns(WfMeetingApply.class).contains(x.getProperty()))
|
|
|
+ .select(WfMeetingApply.class, x -> VoToColumnUtil.fieldsToColumns(WfMeetingApply.class).contains(x.getProperty()))
|
|
|
.leftJoin(XjrUser.class, XjrUser::getId, WfMeetingApply::getSponsorId)
|
|
|
.eq(WfMeetingApply::getId, dto.getId())
|
|
|
;
|
|
@@ -493,7 +594,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
updateWfMeetingApply.setMeetingStatus(1);
|
|
|
this.updateById(updateWfMeetingApply);
|
|
|
|
|
|
- if(StringUtils.isNotEmpty(oldWfMeetingApply.getMeetingApplyParticipants())){
|
|
|
+ if (StringUtils.isNotEmpty(oldWfMeetingApply.getMeetingApplyParticipants())) {
|
|
|
List<String> userIds = Arrays.asList(oldWfMeetingApply.getMeetingApplyParticipants().split(","));
|
|
|
List<User> userList = userService.list(new QueryWrapper<User>().lambda().in(User::getId, userIds).isNotNull(User::getOpenId));
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
@@ -525,4 +626,34 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean updateMeetingCheckIn(UpdateMeetingCheckInDto dto) {
|
|
|
+ LambdaUpdateWrapper<MeetingConferee> meetingConfereeLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ meetingConfereeLambdaUpdateWrapper
|
|
|
+ .eq(MeetingConferee::getWfMeetingApplyId, dto.getId())
|
|
|
+ .eq(MeetingConferee::getUserId, StpUtil.getLoginIdAsLong())
|
|
|
+ ;
|
|
|
+ MeetingConferee meetingConferee = new MeetingConferee();
|
|
|
+ meetingConferee.setCheckInStatus(1);
|
|
|
+ meetingConferee.setCheckInDate(new Date());
|
|
|
+ meetingConferee.setModifyDate(new Date());
|
|
|
+ meetingConferee.setModifyUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ meetingConfereeMapper.update(meetingConferee, meetingConfereeLambdaUpdateWrapper);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean addMeetingConfereeOpinion(AddMeetingConfereeOpinionDto dto) {
|
|
|
+ MeetingConfereeOpinion insert = new MeetingConfereeOpinion();
|
|
|
+ insert.setWfMeetingApplyId(dto.getWfMeetingApplyId());
|
|
|
+ insert.setUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ insert.setOpinion(dto.getOpinion());
|
|
|
+ insert.setCreateDate(new Date());
|
|
|
+ insert.setCreateUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ meetingConfereeOpinionMapper.insert(insert);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|