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.GetLook;
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.mapper.ManageRecordCheckMapper;
import com.yuanchu.mom.pojo.ManageRecordTotal;
import com.yuanchu.mom.pojo.ManageRecordVerify;
import com.yuanchu.mom.pojo.User;
import com.yuanchu.mom.service.ManageRecordCheckService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.utils.QueryWrappers;
import com.yuanchu.mom.utils.XWPFDocumentUtils;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xwpf.usermodel.*;
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.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* 文件审批记录(含修订后再次审批记录) 服务实现类
*
*
* @author
* @since 2024-11-12 02:31:36
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ManageRecordCheckServiceImpl extends ServiceImpl implements ManageRecordCheckService {
@Resource
private ManageRecordCheckMapper manageRecordCheckMapper;
@Value("${wordUrl}")
private String wordUrl;
@Resource
private UserMapper userMapper;
@Resource
GetLook getLook;
@Override
public Map pageManageRecordCheck(Page page, ManageRecordCheck manageRecordCheck) {
Map map = new HashMap<>();
map.put("head", PrintChina.printChina(ManageRecordCheck.class));
map.put("body", manageRecordCheckMapper.pageManageRecordCheck(page, QueryWrappers.queryWrappers(manageRecordCheck)));
return map;
}
@Override
public int checkManageRecordCheck(Integer id, String checkState) {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
ManageRecordCheck manageRecordCheck = manageRecordCheckMapper.selectById(id);
manageRecordCheck.setCheckState(checkState);
manageRecordCheck.setCheckUser(userId);
return manageRecordCheckMapper.updateById(manageRecordCheck);
}
@Override
public int ratifyManageRecordCheck(Integer id, String ratifyState) {
Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
ManageRecordCheck manageRecordCheck = manageRecordCheckMapper.selectById(id);
manageRecordCheck.setRatifyState(ratifyState);
manageRecordCheck.setRatifyUser(userId);
return manageRecordCheckMapper.updateById(manageRecordCheck);
}
@Override
public void exportOutManageRecordCheck(ManageRecordCheck manageRecordCheck, HttpServletResponse response) {
List manageRecordCheckList = manageRecordCheckMapper.pageManageRecordCheck(new Page(-1, -1), QueryWrappers.queryWrappers(manageRecordCheck)).getRecords();
//生成检验报告发放登记表
InputStream inputStream = this.getClass().getResourceAsStream("/static/check-deal.docx");
ConfigureBuilder builder = Configure.builder();
builder.useSpringEL(true);
List