package com.yuanchu.mom.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; import com.yuanchu.mom.service.ManageDocumentCancelService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.utils.QueryWrappers; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 文件作废 服务实现类 *

* * @author * @since 2024-11-09 02:37:35 */ @Service @Transactional(rollbackFor = Exception.class) public class ManageDocumentCancelServiceImpl extends ServiceImpl implements ManageDocumentCancelService { @Resource private ManageDocumentCancelMapper manageDocumentCancelMapper; @Resource private ManageRecordCheckMapper manageRecordCheckMapper; @Resource private ManageRecordAuditMapper manageRecordAuditMapper; @Resource GetLook getLook; @Resource private ManageDocumentListMapper manageDocumentListMapper; @Resource private UserMapper userMapper; @Override public Map pageManageDocumentCancel(Page page, ManageDocumentCancel manageDocumentCancel) { Map map = new HashMap<>(); map.put("head", PrintChina.printChina(ManageDocumentCancel.class)); Map map1 = getLook.selectPowerByMethodAndUserId("pageManageDocumentCancel"); if (map1.get("look") == 1) manageDocumentCancel.setCreateUser(map1.get("userId")); map.put("body", manageDocumentCancelMapper.pageManageDocumentCancel(page, QueryWrappers.queryWrappers(manageDocumentCancel))); return map; } @Override public int addManageDocumentCancel(ManageDocumentCancel manageDocumentCancel) { manageDocumentCancel.setState("待审核"); /*新增8.4的文件修订申请审批记录*/ ManageRecordAudit manageRecordAudit = new ManageRecordAudit(); manageRecordAudit.setDocumentCode(manageDocumentCancel.getDocumentCode()); manageRecordAudit.setDocumentName(manageDocumentCancel.getName()); manageRecordAudit.setAlterThing("作废"); manageRecordAudit.setMethod("作废"); manageRecordAuditMapper.insert(manageRecordAudit); return manageDocumentCancelMapper.insert(manageDocumentCancel); } @Override public int checkManageDocumentCancel(Integer id, String state) { ManageDocumentCancel manageDocumentCancel = manageDocumentCancelMapper.selectById(id); if (state.equals("通过")){ //删除文件清单对应数据 manageDocumentListMapper.delete(Wrappers.lambdaQuery().eq(ManageDocumentList::getDocumentCode,manageDocumentCancel.getDocumentCode())); } manageDocumentCancel.setState(state); /*新增8.4的文件审批记录*/ ManageRecordCheck manageRecordCheck = new ManageRecordCheck(); manageRecordCheck.setDocumentCode(manageDocumentCancel.getDocumentCode()); manageRecordCheck.setDocumentName(manageDocumentCancel.getName()); manageRecordCheck.setDocumentVersion(manageDocumentCancel.getVersion()); manageRecordCheck.setWriteUser(manageDocumentCancel.getCreateUser()); manageRecordCheck.setCheckUser(manageDocumentCancel.getCheckUser()); manageRecordCheck.setCheckState(manageDocumentCancel.getState()); manageRecordCheck.setRemark(manageDocumentCancel.getCancelNote()); manageRecordCheckMapper.insert(manageRecordCheck); return manageDocumentCancelMapper.updateById(manageDocumentCancel); } @Override public ManageDocumentCancel getManageDocumentCancel(Integer id) { ManageDocumentCancel manageDocumentCancel = manageDocumentCancelMapper.getManageDocumentCancel(id); String limsName = userMapper.selectUserDepartmentLimsName(manageDocumentCancel.getCreateUser()); manageDocumentCancel.setCreateUserDepartLims(limsName); return manageDocumentCancel; } @Override public void exportManageDocumentCancel(ManageDocumentCancel manageDocumentCancel, HttpServletResponse response) throws Exception{ List data = manageDocumentCancelMapper.pageManageDocumentCancel(new Page(-1, -1), QueryWrappers.queryWrappers(manageDocumentCancel)).getRecords(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); String fileName = URLEncoder.encode("文件作废列表导出", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); try { // 新建ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "文件作废列表导出").head(ManageDocumentCancel.class).build(); excelWriter.write(data, mainSheet); // 关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } @Override public int delManageDocumentCancel(Integer id) { ManageDocumentCancel manageDocumentCancel = manageDocumentCancelMapper.selectById(id); /*删除8.4的文件修订申请审批记录*/ manageRecordAuditMapper.delete(Wrappers.lambdaQuery() .eq(ManageRecordAudit::getDocumentCode,manageDocumentCancel.getDocumentCode()) .eq(ManageRecordAudit::getDocumentName,manageDocumentCancel.getName()) .eq(ManageRecordAudit::getMethod,"作废")); return manageDocumentCancelMapper.deleteById(id); } @Override public int doManageDocumentCancel(ManageDocumentCancel manageDocumentCancel) { return manageDocumentCancelMapper.updateById(manageDocumentCancel); } }