123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- package com.ruoyi.zzb.zyww.service;
- import com.ruoyi.common.annotation.DataSource;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.enums.DataSourceType;
- import com.ruoyi.common.utils.file.FileUploadUtils;
- import com.ruoyi.framework.config.ServerConfig;
- import com.ruoyi.zzb.common.CommonUtils;
- import com.ruoyi.zzb.zyww.domain.BaseFileInfo;
- import com.ruoyi.zzb.zyww.domain.Zyww;
- import com.ruoyi.zzb.zyww.domain.ZywwFileDTO;
- import com.ruoyi.zzb.zyww.mapper.BaseFileInfoMapper;
- import com.ruoyi.zzb.zyww.mapper.ZywwMapper;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.core.io.FileSystemResource;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.MimeMessageHelper;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.multipart.MultipartFile;
- import javax.mail.MessagingException;
- import javax.mail.internet.MimeMessage;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- @Slf4j
- @Service
- @DataSource(value = DataSourceType.SLAVE)
- public class ZywwService {
- @Autowired
- private ZywwMapper zywwMapper;
- @Autowired
- private JavaMailSender mailSender;
- @Value("${spring.mail.username}")
- private String from;
- @Autowired
- private ServerConfig serverConfig;
- @Autowired
- private BaseFileInfoMapper baseFileInfoMapper;
- /**
- * 发送一条带附件的邮件消息
- * @param to
- * @param subject
- * @param text
- * @param attachmentPath
- * @throws MessagingException
- */
- public void sendEmail(String to, String subject, String text, String attachmentPath) throws MessagingException {
- MimeMessage message = mailSender.createMimeMessage();
- MimeMessageHelper helper = new MimeMessageHelper(message, true);
- helper.setFrom(from);
- helper.setTo(to);
- helper.setSubject(subject);
- helper.setText(text);
- FileSystemResource file = new FileSystemResource(new File(attachmentPath));
- // 添加附件
- helper.addAttachment(file.getFilename(), file);
- mailSender.send(message);
- }
- /**
- * 完成【住院慰问】模块需进行文件上传字段项的上传处理逻辑,并组装批量插入这些记录到相关数据表的参数
- * @param
- */
- public List<BaseFileInfo> processUploadAndBuildParams(ZywwFileDTO zywwFileDTO, String moduleCode, String applyFormId, String fileStoragePath) throws IOException {
- List<BaseFileInfo> dataList = new ArrayList<>();
- MultipartFile[] zywwsqbFiles = zywwFileDTO.getZywwsqbFiles();
- List<BaseFileInfo> zywwsqbRowDataList = doProcessUploadAndBuildParams(zywwsqbFiles, moduleCode, applyFormId, "住院慰问申请表", "zywwsqb", fileStoragePath);
- if(zywwsqbRowDataList.size() > 0){
- dataList.addAll(zywwsqbRowDataList);
- }
- MultipartFile[] zywwjhzsqbFiles = zywwFileDTO.getZywwjhzsqbFiles();
- List<BaseFileInfo> zywwjhzsqbRowDataList = doProcessUploadAndBuildParams(zywwjhzsqbFiles, moduleCode, applyFormId, "住院慰问金汇总申请表", "zywwjhzsqb", fileStoragePath);
- if(zywwjhzsqbRowDataList.size() > 0){
- dataList.addAll(zywwjhzsqbRowDataList);
- }
- MultipartFile[] jcghwwjsbbFiles = zywwFileDTO.getJcghwwjsbbFiles();
- List<BaseFileInfo> jcghwwjsbbRowDataList = doProcessUploadAndBuildParams(jcghwwjsbbFiles, moduleCode, applyFormId, "基层工会慰问金申报表", "jcghwwjsbb", fileStoragePath);
- if(jcghwwjsbbRowDataList.size() > 0){
- dataList.addAll(jcghwwjsbbRowDataList);
- }
- MultipartFile[] zzzmFiles = zywwFileDTO.getZzzmFiles();
- List<BaseFileInfo> zzzmRowDataList = doProcessUploadAndBuildParams(zzzmFiles, moduleCode, applyFormId, "在职证明", "zzzm", fileStoragePath);
- if(zzzmRowDataList.size() > 0){
- dataList.addAll(zzzmRowDataList);
- }
- MultipartFile[] gsFiles = zywwFileDTO.getGsFiles();
- List<BaseFileInfo> gsRowDataList = doProcessUploadAndBuildParams(gsFiles, moduleCode, applyFormId, "公示", "gs", fileStoragePath);
- if(gsRowDataList.size() > 0){
- dataList.addAll(gsRowDataList);
- }
- MultipartFile[] sfzfyjFiles = zywwFileDTO.getSfzfyjFiles();
- List<BaseFileInfo> sfzfyjRowDataList = doProcessUploadAndBuildParams(sfzfyjFiles, moduleCode, applyFormId, "身份证复印件", "sfzfyj", fileStoragePath);
- if(sfzfyjRowDataList.size() > 0){
- dataList.addAll(sfzfyjRowDataList);
- }
- MultipartFile[] ghhykfyjFiles = zywwFileDTO.getGhhykfyjFiles();
- List<BaseFileInfo> ghhykfyjRowDataList = doProcessUploadAndBuildParams(ghhykfyjFiles, moduleCode, applyFormId, "工会会员卡复印件", "ghhykfyj", fileStoragePath);
- if(ghhykfyjRowDataList.size() > 0){
- dataList.addAll(ghhykfyjRowDataList);
- }
- MultipartFile[] zybasyfyjFiles = zywwFileDTO.getZybasyfyjFiles();
- List<BaseFileInfo> zybasyfyjRowDataList = doProcessUploadAndBuildParams(zybasyfyjFiles, moduleCode, applyFormId, "住院病案首页复印件", "zybasyfyj", fileStoragePath);
- if(zybasyfyjRowDataList.size() > 0){
- dataList.addAll(zybasyfyjRowDataList);
- }
- MultipartFile[] zdzmfyjFiles = zywwFileDTO.getZdzmfyjFiles();
- List<BaseFileInfo> zdzmfyjRowDataList = doProcessUploadAndBuildParams(zdzmfyjFiles, moduleCode, applyFormId, "诊断证明复印件", "zdzmfyj", fileStoragePath);
- if(zdzmfyjRowDataList.size() > 0){
- dataList.addAll(zdzmfyjRowDataList);
- }
- MultipartFile[] gszmFiles = zywwFileDTO.getGszmFiles();
- List<BaseFileInfo> gszmRowDataList = doProcessUploadAndBuildParams(gszmFiles, moduleCode, applyFormId, "工伤证明", "gszm", fileStoragePath);
- if(gszmRowDataList.size() > 0){
- dataList.addAll(gszmRowDataList);
- }
- MultipartFile[] ssjlFiles = zywwFileDTO.getSsjlFiles();
- List<BaseFileInfo> ssjlRowDataList = doProcessUploadAndBuildParams(ssjlFiles, moduleCode, applyFormId, "手术记录", "ssjl", fileStoragePath);
- if(ssjlRowDataList.size() > 0){
- dataList.addAll(ssjlRowDataList);
- }
- return dataList;
- }
- public List<BaseFileInfo> doProcessUploadAndBuildParams(MultipartFile[] files, String moduleCode, String applyFormId, String fileTypeName, String fileTypeCode, String fileStoragePath) throws IOException {
- List<BaseFileInfo> rowDataList = new ArrayList<>();
- if(null != files && files.length > 0){
- for (MultipartFile file : files) {
- if (!file.isEmpty()) {
- // 原始文件名
- String originalFilename = file.getOriginalFilename();
- // 文件扩展名
- String fileExtensions = CommonUtils.getFileExtension(originalFilename);
- // 文件存储ID(MD5值)
- String fileStorageId = CommonUtils.md5(originalFilename + new Date().getTime());
- // 上传文件并返回新文件名称
- String newFileName = FileUploadUtils.upload(fileStoragePath, file);
- // 文件访问路径
- String fileRequestPath = serverConfig.getUrl() + newFileName;
- BaseFileInfo baseFileInfo = new BaseFileInfo();
- baseFileInfo.setModuleCode(moduleCode);
- baseFileInfo.setApplyFormId(applyFormId);
- baseFileInfo.setFileTypeName(fileTypeName);
- baseFileInfo.setFileTypeCode(fileTypeCode);
- baseFileInfo.setFileOriginalName(originalFilename);
- baseFileInfo.setFileExtensions(fileExtensions);
- baseFileInfo.setFileStorageId(fileStorageId);
- baseFileInfo.setFileRequestPath(fileRequestPath);
- baseFileInfo.setFileStoragePath(fileStoragePath);
- rowDataList.add(baseFileInfo);
- }
- }
- }
- return rowDataList;
- }
- /**
- * 保存一条【住院慰问】申请信息并且批量插入与【住院慰问】申请信息相关联的文件信息
- * @return
- */
- @Transactional
- public void saveZywwApplyInfoAndBaseFileInfos(Zyww zyww, SysUser user, String applyFormId, List<BaseFileInfo> baseFileInfoList){
- // 设置当前登录的用户信息
- zyww.setCreateUserId(String.valueOf(user.getUserId()));
- zyww.setCreateUserName(user.getNickName());
- zyww.setCreateUserPoliceNo(user.getRemark());
- // 插入申请信息
- zyww.setApplyFormId(applyFormId);
- int rows = zywwMapper.insert(zyww);
- if(rows > 0){
- log.info("【住院慰问】申请信息保存成功");
- // 批量插入和申请信息关联的文件信息
- baseFileInfoMapper.batchInsertBaseFileInfos(baseFileInfoList);
- log.info("【住院慰问】文件信息批量保存成功 applyFormId:{}", applyFormId);
- }
- }
- /**
- * 根据applyFormId 删除一条【住院慰问】申请信息和与之关联的文件信息
- * @param applyFormId
- * @return
- */
- @Transactional
- public boolean delZywwApplyInfoAndBaseFileInfos(String applyFormId){
- int rows = zywwMapper.deleteById(applyFormId);
- if(rows > 0){
- log.info("【住院慰问】申请信息删除成功 applyFormId:{}", applyFormId);
- int baseFileInfoRows = baseFileInfoMapper.deleteById(applyFormId);
- if(baseFileInfoRows > 0){
- log.info("【住院慰问】申请信息关联的文件信息删除成功 applyFormId:{},删除的数据条数:{}", applyFormId, baseFileInfoRows);
- return true;
- }
- }
- return false;
- }
- }
|