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-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java | 133 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 133 insertions(+), 0 deletions(-) diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java new file mode 100644 index 0000000..756b68e --- /dev/null +++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonPostAuthorizationRecordServiceImpl.java @@ -0,0 +1,133 @@ +package com.ruoyi.personnel.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.config.Configure; +import com.deepoove.poi.config.ConfigureBuilder; +import com.deepoove.poi.data.FilePictureRenderData; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.framework.exception.ErrorException; +import com.ruoyi.personnel.dto.PersonPostAuthorizationRecordDto; +import com.ruoyi.personnel.mapper.PersonPostAuthorizationRecordMapper; +import com.ruoyi.personnel.pojo.PersonPostAuthorizationRecord; +import com.ruoyi.personnel.service.PersonPostAuthorizationRecordService; +import com.ruoyi.system.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.util.HashMap; + +/** + * <p> + * 浠昏亴鎺堟潈璁板綍 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author + * @since 2024-10-09 10:48:17 + */ +@Service +public class PersonPostAuthorizationRecordServiceImpl extends ServiceImpl<PersonPostAuthorizationRecordMapper, PersonPostAuthorizationRecord> implements PersonPostAuthorizationRecordService { + + @Resource + private UserMapper userMapper; + + @Value("${file.path}") + private String imgUrl; + + @Override + public IPage<PersonPostAuthorizationRecordDto> personPostAuthorizationRecordPage(Page page, Integer departLimsId, Integer userId, String userName) { + return baseMapper.personPostAuthorizationRecordPage(page, departLimsId, userId, userName); + } + + @Override + public void exportPersonPostAuthorizationRecord(Integer id, HttpServletResponse response) { + PersonPostAuthorizationRecord personPostAuthorizationRecord = baseMapper.selectById(id); + //濮撳悕 + User user = userMapper.selectById(personPostAuthorizationRecord.getUserId()); + String name = user.getName(); + //todo: 浜哄憳浠昏亴鎺堟潈璁板綍濮撳悕鑻辨枃 +// HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); +// format.setCaseType(HanyuPinyinCaseType.LOWERCASE); +// format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); +// StringBuilder pinyinBuilder = new StringBuilder(); +// for (int i = 0; i < name.length(); i++) { +// char c = name.charAt(i); +// // 鍒ゆ柇鏄惁鏄眽瀛� +// if (Character.toString(c).matches("[\\u4E00-\\u9FFF]")) { +// // 鑾峰彇姹夊瓧鐨勬嫾闊虫暟缁� +// String[] pinyinArray = new String[0]; +// try { +// pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format); +// } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) { +// +// } +// if (pinyinArray!= null && pinyinArray.length > 0) { +// pinyinBuilder.append(pinyinArray[0]); +// } +// } else { +// pinyinBuilder.append(c); +// } +// } +// String nameEn = pinyinBuilder.toString(); + String nameEn = user.getNameEn(); + //鐞嗚鐭ヨ瘑鑰冭瘯鎴愮哗 + String num1=personPostAuthorizationRecord.getNum1(); + //鎿嶄綔鎶�鑳借�冭瘯鎴愮哗 + String num2=personPostAuthorizationRecord.getNum2(); + //璇佷功缂栧彿 + String code = personPostAuthorizationRecord.getCertificateNumber(); + //鍙戣瘉鏃堕棿 + LocalDateTime createTime = personPostAuthorizationRecord.getCreateTime(); + String year = createTime.getYear() + ""; + String mon = createTime.getMonth().getValue() + ""; + String day = createTime.getDayOfMonth() + ""; + //涓汉鐓х墖 + if (ObjectUtils.isEmpty(user.getPictureUrl())) { + throw new ErrorException(name+"鐨勪釜浜虹収鐗囨病鏈変笂浼�"); + } + String pictureUrl = user.getPictureUrl(); + + + InputStream inputStream = this.getClass().getResourceAsStream("/static/credentials-deal.docx"); + ConfigureBuilder builder = Configure.builder(); + builder.useSpringEL(true); + XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( + new HashMap<String, Object>() {{ + put("name", name); + put("nameEn", nameEn); + put("num1", num1); + put("num2", num2); + put("code", code); + put("year", year); + put("mon", mon); + put("day", day); + put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + pictureUrl)); + }}); + + try { + response.setContentType("application/msword"); + String fileName = URLEncoder.encode( + name+"鐨勫矖浣嶈亴涓氳祫鏍兼寮�", "UTF-8"); + response.setHeader("Content-disposition", + "attachment;filename=" + fileName + ".docx"); + OutputStream os = response.getOutputStream(); + template.write(os); + os.flush(); + os.close(); + inputStream.close(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("瀵煎嚭澶辫触"); + } + + } +} -- Gitblit v1.9.3