From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期五, 01 八月 2025 13:27:59 +0800 Subject: [PATCH] yys 密码已重置 --- cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 292 insertions(+), 0 deletions(-) diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java new file mode 100644 index 0000000..e430764 --- /dev/null +++ b/cnas-manage/src/main/java/com/ruoyi/manage/service/impl/ManageDocumentAlterServiceImpl.java @@ -0,0 +1,292 @@ +package com.ruoyi.manage.service.impl; + +import cn.hutool.core.lang.UUID; +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.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.system.mapper.UserMapper; + + +import com.ruoyi.manage.mapper.*; +import com.ruoyi.manage.pojo.*; +import com.ruoyi.manage.service.ManageDocumentAlterService; + +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.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDate; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * <p> + * 鏂囦欢鍙樻洿 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author + * @since 2024-11-11 11:04:01 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ManageDocumentAlterServiceImpl extends ServiceImpl<ManageDocumentAlterMapper, ManageDocumentAlter> implements ManageDocumentAlterService { + + @Resource + private ManageDocumentAlterMapper manageDocumentAlterMapper; + + @Resource + private ManageRecordCheckMapper manageRecordCheckMapper; + + + + @Value("${wordUrl}") + private String wordUrl; + + @Resource + private UserMapper userMapper; + + @Resource + private ManageDocumentListMapper manageDocumentListMapper; + + @Resource + private ManageDocumentCancelMapper manageDocumentCancelMapper; + + @Resource + private ManageRecordAuditMapper manageRecordAuditMapper; + + + @Override + public IPage<ManageDocumentAlter> pageManageDocumentAlter(Page page, ManageDocumentAlter manageDocumentAlter) { + return manageDocumentAlterMapper.pageManageDocumentAlter(page, QueryWrappers.queryWrappers(manageDocumentAlter)); + } + + @Override + public ManageDocumentAlter getManageDocumentAlter(Integer id) { + ManageDocumentAlter manageDocumentAlter = manageDocumentAlterMapper.getManageDocumentAlter(id); + String limsName = userMapper.selectUserDepartmentLimsName(manageDocumentAlter.getCreateUser()); + manageDocumentAlter.setCreateUserDepartLims(limsName); + return manageDocumentAlter; + } + + @Override + public int addManageDocumentAlter(ManageDocumentAlter manageDocumentAlter) { + /*鏂板8.4鐨勬枃浠朵慨璁㈢敵璇峰鎵硅褰�*/ + ManageRecordAudit manageRecordAudit = new ManageRecordAudit(); + manageRecordAudit.setDocumentCode(manageDocumentAlter.getAlterBeforeCode()); + manageRecordAudit.setDocumentName(manageDocumentAlter.getAlterBeforeName()); + manageRecordAudit.setBeforeVersion(manageDocumentAlter.getAlterBeforeVersion()); + manageRecordAudit.setAfterVersion(manageDocumentAlter.getAlterAfterVersion()); + manageRecordAudit.setReason(manageDocumentAlter.getAlterNote()); + manageRecordAudit.setAlterUser(SecurityUtils.getUserId().intValue()); + manageRecordAudit.setMethod("淇"); + if (ObjectUtils.isNotEmpty(manageDocumentAlter.getFile())) { + String urlString; + String pathName; + String path; + MultipartFile file = manageDocumentAlter.getFile(); + //涓婁紶鏂版枃浠� + path = wordUrl; + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return 0; + } + manageDocumentAlter.setAlterAfterUrl(pathName); + manageRecordAudit.setAfterUrl(pathName); + } + manageRecordAuditMapper.insert(manageRecordAudit); + return manageDocumentAlterMapper.insert(manageDocumentAlter); + } + + @Override + public int doManageDocumentAlter(ManageDocumentAlter manageDocumentAlter) { + ManageDocumentAlter manageDocumentAlter1= manageDocumentAlterMapper.selectById(manageDocumentAlter.getId()); + if (ObjectUtils.isNotEmpty(manageDocumentAlter.getFile())) { + if (ObjectUtils.isNotEmpty(manageDocumentAlter1.getAlterAfterUrl())) { + // 鍒犻櫎鏃ф枃浠� + File oldFile = new File(wordUrl + "/" + manageDocumentAlter1.getAlterAfterUrl()); + oldFile.delete(); + } + //涓婁紶鏂版枃浠� + String urlString; + String pathName; + String path; + MultipartFile file = manageDocumentAlter.getFile(); + path = wordUrl; + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + manageDocumentAlter.setAlterAfterUrl(pathName); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return 0; + } + } + return manageDocumentAlterMapper.updateById(manageDocumentAlter); + } + + @Override + public int checkManageDocumentAlter(ManageDocumentAlter manageDocumentAlter) { + ManageDocumentAlter oldManageDocumentAlter = manageDocumentAlterMapper.selectById(manageDocumentAlter.getId()); + if (manageDocumentAlter.getState().equals("閫氳繃")) { + /*灏嗘枃浠剁洊绔�*/ + // 鍒犻櫎鏃ф枃浠� + File oldFile = new File(wordUrl + "/" + oldManageDocumentAlter.getAlterAfterUrl()); + oldFile.delete(); + //涓婁紶鏂版枃浠� + String urlString; + String pathName; + String path; + MultipartFile file = manageDocumentAlter.getFile(); + path = wordUrl; + try { + File realpath = new File(path); + if (!realpath.exists()) { + realpath.mkdirs(); + } + pathName = UUID.randomUUID() + "_" + file.getOriginalFilename(); + urlString = realpath + "/" + pathName; + file.transferTo(new File(urlString)); + manageDocumentAlter.setAlterAfterUrl(pathName); + } catch (Exception e) { + e.printStackTrace(); + System.err.println("闄勪欢涓婁紶閿欒"); + return 0; + } + if(StringUtils.isNotEmpty(oldManageDocumentAlter.getMethod())){ + + } + /*鍏朵綑鐩稿叧澶勭悊*/ + if ("浣滃簾".equals(oldManageDocumentAlter.getMethod())){ + //鏂板鍒颁綔搴熺敵璇烽噷闈� + ManageDocumentCancel manageDocumentCancel = new ManageDocumentCancel(); + manageDocumentCancel.setDocumentCode(oldManageDocumentAlter.getAlterBeforeCode()); + manageDocumentCancel.setName(oldManageDocumentAlter.getAlterBeforeName()); + manageDocumentCancel.setVersion(oldManageDocumentAlter.getAlterBeforeVersion()); + manageDocumentCancel.setCancelNote("鏂囦欢鍙樻洿,鍙樻洿鐨勬枃浠剁紪鍙锋槸"+oldManageDocumentAlter.getAlterAfterCode()); + manageDocumentCancelMapper.insert(manageDocumentCancel); + //鍒犻櫎鏂囦欢娓呭崟 + manageDocumentListMapper.delete(Wrappers.<ManageDocumentList>lambdaQuery() + .eq(ManageDocumentList::getDocumentCode,oldManageDocumentAlter.getAlterBeforeCode())); + //鏂板鏂囦欢娓呭崟 + ManageDocumentList manageDocumentList = new ManageDocumentList(); + manageDocumentList.setDocumentCode(oldManageDocumentAlter.getAlterAfterCode()); + manageDocumentList.setName(oldManageDocumentAlter.getAlterAfterName()); + manageDocumentList.setVersion(oldManageDocumentAlter.getAlterAfterVersion()); + manageDocumentList.setState("鏈夋晥"); + manageDocumentList.setEffectiveDate(LocalDate.now()); + manageDocumentList.setUrl(pathName); + manageDocumentListMapper.insert(manageDocumentList); + /*鏂板8.4鐨勬枃浠朵慨璁㈢敵璇峰鎵硅褰�*/ + ManageRecordAudit manageRecordAudit = new ManageRecordAudit(); + manageRecordAudit.setDocumentCode(manageDocumentCancel.getDocumentCode()); + manageRecordAudit.setDocumentName(manageDocumentCancel.getName()); + manageRecordAudit.setAlterThing("浣滃簾"); + manageRecordAudit.setMethod("浣滃簾"); + manageRecordAuditMapper.insert(manageRecordAudit); + }else { + //濡傛灉鏄瓨妗d笉鍙敤,閭e氨灏嗘枃浠舵竻鍗曠殑鐘舵�佹敼涓烘棤鏁� + manageDocumentListMapper.update(null,Wrappers.<ManageDocumentList>lambdaUpdate() + .eq(ManageDocumentList::getDocumentCode,oldManageDocumentAlter.getAlterBeforeCode()) + .set(ManageDocumentList::getState,"鏃犳晥")); + } + } + /*鏂板8.4鐨勬枃浠跺鎵硅褰�*/ + ManageRecordCheck manageRecordCheck = new ManageRecordCheck(); + manageRecordCheck.setDocumentCode(oldManageDocumentAlter.getAlterAfterCode()); + manageRecordCheck.setDocumentName(oldManageDocumentAlter.getAlterAfterName()); + manageRecordCheck.setDocumentVersion(oldManageDocumentAlter.getAlterAfterVersion()); + manageRecordCheck.setWriteUser(oldManageDocumentAlter.getCreateUser()); + manageRecordCheck.setCheckUser(oldManageDocumentAlter.getCheckUser()); + manageRecordCheck.setCheckState(manageDocumentAlter.getState()); + manageRecordCheck.setRemark(manageDocumentAlter.getAlterNote()); + manageRecordCheckMapper.insert(manageRecordCheck); + return manageDocumentAlterMapper.updateById(manageDocumentAlter); + } + + @Override + public void checkManageDocumentAlterPdf(Long id, HttpServletResponse response) throws Exception { + ManageDocumentAlter manageDocumentAlter = manageDocumentAlterMapper.selectById(id); + File file = new File(wordUrl + "/" + manageDocumentAlter.getAlterAfterUrl()); + FileInputStream fileInputStream = new FileInputStream(file); + response.setContentType("application/pdf"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "inline;filename=" + file.getName()); + response.setContentLength((int)file.length()); + OutputStream os = response.getOutputStream(); + // 灏嗘枃浠跺唴瀹瑰啓鍏ヨ緭鍑烘祦 + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = fileInputStream.read(buffer)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.flush(); + os.close(); + } + + @Override + public void exportManageDocumentAlter(ManageDocumentAlter manageDocumentAlter, HttpServletResponse response) throws Exception { + List<ManageDocumentAlter> data = manageDocumentAlterMapper.pageManageDocumentAlter(new Page(-1, -1), QueryWrappers.queryWrappers(manageDocumentAlter)).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(ManageDocumentAlter.class).build(); + excelWriter.write(data, mainSheet); + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } + + @Override + public int delManageDocumentAlter(Integer id) { + ManageDocumentAlter manageDocumentAlter = manageDocumentAlterMapper.selectById(id); + /*鍒犻櫎8.4鐨勬枃浠朵慨璁㈢敵璇峰鎵硅褰�*/ + manageRecordAuditMapper.delete(Wrappers.<ManageRecordAudit>lambdaQuery() + .eq(ManageRecordAudit::getDocumentCode,manageDocumentAlter.getAlterBeforeCode()) + .eq(ManageRecordAudit::getDocumentName,manageDocumentAlter.getAlterBeforeName()) + .eq(ManageRecordAudit::getBeforeVersion,manageDocumentAlter.getAlterBeforeVersion()) + .eq(ManageRecordAudit::getAfterVersion,manageDocumentAlter.getAlterAfterVersion()) + .eq(ManageRecordAudit::getReason,manageDocumentAlter.getAlterNote()) + .eq(ManageRecordAudit::getAlterUser,manageDocumentAlter.getCreateUser()) + .eq(ManageRecordAudit::getMethod,"淇")); + return manageDocumentAlterMapper.deleteById(id); + } +} -- Gitblit v1.9.3