From f8ad32d541282fa37f93cdaadf79c92117b3d05a Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 8 Jan 2019 15:08:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=AE=A1=E6=89=B9=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlowAbleController.java | 52 +++++++++++++++---- .../iformall/flowable/BossTaskHandler.java | 12 ----- .../flowable/ContractTaskFinishHandler.java | 28 ++++++++++ .../iformall/flowable/ManagerTaskHandler.java | 13 ----- .../processes/ExpenseProcess.bpmn20.xml | 2 +- .../processes/contractflow.bpmn20.xml | 3 ++ .../iformall/domain/po/WxRentContract.java | 11 ++++ .../enums/EnumRentContractAppStatus.java | 38 ++++++++++++++ .../iformall/mapper/WxRentContractMapper.java | 2 + .../service/WxRentContractService.java | 2 + .../impl/WxRentContractServiceImpl.java | 4 ++ .../resources/mapper/WxRentContractMapper.xml | 12 +++-- 12 files changed, 140 insertions(+), 39 deletions(-) delete mode 100644 mallinkAdmin/src/main/java/com/iformall/flowable/BossTaskHandler.java create mode 100644 mallinkAdmin/src/main/java/com/iformall/flowable/ContractTaskFinishHandler.java delete mode 100644 mallinkAdmin/src/main/java/com/iformall/flowable/ManagerTaskHandler.java create mode 100644 mallinkService/src/main/java/com/iformall/enums/EnumRentContractAppStatus.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/FlowAbleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/FlowAbleController.java index 52f94a82a..bed12fa5c 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/FlowAbleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/FlowAbleController.java @@ -1,14 +1,17 @@ package com.iformall.controller; import com.iformall.common.ResultData; +import com.iformall.domain.po.WxRentContract; import com.iformall.enums.EnumFlowKey; -import com.iformall.service.FlowableService; +import com.iformall.enums.EnumRentContractAppStatus; +import com.iformall.service.WxRentContractService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.map.HashedMap; import org.flowable.bpmn.model.BpmnModel; import org.flowable.common.engine.impl.identity.Authentication; import org.flowable.engine.*; +import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.runtime.Execution; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.engine.task.Comment; @@ -38,6 +41,22 @@ public class FlowAbleController extends BaseController { private RepositoryService repositoryService; @Autowired private ProcessEngine processEngine; + @Autowired + private WxRentContractService wxRentContractService; + + /** + * 1合同 2账单 + * @param flowType + * @return + */ + public String getFlowKeyByType(int flowType){ + if(1 == flowType){ + return EnumFlowKey.CONTRACT.getCode(); + }else if(2 == flowType){ + return EnumFlowKey.BILL.getCode(); + } + return null; + } @ApiOperation("启动流程") @PostMapping("/start") @@ -50,6 +69,8 @@ public class FlowAbleController extends BaseController { String firstTaskUserId = params.get("firstTaskUserId"); String secondTaskUserId = params.get("secondTaskUserId"); String remark = params.get("remark"); + Long businessId = Long.parseLong(params.get("businessId")); + Integer flowType = Integer.parseInt(params.get("flowType")); HashMap map = new HashMap<>(); // 设置节点处理人 @@ -60,9 +81,16 @@ public class FlowAbleController extends BaseController { map.put("starter", super.getUser().getName()); map.put("startTime",new Date().getTime()); map.put("remark",remark); + map.put("businessId",businessId); - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(EnumFlowKey.CONTRACT.getCode(), map); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(getFlowKeyByType(flowType), map); logger.debug("流程启动,流程id:{}",processInstance.getId()); + + // 合同审核状态改为审核中 + WxRentContract wxRentContract = new WxRentContract(); + wxRentContract.setId(businessId); + wxRentContract.setApplyStatus(EnumRentContractAppStatus.APPLYING.getCode()); + wxRentContractService.updateApplyStatus(wxRentContract); return new ResultData(); }catch (Exception e){ logger.error("启动流程发生错误",e); @@ -80,13 +108,8 @@ public class FlowAbleController extends BaseController { @ResponseBody public Object list(@RequestBody Map params) { String userId = (String)params.get("userId"); - Integer flowType = (Integer)params.get("flowType"); //1合同审批 2账单审批 - String flowKey = ""; - if(1 == flowType){ - flowKey = EnumFlowKey.CONTRACT.getCode(); - }else if(2 == flowType){ - flowKey = EnumFlowKey.BILL.getCode(); - } + Integer flowType = (Integer)params.get("flowType"); + String flowKey = getFlowKeyByType(flowType); List tasks = taskService.createTaskQuery().processDefinitionKey(flowKey).taskCandidateUser(userId).orderByTaskCreateTime().desc().list(); List> result = new ArrayList<>(); @@ -130,9 +153,17 @@ public class FlowAbleController extends BaseController { String taskId = params.get("taskId"); String processInstanceId = params.get("processInstanceId"); String remark = params.get("remark"); + String businessId = params.get("businessId"); taskService.addComment(taskId,processInstanceId,remark); runtimeService.deleteProcessInstance(processInstanceId, "驳回"); + + // 修改合同审核状态为驳回 + WxRentContract wxRentContract = new WxRentContract(); + wxRentContract.setId(Long.parseLong(businessId)); + wxRentContract.setApplyStatus(EnumRentContractAppStatus.REJECT.getCode()); + wxRentContractService.updateApplyStatus(wxRentContract); + return new ResultData(); } @@ -142,7 +173,7 @@ public class FlowAbleController extends BaseController { * @param processInstanceId 流程实例ID */ @ApiOperation("审批记录") - @PostMapping(value = "applyHistory") + @GetMapping(value = "applyHistory") @ResponseBody public String applyHistory(String processInstanceId) { List list = processEngine.getHistoryService() @@ -162,6 +193,7 @@ public class FlowAbleController extends BaseController { System.out.println("===================================="); } } + return "ok!"; } diff --git a/mallinkAdmin/src/main/java/com/iformall/flowable/BossTaskHandler.java b/mallinkAdmin/src/main/java/com/iformall/flowable/BossTaskHandler.java deleted file mode 100644 index 2d7b8546f..000000000 --- a/mallinkAdmin/src/main/java/com/iformall/flowable/BossTaskHandler.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.iformall.flowable; - -import org.flowable.engine.delegate.TaskListener; -import org.flowable.task.service.delegate.DelegateTask; -public class BossTaskHandler implements TaskListener { - - @Override - public void notify(DelegateTask delegateTask) { - delegateTask.setAssignee("老板"); - } - -} diff --git a/mallinkAdmin/src/main/java/com/iformall/flowable/ContractTaskFinishHandler.java b/mallinkAdmin/src/main/java/com/iformall/flowable/ContractTaskFinishHandler.java new file mode 100644 index 000000000..5bb2c81e3 --- /dev/null +++ b/mallinkAdmin/src/main/java/com/iformall/flowable/ContractTaskFinishHandler.java @@ -0,0 +1,28 @@ +package com.iformall.flowable; + +import com.iformall.domain.po.WxRentContract; +import com.iformall.enums.EnumRentContractAppStatus; +import com.iformall.service.WxRentContractService; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 合同审批完成,修改状态 + */ +@Component(value="contractTaskFinishListener") +public class ContractTaskFinishHandler implements TaskListener { + @Autowired + private WxRentContractService wxRentContractService; + + @Override + public void notify(DelegateTask delegateTask) { + Long businessId = (Long)delegateTask.getVariable("businessId"); + WxRentContract wxRentContract = new WxRentContract(); + wxRentContract.setId(businessId); + wxRentContract.setApplyStatus(EnumRentContractAppStatus.FINISH.getCode()); + wxRentContractService.updateApplyStatus(wxRentContract); + } + +} diff --git a/mallinkAdmin/src/main/java/com/iformall/flowable/ManagerTaskHandler.java b/mallinkAdmin/src/main/java/com/iformall/flowable/ManagerTaskHandler.java deleted file mode 100644 index d82f596bb..000000000 --- a/mallinkAdmin/src/main/java/com/iformall/flowable/ManagerTaskHandler.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.iformall.flowable; - -import org.flowable.engine.delegate.TaskListener; -import org.flowable.task.service.delegate.DelegateTask; - -public class ManagerTaskHandler implements TaskListener { - - @Override - public void notify(DelegateTask delegateTask) { - delegateTask.setAssignee("经理"); - } - -} diff --git a/mallinkAdmin/src/main/resources/processes/ExpenseProcess.bpmn20.xml b/mallinkAdmin/src/main/resources/processes/ExpenseProcess.bpmn20.xml index 125b3cb2e..e1c14eb93 100644 --- a/mallinkAdmin/src/main/resources/processes/ExpenseProcess.bpmn20.xml +++ b/mallinkAdmin/src/main/resources/processes/ExpenseProcess.bpmn20.xml @@ -23,7 +23,7 @@ + class="com.iformall.flowable.ContractTaskFinishHandler"> diff --git a/mallinkAdmin/src/main/resources/processes/contractflow.bpmn20.xml b/mallinkAdmin/src/main/resources/processes/contractflow.bpmn20.xml index 8a14783bf..ab39f3fa5 100644 --- a/mallinkAdmin/src/main/resources/processes/contractflow.bpmn20.xml +++ b/mallinkAdmin/src/main/resources/processes/contractflow.bpmn20.xml @@ -12,6 +12,9 @@ 复审 + + + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index a5b046524..3dae347a4 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -180,6 +180,17 @@ public class WxRentContract implements Serializable { @io.swagger.annotations.ApiModelProperty(value = "起租结束时间", name = "rentalEndDate") private Date endDate; + @io.swagger.annotations.ApiModelProperty(value = "审核状态", name = "applyStatus") + private Integer applyStatus; + + public Integer getApplyStatus() { + return applyStatus; + } + + public void setApplyStatus(Integer applyStatus) { + this.applyStatus = applyStatus; + } + public Long getMerchantId() { return merchantId; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAppStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAppStatus.java new file mode 100644 index 000000000..e3d639c8a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractAppStatus.java @@ -0,0 +1,38 @@ +package com.iformall.enums; + +/** + * Created by luozukai + * 合同工作流审核状态 + */ +public enum EnumRentContractAppStatus { + DEFAULT(0, "未审核"), + APPLYING(1, "审核中"), + FINISH(2, "审核完成"), + REJECT(3, "驳回") + ; + + public static EnumRentContractAppStatus getEnum(Integer code) { + for (EnumRentContractAppStatus value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumRentContractAppStatus(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java index 0f92bdc41..9d58facf7 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java @@ -37,4 +37,6 @@ public interface WxRentContractMapper extends CommonMapper - + + @@ -43,7 +44,7 @@ `tenant_id`,`filepath`,`status`,`contract_number`,`deposit`,`pay_date`,`is_del`,`merchant_name`, `brand`,`business_id`,`shop_type`,`shop_id`,`updatetime`,`createtime`,`link_person`,`link_phone`, `pay_account`,`filename`,`lease`,`type`,`revenue`,`adjust_ratio`,`adjust_period`,`pay_ratio`, - `start_date`,`end_date` + `start_date`,`end_date`,`apply_status` @@ -148,7 +149,12 @@ update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=7 and merchant_id is null - + + + update wx_rent_contract set apply_status=#{applyStatus} where id=#{id} + + + update wx_rent_contract set status=#{status} where shop_id in ( select s.shop_id from (SELECT shop_id FROM wx_rent_contract WHERE tenant_id = #{tenantId} and status in(2,3,4)