| | |
| | | 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 |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | 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) { |