From f7c885a840003bca23450c18a5a1c61c3cda21db Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 19 Dec 2022 17:25:56 +0800
Subject: [PATCH] 添加申请人员完成任务接口
---
src/main/java/org/springblade/flow/core/constant/ProcessConstant.java | 5 +
src/main/java/org/springblade/modules/application/controller/ApplicationController.java | 17 +++++
src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java | 4
src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java | 6 ++
src/main/java/org/springblade/modules/application/service/IApplicationService.java | 2
src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java | 16 +++--
src/main/java/org/springblade/modules/pass/entity/PassEntity.java | 6 +
src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java | 67 ++++++++++++++++++++--
8 files changed, 106 insertions(+), 17 deletions(-)
diff --git a/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java b/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java
index 30d72cc..692ae56 100644
--- a/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java
+++ b/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java
@@ -49,6 +49,11 @@
String PASS_ALIAS = "ok";
/**
+ * 完善意见标识
+ */
+ String SUGGESTION_KEY="isSuggestion";
+
+ /**
* 同意默认批复
*/
String PASS_COMMENT = "同意";
diff --git a/src/main/java/org/springblade/modules/application/controller/ApplicationController.java b/src/main/java/org/springblade/modules/application/controller/ApplicationController.java
index 315b403..81875fa 100644
--- a/src/main/java/org/springblade/modules/application/controller/ApplicationController.java
+++ b/src/main/java/org/springblade/modules/application/controller/ApplicationController.java
@@ -176,14 +176,27 @@
}
/**
- * 完成任务
+ * 审批人员完成任务
*
* @param flow 审核信息
*/
@PostMapping("complete-task")
@ApiOperationSupport(order = 7)
- @ApiOperation(value = "完成任务", notes = "传入流程信息")
+ @ApiOperation(value = "审批人员完成任务", notes = "传入流程信息")
public R completeTask(@ApiParam("任务信息") @RequestBody BladeFlow flow, @RequestBody ApplicationEntity applicationEntity, @RequestBody RejectEntity rejectEntity) {
return R.status(applicationService.completeTask(flow,applicationEntity,rejectEntity));
}
+
+ /**
+ * 申请人员完成任务
+ *
+ * @param flow 审核信息
+ */
+ @PostMapping("user-complete-task")
+ @ApiOperationSupport(order = 7)
+ @ApiOperation(value = "申请人员完成任务", notes = "传入流程信息")
+ public R userCompleteTask(@ApiParam("任务信息") @RequestBody BladeFlow flow, @RequestBody ApplicationEntity applicationEntity,@RequestBody BasicInfoEntity basicInfoEntity,
+ @RequestBody CarEntity carEntity, @RequestBody PlanEntity planEntity, @RequestBody SchemeEntity schemeEntity, @RequestBody GoodsEntity goodsEntity, @RequestBody RejectEntity rejectEntity) {
+ return R.status(applicationService.userCompleteTask(flow,applicationEntity,basicInfoEntity,carEntity,planEntity,schemeEntity,goodsEntity,rejectEntity));
+ }
}
diff --git a/src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java b/src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java
index df62d11..a665b9c 100644
--- a/src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java
+++ b/src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java
@@ -25,6 +25,7 @@
import java.util.Date;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
+import org.springblade.core.tool.utils.StringUtil;
import org.springblade.flow.core.entity.FlowEntity;
/**
@@ -105,4 +106,9 @@
* 审批人
*/
private String taskUser;
+ /**
+ * 工作流标识
+ */
+ @TableField(exist = false)
+ private Boolean isSuggestion;
}
diff --git a/src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java b/src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java
index 4886d6c..4692eeb 100644
--- a/src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java
+++ b/src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java
@@ -70,14 +70,14 @@
* 通行开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty(value = "通行开始时间")
private Date startTime;
/**
* 通行结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern = "yyyy-MM-dd")
+ @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty(value = "通行结束时间")
private Date endTime;
/**
diff --git a/src/main/java/org/springblade/modules/application/service/IApplicationService.java b/src/main/java/org/springblade/modules/application/service/IApplicationService.java
index c249f13..b9637b3 100644
--- a/src/main/java/org/springblade/modules/application/service/IApplicationService.java
+++ b/src/main/java/org/springblade/modules/application/service/IApplicationService.java
@@ -69,4 +69,6 @@
* @return
*/
Boolean completeTask(BladeFlow flow, ApplicationEntity applicationEntity, RejectEntity rejectEntity);
+
+ Boolean userCompleteTask(BladeFlow flow, ApplicationEntity application, BasicInfoEntity basicInfoEntity, CarEntity carEntity, PlanEntity planEntity, SchemeEntity schemeEntity, GoodsEntity goodsEntity, RejectEntity rejectEntity);
}
diff --git a/src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java b/src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java
index bdbc2dd..b60da36 100644
--- a/src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java
+++ b/src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java
@@ -43,6 +43,10 @@
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.application.wrapper.ApplicationWrapper;
import org.springblade.modules.enterprise.wrapper.EnterpriseWrapper;
+import org.springblade.modules.evaluation.entity.EvaluationEntity;
+import org.springblade.modules.evaluation.service.IEvaluationService;
+import org.springblade.modules.pass.entity.PassEntity;
+import org.springblade.modules.pass.service.IPassService;
import org.springblade.modules.reject.entity.RejectEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -66,6 +70,8 @@
private final ISchemeService schemeService;
private final IGoodsService goodsService;
private final ICarService carService;
+ private final IPassService passService;
+ private final IEvaluationService evaluationService;
private final IFlowService flowService;
private final TaskService taskService;
@@ -203,6 +209,7 @@
}
@Override
+ @Transactional
public Boolean completeTask(BladeFlow flow, ApplicationEntity applicationEntity, RejectEntity rejectEntity) {
String taskId = flow.getTaskId();
@@ -234,7 +241,7 @@
if (variables == null) {
variables = Kv.create();
}
- variables.put("suggestion",Func.toStr(applicationEntity.getSuggestion(),""));
+ variables.put(ProcessConstant.SUGGESTION_KEY,applicationEntity.getIsSuggestion());
variables.put(ProcessConstant.PASS_KEY, flow.isPass());
// 完成任务
taskService.complete(taskId, variables);
@@ -247,11 +254,46 @@
//改变业务状态
entity.setStatus(10);
//生成通行证
-
-
+ PassEntity passEntity = new PassEntity();
+ passEntity.setNo(entity.getNo());
+ passService.save(passEntity);
+ //添加评价
+ EvaluationEntity evaluationEntity = new EvaluationEntity();
+ evaluationEntity.setNo(entity.getNo());
+ evaluationService.save(evaluationEntity);
}
}
- updateById(entity);
+ boolean update = updateById(entity);
+ return update;
+ }
+
+ @Override
+ @Transactional
+ public Boolean userCompleteTask(BladeFlow flow,ApplicationEntity applicationEntity, BasicInfoEntity basicInfoEntity, CarEntity carEntity, PlanEntity planEntity, SchemeEntity schemeEntity, GoodsEntity goodsEntity, RejectEntity rejectEntity) {
+ String taskId = flow.getTaskId();
+
+ Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+
+ String processInstanceId = flow.getProcessInstanceId();
+ String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT);
+ // 增加评论
+ if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+ taskService.addComment(taskId, processInstanceId, comment);
+ }
+ // 创建变量
+ Map<String, Object> variables = flow.getVariables();
+ if (variables == null) {
+ variables = Kv.create();
+ }
+ variables.put(ProcessConstant.SUGGESTION_KEY,applicationEntity.getIsSuggestion());
+ variables.put(ProcessConstant.PASS_KEY, flow.isPass());
+
+ if (flow.isPass()&&applicationEntity.getIsSuggestion()){
+ updateVoById(applicationEntity,basicInfoEntity,carEntity,planEntity,schemeEntity,goodsEntity);
+ }
+
+ // 完成任务
+ taskService.complete(taskId, variables);
return true;
}
@@ -264,16 +306,29 @@
return baseMapper.getMaxNoEntity();
}
+ /**
+ * 判断是否包含最终节点且为倒数第二个节点
+ * @param task
+ * @param definitionId
+ * @return
+ */
public boolean getEndNode(Task task,String definitionId){
+ boolean isEnd=false;
+ boolean isAuditTask2 = false;
BpmnModel bpmnModel = repositoryService.getBpmnModel(definitionId);
FlowNode flowNode = (FlowNode) bpmnModel.getFlowElement(task.getTaskDefinitionKey());
List<SequenceFlow> outgoingFlows = flowNode.getOutgoingFlows();
for (SequenceFlow outgoingFlow : outgoingFlows) {
FlowElement targetFlowElement = outgoingFlow.getTargetFlowElement();
+ FlowElement sourceFlowElement = outgoingFlow.getSourceFlowElement();
+ if (sourceFlowElement.getId().equals("auditTask_2")){
+ isAuditTask2 = true;
+ }
if (targetFlowElement instanceof EndEvent){
- return true;
+ isEnd = true;
+ break;
}
}
- return false;
+ return isEnd&&isAuditTask2;
}
}
diff --git a/src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java b/src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java
index 5e2feba..bcbca83 100644
--- a/src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java
+++ b/src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java
@@ -37,24 +37,28 @@
public class EvaluationEntity extends TenantEntity {
/**
- * 申请表主键
+ * 申请表编号
*/
- @ApiModelProperty(value = "申请表主键")
- private String applicationId;
+ @ApiModelProperty(value = "申请表编号")
+ private String no;
/**
* 评分
*/
@ApiModelProperty(value = "评分")
private String score;
/**
- * 评价
+ * 好评
*/
@ApiModelProperty(value = "评价")
- private String evaluation;
+ private String comment;
/**
* 建议与反馈
*/
@ApiModelProperty(value = "建议与反馈")
private String feedback;
-
+ /**
+ * 差评
+ */
+ @ApiModelProperty(value = "差评确认")
+ private String badCommentConfirm;
}
diff --git a/src/main/java/org/springblade/modules/pass/entity/PassEntity.java b/src/main/java/org/springblade/modules/pass/entity/PassEntity.java
index cf2b5d9..192247a 100644
--- a/src/main/java/org/springblade/modules/pass/entity/PassEntity.java
+++ b/src/main/java/org/springblade/modules/pass/entity/PassEntity.java
@@ -41,5 +41,9 @@
*/
@ApiModelProperty(value = "名字")
private String name;
-
+ /**
+ * 编号
+ */
+ @ApiModelProperty(value = "编号")
+ private String no;
}
--
Gitblit v1.9.3