package com.yuanchu.mom.service.impl;
import cn.hutool.core.lang.UUID;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
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.config.ConfigureBuilder;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.*;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.UserMapper;
import com.yuanchu.mom.pojo.ManageRecordCheck;
import com.yuanchu.mom.pojo.ManageRecordIssueRecycle;
import com.yuanchu.mom.mapper.ManageRecordIssueRecycleMapper;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.ManageRecordIssueRecycleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.QueryWrappers;
import org.apache.commons.io.IOUtils;
import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
*
* 所有文件(内、外部文件)的发放与回收记录 服务实现类
*
*
* @author
* @since 2024-11-13 09:11:05
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ManageRecordIssueRecycleServiceImpl extends ServiceImpl implements ManageRecordIssueRecycleService {
@Resource
private ManageRecordIssueRecycleMapper manageRecordIssueRecycleMapper;
@Value("${wordUrl}")
private String wordUrl;
@Resource
private UserMapper userMapper;
@Override
public Map pageManageRecordIssueRecycle(Page page, ManageRecordIssueRecycle manageRecordIssueRecycle) {
Map map = new HashMap<>();
map.put("head", PrintChina.printChina(ManageRecordIssueRecycle.class));
map.put("body", manageRecordIssueRecycleMapper.pageManageRecordIssueRecycle(page, QueryWrappers.queryWrappers(manageRecordIssueRecycle)));
return map;
}
@Override
public String exportOutManageRecordIssueRecycle(ManageRecordIssueRecycle manageRecordIssueRecycle, HttpServletResponse response) {
List manageRecordIssueRecycleList = manageRecordIssueRecycleMapper.pageManageRecordIssueRecycle(new Page(-1, -1), QueryWrappers.queryWrappers(manageRecordIssueRecycle)).getRecords();
//生成检验报告发放登记表
String url;
try {
InputStream inputStream = this.getClass().getResourceAsStream("/static/recycle-deal.docx");
File file = File.createTempFile("temp", ".tmp");
OutputStream outputStream = new FileOutputStream(file);
IOUtils.copy(inputStream, outputStream);
url = file.getAbsolutePath();
} catch (FileNotFoundException e) {
throw new ErrorException("找不到模板文件");
} catch (IOException e) {
throw new RuntimeException(e);
}
ConfigureBuilder builder = Configure.builder();
builder.useSpringEL(true);
List