package com.ruoyi.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.EsModel; import com.ruoyi.common.utils.MapUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.Meeting; import com.ruoyi.domain.ZInfoUser; import com.ruoyi.domain.ZfLog; import com.ruoyi.mapper.MeetingRatifyMapper; import com.ruoyi.service.*; import lombok.extern.slf4j.Slf4j; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; @Slf4j @Service public class MeetingRatifyServiceImpl extends ServiceImpl implements MeetingRatifyService { @Resource ZInfoUserService zInfoUserService; @Resource ZfLogService zfLogService; @Resource private EsService esSer; @Resource private RestHighLevelClient restHighLevelClient; private LambdaQueryWrapper buildCondition(Meeting meeting) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); // lqw.in(ZfDoctor::getFamilyId,familyIdList); lqw.orderByDesc(Meeting::getId); lqw.like(StringUtils.isNotEmpty(meeting.getPlace()), Meeting::getPlace, meeting.getPlace()) .like(StringUtils.isNotEmpty(meeting.getApplyApart()), Meeting::getApplyApart, meeting.getApplyApart()); // .like(Integer.valueOf(meeting.getApplyPerson())!=null, Meeting::getApplyPerson, meeting.getApplyPerson()); lqw.between(meeting.getHappenStartTime() != null && meeting.getHappenEndTime() != null, Meeting::getStartTime, meeting.getHappenStartTime(), meeting.getHappenEndTime()); return lqw; } @Override public AjaxResult selectDataList(Meeting meeting, Integer pageNum, Integer pageSize) { //要查自己家庭的 ZInfoUser myself = zInfoUserService.getMyself(); if(myself==null) { // System.out.println("ssssss"); return AjaxResult.success("您没加入到对应的家庭,请联系管理员"); } Long familyId = myself.getFamilyId(); // //也要查别人授权的 // List authority = zAuthorityService.getAuthority(); // List idList = authority.stream().filter(auth -> auth.getAuthority().toString().equals(DOCTOR_LIST)).map(ZAuthority::getFid).collect(Collectors.toList()); // //加上自己家庭的id // idList.add(familyId); // String familyIds = listFamilyIds(); // String secondFamilyAuthority = listSecondFamilyIds(); LambdaQueryWrapper lqw = buildCondition(meeting); Page meetingPage = new Page<>(pageNum, pageSize); Page pageResult = page(meetingPage, lqw); List beanRecords = pageResult.getRecords();//得到查询出来的数据 // System.out.println(beanRecords); HashMap data = MapUtils.getResult(pageResult, beanRecords); return AjaxResult.success(data); } @Override public AjaxResult updateData(Meeting meeting) { ZfLog zfLog = new ZfLog(); zfLog.setUpdateTime(LocalDateTime.now()); zfLog.setModule("会议审批"); zfLog.setUpdater(zInfoUserService.getMyself().getNickName()); zfLogService.save(zfLog); if (updateById(meeting)) { //到数据库中查询对应的数据 Meeting dataById = getById(meeting.getId()); //先到es中查询到对应那条数据在es的id EsModel esResult = esSer.findByCtId(dataById.getId().intValue(), "会议审批"); // System.out.println("====================================" + meeting); if (esResult == null) { return AjaxResult.success(); } //操作es修改数据 EsModel newModel = new EsModel(); if (meeting.getStatu() != 0) { newModel.setBy13(meeting.getStatu()); } else { newModel.setBy13(dataById.getStatu()); } UpdateRequest updateRequest = new UpdateRequest("allsearchdata", esResult.getId()); updateRequest.doc( "by12", newModel.getBy13() ); try { restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT); } catch (IOException e) { throw new RuntimeException(e); } return AjaxResult.success(); } else { return AjaxResult.error(); } }}