package com.yuanchu.mom.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.data.Pictures;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.InternalMeetingDto;
import com.yuanchu.mom.dto.InternalMeetingParticipantDto;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.InternalMeeting;
import com.yuanchu.mom.pojo.InternalMeetingDetail;
import com.yuanchu.mom.pojo.InternalMeeting;
import com.yuanchu.mom.mapper.InternalMeetingMapper;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.InternalMeetingDetailService;
import com.yuanchu.mom.service.InternalMeetingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.HackLoopTableRenderPolicy;
import com.yuanchu.mom.utils.DateImageUtil;
import com.yuanchu.mom.utils.QueryWrappers;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 内审会议表 服务实现类
*
*
* @author
* @since 2024-11-12 02:50:44
*/
@Service
@AllArgsConstructor
@Transactional(rollbackFor = Exception.class)
public class InternalMeetingServiceImpl extends ServiceImpl implements InternalMeetingService {
private InternalMeetingDetailService internalMeetingDetailService;
private GetLook getLook;
private UserMapper userMapper;
/**
* 内审会议分页查询
* @param page
* @param internalMeeting
* @return
*/
@Override
public IPage pageInternalMeeting(Page page, InternalMeeting internalMeeting) {
return baseMapper.pageInternalMeeting(page, QueryWrappers.queryWrappers(internalMeeting));
}
/**
* 内审会议新增
* @param internalMeeting
* @return
*/
@Override
public boolean addInternalMeeting(InternalMeetingDto internalMeeting) {
baseMapper.insert(internalMeeting);
// // 新增详情
// for (InternalMeetingDetail internalMeetingDetail : internalMeeting.getMeetingDetailList()) {
// internalMeetingDetail.setMeetingId(internalMeeting.getMeetingId());
// }
// internalMeetingDetailService.saveBatch(internalMeeting.getMeetingDetailList());
return true;
}
/**
* 内审会议修改
* @param internalMeeting
* @return
*/
@Override
public boolean updateInternalMeeting(InternalMeetingDto internalMeeting) {
baseMapper.updateById(internalMeeting);
// 删除之前的详情
// internalMeetingDetailService.remove(Wrappers.lambdaQuery()
// .eq(InternalMeetingDetail::getMeetingId, internalMeeting.getMeetingId()));
//
// // 新增详情
// for (InternalMeetingDetail internalMeetingDetail : internalMeeting.getMeetingDetailList()) {
// internalMeetingDetail.setMeetingId(internalMeeting.getMeetingId());
// }
internalMeetingDetailService.saveBatch(internalMeeting.getMeetingDetailList());
return true;
}
/**
* 内审会议删除
* @param MeetingId
* @return
*/
@Override
public boolean delInternalMeeting(Integer MeetingId) {
internalMeetingDetailService.remove(Wrappers.lambdaQuery()
.eq(InternalMeetingDetail::getMeetingId, MeetingId));
baseMapper.deleteById(MeetingId);
return true;
}
/**
* 内审会议查看详情
* @param MeetingId
* @return
*/
@Override
public InternalMeetingDto getInternalMeetingOne(Integer MeetingId) {
InternalMeeting internalMeeting = baseMapper.selectById(MeetingId);
InternalMeetingDto internalMeetingDto = new InternalMeetingDto();
BeanUtils.copyProperties(internalMeeting, internalMeetingDto);
// 查询详细信息
internalMeetingDto.setMeetingDetailList(internalMeetingDetailService.list(Wrappers.lambdaQuery()
.eq(InternalMeetingDetail::getMeetingId, MeetingId)));
return internalMeetingDto;
}
/**
* 导出内审会议
* @param meetingId
* @param response
*/
@Override
public void exportInternalMeeting(Integer meetingId, HttpServletResponse response) {
InternalMeeting internalMeeting = baseMapper.selectById(meetingId);
// 最大行数
int max = 11;
// 查询参加人员
List