/** 
 | 
 * 版权所有,侵权必究! 
 | 
 */ 
 | 
  
 | 
package com.zt.modules.workflow.controller; 
 | 
  
 | 
import com.zt.common.servlet.Result; 
 | 
import com.zt.modules.workflow.model.WfRunInstance; 
 | 
import com.zt.modules.workflow.model.WfRunTask; 
 | 
import com.zt.modules.workflow.service.WfRunInstanceService; 
 | 
import com.zt.modules.workflow.service.WorkflowService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * 工作流controller 
 | 
 * 
 | 
 * @author 朱曙光 
 | 
 * @since 1.0.0 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("wf") 
 | 
@Api(value = "工作流", tags = "工作流") 
 | 
public class WorkflowController { 
 | 
    @Autowired 
 | 
    private WorkflowService workflowService; 
 | 
    @Autowired 
 | 
    private WfRunInstanceService wfRunInstanceService; 
 | 
  
 | 
//    @PostMapping("queryAllSteps") 
 | 
//    @ApiOperation("查询steps") 
 | 
//    public Result queryAllSteps(@RequestBody WorkflowDto workflowDto) { 
 | 
//        List<WfDefStep> list = null; 
 | 
//        try { 
 | 
//            list = workflowService.queryAllSteps(workflowDto.getWfCode()); 
 | 
//        } catch (RuntimeException e) { 
 | 
//            return Result.error(e.getLocalizedMessage()); 
 | 
//        } 
 | 
//        return Result.ok(list); 
 | 
//    } 
 | 
// 
 | 
//    @PostMapping("queryAllSteps2") 
 | 
//    @ApiOperation("查询steps") 
 | 
//    public Result queryAllSteps2(@RequestBody WorkflowDto workflowDto) { 
 | 
//        List<WfDefStep> list = null; 
 | 
//        try { 
 | 
//            list = workflowService.queryAllSteps2(workflowDto.getWfCode(), new Long(workflowDto.getWfRunLog().getBizId())); 
 | 
//        } catch (RuntimeException e) { 
 | 
//            return Result.error(e.getLocalizedMessage()); 
 | 
//        } 
 | 
//        return Result.ok(list); 
 | 
//    } 
 | 
// 
 | 
//    @PostMapping("queryWfCurrentInfo") 
 | 
//    @ApiOperation("查询流程当前信息") 
 | 
//    public Result queryWfCurrentInfo(@RequestBody WorkflowDto workflowDto) { 
 | 
//        QueryWfInfoDto dto = null; 
 | 
//        try { 
 | 
//            dto = workflowService.queryWfCurrentInfo(workflowDto.getWfCode(), new Long(workflowDto.getWfRunLog().getBizId())); 
 | 
//        } catch (RuntimeException e) { 
 | 
//            return Result.error(e.getLocalizedMessage()); 
 | 
//        } 
 | 
//        return Result.ok(dto); 
 | 
//    } 
 | 
// 
 | 
//    @PostMapping("approve") 
 | 
//    @ApiOperation("提交同意") 
 | 
//    public Result approve(@RequestBody WorkflowDto workflowDto) { 
 | 
//        try { 
 | 
//            workflowService.startProcess(workflowDto.getWfCode(), new Long(workflowDto.getWfRunLog().getBizId())); 
 | 
//            if ("no".equalsIgnoreCase(workflowDto.getWfRunLog().getApproveAction())) { 
 | 
//                workflowService.refuse(workflowDto.getWfCode(), workflowDto.getWfRunLog()); 
 | 
//            } else { 
 | 
//                workflowService.approve(workflowDto.getWfCode(), workflowDto.getWfRunLog()); 
 | 
//            } 
 | 
//        } catch (RuntimeException e) { 
 | 
//            return Result.error(e.getLocalizedMessage()); 
 | 
//        } 
 | 
//        return Result.ok(); 
 | 
//    } 
 | 
// 
 | 
// 
 | 
// 
 | 
//    @PostMapping("refuse") 
 | 
//    @ApiOperation("回退") 
 | 
//    @LogOperation("回退") 
 | 
//    public Result refuse(@RequestBody WorkflowDto workflowDto, HttpServletResponse response) throws Exception { 
 | 
//        workflowService.refuse(workflowDto.getWfCode(), workflowDto.getWfRunLog()); 
 | 
//        return Result.ok(); 
 | 
//    } 
 | 
// 
 | 
//    @PostMapping("queryFirstStep") 
 | 
//    @ApiOperation("查询第一步") 
 | 
//    @LogOperation("查询第一步") 
 | 
//    public Result<WfDefStep> queryFirstStep(@RequestBody WorkflowDto workflowDto, HttpServletResponse response) throws Exception { 
 | 
//        WfDefStep step = workflowService.queryFirstStep(workflowDto.getWfCode()); 
 | 
//        return Result.ok(step); 
 | 
//    } 
 | 
// 
 | 
//    @PostMapping("queryCurrentStep") 
 | 
//    @ApiOperation("查询当前步") 
 | 
//    @LogOperation("查询当前步") 
 | 
//    public Result<WfDefStep> queryCurrentStep(@RequestBody WorkflowDto workflowDto, HttpServletResponse response) throws Exception { 
 | 
//        WfDefStep step = workflowService.queryCurrentStep(workflowDto.getWfCode(), new Long(workflowDto.getWfRunLog().getBizId())); 
 | 
//        return Result.ok(step); 
 | 
//    } 
 | 
  
 | 
//    @PostMapping("saveDraft") 
 | 
//    @ApiOperation("保存审批草稿数据") 
 | 
//    @LogOperation("保存审批草稿数据") 
 | 
//    public Result<WfDefStep> saveDraft(@RequestBody WorkflowDto workflowDto, HttpServletResponse response) throws Exception { 
 | 
//        if (workflowDto.getWfRunLog().getApproverIds() == null || StringUtils.isEmpty(workflowDto.getWfRunLog().getApproverIds())) { 
 | 
//            workflowDto.getWfRunLog().setApproverIds(UserContext.getUserId().toString()); 
 | 
//        } 
 | 
//        workflowService.saveDraft(workflowDto); 
 | 
//        return Result.ok(null); 
 | 
//    } 
 | 
  
 | 
//    @PostMapping("queryDraft") 
 | 
//    @ApiOperation("查询审批草稿数据") 
 | 
//    @LogOperation("查询审批草稿数据") 
 | 
//    public Result<WfRunLogDraft> queryDraft(@RequestBody WorkflowDto workflowDto, HttpServletResponse response) throws Exception { 
 | 
//        if (workflowDto.getWfRunLog().getApproverIds() == null || StringUtils.isEmpty(workflowDto.getWfRunLog().getApproverIds())) { 
 | 
//            workflowDto.getWfRunLog().setApproverIds(UserContext.getUserId().toString()); 
 | 
//        } 
 | 
//        WfRunLogDraft draft = workflowService.queryDraft(workflowDto); 
 | 
//        return Result.ok(draft); 
 | 
//    } 
 | 
  
 | 
  
 | 
    @GetMapping("/approvePass") 
 | 
    @ApiOperation("审批通过") 
 | 
    public Result<String> approvePass(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId, @RequestParam("stepIdMark") String stepIdMark) { 
 | 
        workflowService.approvePass(wfIdCode, bizId, stepIdMark); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/approvePass2") 
 | 
    @ApiOperation("审批通过") 
 | 
    public Result<String> approvePass2(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId, @RequestParam("stepIdMark") String stepIdMark,@RequestParam("nextStepIdMark") String nextStepIdMark) { 
 | 
        workflowService.approvePass2(wfIdCode, bizId, stepIdMark,nextStepIdMark); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/approveRefuse") 
 | 
    @ApiOperation("审批驳回") 
 | 
    public Result<String> approveRefuse(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId, @RequestParam("stepIdMark") String stepIdMark) { 
 | 
        workflowService.approveRefuse(wfIdCode, bizId, stepIdMark); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/approveRefuse2") 
 | 
    @ApiOperation("审批驳回") 
 | 
    public Result<String> approveRefuse2(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId, @RequestParam("stepIdMark") String stepIdMark,@RequestParam("prevStepIdMark") String prevStepIdMark) { 
 | 
        workflowService.approveRefuse2(wfIdCode, bizId, stepIdMark,prevStepIdMark); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/reStartFlow") 
 | 
    @ApiOperation("重新启动流程") 
 | 
    public Result<String> reStartFlow(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId, @RequestParam("stepIdMark") String stepIdMark,@RequestParam("prevStepIdMark") String prevStepIdMark) { 
 | 
        workflowService.reStartFlow(wfIdCode, bizId, stepIdMark,prevStepIdMark); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/startFlow") 
 | 
    @ApiOperation("启动流程") 
 | 
    public Result<Boolean> startFlow(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId) { 
 | 
        Boolean result = workflowService.startFlow(wfIdCode, bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/deleteFlowTask") 
 | 
    @ApiOperation("删除流程") 
 | 
    public Result<String> deleteFlowTask(@RequestParam("wfIdCode") String wfIdCode, @RequestParam("bizId") Long bizId) { 
 | 
        workflowService.deleteFlowTask(wfIdCode, bizId); 
 | 
        return Result.ok("删除完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowStatus") 
 | 
    @ApiOperation("类型1流程状态") 
 | 
    public Result<Map<String, WfRunTask>> getFlowStatus(String wfIdCodes, Long bizId) { 
 | 
        Map<String, WfRunTask> result = workflowService.getFlowStatus(wfIdCodes, bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getAllSteps") 
 | 
    @ApiOperation("类型1流程状态") 
 | 
    public Result<Map<String, Map<String, String>>> getAllSteps() { 
 | 
        Map<String, Map<String, String>> result = workflowService.getAllSteps(); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getSingleFlowStatus") 
 | 
    @ApiOperation("单个类型流程状态") 
 | 
    public Result<Map<String, WfRunTask>> getSingleFlowStatus(String wfIdCodes, Long bizId) { 
 | 
        Map<String, WfRunTask> result = workflowService.getSingleFlowStatus(wfIdCodes, bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowStatus2") 
 | 
    @ApiOperation("类型2流程状态") 
 | 
    public Result<Map<String, WfRunTask>> getFlowStatus2(String wfIdCodes, Long bizId) { 
 | 
        Map<String, WfRunTask> result = workflowService.getFlowStatus2(wfIdCodes, bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getPlanFlowStatus") 
 | 
    @ApiOperation("计划修理总体流程状态") 
 | 
    public Result<Map<String, Integer>> getPlanFlowStatus(Long bizId) { 
 | 
        Map<String, Integer> result = workflowService.getPlanFlowStatus(bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowStepStatus") 
 | 
    @ApiOperation("流程步骤状态") 
 | 
    public Result<WfRunTask> getFlowStepStatus(String wfIdCodes, Long bizId, String stepIdMark) { 
 | 
        WfRunTask result = workflowService.getFlowStepStatus(wfIdCodes, bizId, stepIdMark); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getStepCount") 
 | 
    @ApiOperation("流程步骤") 
 | 
    public Result<List<Map<String, Object>>> getStepCount(String wfIdCodes,Long bizId) { 
 | 
         return Result.ok(workflowService.getStepCount(wfIdCodes,bizId)); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/hasExistFlow") 
 | 
    @ApiOperation("流程步骤") 
 | 
    public Boolean hasExistFlow(String wfIdCode,Long bizId) { 
 | 
        return workflowService.hasExistFlow(wfIdCode,bizId); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/reCallFlow") 
 | 
    @ApiOperation("撤回流程") 
 | 
    public Result<String> recallFlow(String flowCode, Long bizId, String stepMarker, Long id, Long prevId) { 
 | 
        String result = workflowService.recallFlow(flowCode, bizId, stepMarker, id, prevId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowInstance") 
 | 
    @ApiOperation("获取流程步骤") 
 | 
    public Result<WfRunInstance> getFlowInstance(String flowCode, Long bizId) { 
 | 
        WfRunInstance flowInstance = wfRunInstanceService.getFlowInstance(flowCode, bizId); 
 | 
        return Result.ok(flowInstance); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowTrack") 
 | 
    @ApiOperation("获取流程步骤") 
 | 
    public Result<List<WfRunTask>> getFlowTrack(String flowCode, Long bizId) { 
 | 
        List<WfRunTask> flowTrack = workflowService.getFlowTrack(flowCode, bizId); 
 | 
        return Result.ok(flowTrack); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/getFlowStepName") 
 | 
    @ApiOperation("获取当前流程步骤名称") 
 | 
    public Result<String> getFlowStepName(String wfIdCodes, Long bizId) { 
 | 
        String result = workflowService.getFlowStepName(wfIdCodes, bizId); 
 | 
        return Result.ok(result); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/setTaskPartFinish2") 
 | 
    @ApiOperation("审批通过") 
 | 
    public Result<String> setTaskPartFinish2(@RequestParam("bizId") Long bizId, @RequestParam("receiveId") Long receiveId, @RequestParam("status") Integer status) { 
 | 
        workflowService.setTaskPartFinish2(bizId, receiveId, status); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
    @GetMapping("/setTaskPartFinish3") 
 | 
    @ApiOperation("审批通过") 
 | 
    public Result<String> setTaskPartFinish3(@RequestParam("bizId") Long bizId, @RequestParam("receiveDeptId") Long receiveDeptId, @RequestParam("status") Integer status) { 
 | 
        workflowService.setTaskPartFinish3(bizId, receiveDeptId, status); 
 | 
        return Result.ok("审批完成"); 
 | 
    } 
 | 
  
 | 
} 
 |