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<Purchase> list = purchaseService.selectPurchaseList(purchase);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出采购列表
|
*/
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(Purchase purchase)
|
{
|
List<Purchase> list = purchaseService.selectPurchaseList(purchase);
|
ExcelUtil<Purchase> util = new ExcelUtil<Purchase>(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("流程不存在");
|
}
|
}
|