Przeglądaj źródła

【住院慰问】模块适配通用文件上传接口相关接口功能改造

peifjFantasy 6 miesięcy temu
rodzic
commit
5f7a411ef8

+ 0 - 6
pom.xml

@@ -38,12 +38,6 @@
     <dependencyManagement>
         <dependencies>
 
-            <!-- 邮件依赖 -->
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-starter-mail</artifactId>
-            </dependency>
-
             <dependency>
                 <groupId>com.baomidou</groupId>
                 <artifactId>mybatis-plus-boot-starter</artifactId>

+ 6 - 0
ruoyi-admin/pom.xml

@@ -17,6 +17,12 @@
 
     <dependencies>
 
+        <!-- 邮件依赖 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-mail</artifactId>
+        </dependency>
+
         <!-- spring-boot-devtools -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 37 - 17
ruoyi-zzb/src/main/java/com/ruoyi/zzb/common/controller/BaseController.java

@@ -12,6 +12,7 @@ import com.ruoyi.zzb.dbjz.domain.DbjzFileSetDTO;
 import com.ruoyi.zzb.dbjz.service.DbjzService;
 import com.ruoyi.zzb.hybz.domain.HybzFileSetDTO;
 import com.ruoyi.zzb.hybz.service.HybzService;
+import com.ruoyi.zzb.zyww.domain.ZywwApplyInfo;
 import com.ruoyi.zzb.zyww.domain.ZywwFileSetDTO;
 import com.ruoyi.zzb.zyww.service.ZywwService;
 import lombok.extern.slf4j.Slf4j;
@@ -89,6 +90,13 @@ public class BaseController {
     }
 
 
+    /**
+     * 功能描述: 处理文件上传通用逻辑,并根据模块编码、申请单ID保存对应的文件信息记录
+     * @param: [zywwFileSetDTO, dbjzFileSetDTO, hybzFileSetDTO, moduleCode, applyFormId]
+     * @return: com.alibaba.fastjson.JSONObject
+     * @author: peifjFantasy
+     * @Date: 2024/11/28 14:47
+     */
     @PostMapping("/upload")
     public JSONObject upload(ZywwFileSetDTO zywwFileSetDTO, DbjzFileSetDTO dbjzFileSetDTO, HybzFileSetDTO hybzFileSetDTO,
                              @RequestParam("moduleCode") String moduleCode, @RequestParam("applyFormId") String applyFormId){
@@ -99,29 +107,41 @@ public class BaseController {
         try {
             // 文件上传路径
             String fileStoragePath = RuoYiConfig.getUploadPath();
-            SysUser user = SecurityUtils.getLoginUser().getUser();
-            if(null != user){
-                List<BaseFileInfo> baseFileInfoList = new ArrayList<>();
-                if("zyww".equals(moduleCode)){
-                    baseFileInfoList = zywwService.processUploadAndBuildParams(zywwFileSetDTO, "zyww", "住院慰问", applyFormId, fileStoragePath);
-                } else if("dbjz".equals(moduleCode)){
-                    baseFileInfoList = dbjzService.processUploadAndBuildParams(dbjzFileSetDTO, "dbjz", "大病救助", applyFormId, fileStoragePath);
-                } else {
-                    baseFileInfoList = hybzService.processUploadAndBuildParams(hybzFileSetDTO, "hybz", "会员保障", applyFormId, fileStoragePath);
-                }
-                // 等上传的文件写盘成功,再向数据库写入对应的文件信息
-                if(baseFileInfoList.size() > 0){
-                    boolean optFlag = baseService.saveBaseFileInfo(baseFileInfoList.get(0));
-                    return optFlag? RspResult.success(true) : RspResult.error("申请信息保存/修改失败 - 申请单ID:" + applyFormId);
-                }
-                return RspResult.error("参数信息为空,申请信息无法保存/修改");
+            List<BaseFileInfo> baseFileInfoList = new ArrayList<>();
+            if("zyww".equals(moduleCode)){
+                baseFileInfoList = zywwService.processUploadAndBuildParams(zywwFileSetDTO, "zyww", "住院慰问", applyFormId, fileStoragePath);
+            } else if("dbjz".equals(moduleCode)){
+                baseFileInfoList = dbjzService.processUploadAndBuildParams(dbjzFileSetDTO, "dbjz", "大病救助", applyFormId, fileStoragePath);
+            } else {
+                baseFileInfoList = hybzService.processUploadAndBuildParams(hybzFileSetDTO, "hybz", "会员保障", applyFormId, fileStoragePath);
             }
-            return RspResult.error("用户信息为空,申请信息无法保存/修改");
+            // 等上传的文件写盘成功,再向数据库写入对应的文件信息记录
+            if(baseFileInfoList.size() > 0){
+                BaseFileInfo baseFileInfo = baseFileInfoList.get(0);
+                boolean optFlag = baseService.saveBaseFileInfo(baseFileInfo);
+                return optFlag? RspResult.success(baseFileInfo.getFileStorageId()) : RspResult.error("文件信息保存/修改失败 - 申请单ID:" + applyFormId);
+            }
+            return RspResult.error("参数信息为空,文件信息无法保存/修改");
         } catch (Exception e){
             log.error("申请信息保存/修改失败", e);
             return RspResult.error("申请信息保存/修改失败 - " + e.getMessage());
         }
     }
 
+    @PostMapping("/cancelUpload")
+    public JSONObject cancelUpload(@RequestBody JSONObject reqBody){
+        String fileStorageId = reqBody.getString("fileStorageId");
+        if(StringUtils.isBlank(fileStorageId)){
+            return RspResult.error("fileStorageId参数为空");
+        }
+        try {
+            boolean optFlag = baseService.delBaseFileInfosByFileStorageId(fileStorageId);
+            return optFlag? RspResult.success(true) : RspResult.error("文件信息删除失败 - 文件存储ID:" + fileStorageId);
+        }catch (Exception e){
+            log.error("文件信息删除失败", e);
+            return RspResult.error("文件信息删除失败 - " + e.getMessage());
+        }
+    }
+
 
 }

+ 32 - 3
ruoyi-zzb/src/main/java/com/ruoyi/zzb/common/service/BaseService.java

@@ -1,5 +1,6 @@
 package com.ruoyi.zzb.common.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.common.utils.file.FileUploadUtils;
@@ -89,9 +90,11 @@ public class BaseService {
      */
     @Transactional
     public boolean delBaseFileInfosByApplyFormId(String applyFormId){
-        int delBaseFileInfoRows = baseFileInfoMapper.deleteById(applyFormId);
-        if(delBaseFileInfoRows > 0){
-            log.info("当前申请信息关联的文件信息删除成功  申请单ID:{},删除的数据条数:{}", applyFormId, delBaseFileInfoRows);
+        QueryWrapper<BaseFileInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("APPLY_FORM_ID", applyFormId);
+        int delRows = baseFileInfoMapper.delete(queryWrapper);
+        if(delRows > 0){
+            log.info("当前申请信息关联的文件信息删除成功  申请单ID:{},删除的数据条数:{}", applyFormId, delRows);
             return true;
         } else {
             throw new RuntimeException("数据库申请信息对应的文件信息记录未删除或不存在  申请单ID:" + applyFormId);
@@ -99,6 +102,25 @@ public class BaseService {
     }
 
 
+    /**
+     * 根据文件存储ID删除对应的文件信息记录
+     * @param fileStorageId
+     * @return
+     */
+    @Transactional
+    public boolean delBaseFileInfosByFileStorageId(String fileStorageId){
+        QueryWrapper<BaseFileInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("FILE_STORAGE_ID", fileStorageId);
+        int delRows = baseFileInfoMapper.delete(queryWrapper);
+        if(delRows > 0){
+            log.info("文件信息删除成功  文件存储ID:{},删除的数据条数:{}", fileStorageId, delRows);
+            return true;
+        } else {
+            throw new RuntimeException("数据库文件信息记录未删除或不存在  文件存储ID:" + fileStorageId);
+        }
+    }
+
+
     /**
      * 统一处理各模块文件上传,并构造对应数据对象
      * @param files
@@ -165,6 +187,13 @@ public class BaseService {
     }
 
 
+    /**
+     * 功能描述: 保存一条文件信息记录
+     * @param: [baseFileInfo]
+     * @return: boolean
+     * @author: peifjFantasy
+     * @Date: 2024/11/28 14:42
+     */
     public boolean saveBaseFileInfo(BaseFileInfo baseFileInfo){
         if(baseFileInfo != null){
             int insertRows = baseFileInfoMapper.insert(baseFileInfo);

+ 8 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/dbjz/domain/DbjzApplyInfo.java

@@ -4,11 +4,15 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.zzb.common.domain.BaseFileInfo;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -59,4 +63,8 @@ public class DbjzApplyInfo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
+    // 不与数据库字段进行映射
+    @TableField(exist = false)
+    private List<BaseFileInfo> baseFileInfos = new ArrayList<>(0);
+
 }

+ 7 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/hybz/domain/HybzApplyInfo.java

@@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.zzb.common.domain.BaseFileInfo;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -59,4 +62,8 @@ public class HybzApplyInfo {
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
+
+    // 不与数据库字段进行映射
+    @TableField(exist = false)
+    private List<BaseFileInfo> baseFileInfos = new ArrayList<>(0);
 }

+ 35 - 2
ruoyi-zzb/src/main/java/com/ruoyi/zzb/zyww/controller/ZywwController.java

@@ -29,7 +29,7 @@ public class ZywwController {
      * @param
      * @return
      */
-    @PostMapping("/saveOrUpdate")
+    /*@PostMapping("/saveOrUpdate")
     public JSONObject saveOrUpdate(ZywwApplyInfo zywwApplyInfo, ZywwFileSetDTO zywwFileSetDTO){
         try {
             // 文件上传路径
@@ -54,8 +54,15 @@ public class ZywwController {
             log.error("【住院慰问】申请信息保存/修改失败", e);
             return RspResult.error("【住院慰问】申请信息保存/修改失败 - " + e.getMessage());
         }
-    }
+    }*/
 
+    /**
+     * 功能描述:
+     * @param: 审批一条【住院慰问】申请信息记录   0:待审批,1:审批通过,2:审批驳回
+     * @return: com.alibaba.fastjson.JSONObject
+     * @author: peifjFantasy 
+     * @Date: 2024/11/28 15:22
+     */
     @PostMapping("/approve")
     public JSONObject approve(@RequestBody JSONObject reqBody){
         String applyFormId = reqBody.getString("applyFormId");
@@ -101,4 +108,30 @@ public class ZywwController {
         }
     }
 
+
+    /**
+     * 保存/修改一条【住院慰问】申请信息记录
+     * @param
+     * @return
+     */
+    @PostMapping("/saveOrUpdate")
+    public JSONObject saveOrUpdate(@RequestBody ZywwApplyInfo zywwApplyInfo){
+        try {
+            SysUser user = SecurityUtils.getLoginUser().getUser();
+            if(null != user){
+                String applyFormId = zywwApplyInfo.getApplyFormId();
+                if(StringUtils.isBlank(applyFormId)){
+                    return RspResult.error("applyFormId参数为空");
+                }
+                boolean optFlag = zywwService.saveOrUpdateZywwApplyInfo(zywwApplyInfo, user);
+                return optFlag? RspResult.success(true) : RspResult.error("【住院慰问】申请信息保存/修改失败");
+            }
+            return RspResult.error("用户信息为空,【住院慰问】申请信息无法保存/修改");
+        } catch (Exception e){
+            log.error("【住院慰问】申请信息保存/修改失败", e);
+            return RspResult.error("【住院慰问】申请信息保存/修改失败 - " + e.getMessage());
+        }
+    }
+
+    
 }

+ 37 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/zyww/service/ZywwService.java

@@ -150,6 +150,43 @@ public class ZywwService {
         }
     }
 
+    /**
+     * 保存/修改一条【住院慰问】申请信息
+     * @return
+     */
+    @Transactional
+    public boolean saveOrUpdateZywwApplyInfo(ZywwApplyInfo zywwApplyInfo, SysUser user){
+        String applyFormId = zywwApplyInfo.getApplyFormId();
+        ZywwApplyInfo dbZywwApplyInfo = zywwApplyInfoMapper.selectById(applyFormId);
+        // 如果当前申请信息对象zywwApplyInfo的申请单ID在数据库中不存在(前端生成),代表是新增操作
+        if(dbZywwApplyInfo == null){
+            // 设置当前登录的用户信息
+            zywwApplyInfo.setCreateUserId(String.valueOf(user.getUserId()));
+            zywwApplyInfo.setCreateUserName(user.getNickName());
+            zywwApplyInfo.setCreateUserPoliceNo(user.getPoliceNo());
+            // 插入申请信息
+            zywwApplyInfo.setApplyFormId(applyFormId);
+            int insertRows = zywwApplyInfoMapper.insert(zywwApplyInfo);
+            if(insertRows > 0){
+                log.info("【住院慰问】申请信息保存成功  申请单ID:{}", applyFormId);
+                return true;
+            } else {
+                throw new RuntimeException("数据库【住院慰问】申请信息记录未插入  申请单ID:" + applyFormId);
+            }
+        } else {   // 修改操作
+            // 根据申请单ID和zywwApplyInfo对象中的当前属性值去修改当前申请记录
+            UpdateWrapper<ZywwApplyInfo> updateWrapper = new UpdateWrapper<>();
+            updateWrapper.eq("APPLY_FORM_ID", applyFormId);
+            int updateRows = zywwApplyInfoMapper.update(zywwApplyInfo, updateWrapper);
+            if(updateRows > 0){
+                log.info("【住院慰问】申请信息修改成功  申请单ID:{}", applyFormId);
+                return true;
+            } else {
+                throw new RuntimeException("数据库【住院慰问】申请信息记录未修改  applyFormId:" + applyFormId);
+            }
+        }
+    }
+
 
     /**
      * 审批一条【住院慰问】申请信息,并插入一条审批记录