package com.ruoyi.zzb.dbjz.controller; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.zzb.common.bean.RspResult; import com.ruoyi.zzb.common.domain.BaseFileInfo; import com.ruoyi.zzb.common.utils.SnowflakeIdGenerator; import com.ruoyi.zzb.dbjz.domain.DbjzApplyInfo; import com.ruoyi.zzb.dbjz.domain.DbjzFileSetDTO; import com.ruoyi.zzb.dbjz.service.DbjzService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @Slf4j @RestController @RequestMapping("/api/dbjz") public class DbjzController { @Autowired private DbjzService dbjzService; /** * 保存一条【大病救助】申请信息记录,同时保存每一个上传文件项的需要提交的多个附件信息记录以及保存对应的文件到服务器 * @param * @return */ @PostMapping("/saveOrUpdate") public JSONObject saveOrUpdate(DbjzApplyInfo dbjzApplyInfo, DbjzFileSetDTO dbjzFileSetDTO){ try { // 文件上传路径 String fileStoragePath = RuoYiConfig.getUploadPath(); SysUser user = SecurityUtils.getLoginUser().getUser(); if(null != user){ String applyFormId; if(StringUtils.isBlank(dbjzApplyInfo.getApplyFormId())){ // 申请单ID为空代表是 新增操作 // 生成申请单ID SnowflakeIdGenerator generator = new SnowflakeIdGenerator(1); applyFormId = String.valueOf(generator.nextId()); } else { // 修改操作 applyFormId = dbjzApplyInfo.getApplyFormId(); } List baseFileInfoList = dbjzService.processUploadAndBuildParams(dbjzFileSetDTO, "dbjz", "大病救助", applyFormId, fileStoragePath); // 等上传的文件写盘成功,再向数据库写入对应的申请信息和与之关联的文件信息 dbjzService.saveOrUpdateDbjzApplyInfoAndBaseFileInfos(dbjzApplyInfo, user, applyFormId, baseFileInfoList); return RspResult.success(true); } return RspResult.error("用户信息为空,【大病救助】申请信息无法保存/修改"); } catch (Exception e){ log.error("【大病救助】申请信息保存/修改失败", e); return RspResult.error("【大病救助】申请信息保存/修改失败 - " + e.getMessage()); } } @PostMapping("/approve") public JSONObject approve(@RequestBody JSONObject reqBody){ String applyFormId = reqBody.getString("applyFormId"); String optFlag = reqBody.getString("optFlag"); if(StringUtils.isBlank(applyFormId) || StringUtils.isBlank(optFlag)){ log.error("审批参数为空"); return RspResult.error("审批参数为空"); } SysUser user = SecurityUtils.getLoginUser().getUser(); try { if(null != user){ if(dbjzService.approveAndSaveApproveInfo(applyFormId, optFlag, user)){ return RspResult.success("【大病救助】申请信息审批成功"); } } return RspResult.error("用户信息为空,【大病救助】申请信息审批失败"); } catch (Exception e){ log.error("【大病救助】申请信息审批失败", e); return RspResult.error("【大病救助】申请信息审批失败 - " + e.getMessage()); } } /** * 根据 审批状态码 分页查询【大病救助】申请信息列表 * @param reqBody * @return */ @PostMapping("/query") public JSONObject query(@RequestBody JSONObject reqBody){ // 审批状态码 ---0:审批中,1:审批通过,2:审批驳回 Integer approveStatus = reqBody.getInteger("approveStatus"); String type = reqBody.getString("type"); if(approveStatus == null || StringUtils.isBlank(type)){ log.error("查询参数为空"); return RspResult.error("查询参数为空"); } try { return RspResult.success(dbjzService.getDataByPage(approveStatus, type, reqBody)); } catch (Exception e){ log.error("根据条件分页查询【大病救助】申请信息发生异常", e); return RspResult.error("根据条件分页查询【大病救助】申请信息发生异常 - " + e.getMessage()); } } }