package com.ycl.controller; import com.ycl.common.annotation.Log; import com.ycl.common.core.controller.BaseController; import com.ycl.common.core.domain.AjaxResult; import com.ycl.common.core.page.TableDataInfo; import com.ycl.common.enums.BusinessType; import com.ycl.common.utils.poi.ExcelUtil; import com.ycl.system.domain.Purchase; import com.ycl.service.IPurchaseService; import com.ycl.system.service.ISysUserService; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.Task; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Date; import java.util.List; /** * 采购Controller * * @author shenzhanwang * @date 2022-05-28 */ @Controller @RequiredArgsConstructor @RequestMapping("/purchase") public class PurchaseController extends BaseController { private static final String prefix = "flowable/purchase"; private final IPurchaseService purchaseService; private final ISysUserService userService; private final RuntimeService runtimeService; private final TaskService taskService; @GetMapping() public String purchase() { return prefix + "/purchase"; } /** * 查询采购列表 */ @PostMapping("/list") @ResponseBody public TableDataInfo list(Purchase purchase) { startPage(); List list = purchaseService.selectPurchaseList(purchase); return getDataTable(list); } /** * 导出采购列表 */ @PostMapping("/export") @ResponseBody public AjaxResult export(Purchase purchase) { List list = purchaseService.selectPurchaseList(purchase); ExcelUtil util = new ExcelUtil(Purchase.class); return util.exportExcel(list, "采购数据"); } /** * 新增保存采购 */ @ApiOperation("新增保存采购") @Log(title = "采购", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(Purchase purchase) { purchase.setApplytime(new Date()); return toAjax(purchaseService.insertPurchase(purchase)); } @PostMapping("/edit") @ResponseBody public AjaxResult edit(Purchase purchase) { return toAjax(purchaseService.updatePurchase(purchase)); } /** * 删除采购 */ @Log(title = "采购", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(purchaseService.deletePurchaseByIds(ids)); } /** * 采购经理审批 */ @ApiOperation("采购经理审批") @GetMapping("/purchasemanager") @ResponseBody public AjaxResult purchasemanager(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } /** * 财务审批 */ @ApiOperation("财务审批") @GetMapping("/finance") @ResponseBody public AjaxResult finance(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } /** * 总经理审批 */ @ApiOperation("总经理审批") @GetMapping("/manager") @ResponseBody public AjaxResult manager(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } /** * 出纳付款 */ @ApiOperation("出纳付款") @GetMapping("/pay") @ResponseBody public AjaxResult pay(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } /** * 收货确认 */ @ApiOperation("收货确认") @GetMapping("/receiveitem") @ResponseBody public AjaxResult receiveitem(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } /** * 调整申请 */ @ApiOperation("调整申请") @GetMapping("/updateapply") @ResponseBody public AjaxResult updateapply(String taskid) { Task t = taskService.createTaskQuery().taskId(taskid).singleResult(); String processId = t.getProcessInstanceId(); ProcessInstance p = runtimeService.createProcessInstanceQuery().processInstanceId(processId).singleResult(); if (p != null) { Purchase apply = purchaseService.selectPurchaseById(Long.parseLong(p.getBusinessKey())); return AjaxResult.success(apply); } return AjaxResult.error("流程不存在"); } }