HAP_工作流后台操作

  • 新建用户(CEO)


    13265172-f92157405cba088e.png
    image.png
  • 分配岗位CEO


    13265172-bb836cef21003de3.png
    image.png
  • 新建表:wht_ora_20796_demo_vacation
CREATE TABLE `wht_ora_20796_demo_vacation` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT,
  `USER_CODE` varchar(225) NOT NULL COMMENT '用户编码',
  `START_DATE` datetime NOT NULL,
  `NEED_DAYS` decimal(4,1) NOT NULL COMMENT '请假天数',
  `LEAVE_REASON` varchar(255) DEFAULT NULL COMMENT '请假理由',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 导入工作流文件
    把老师的工号替换成你的工号
    13265172-264c6ab51d5ee08d.png
    image.png

    13265172-bf0a58a0229147fe.png
    image.png

    启动:
    13265172-db4b68d7a84dfd32.png
    image.png

生成代码:


13265172-607edcf6cc36eecf.png
image.png

复制代码:

复制到
target/core/WEB-INF/view/activiti/demo/vacation_list.htmlsrc/main/webapp/WEB-INF/view/ ora20796 /vacation_list.html
target/core/WEB-INF/view/activiti/demo/vacation_view.htmlsrc/main/webapp/WEB-INF/view/ ora20796 /vacation_view.html

两个页面都也更改html:


13265172-d2d9bb6186f10a72.png
image.png
  • 前方高能(下面继续代码更改)

IOra20796DemoVacationService.java接口

13265172-7e93659ca4dd89db.png
image.png

package wht.ora20796.service;

import com.hand.hap.core.IRequest;
import com.hand.hap.core.ProxySelf;
import com.hand.hap.system.service.IBaseService;
import wht.ora20796.dto.Ora20796DemoVacation;

import java.util.List;

public interface IOra20796DemoVacationService extends IBaseService<Ora20796DemoVacation>, ProxySelf<IOra20796DemoVacationService>{

    public void createVacationInstance(IRequest iRequest, Ora20796DemoVacation ora20796DemoVacation);
    public List<Ora20796DemoVacation> selectVacationHistory(IRequest iRequest);
}

Ora20796DemoVacationServiceImpl.java接口实现类
注意点:

13265172-714d236aea6ebe23.png
image.png

13265172-67103d510d8656bb.png
image.png

13265172-4e2ce7b95c9de8b6.png
image.png

package wht.ora20796.service.impl;

import com.hand.hap.activiti.service.IActivitiService;
import com.hand.hap.core.IRequest;
import com.hand.hap.system.service.impl.BaseServiceImpl;
import org.activiti.rest.service.api.engine.variable.RestVariable;
import org.activiti.rest.service.api.runtime.process.ProcessInstanceCreateRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import wht.ora20796.dto.Ora20796DemoVacation;
import wht.ora20796.mapper.Ora20796DemoVacationMapper;
import wht.ora20796.service.IOra20796DemoVacationService;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

@Service
@Transactional(rollbackFor = Exception.class)
public class Ora20796DemoVacationServiceImpl extends BaseServiceImpl<Ora20796DemoVacation> implements IOra20796DemoVacationService {

    @Autowired
    private IActivitiService activitiService; //工作流相关Service
    @Autowired
    private Ora20796DemoVacationMapper demoVacationMapper;


    private final String processDefinitionKey = "ORA_20796_VACATION_REQUEST"; //流程标识,通过其启动流程

    //    @Autowired
//    private IDemoVacationService vacationService;
    /*
     * 创建请假流程 将业务表单存放在act_demo_vacation 表将此表单通过businessKey与流程相关。启动此流程
     * DemoVacation为业务表单数据。可根据流程需要将表单数据加入流程变量中,如我们在请假流程审批过程中我们可能
     * 需要请假时间参数对流程逻辑做出相关处理,则可以把其放入流程变量中。
     * */
    @Override
    public void createVacationInstance(IRequest iRequest, Ora20796DemoVacation demoVacation) {
        demoVacation.setUserCode(iRequest.getEmployeeCode());
        Ora20796DemoVacation demo = this.insertSelective(iRequest, demoVacation);
        ProcessInstanceCreateRequest instanceCreateRequest = new ProcessInstanceCreateRequest();
        instanceCreateRequest.setBusinessKey(String.valueOf(demo.getId()));
        instanceCreateRequest.setProcessDefinitionKey(processDefinitionKey);
        //添加流程变量
        List<RestVariable> variables = new ArrayList<>();
        RestVariable variable = new RestVariable();
        variable.setName("needDays");
        variable.setType("long");
        variable.setValue(demo.getNeedDays());

        variables.add(variable);
        instanceCreateRequest.setVariables(variables);

        activitiService.startProcess(iRequest, instanceCreateRequest);
    }

    /*
     * 查看历史请假记录(查询单据表)
     * c*/
    @Override
    public List<Ora20796DemoVacation> selectVacationHistory(IRequest iRequest) {
        Ora20796DemoVacation demoVacation = new Ora20796DemoVacation();
        demoVacation.setUserCode(iRequest.getEmployeeCode());
        List<Ora20796DemoVacation> demoVacations = demoVacationMapper.select(demoVacation);
        return demoVacations;
    }
}

Ora20796DemoVacationController.java控制类
注意点:

  • 更改1
    13265172-9a6f38a5f7dd5899.png
    image.png

    对应vacation_list.html
    13265172-ada753782a6d97e5.png
    image.png
  • 更改2
    13265172-e179bd65dea0e633.png
    image.png

    对应vacation_list.html
    13265172-5af017fb621db14e.png
    image.png
  • 更改3


    13265172-3fb7ca893ef28a70.png
    image.png

对应vacation_view.html

13265172-eb79658077add649.png
image.png

@Autowired
      private IOra20796DemoVacationService service;

      @Autowired
      private IOra20796DemoVacationService vacationService;

      /*
       * 请假流程demo
       * */
      @RequestMapping(value = "/wht/ora/20796/demo/runtime/process-instances/vacation", method = RequestMethod.POST, produces = "application/json")
      //@RequestMapping(value = "/wfl/runtime/process-instances/vacation", method = RequestMethod.POST, produces = "application/json")
      @ResponseBody
      public ResponseData createVacationProcessInstance(@RequestBody Ora20796DemoVacation demoVacation,
                                                        HttpServletRequest httpRequest, HttpServletResponse response) {
          IRequest iRequest = createRequestContext(httpRequest);
          vacationService.createVacationInstance(iRequest, demoVacation);
          return new ResponseData();
      }

      /*
      请假流程通过businessKey获取流程表单
      * */
      @RequestMapping("/wht/ora/20796/demo/history/form/details/vacation/{businessKey}")
     // @RequestMapping("/wfl/history/form/details/vacation/{businessKey}")
      @ResponseBody
      public Ora20796DemoVacation getProcessFrom(HttpServletRequest request, @PathVariable String businessKey) {
          Ora20796DemoVacation demoVacation = new Ora20796DemoVacation();
          demoVacation.setId(Long.parseLong(businessKey));
          Ora20796DemoVacation demo = vacationService.selectByPrimaryKey(createRequestContext(request), demoVacation);
          return demo;
      }

      /*
       * 获取当前用户历史请假记录
       * */
      @ResponseBody
      @RequestMapping("/wht/ora/20796/demo/vacation/work/query")
    //  @RequestMapping("/wfl/vacation/query")
      public ResponseData getVacationHistory(HttpServletRequest request, HttpServletResponse response, Ora20796DemoVacation demoVacation, @RequestParam(defaultValue = DEFAULT_PAGE) int page,
                                             @RequestParam(defaultValue = DEFAULT_PAGE_SIZE) int pagesize) {
          IRequest iRequest = createRequestContext(request);
          List<Ora20796DemoVacation> lists = vacationService.selectVacationHistory(iRequest);
          return new ResponseData(lists);
      }

重新打包启动tomcat
添加到功能管理:


13265172-9269b0c78e1ac9dc.png
image.png

查看:


13265172-e7710e360087f6a1.png
image.png

bug收集器:

  • 问题1


    13265172-626c79a41367f30f.png
    image.png

解决:
去到DTO


13265172-c687da7238c2a42b.png
image.png
  • 问题2:


    13265172-8d7525dbd35dda3b.png
    image.png

    看不到数据???


    13265172-58fe61e64cba14f4.png
    image.png

    13265172-435da9a84056c8b1.png
    image.png
  • 问题3


    13265172-a27ce3e15e2f32d3.png
    image.png

可能原因:1. 你的xml没有改

  1. 你的


    13265172-658e9b20d4e2198f.png
    image.png

    没改

  • 问题3


    13265172-ff443a8ae5ecf3d4.png
    image.png
Errors while parsing: [Validation set: 'activiti-executable-process' | Problem: 'activiti-exclusive-gateway-condition-on-seq-flow'] : Default sequenceflow has a condition, which is not allowed - [Extra info : processDefinitionId = ORA_20796_VACATION_REQUEST | processDefinitionName = 请假申请 | | id = requestApprovedDecision | | activityName = Request approved? | ] ( line: 27, column: 5) 

解决:


13265172-2c06ce334f9294cf.png
image.png

问题4


13265172-b05faaf5311bcf21.png
image.png

解决:换浏览器,非IE内核,或者其他浏览器(但不要用兼容模式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值