大件运输联网系统后端代码
guoshilong
2022-12-19 f7c885a840003bca23450c18a5a1c61c3cda21db
添加申请人员完成任务接口
8 files modified
123 ■■■■ changed files
src/main/java/org/springblade/flow/core/constant/ProcessConstant.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/application/controller/ApplicationController.java 17 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/application/entity/ApplicationEntity.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/application/entity/BasicInfoEntity.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/application/service/IApplicationService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/application/service/impl/ApplicationServiceImpl.java 67 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/evaluation/entity/EvaluationEntity.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/pass/entity/PassEntity.java 6 ●●●● patch | view | raw | blame | history
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 = "同意";
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));
    }
}
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;
}
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;
    /**
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);
}
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;
    }
}
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;
}
src/main/java/org/springblade/modules/pass/entity/PassEntity.java
@@ -41,5 +41,9 @@
     */
    @ApiModelProperty(value = "名字")
    private String name;
    /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    private String no;
}