2 天以前 f350465db70d6f9db9494483ee0cec7793a9007b
src/main/java/com/ruoyi/collaborativeApproval/controller/SealApplicationManagementController.java
@@ -1,25 +1,31 @@
package com.ruoyi.collaborativeApproval.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.approve.pojo.KnowledgeBase;
import com.ruoyi.approve.bean.vo.ApproveProcessVO;
import com.ruoyi.approve.service.IApproveProcessService;
import com.ruoyi.collaborativeApproval.dto.SealApplicationManagementDTO;
import com.ruoyi.collaborativeApproval.pojo.SealApplicationManagement;
import com.ruoyi.collaborativeApproval.service.SealApplicationManagementService;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.pojo.CommonFile;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
@AllArgsConstructor
@RestController
@@ -30,24 +36,65 @@
    private SealApplicationManagementService sealApplicationManagementService;
    @Autowired
    private ISysNoticeService sysNoticeService;
    private IApproveProcessService approveProcessService;
    @Autowired
    private CommonFileMapper commonFileMapper;
    @GetMapping("/getList")
    @ApiOperation("分页查询")
    public AjaxResult listPage(Page page, SealApplicationManagement sealApplicationManagement){
        return AjaxResult.success(sealApplicationManagementService.listPage(page,sealApplicationManagement));
        IPage<SealApplicationManagementDTO> result = sealApplicationManagementService.listPage(page,sealApplicationManagement);
        for (SealApplicationManagementDTO record : result.getRecords()) {
            if (record.getApproveProcessId() != null) {
                record.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                        .eq(CommonFile::getCommonId, record.getApproveProcessId())
                        .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue())));
            }
        }
        return AjaxResult.success(result);
    }
    @PostMapping("/add")
    @ApiOperation("新增")
    public AjaxResult add(@RequestBody SealApplicationManagement sealApplicationManagement){
        sealApplicationManagementService.save(sealApplicationManagement);
        //消息通知
        sysNoticeService.simpleNoticeByUser("用印审批",
                "申请编号:"+sealApplicationManagement.getApplicationNum()+"\t"
                +"申请标题:"+sealApplicationManagement.getTitle(),
                Arrays.asList(sealApplicationManagement.getApproveUserId()),
                "/collaborativeApproval/sealManagement?applicationNum="+sealApplicationManagement.getApplicationNum());
    @ApiOperation("新增/重新申请用印")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody SealApplicationManagement sealApplicationManagement) throws Exception {
        sealApplicationManagement.setStatus("pending");
        if (sealApplicationManagement.getId() == null) {
            sealApplicationManagementService.save(sealApplicationManagement);
        } else {
            // 重新申请:清理旧审批流程关联的附件,避免遗留
            SealApplicationManagement old = sealApplicationManagementService.getById(sealApplicationManagement.getId());
            if (old != null && old.getApproveProcessId() != null) {
                commonFileMapper.delete(new LambdaQueryWrapper<CommonFile>()
                        .eq(CommonFile::getCommonId, old.getApproveProcessId())
                        .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
            }
            sealApplicationManagementService.updateById(sealApplicationManagement);
        }
        // 发起协同统一审核流程(用印审批)
        ApproveProcessVO vo = new ApproveProcessVO();
        vo.setApproveType(9);
        vo.setApproveReason(sealApplicationManagement.getApplicationNum() + ":" + sealApplicationManagement.getTitle());
        vo.setApproveDeptId(sealApplicationManagement.getDeptId());
        vo.setApproveTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
        Long approveProcessId = approveProcessService.addApprove(vo);
        // 回填审批流程id,供审批回调更新状态、详情查询附件
        sealApplicationManagement.setApproveProcessId(approveProcessId);
        sealApplicationManagementService.updateById(sealApplicationManagement);
        // 保存用印申请附件,关联到审批流程
        if (!CollectionUtils.isEmpty(sealApplicationManagement.getAttachmentList())) {
            for (CommonFile cf : sealApplicationManagement.getAttachmentList()) {
                CommonFile record = new CommonFile();
                record.setCommonId(approveProcessId);
                record.setName(cf.getName());
                record.setUrl(cf.getUrl());
                record.setType(FileNameType.ApproveProcess.getValue());
                record.setCreateTime(LocalDateTime.now());
                record.setUpdateTime(LocalDateTime.now());
                commonFileMapper.insert(record);
            }
        }
        return AjaxResult.success();
    }
@@ -66,6 +113,21 @@
        return AjaxResult.success(sealApplicationManagementService.removeBatchByIds(ids));
    }
    @GetMapping("/detail")
    @ApiOperation("用印申请详情(按审批流程id)")
    public AjaxResult detail(Long approveProcessId){
        SealApplicationManagement seal = sealApplicationManagementService.getOne(new LambdaQueryWrapper<SealApplicationManagement>()
                .eq(SealApplicationManagement::getApproveProcessId, approveProcessId)
                .last("limit 1"));
        if (seal == null) {
            throw new RuntimeException("用印申请不存在");
        }
        seal.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                .eq(CommonFile::getCommonId, approveProcessId)
                .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue())));
        return AjaxResult.success(seal);
    }
    @ApiOperation(value = "用印申请管理导出")
    @PostMapping("/export")
    public void export(HttpServletResponse response) {