huangjn преди 2 години
родител
ревизия
f0df37a9a1

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/TaskClient.java

@@ -33,7 +33,7 @@ public interface TaskClient {
      * 获取当前任务绑定的表格
      */
     @PostMapping(QUERY_BUSINESS_TABLE_E_VISA_CONFIG)
-    List<JSONObject> queryBusinessTableEVisaConfig(@RequestParam String taskId);
+    List<JSONObject> queryBusinessTableEVisaConfig(@RequestParam String taskId,@RequestParam String isFinal);
 
     /**
      * 获取填报人列表

+ 7 - 1
blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClient.java

@@ -20,7 +20,13 @@ public interface EVisaClient {
     String API_PREFIX = "/api/e_visa";
 
     /**
-     * 电签
+     * 电签(合同章)
+     */
+    @PostMapping(API_PREFIX + "/eVisaContractSeal")
+    String eVisaContractSeal(@RequestBody EVisaTaskApprovalVO task, @RequestParam String finalPdfUrl);
+
+    /**
+     * 电签(个人签)
      */
     @PostMapping(API_PREFIX + "/eVisa")
     String eVisa(@RequestBody EVisaTaskApprovalVO task);

+ 2 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/EVisaConfigClient.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -18,6 +19,6 @@ public interface EVisaConfigClient {
     String API_PREFIX = "/api/manager/eVisaConfig";
 
     @PostMapping(API_PREFIX + "/queryEVisaConfigByTableIds")
-    List<JSONObject> queryEVisaConfigByTableIds(@RequestBody List<String> tableIds);
+    List<JSONObject> queryEVisaConfigByTableIds(@RequestBody List<String> tableIds, @RequestParam String isFinal);
 
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/TaskClientImpl.java

@@ -33,7 +33,7 @@ public class TaskClientImpl implements TaskClient {
     private final ITaskParallelService taskParallelService;
 
     @Override
-    public List<JSONObject> queryBusinessTableEVisaConfig(String taskId) {
+    public List<JSONObject> queryBusinessTableEVisaConfig(String taskId, String isFinal) {
         //获取任务
         Task task = this.taskService.getById(taskId);
         if(task == null || StringUtils.isEmpty(task.getFormDataId())){
@@ -56,7 +56,7 @@ public class TaskClientImpl implements TaskClient {
         List<String> privatePrimaryKeyIds = this.informationQueryService.queryBusinessTableData(task.getFormDataId());
         if(privatePrimaryKeyIds != null && privatePrimaryKeyIds.size() > 0){
             //查询这些表格的电签配置
-            return this.eVisaConfigClient.queryEVisaConfigByTableIds(privatePrimaryKeyIds);
+            return this.eVisaConfigClient.queryEVisaConfigByTableIds(privatePrimaryKeyIds, isFinal);
         }
 
         return null;

+ 10 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -280,6 +280,13 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 Task task = this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getIsDeleted, 0).eq(Task::getProcessInstanceId, currentLink.getProcessInstanceId()));
                 if(otherLink == null || otherLink.size() == 0){
                     //说明都审批完成,将主表状态更改为已完成
+                    String finalPdfUrl = null;
+                    if(eVisaStatus.contains("@@@@")){
+                        finalPdfUrl = eVisaStatus.split("@@@@")[1];
+                    }
+                    //执行合同章,返回的是盖有合同章的PDF路径
+//                    finalPdfUrl = this.eVisaClient.eVisaContractSeal(JSONObject.parseObject(JSONObject.toJSONString(taskApprovalVO), EVisaTaskApprovalVO.class), finalPdfUrl);
+
                     //根据主表的业务ID(processInstanceId)获取主流程的taskId
                     String masterTaskId = this.newFlowClient.queryTaskIdByProcessInstanceId(task.getProcessInstanceId());
                     if(StringUtils.isNotEmpty(masterTaskId)){
@@ -288,11 +295,11 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         //修改主流程状态为已完成
                         this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 2).set(Task::getUpdateTime, new Date()).eq(Task::getId, task.getId()));
                         //修改对应的业务数据状态为已审批
-                        this.updateBusinessDataByFormDataId(task, 2, eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null);
+                        this.updateBusinessDataByFormDataId(task, 2, finalPdfUrl);
                     }
                 } else {
-                    //修改对应的业务数据状态为已审批
-                    this.updateBusinessDataByFormDataId(task, 1, eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null);
+                    //只更新PDF路径
+                    this.updateBusinessDataByFormDataId(task, 1,  eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null);
                 }
             } else if("eVisaError".equals(eVisaStatus) || eVisaStatus.contains("eVisaError")){
                 //电签失败,将对应分支任务的电签状态修改为99并添加错误信息

+ 5 - 0
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/feign/EVisaClientImpl.java

@@ -35,6 +35,11 @@ public class EVisaClientImpl implements EVisaClient {
         return this.eVisaService.certification(pdfUrl, fileName, contractId);
     }
 
+    @Override
+    public String eVisaContractSeal(EVisaTaskApprovalVO task, String finalPdfUrl) {
+        return this.eVisaService.eVisaContractSeal(task ,finalPdfUrl);
+    }
+
     @Override
     public String eVisa(EVisaTaskApprovalVO task) {
         return this.eVisaService.eVisa(task);

+ 6 - 1
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/EVisaService.java

@@ -14,7 +14,12 @@ public interface EVisaService {
     String certification(String pdfUrl, String fileName, String contractId);
 
     /**
-     * 电签
+     * 电签(合同章)
+     */
+    String eVisaContractSeal(EVisaTaskApprovalVO task, String finalPdfUrl);
+
+    /**
+     * 电签(个人签)
      */
     String eVisa(EVisaTaskApprovalVO task);
 

+ 6 - 2
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java

@@ -196,6 +196,11 @@ public class EVisaServiceImpl implements EVisaService {
         return null;
     }
 
+    @Override
+    public String eVisaContractSeal(EVisaTaskApprovalVO task, String finalPdfUrl) {
+        return finalPdfUrl;
+    }
+
     @Override
     public String eVisa(EVisaTaskApprovalVO task) {
         String resultMessage = E_VISA_ERROR;
@@ -209,8 +214,7 @@ public class EVisaServiceImpl implements EVisaService {
 
 
         //获取任务对应表格的电签配置
-        List<JSONObject> eVisaConfigList = this.taskClient.queryBusinessTableEVisaConfig(task.getParallelProcessInstanceId());
-
+        List<JSONObject> eVisaConfigList = this.taskClient.queryBusinessTableEVisaConfig(task.getParallelProcessInstanceId(), "false");
         if(eVisaConfigList == null || eVisaConfigList.size() == 0){
             //没有电签配置,默认当前任务为不签字审批,返回成功
             return SUCCESS;

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/EVisaConfigClientImpl.java

@@ -19,7 +19,7 @@ public class EVisaConfigClientImpl implements EVisaConfigClient {
     private final ITextdictInfoService textdictInfoService;
 
     @Override
-    public List<JSONObject> queryEVisaConfigByTableIds(List<String> tableIds) {
+    public List<JSONObject> queryEVisaConfigByTableIds(List<String> tableIds, String isFinal) {
         List<JSONObject> jsonResult = new ArrayList<>();
 
         List<TextdictInfo> configResult = this.textdictInfoService.list(Wrappers.<TextdictInfo>lambdaQuery().in(TextdictInfo::getTabId, tableIds).in(TextdictInfo::getSigRoleId, Arrays.asList(AuthUtil.getUser().getRoleId().split(","))));