Эх сурвалжийг харах

业务申请模块新增数据批量删除接口;部分业务逻辑代码优化

peifj 5 сар өмнө
parent
commit
d5e2d4be8d

+ 3 - 0
ruoyi-zzb/src/main/java/com/ruoyi/zzb/common/mapper/BaseFileInfoMapper.java

@@ -1,9 +1,11 @@
 package com.ruoyi.zzb.common.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.zzb.common.domain.BaseFileInfo;
+import com.ruoyi.zzb.zyww.domain.ZywwApplyInfo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -14,4 +16,5 @@ import java.util.List;
 public interface BaseFileInfoMapper extends BaseMapper<BaseFileInfo> {
 
     void batchInsertBaseFileInfos(@Param("baseFileInfoList") List<BaseFileInfo> baseFileInfoList);
+
 }

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

@@ -308,7 +308,9 @@ public class BaseService {
                     String newFileName = FileUploadUtils.upload(fileStoragePath, file);
                     log.info("【{}】文件上传成功  申请单ID:{},文件类型名称:{},文件名称:{}", moduleName, applyFormId, fileTypeName, originalFilename);
                     // 文件HTTP请求路径
-                    String fileRequestPath = serverConfig.getUrl() + newFileName;
+                    // 去掉'http://127.0.0.1:8088/zhzg'前缀
+                    String fileRequestPath = (serverConfig.getUrl() + newFileName).replace("http://127.0.0.1:8088/zhzg", "");
+
                     BaseFileInfo baseFileInfo = new BaseFileInfo();
                     baseFileInfo.setModuleCode(moduleCode);
                     baseFileInfo.setApplyFormId(applyFormId);

+ 27 - 3
ruoyi-zzb/src/main/java/com/ruoyi/zzb/dbjz/controller/DbjzController.java

@@ -12,6 +12,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
+
 @Slf4j
 @RestController
 @RequestMapping("/api/dbjz")
@@ -56,14 +58,15 @@ public class DbjzController extends BaseController {
     public AjaxResult approve(@RequestBody JSONObject reqBody){
         String applyFormId = reqBody.getString("applyFormId");
         String optFlag = reqBody.getString("optFlag");
-        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag)){
+        String approveDesc = reqBody.getString("approveDesc");
+        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag) || ("2".equals(optFlag) && StringUtils.isBlank(approveDesc))){
             log.error("审批参数为空");
             return error("审批参数为空");
         }
         SysUser user = SecurityUtils.getLoginUser().getUser();
         try {
             if(null != user){
-                if(dbjzService.approveAndSaveApproveInfo(applyFormId, optFlag, user)){
+                if(dbjzService.approveAndSaveApproveInfo(applyFormId, optFlag, approveDesc, user)){
                     return success(true);
                 }
             }
@@ -84,12 +87,13 @@ public class DbjzController extends BaseController {
         // 审批状态码  ---0:审批中,1:审批通过,2:审批驳回
         Integer approveStatus = reqBody.getInteger("approveStatus");
         String type = reqBody.getString("type");
+        String optFlag = reqBody.getString("optFlag");
         if(approveStatus == null || StringUtils.isBlank(type)){
             log.error("查询参数为空");
             return error("查询参数为空");
         }
         try {
-            return success(dbjzService.getDataByPage(approveStatus, type, reqBody));
+            return success(dbjzService.getDataByPage(approveStatus, type, optFlag, reqBody));
         } catch (Exception e){
             log.error("根据条件分页查询【大病救助】申请信息发生异常", e);
             return error("根据条件分页查询【大病救助】申请信息发生异常 - " + e.getMessage());
@@ -121,4 +125,24 @@ public class DbjzController extends BaseController {
         }
     }
 
+
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param reqBody
+     * @return
+     */
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody JSONObject reqBody){
+        String applyFormIds = reqBody.getString("applyFormIds");
+        if(StringUtils.isBlank(applyFormIds) || Arrays.asList(applyFormIds.split(",")).size() == 0){
+            return error("applyFormIds参数为空");
+        }
+        try {
+            return dbjzService.delDataByApplyFormIds(Arrays.asList(applyFormIds.split(",")))? success(true) : error("【大病救助】申请信息删除失败 - 删除失败的申请单ID:[" + applyFormIds + "]");
+        } catch (Exception e){
+            log.error("【大病救助】申请信息删除失败", e);
+            return error("【大病救助】申请信息删除失败 - " + e.getMessage());
+        }
+    }
+
 }

+ 4 - 1
ruoyi-zzb/src/main/java/com/ruoyi/zzb/dbjz/domain/DbjzApplyInfo.java

@@ -65,6 +65,9 @@ public class DbjzApplyInfo {
 
     // 不与数据库字段进行映射
     @TableField(exist = false)
-    private List<BaseFileInfo> baseFileInfos = new ArrayList<>(0);
+    private List<BaseFileInfo> baseFileInfos = new ArrayList<>();
+
+    @TableField(exist = false)
+    private String approveDesc;
 
 }

+ 73 - 12
ruoyi-zzb/src/main/java/com/ruoyi/zzb/dbjz/service/DbjzService.java

@@ -44,7 +44,7 @@ public class DbjzService {
      * 完成【大病救助】模块需进行文件上传字段项的上传处理逻辑,并组装批量插入这些记录到相关数据表的参数
      * @param
      */
-    public List<BaseFileInfo> processUploadAndBuildParams(DbjzFileSetDTO dbjzFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
+    /*public List<BaseFileInfo> processUploadAndBuildParams(DbjzFileSetDTO dbjzFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
         List<BaseFileInfo> dataList = new ArrayList<>();
         MultipartFile[] dbjzsqbFiles = dbjzFileSetDTO.getDbjzsqbFiles();
         List<BaseFileInfo> dbjzsqbRowDataList = baseService.doProcessUploadAndBuildParams(dbjzsqbFiles, moduleCode, moduleName, applyFormId, "大病救助申请表", "dbjzsqb", fileStoragePath);
@@ -92,13 +92,13 @@ public class DbjzService {
             dataList.addAll(gsRowDataList);
         }
         return dataList;
-    }
+    }*/
 
     /**
      * 保存/修改一条【大病救助】申请信息并且批量插入/修改与【大病救助】申请信息相关联的文件信息
      * @return
      */
-    @Transactional
+    /*@Transactional
     public void saveOrUpdateDbjzApplyInfoAndBaseFileInfos(DbjzApplyInfo dbjzApplyInfo, SysUser user, String applyFormId, List<BaseFileInfo> baseFileInfoList){
         // 如果当前申请信息对象dbjzApplyInfo的申请单ID为空,代表是新增操作
         if(StringUtils.isBlank(dbjzApplyInfo.getApplyFormId())){
@@ -131,7 +131,7 @@ public class DbjzService {
                 throw new RuntimeException("数据库【大病救助】申请信息记录未修改  申请单ID:" + applyFormIdExist);
             }
         }
-    }
+    }*/
 
 
     /**
@@ -139,15 +139,14 @@ public class DbjzService {
      * @return
      */
     @Transactional
-    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, SysUser user){
+    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, String approveDesc, SysUser user){
         // 审批一条【大病救助】申请信息
         UpdateWrapper<DbjzApplyInfo> updateWrapper = new UpdateWrapper<>();
         updateWrapper.eq("APPLY_FORM_ID", applyFormId);
         DbjzApplyInfo dbjzApplyInfoDTO = new DbjzApplyInfo();
         dbjzApplyInfoDTO.setApproveStatusCode(optFlag);
-        String optDesc = "1".equals(optFlag)? "同意":"驳回";
+        String optDesc = "1".equals(optFlag)? "同意" : "驳回";
         dbjzApplyInfoDTO.setApproveStatusName(optDesc);
-//        dbjzApplyInfoDTO.setUpdateTime(new Date());
         int updateRows = dbjzApplyInfoMapper.update(dbjzApplyInfoDTO, updateWrapper);
         if(updateRows > 0){
             log.info("【大病救助】申请信息已审批  申请单ID:{},审批操作描述:{}", applyFormId, optDesc);
@@ -167,6 +166,7 @@ public class DbjzService {
             baseApproveInfo.setApproveUserPoliceNo(user.getPoliceNo());
             baseApproveInfo.setApproveResultCode(optFlag);
             baseApproveInfo.setApproveResultDesc(optDesc);
+            baseApproveInfo.setApproveDesc(approveDesc);
             int insertRows = baseApproveInfoMapper.insert(baseApproveInfo);
             if(insertRows > 0){
                 log.info("【大病救助】审批信息保存成功  申请单ID:{},审批人警号:{},审批结果说明:{}", applyFormId, user.getPoliceNo(), optDesc);
@@ -186,13 +186,13 @@ public class DbjzService {
      * @param
      * @return
      */
-    public Page<DbjzApplyInfo> getDataByPage(Integer approveStatus, String type, JSONObject reqBody){
+    public Page<DbjzApplyInfo> getDataByPage(Integer approveStatus, String type, String optFlag, JSONObject reqBody){
         Integer pageIndex = reqBody.getInteger("pageIndex") == null? 1:reqBody.getInteger("pageIndex");
         Integer pageSize = reqBody.getInteger("pageSize") == null? 10:reqBody.getInteger("pageSize");
         String applyFormId = reqBody.getString("applyFormId");
         // 构造查询条件,支持多条件查询
         QueryWrapper<DbjzApplyInfo> queryWrapper = new QueryWrapper<>();
-        // 1.查询当前用户能看到的整个系统中的全量"待审批"的记录,暂不考虑用户所属具体部门的因素
+        // 1.审批端:查询审批人能看到的整个系统中的全量"待审批"的记录(暂不考虑用户所属具体部门的因素)
         if (approveStatus != null && approveStatus == 0 && "approve".equals(type)){
             // 匹配列表中的一条,对"待审批"的申请信息做数据回显及提供审批功能
             if(StringUtils.isNotBlank(applyFormId)){
@@ -200,7 +200,17 @@ public class DbjzService {
             }
             queryWrapper.eq("APPROVE_STATUS_CODE", 0);
         }
-        // 2.查询当前用户提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
+
+        // 2.审批端:查询审批人能看到的整个系统中的全量"已审批"的记录(包含审批通过记录、审批驳回记录)
+        if (approveStatus != null && approveStatus == 3 && "approve".equals(type)){
+            // 匹配列表中的一条,对"已审批"的申请信息做数据回显功能
+            if(StringUtils.isNotBlank(applyFormId)){
+                queryWrapper.eq("APPLY_FORM_ID", applyFormId);
+            }
+            queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 1).or().eq("APPROVE_STATUS_CODE", 2));
+        }
+
+        // 3.申请端:查询当前申请人提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
         SysUser user = SecurityUtils.getLoginUser().getUser();
         if (approveStatus != null && approveStatus == 3 && "apply".equals(type)){
             // 匹配列表中的一条,对"审批中"的申请信息做数据回显及提供修改功能
@@ -211,7 +221,8 @@ public class DbjzService {
             // 待审批和审批驳回(允许修改后继续提交)
             queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 0).or().eq("APPROVE_STATUS_CODE", 2));
         }
-        // 3.查询当前用户提交的全量"已审批"的申请记录(只包含审批通过记录)
+
+        // 4.申请端:查询当前申请人提交的全量"已审批"的申请记录(只包含审批通过记录)
         if (approveStatus != null && approveStatus == 1 && "apply".equals(type)){
             // 匹配列表中的一条,对"已审批"的申请信息做数据回显
             if(StringUtils.isNotBlank(applyFormId)){
@@ -220,9 +231,34 @@ public class DbjzService {
             queryWrapper.eq("CREATE_USER_POLICE_NO", user.getPoliceNo());
             queryWrapper.eq("APPROVE_STATUS_CODE", 1);
         }
+
         queryWrapper.orderByDesc("CREATE_TIME");
         Page<DbjzApplyInfo> page = new Page<>(pageIndex, pageSize);
-        return dbjzApplyInfoMapper.selectPage(page, queryWrapper);
+        Page<DbjzApplyInfo> pageDataList = dbjzApplyInfoMapper.selectPage(page, queryWrapper);
+
+        // 如果存在对应条件的用户申请记录,并且当前是需要展示文件数据的数据回显操作,则继续查询该申请记录对应的文件信息记录,并返回给前端
+        if(pageDataList != null && pageDataList.getTotal() > 0 && "update".equals(optFlag) && StringUtils.isNotBlank(applyFormId)){
+            // 查询用户当前申请记录的审批说明信息
+            QueryWrapper<BaseApproveInfo> bqw = new QueryWrapper<>();
+            bqw.eq("APPLY_FORM_ID", applyFormId);
+            bqw.orderByDesc("APPROVE_TIME");
+            List<BaseApproveInfo> baseApproveInfosList = baseApproveInfoMapper.selectList(bqw);
+            if(baseApproveInfosList != null && baseApproveInfosList.size() > 0){
+                DbjzApplyInfo dbjzApplyInfo = pageDataList.getRecords().get(0);
+                // 只取用户当前申请记录对应最新的一次审批记录的审批说明信息
+                dbjzApplyInfo.setApproveDesc(baseApproveInfosList.get(0).getApproveDesc());
+            }
+
+            QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
+            qw.eq("APPLY_FORM_ID", applyFormId);
+            List<BaseFileInfo> baseFileInfosList = baseFileInfoMapper.selectList(qw);
+            // 将查询到的文件信息记录填充到对应的申请信息记录对象中,做数据回显使用
+            if(baseFileInfosList != null && baseFileInfosList.size() > 0){
+                DbjzApplyInfo dbjzApplyInfo = pageDataList.getRecords().get(0);
+                dbjzApplyInfo.setBaseFileInfos(baseFileInfosList);
+            }
+        }
+        return pageDataList;
     }
 
 
@@ -258,6 +294,8 @@ public class DbjzService {
             // 根据申请单ID和dbjzApplyInfo对象中的当前属性值去修改当前申请记录
             UpdateWrapper<DbjzApplyInfo> updateWrapper = new UpdateWrapper<>();
             updateWrapper.eq("APPLY_FORM_ID", applyFormId);
+            dbjzApplyInfo.setApproveStatusCode("0");
+            dbjzApplyInfo.setApproveStatusName("待审核");
             int updateRows = dbjzApplyInfoMapper.update(dbjzApplyInfo, updateWrapper);
             if(updateRows > 0){
                 log.info("【大病救助】申请信息修改成功  申请单ID:{}", applyFormId);
@@ -269,4 +307,27 @@ public class DbjzService {
     }
 
 
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条【大病救助】申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param applyFormIds
+     * @return
+     */
+    @Transactional
+    public boolean delDataByApplyFormIds(List<String> applyFormIds){
+        QueryWrapper<DbjzApplyInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("APPLY_FORM_ID", applyFormIds);
+        int delRows = dbjzApplyInfoMapper.delete(queryWrapper);
+        if(delRows == applyFormIds.size()){
+            log.info("【大病救助】申请信息删除成功  已删除的申请单ID:{},删除的数据条数:{}", applyFormIds, delRows);
+            QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
+            qw.in("APPLY_FORM_ID", applyFormIds);
+            int delFileRows = baseFileInfoMapper.delete(qw);
+            log.info("【大病救助】申请信息对应文件信息记录删除成功  删除的数据条数:{}", delFileRows);
+            return true;
+        } else {
+            throw new RuntimeException("数据库【大病救助】申请信息记录未删除或不存在  删除失败的申请单ID:" + applyFormIds);
+        }
+    }
+
+
 }

+ 25 - 9
ruoyi-zzb/src/main/java/com/ruoyi/zzb/hybz/controller/HybzController.java

@@ -12,6 +12,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
+
 
 @Slf4j
 @RestController
@@ -57,14 +59,15 @@ public class HybzController extends BaseController {
     public AjaxResult approve(@RequestBody JSONObject reqBody){
         String applyFormId = reqBody.getString("applyFormId");
         String optFlag = reqBody.getString("optFlag");
-        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag)){
+        String approveDesc = reqBody.getString("approveDesc");
+        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag) || ("2".equals(optFlag) && StringUtils.isBlank(approveDesc))){
             log.error("审批参数为空");
             return error("审批参数为空");
         }
         SysUser user = SecurityUtils.getLoginUser().getUser();
         try {
             if(null != user){
-                if(hybzService.approveAndSaveApproveInfo(applyFormId, optFlag, user)){
+                if(hybzService.approveAndSaveApproveInfo(applyFormId, optFlag, approveDesc, user)){
                     return success(true);
                 }
             }
@@ -85,12 +88,13 @@ public class HybzController extends BaseController {
         // 审批状态码  ---0:审批中,1:审批通过,2:审批驳回
         Integer approveStatus = reqBody.getInteger("approveStatus");
         String type = reqBody.getString("type");
+        String optFlag = reqBody.getString("optFlag");
         if(approveStatus == null || StringUtils.isBlank(type)){
             log.error("查询参数为空");
             return error("查询参数为空");
         }
         try {
-            return success(hybzService.getDataByPage(approveStatus, type, reqBody));
+            return success(hybzService.getDataByPage(approveStatus, type, optFlag, reqBody));
         } catch (Exception e){
             log.error("根据条件分页查询【会员保障】申请信息发生异常", e);
             return error("根据条件分页查询【会员保障】申请信息发生异常 - " + e.getMessage());
@@ -123,11 +127,23 @@ public class HybzController extends BaseController {
     }
 
 
-
-
-
-
-
-
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param reqBody
+     * @return
+     */
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody JSONObject reqBody){
+        String applyFormIds = reqBody.getString("applyFormIds");
+        if(StringUtils.isBlank(applyFormIds) || Arrays.asList(applyFormIds.split(",")).size() == 0){
+            return error("applyFormIds参数为空");
+        }
+        try {
+            return hybzService.delDataByApplyFormIds(Arrays.asList(applyFormIds.split(",")))? success(true) : error("【会员保障】申请信息删除失败 - 删除失败的申请单ID:[" + applyFormIds + "]");
+        } catch (Exception e){
+            log.error("【会员保障】申请信息删除失败", e);
+            return error("【会员保障】申请信息删除失败 - " + e.getMessage());
+        }
+    }
 
 }

+ 4 - 1
ruoyi-zzb/src/main/java/com/ruoyi/zzb/hybz/domain/HybzApplyInfo.java

@@ -65,5 +65,8 @@ public class HybzApplyInfo {
 
     // 不与数据库字段进行映射
     @TableField(exist = false)
-    private List<BaseFileInfo> baseFileInfos = new ArrayList<>(0);
+    private List<BaseFileInfo> baseFileInfos = new ArrayList<>();
+
+    @TableField(exist = false)
+    private String approveDesc;
 }

+ 78 - 17
ruoyi-zzb/src/main/java/com/ruoyi/zzb/hybz/service/HybzService.java

@@ -45,7 +45,7 @@ public class HybzService {
      *
      * @param
      */
-    public List<BaseFileInfo> processUploadAndBuildParams(HybzFileSetDTO hybzFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
+    /*public List<BaseFileInfo> processUploadAndBuildParams(HybzFileSetDTO hybzFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
         List<BaseFileInfo> dataList = new ArrayList<>();
         MultipartFile[] ckhyspbFiles = hybzFileSetDTO.getCkhyspbFiles();
         List<BaseFileInfo> ckhyspbRowDataList = baseService.doProcessUploadAndBuildParams(ckhyspbFiles, moduleCode, moduleName, applyFormId, "持卡会员审批表", "ckhyspb", fileStoragePath);
@@ -98,14 +98,14 @@ public class HybzService {
             dataList.addAll(jcbgfyjRowDataList);
         }
         return dataList;
-    }
+    }*/
 
     /**
      * 保存/修改一条【会员保障】申请信息并且批量插入/修改与【会员保障】申请信息相关联的文件信息
      *
      * @return
      */
-    @Transactional
+    /*@Transactional
     public void saveOrUpdateHybzApplyInfoAndBaseFileInfos(HybzApplyInfo hybzApplyInfo, SysUser user, String applyFormId, List<BaseFileInfo> baseFileInfoList) {
         // 如果当前申请信息对象hybzApproveInfo的申请单ID为空,代表是新增操作
         if (StringUtils.isBlank(hybzApplyInfo.getApplyFormId())) {
@@ -139,7 +139,7 @@ public class HybzService {
             }
         }
 
-    }
+    }*/
 
     /**
      * 审批一条【会员保障】申请信息,并插入一条审批记录
@@ -147,7 +147,7 @@ public class HybzService {
      * @return
      */
     @Transactional
-    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, SysUser user) {
+    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, String approveDesc, SysUser user) {
         // 审批一条【会员保障】申请信息
         UpdateWrapper<HybzApplyInfo> updateWrapper = new UpdateWrapper<>();
         updateWrapper.eq("APPLY_FORM_ID", applyFormId);
@@ -155,7 +155,6 @@ public class HybzService {
         hybzApplyInfoDTO.setApproveStatusCode(optFlag);
         String optDesc = "1".equals(optFlag) ? "同意" : "驳回";
         hybzApplyInfoDTO.setApproveStatusName(optDesc);
-//        hybzApplyInfoDTO.setUpdateTime(new Date());
         int updateRows = hybzApplyInfoMapper.update(hybzApplyInfoDTO, updateWrapper);
         if (updateRows > 0) {
             log.info("【住院慰问】申请信息已审批  申请单ID:{},审批操作描述:{}", applyFormId, optDesc);
@@ -175,6 +174,7 @@ public class HybzService {
             baseApproveInfo.setApproveUserPoliceNo(user.getPoliceNo());
             baseApproveInfo.setApproveResultCode(optFlag);
             baseApproveInfo.setApproveResultDesc(optDesc);
+            baseApproveInfo.setApproveDesc(approveDesc);
             int insertRows = baseApproveInfoMapper.insert(baseApproveInfo);
             if (insertRows > 0) {
                 log.info("【会员保障】审批信息保存成功  申请单ID:{},审批人警号:{},审批结果说明:{}", applyFormId, user.getPoliceNo(), optDesc);
@@ -195,43 +195,79 @@ public class HybzService {
      * @param
      * @return
      */
-    public Page<HybzApplyInfo> getDataByPage(Integer approveStatus, String type, JSONObject reqBody) {
+    public Page<HybzApplyInfo> getDataByPage(Integer approveStatus, String type, String optFlag, JSONObject reqBody) {
         Integer pageIndex = reqBody.getInteger("pageIndex") == null ? 1 : reqBody.getInteger("pageIndex");
         Integer pageSize = reqBody.getInteger("pageSize") == null ? 10 : reqBody.getInteger("pageSize");
         String applyFormId = reqBody.getString("applyFormId");
         // 构造查询条件,支持多条件查询
         QueryWrapper<HybzApplyInfo> queryWrapper = new QueryWrapper<>();
-        // 1.查询当前用户能看到的整个系统中的全量"待审批"的记录,暂不考虑用户所属具体部门的因素
-        if (approveStatus != null && approveStatus == 0 && "approve".equals(type)) {
+        // 1.审批端:查询审批人能看到的整个系统中的全量"待审批"的记录(暂不考虑用户所属具体部门的因素)
+        if (approveStatus != null && approveStatus == 0 && "approve".equals(type)){
             // 匹配列表中的一条,对"待审批"的申请信息做数据回显及提供审批功能
-            if (StringUtils.isNotBlank(applyFormId)) {
+            if(StringUtils.isNotBlank(applyFormId)){
                 queryWrapper.eq("APPLY_FORM_ID", applyFormId);
             }
             queryWrapper.eq("APPROVE_STATUS_CODE", 0);
         }
-        // 2.查询当前用户提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
+
+        // 2.审批端:查询审批人能看到的整个系统中的全量"已审批"的记录(包含审批通过记录、审批驳回记录)
+        if (approveStatus != null && approveStatus == 3 && "approve".equals(type)){
+            // 匹配列表中的一条,对"已审批"的申请信息做数据回显功能
+            if(StringUtils.isNotBlank(applyFormId)){
+                queryWrapper.eq("APPLY_FORM_ID", applyFormId);
+            }
+            queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 1).or().eq("APPROVE_STATUS_CODE", 2));
+        }
+
+        // 3.申请端:查询当前申请人提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
         SysUser user = SecurityUtils.getLoginUser().getUser();
-        if (approveStatus != null && approveStatus == 3 && "apply".equals(type)) {
+        if (approveStatus != null && approveStatus == 3 && "apply".equals(type)){
             // 匹配列表中的一条,对"审批中"的申请信息做数据回显及提供修改功能
-            if (StringUtils.isNotBlank(applyFormId)) {
+            if(StringUtils.isNotBlank(applyFormId)){
                 queryWrapper.eq("APPLY_FORM_ID", applyFormId);
             }
             queryWrapper.eq("CREATE_USER_POLICE_NO", user.getPoliceNo());
             // 待审批和审批驳回(允许修改后继续提交)
             queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 0).or().eq("APPROVE_STATUS_CODE", 2));
         }
-        // 3.查询当前用户提交的全量"已审批"的申请记录(只包含审批通过记录)
-        if (approveStatus != null && approveStatus == 1 && "apply".equals(type)) {
+
+        // 4.申请端:查询当前申请人提交的全量"已审批"的申请记录(只包含审批通过记录)
+        if (approveStatus != null && approveStatus == 1 && "apply".equals(type)){
             // 匹配列表中的一条,对"已审批"的申请信息做数据回显
-            if (StringUtils.isNotBlank(applyFormId)) {
+            if(StringUtils.isNotBlank(applyFormId)){
                 queryWrapper.eq("APPLY_FORM_ID", applyFormId);
             }
             queryWrapper.eq("CREATE_USER_POLICE_NO", user.getPoliceNo());
             queryWrapper.eq("APPROVE_STATUS_CODE", 1);
         }
+
         queryWrapper.orderByDesc("CREATE_TIME");
         Page<HybzApplyInfo> page = new Page<>(pageIndex, pageSize);
-        return hybzApplyInfoMapper.selectPage(page, queryWrapper);
+        Page<HybzApplyInfo> pageDataList = hybzApplyInfoMapper.selectPage(page, queryWrapper);
+
+        // 如果存在对应条件的用户申请记录,并且当前是修改数据前的数据回显操作,则继续查询该申请记录对应的文件信息记录,并返回给前端
+        if(pageDataList != null && pageDataList.getTotal() > 0 && "update".equals(optFlag) && StringUtils.isNotBlank(applyFormId)){
+            // 查询用户当前申请记录的审批说明信息
+            QueryWrapper<BaseApproveInfo> bqw = new QueryWrapper<>();
+            bqw.eq("APPLY_FORM_ID", applyFormId);
+            bqw.orderByDesc("APPROVE_TIME");
+            List<BaseApproveInfo> baseApproveInfosList = baseApproveInfoMapper.selectList(bqw);
+            if(baseApproveInfosList != null && baseApproveInfosList.size() > 0){
+                HybzApplyInfo hybzApplyInfo = pageDataList.getRecords().get(0);
+                // 只取用户当前申请记录对应最新的一次审批记录的审批说明信息
+                hybzApplyInfo.setApproveDesc(baseApproveInfosList.get(0).getApproveDesc());
+            }
+
+            QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
+            qw.eq("APPLY_FORM_ID", applyFormId);
+            List<BaseFileInfo> baseFileInfosList = baseFileInfoMapper.selectList(qw);
+            // 将查询到的文件信息记录填充到对应的申请信息记录对象中,做数据回显使用
+            if(baseFileInfosList != null && baseFileInfosList.size() > 0){
+                HybzApplyInfo hybzApplyInfo = pageDataList.getRecords().get(0);
+                hybzApplyInfo.setBaseFileInfos(baseFileInfosList);
+            }
+        }
+        return pageDataList;
     }
 
 
@@ -267,6 +303,8 @@ public class HybzService {
             // 根据申请单ID和hybzApplyInfo对象中的当前属性值去修改当前申请记录
             UpdateWrapper<HybzApplyInfo> updateWrapper = new UpdateWrapper<>();
             updateWrapper.eq("APPLY_FORM_ID", applyFormId);
+            hybzApplyInfo.setApproveStatusCode("0");
+            hybzApplyInfo.setApproveStatusName("待审核");
             int updateRows = hybzApplyInfoMapper.update(hybzApplyInfo, updateWrapper);
             if(updateRows > 0){
                 log.info("【会员保障】申请信息修改成功  申请单ID:{}", applyFormId);
@@ -278,4 +316,27 @@ public class HybzService {
     }
 
 
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条【会员保障】申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param applyFormIds
+     * @return
+     */
+    @Transactional
+    public boolean delDataByApplyFormIds(List<String> applyFormIds){
+        QueryWrapper<HybzApplyInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("APPLY_FORM_ID", applyFormIds);
+        int delRows = hybzApplyInfoMapper.delete(queryWrapper);
+        if(delRows == applyFormIds.size()){
+            log.info("【会员保障】申请信息删除成功  已删除的申请单ID:{},删除的数据条数:{}", applyFormIds, delRows);
+            QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
+            qw.in("APPLY_FORM_ID", applyFormIds);
+            int delFileRows = baseFileInfoMapper.delete(qw);
+            log.info("【会员保障】申请信息对应文件信息记录删除成功  删除的数据条数:{}", delFileRows);
+            return true;
+        } else {
+            throw new RuntimeException("数据库【会员保障】申请信息记录未删除或不存在  删除失败的申请单ID:" + applyFormIds);
+        }
+    }
+
+
 }

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

@@ -12,6 +12,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Arrays;
+
 @Slf4j
 @RestController
 @RequestMapping("/api/zyww")
@@ -63,14 +65,15 @@ public class ZywwController extends BaseController {
     public AjaxResult approve(@RequestBody JSONObject reqBody){
         String applyFormId = reqBody.getString("applyFormId");
         String optFlag = reqBody.getString("optFlag");
-        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag)){
+        String approveDesc = reqBody.getString("approveDesc");
+        if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag) || ("2".equals(optFlag) && StringUtils.isBlank(approveDesc))){
             log.error("审批参数为空");
             return error("审批参数为空");
         }
         SysUser user = SecurityUtils.getLoginUser().getUser();
         try {
             if(null != user){
-                if(zywwService.approveAndSaveApproveInfo(applyFormId, optFlag, user)){
+                if(zywwService.approveAndSaveApproveInfo(applyFormId, optFlag, approveDesc, user)){
                     return success(true);
                 }
             }
@@ -129,5 +132,25 @@ public class ZywwController extends BaseController {
         }
     }
 
+
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param reqBody
+     * @return
+     */
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody JSONObject reqBody){
+        String applyFormIds = reqBody.getString("applyFormIds");
+        if(StringUtils.isBlank(applyFormIds) || Arrays.asList(applyFormIds.split(",")).size() == 0){
+            return error("applyFormIds参数为空");
+        }
+        try {
+            return zywwService.delDataByApplyFormIds(Arrays.asList(applyFormIds.split(",")))? success(true) : error("【住院慰问】申请信息删除失败 - 删除失败的申请单ID:[" + applyFormIds + "]");
+        } catch (Exception e){
+            log.error("【住院慰问】申请信息删除失败", e);
+            return error("【住院慰问】申请信息删除失败 - " + e.getMessage());
+        }
+    }
+
     
 }

+ 4 - 1
ruoyi-zzb/src/main/java/com/ruoyi/zzb/zyww/domain/ZywwApplyInfo.java

@@ -63,5 +63,8 @@ public class ZywwApplyInfo {
 
     // 不与数据库字段进行映射
     @TableField(exist = false)
-    private List<BaseFileInfo> baseFileInfos = new ArrayList<>(0);
+    private List<BaseFileInfo> baseFileInfos = new ArrayList<>();
+
+    @TableField(exist = false)
+    private String approveDesc;
 }

+ 58 - 10
ruoyi-zzb/src/main/java/com/ruoyi/zzb/zyww/service/ZywwService.java

@@ -44,7 +44,7 @@ public class ZywwService {
      * 完成【住院慰问】模块需进行文件上传字段项的上传处理逻辑,并组装批量插入这些记录到相关数据表的参数
      * @param
      */
-    public List<BaseFileInfo> processUploadAndBuildParams(ZywwFileSetDTO zywwFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
+    /*public List<BaseFileInfo> processUploadAndBuildParams(ZywwFileSetDTO zywwFileSetDTO, String moduleCode, String moduleName, String applyFormId, String fileStoragePath) throws IOException {
         List<BaseFileInfo> dataList = new ArrayList<>();
         MultipartFile[] zywwsqbFiles = zywwFileSetDTO.getZywwsqbFiles();
         List<BaseFileInfo> zywwsqbRowDataList = baseService.doProcessUploadAndBuildParams(zywwsqbFiles, moduleCode, moduleName, applyFormId, "住院慰问申请表", "zywwsqb", fileStoragePath);
@@ -102,14 +102,14 @@ public class ZywwService {
             dataList.addAll(ssjlRowDataList);
         }
         return dataList;
-    }
+    }*/
 
 
     /**
      * 保存/修改一条【住院慰问】申请信息并且批量插入/修改与【住院慰问】申请信息相关联的文件信息
      * @return
      */
-    @Transactional
+    /*@Transactional
     public void saveOrUpdateZywwApplyInfoAndBaseFileInfos(ZywwApplyInfo zywwApplyInfo, SysUser user, String applyFormId, List<BaseFileInfo> baseFileInfoList){
         // 如果当前申请信息对象zywwApplyInfo的申请单ID为空,代表是新增操作
         if(StringUtils.isBlank(zywwApplyInfo.getApplyFormId())){
@@ -144,7 +144,7 @@ public class ZywwService {
                 throw new RuntimeException("数据库【住院慰问】申请信息记录未修改  申请单ID:" + applyFormIdExist);
             }
         }
-    }
+    }*/
 
     /**
      * 保存/修改一条【住院慰问】申请信息
@@ -178,6 +178,8 @@ public class ZywwService {
             // 根据申请单ID和zywwApplyInfo对象中的当前属性值去修改当前申请记录
             UpdateWrapper<ZywwApplyInfo> updateWrapper = new UpdateWrapper<>();
             updateWrapper.eq("APPLY_FORM_ID", applyFormId);
+            zywwApplyInfo.setApproveStatusCode("0");
+            zywwApplyInfo.setApproveStatusName("待审核");
             int updateRows = zywwApplyInfoMapper.update(zywwApplyInfo, updateWrapper);
             if(updateRows > 0){
                 log.info("【住院慰问】申请信息修改成功  申请单ID:{}", applyFormId);
@@ -194,15 +196,14 @@ public class ZywwService {
      * @return
      */
     @Transactional
-    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, SysUser user){
+    public boolean approveAndSaveApproveInfo(String applyFormId, String optFlag, String approveDesc, SysUser user){
         // 审批一条【住院慰问】申请信息
         UpdateWrapper<ZywwApplyInfo> updateWrapper = new UpdateWrapper<>();
         updateWrapper.eq("APPLY_FORM_ID", applyFormId);
         ZywwApplyInfo zywwApplyInfoDTO = new ZywwApplyInfo();
         zywwApplyInfoDTO.setApproveStatusCode(optFlag);
-        String optDesc = "1".equals(optFlag)? "同意":"驳回";
+        String optDesc = "1".equals(optFlag)? "同意" : "驳回";
         zywwApplyInfoDTO.setApproveStatusName(optDesc);
-//        zywwApplyInfoDTO.setUpdateTime(new Date());
         int updateRows = zywwApplyInfoMapper.update(zywwApplyInfoDTO, updateWrapper);
         if(updateRows > 0){
             log.info("【住院慰问】申请信息已审批  申请单ID:{},审批操作描述:{}", applyFormId, optDesc);
@@ -222,6 +223,7 @@ public class ZywwService {
             baseApproveInfo.setApproveUserPoliceNo(user.getPoliceNo());
             baseApproveInfo.setApproveResultCode(optFlag);
             baseApproveInfo.setApproveResultDesc(optDesc);
+            baseApproveInfo.setApproveDesc(approveDesc);
             int insertRows = baseApproveInfoMapper.insert(baseApproveInfo);
             if(insertRows > 0){
                 log.info("【住院慰问】审批信息保存成功  申请单ID:{},审批人警号:{},审批结果说明:{}", applyFormId, user.getPoliceNo(), optDesc);
@@ -247,7 +249,7 @@ public class ZywwService {
         String applyFormId = reqBody.getString("applyFormId");
         // 构造查询条件,支持多条件查询
         QueryWrapper<ZywwApplyInfo> queryWrapper = new QueryWrapper<>();
-        // 1.查询当前用户能看到的整个系统中的全量"待审批"的记录,暂不考虑用户所属具体部门的因素
+        // 1.审批端:查询审批人能看到的整个系统中的全量"待审批"的记录(暂不考虑用户所属具体部门的因素)
         if (approveStatus != null && approveStatus == 0 && "approve".equals(type)){
             // 匹配列表中的一条,对"待审批"的申请信息做数据回显及提供审批功能
             if(StringUtils.isNotBlank(applyFormId)){
@@ -255,7 +257,17 @@ public class ZywwService {
             }
             queryWrapper.eq("APPROVE_STATUS_CODE", 0);
         }
-        // 2.查询当前用户提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
+
+        // 2.审批端:查询审批人能看到的整个系统中的全量"已审批"的记录(包含审批通过记录、审批驳回记录)
+        if (approveStatus != null && approveStatus == 3 && "approve".equals(type)){
+            // 匹配列表中的一条,对"已审批"的申请信息做数据回显功能
+            if(StringUtils.isNotBlank(applyFormId)){
+                queryWrapper.eq("APPLY_FORM_ID", applyFormId);
+            }
+            queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 1).or().eq("APPROVE_STATUS_CODE", 2));
+        }
+
+        // 3.申请端:查询当前申请人提交的全量"审批中"的申请记录(包含待审批记录、审批驳回记录)
         SysUser user = SecurityUtils.getLoginUser().getUser();
         if (approveStatus != null && approveStatus == 3 && "apply".equals(type)){
             // 匹配列表中的一条,对"审批中"的申请信息做数据回显及提供修改功能
@@ -266,7 +278,8 @@ public class ZywwService {
             // 待审批和审批驳回(允许修改后继续提交)
             queryWrapper.and(qw -> qw.eq("APPROVE_STATUS_CODE", 0).or().eq("APPROVE_STATUS_CODE", 2));
         }
-        // 3.查询当前用户提交的全量"已审批"的申请记录(只包含审批通过记录)
+
+        // 4.申请端:查询当前申请人提交的全量"已审批"的申请记录(只包含审批通过记录)
         if (approveStatus != null && approveStatus == 1 && "apply".equals(type)){
             // 匹配列表中的一条,对"已审批"的申请信息做数据回显
             if(StringUtils.isNotBlank(applyFormId)){
@@ -275,12 +288,24 @@ public class ZywwService {
             queryWrapper.eq("CREATE_USER_POLICE_NO", user.getPoliceNo());
             queryWrapper.eq("APPROVE_STATUS_CODE", 1);
         }
+
         queryWrapper.orderByDesc("CREATE_TIME");
         Page<ZywwApplyInfo> page = new Page<>(pageIndex, pageSize);
         Page<ZywwApplyInfo> pageDataList = zywwApplyInfoMapper.selectPage(page, queryWrapper);
 
         // 如果存在对应条件的用户申请记录,并且当前是修改数据前的数据回显操作,则继续查询该申请记录对应的文件信息记录,并返回给前端
         if(pageDataList != null && pageDataList.getTotal() > 0 && "update".equals(optFlag) && StringUtils.isNotBlank(applyFormId)){
+            // 查询用户当前申请记录的审批说明信息
+            QueryWrapper<BaseApproveInfo> bqw = new QueryWrapper<>();
+            bqw.eq("APPLY_FORM_ID", applyFormId);
+            bqw.orderByDesc("APPROVE_TIME");
+            List<BaseApproveInfo> baseApproveInfosList = baseApproveInfoMapper.selectList(bqw);
+            if(baseApproveInfosList != null && baseApproveInfosList.size() > 0){
+                ZywwApplyInfo zywwApplyInfo = pageDataList.getRecords().get(0);
+                // 只取用户当前申请记录对应最新的一次审批记录的审批说明信息
+                zywwApplyInfo.setApproveDesc(baseApproveInfosList.get(0).getApproveDesc());
+            }
+
             QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
             qw.eq("APPLY_FORM_ID", applyFormId);
             List<BaseFileInfo> baseFileInfosList = baseFileInfoMapper.selectList(qw);
@@ -293,4 +318,27 @@ public class ZywwService {
         return pageDataList;
     }
 
+
+    /**
+     * 根据applyFormIds(申请单ID集合)删除一/多条【住院慰问】申请单信息,同时删除与对应申请单ID关联的文件信息记录
+     * @param applyFormIds
+     * @return
+     */
+    @Transactional
+    public boolean delDataByApplyFormIds(List<String> applyFormIds){
+        QueryWrapper<ZywwApplyInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.in("APPLY_FORM_ID", applyFormIds);
+        int delRows = zywwApplyInfoMapper.delete(queryWrapper);
+        if(delRows == applyFormIds.size()){
+            log.info("【住院慰问】申请信息删除成功  已删除的申请单ID:{},删除的数据条数:{}", applyFormIds, delRows);
+            QueryWrapper<BaseFileInfo> qw = new QueryWrapper<>();
+            qw.in("APPLY_FORM_ID", applyFormIds);
+            int delFileRows = baseFileInfoMapper.delete(qw);
+            log.info("【住院慰问】申请信息对应文件信息记录删除成功  删除的数据条数:{}", delFileRows);
+            return true;
+        } else {
+            throw new RuntimeException("数据库【住院慰问】申请信息记录未删除或不存在  删除失败的申请单ID:" + applyFormIds);
+        }
+    }
+
 }