123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- /**
- FlowMainService.java
- * 申请人撤回申请
- *
- * @param flowMainid
- */
- public AjaxResult recallApply(String flowMainid) {
- if (com.rockstar.util.StringUtils.isEmpty(flowMainid)) {
- return AjaxResult.error("数据不能为空");
- }
- FlowMain flowMain = this.selectByPrimaryKey(flowMainid);
- //流转状态为审核中时,可以由发起人撤回。ok
- if (!flowMain.getFlowStatus().equals(1)) {
- return AjaxResult.error("流程状态不在审核中,请重新确认");
- }
- // TODO: 2024/12/12 先处理待办 不然状态 会变
- try {
- // 撤回后处理待办
- String flowId = flowMain.getId();
- FlowMainPushExample flowMainPushExample = new FlowMainPushExample();
- flowMainPushExample.createCriteria().andFlowMainIdEqualTo(flowId).andStatusEqualTo(0);
- List<FlowMainPush> flowMainPushes = flowMainPushService.selectByExample(flowMainPushExample);
- if (CollectionUtils.isNotEmpty(flowMainPushes)) {
- FlowMainPush push = flowMainPushes.get(0);
- // 进行审核操作后 就要处理待办 清除数据
- String param = "id=" + flowId + "&flowMainPushId=" + push.getId() + "&applyUser=" + flowMain.getApplyUser();
- // 付款申请
- if(flowMain.getFlowType().equals(ConstantFlowType.PAYMENT)){
- parkWaitHandleService.userHandle(HandleTypeEnum.FK, param, ShiroUtils.getUserId());
- }
- // 入驻流程申请
- if(flowMain.getFlowType().equals(ConstantFlowType.CHECK_IN)){
- parkWaitHandleService.userHandle(HandleTypeEnum.RZ, param, ShiroUtils.getUserId());
- }
- // 合同用章申请
- if(flowMain.getFlowType().equals(ConstantFlowType.CONTRACT)){
- parkWaitHandleService.userHandle(HandleTypeEnum.HTYZ, param, ShiroUtils.getUserId());
- }
- // 应收款调整申请
- if(flowMain.getFlowType().equals(ConstantFlowType.RECEIVABLES_ADJUST)){
- parkWaitHandleService.userHandle(HandleTypeEnum.YSKTZ, param, ShiroUtils.getUserId());
- }
- // 发票红冲申请
- if(flowMain.getFlowType().equals(ConstantFlowType.INVOICE_RED)){
- parkWaitHandleService.userHandle(HandleTypeEnum.FPHC, param, ShiroUtils.getUserId());
- }
- // 回购申请
- if(flowMain.getFlowType().equals(ConstantFlowType.BUYING_MORE)){
- parkWaitHandleService.userHandle(HandleTypeEnum.HG, param, ShiroUtils.getUserId());
- }
- // 上交财政申请
- if(flowMain.getFlowType().equals(ConstantFlowType.FINANCE)){
- parkWaitHandleService.userHandle(HandleTypeEnum.SJCZ, param, ShiroUtils.getUserId());
- }
- }
- }catch (Exception e){
- log.error("撤回流程处理待办报错:",e);
- }
-
-
-
-
- String mypushUserKey = null;
- {//开始申请人撤回申请
- //先搜索目前有哪些人在审核中 ,获取key
- // select * from flow_main_push WHERE flow_main_push.flow_main_id=#{flowMainId} and STATUS=0
- FlowMainPushExample example = new FlowMainPushExample();
- example.createCriteria().andFlowMainIdEqualTo(flowMain.getId()).andStatusEqualTo(0);
- List<FlowMainPush> flowMainPushes = flowMainPushService.selectByExample(example);
- mypushUserKey = flowMainPushes.get(0).getPushUserKey();
- //1.关闭所有推送人数据信息表 ok
- {
- flowMainPushService.updateStatusThreeByFlowMainId(ShiroUtils.getUser().getId(), flowMain.getId());
- }
- //2.关闭主流程 ok
- {// 发起流程引擎操作 并结束该流程
- try {
- flowService.deleteInstance(flowMain.getFlowId(), "申请人撤回申请_结束流程");
- } catch (Exception e) {
- System.err.println("流程引擎异常");
- e.printStackTrace();
- // throw new RuntimeException(e);
- }
- }
- //3.关闭主流程表 ok
- //存入流程日志表的id
- String flowMainLogUuid = UUIDUtils.middleUUID();
- {
- FlowMain flowMain1 = new FlowMain();
- flowMain1.setId(flowMain.getId());
- flowMain1.setFlowStatus(4);//申请状态(1审批中,2,退回发起人,3,已结束,4已撤回)
- flowMain1.setLastMainLogId(flowMainLogUuid);
- flowMain1.setUpdatedAt(new Date());
- flowMain1.setUpdatedBy(ShiroUtils.getUser().getId());
- this.updateByPrimaryKeySelective(flowMain1);
- }
- //4 添加日志表
- FlowMainLog flowMainLog = new FlowMainLog();
- {//其表单对应的流转历史该节点审核结果显示为”发起人撤回”
- // flowMainLogUuid
- flowMainLog.setId(flowMainLogUuid);
- flowMainLog.setFlowMainId(flowMain.getId());
- flowMainLog.setFormId(flowMain.getFormId());
- flowMainLog.setAuditUser(ShiroUtils.getUser().getId());
- flowMainLog.setAuditContent(null);
- flowMainLog.setAuditResult(null);
- //审批类型(0流程开始状态还是1流程审核状态还是2流程结束状态还是3申请人暂停状态4申请人结束状态
- flowMainLog.setAuditType("4");
- flowMainLog.setFlowType(flowMain.getFlowType());
- flowMainLog.setFlowPost(ShiroUtils.getUser().getId());
- {// 需要工作流引擎的支持
- flowMainLog.setFlowId(flowMain.getFlowId());
- flowMainLog.setTaskId(null);
- flowMainLog.setNodeName("发起人撤回");
- flowMainLog.setPushUserKey(mypushUserKey);//发起人撤回时 当时的审核人所对应的角色
- }
- // 下一环节操作人(审核人/委托人/退回申请人),列表例如:,张三,李四,
- // 因为感觉用不到,暂时不放进去
- // flowMainLog.setNextPersons();
- flowMainLog.setUpMainLogId(flowMain.getLastMainLogId());
- flowMainLog.setCcList(null);
- flowMainLog.setCreatedAt(new Date());
- flowMainLog.setCreatedBy(ShiroUtils.getUser().getId());
- flowMainLog.setGroupId(ShiroUtils.getUser().getGroupId());
- flowMainLog.setStatus(0);
- flowMainLogService.insertWithoutId(flowMainLog);
- }
- }
- return AjaxResult.success();
- }
|