huangjn 3 жил өмнө
parent
commit
c3983d9b70
13 өөрчлөгдсөн 188 нэмэгдсэн , 53 устгасан
  1. 6 3
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java
  2. 4 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OpinionUserClient.java
  3. 33 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ManagerHomePageVO.java
  4. 4 4
      blade-service-api/blade-e-visa-api/src/main/java/org/springblade/evisa/feign/EVisaClient.java
  5. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java
  6. 41 27
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  7. 14 0
      blade-service/blade-business/src/main/java/org/springblade/business/feignClient/OpinionUserClientImpl.java
  8. 1 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  9. 14 9
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  10. 2 2
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/feign/EVisaClientImpl.java
  11. 2 2
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/EVisaService.java
  12. 17 4
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  13. 48 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java

+ 6 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/ArchiveFile.java

@@ -17,9 +17,6 @@
 package org.springblade.business.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.io.Serializable;
-
 import io.swagger.annotations.ApiModelProperty;
 import org.springblade.core.mp.base.BaseEntity;
 import lombok.Data;
@@ -143,4 +140,10 @@ public class ArchiveFile extends BaseEntity {
     @ApiModelProperty("引用变更令编号")
     private String citeChangeNumber;
 
+    /**
+     * 电签pdf文件
+     */
+    @ApiModelProperty("电签pdf文件")
+    private String eVisaFile;
+
 }

+ 4 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/OpinionUserClient.java

@@ -2,6 +2,7 @@ package org.springblade.business.feign;
 
 import org.springblade.business.entity.AssessmentUser;
 import org.springblade.business.vo.AssessmentUserVOS;
+import org.springblade.business.vo.BusinessUserOpinionVO;
 import org.springblade.common.constant.BusinessConstant;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -19,6 +20,9 @@ public interface OpinionUserClient {
      */
     String API_PREFIX = "/api/business/opinionUser";
 
+    @PostMapping(API_PREFIX + "queryBusinessUserOpinionList")
+    List<BusinessUserOpinionVO> queryBusinessUserOpinionList(@RequestParam Integer current, @RequestParam Integer size);
+
     /**
      * 取消考核
      */

+ 33 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/ManagerHomePageVO.java

@@ -0,0 +1,33 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ManagerHomePageVO {
+
+    private List<UserOpinion> userOpinionList = new ArrayList<>();
+
+//    public
+
+    @Data
+    public static class UserOpinion {
+        private String userOpinionId;
+        private String title;
+        private Integer currentLink;
+        private Integer newNumber;
+        private String currentLinkId;
+
+        public UserOpinion(String userOpinionId, String title, Integer currentLink, Integer newNumber, String currentLinkId){
+            this.userOpinionId = userOpinionId;
+            this.title = title;
+            this.currentLink = currentLink;
+            this.newNumber = newNumber;
+            this.currentLinkId = currentLinkId;
+        }
+
+        public UserOpinion(){}
+    }
+
+}

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

@@ -35,9 +35,9 @@ public interface EVisaClient {
     String certification(@RequestParam String pdfUrl, @RequestParam String fileName, @RequestParam String contractId);
 
     /**
-     * 验签
+     * 在线验签
      */
-    @PostMapping(API_PREFIX + "/checkSeal")
-    String checkSeal(@RequestParam String pdfUrl);
-    
+    @PostMapping(API_PREFIX + "/onlineCheckSeal")
+    String onlineCheckSeal(@RequestParam String pdfUrl);
+
 }

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/ArchiveFileController.java

@@ -79,7 +79,7 @@ public class ArchiveFileController extends BladeController {
 			if(archiveFileList != null && archiveFileList.size() > 0){
 				for(ArchiveFile archiveFile : archiveFileList){
 					//获取文件地址并调用接口认证
-					String result = this.eVisaClient.certification(archiveFile.getPdfFileUrl(), archiveFile.getFileName(), archiveFile.getContractId());
+					String result = this.eVisaClient.certification(StringUtils.isNotEmpty(archiveFile.getEVisaFile()) ? archiveFile.getEVisaFile() : archiveFile.getPdfFileUrl(), archiveFile.getFileName(), archiveFile.getContractId());
 					if(StringUtils.isNotEmpty(result) && result.contains("success") && result.startsWith("success")){
 						//成功,更改状态
 						//签章成功后的文件路径,如果与原pdf文件路径不匹配则更新
@@ -90,7 +90,7 @@ public class ArchiveFileController extends BladeController {
 						LambdaUpdateWrapper<ArchiveFile> wrappers = Wrappers.lambdaUpdate();
 						if(StringUtils.isNotEmpty(newPdfUrl) && !archiveFile.getPdfFileUrl().equals(newPdfUrl)){
 							//不为空且不匹配时,更新
-							wrappers.set(ArchiveFile::getPdfFileUrl, newPdfUrl);
+							wrappers.set(ArchiveFile::getEVisaFile, newPdfUrl);
 						}
 						//修改认证状态为已认证
 						wrappers.set(ArchiveFile::getIsCertification, 1);

+ 41 - 27
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -461,7 +461,12 @@ public class InformationWriteQueryController extends BladeController {
 
 		if(result != null){
 			//获取当前父节点下所有工序节点及填报资料
-			List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, contractInfo.getContractType(), contractId);
+			List<QueryProcessDataVO> queryDataResult;
+			if(new Integer("2").equals(contractInfo.getContractType())){
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 2, contractIdRelation);
+			} else {
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractId);
+			}
 			result.forEach(vos -> {
 				if(StringUtils.isEmpty(parentId) || "0".equals(parentId)){
 					vos.setTitle(contractInfo.getContractName());
@@ -942,7 +947,12 @@ public class InformationWriteQueryController extends BladeController {
 		//其他参数
 		if(rootTreeNode != null && rootTreeNode.size() > 0){
 			//获取当前父节点下所有工序节点及填报资料
-			List<QueryProcessDataVO> queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, contractInfo.getContractType(), contractId);
+			List<QueryProcessDataVO> queryDataResult;
+			if(new Integer("2").equals(contractInfo.getContractType())){
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 2, contractIdRelation);
+			} else {
+				queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(parentId, 1, contractId);
+			}
 
 			rootTreeNode.forEach(vo -> {
 				String primaryKeyId = new Integer("2").equals(contractInfo.getContractType()) ? vo.getId() : vo.getPrimaryKeyId();
@@ -990,33 +1000,37 @@ public class InformationWriteQueryController extends BladeController {
 			StringBuilder colorStatusValue = new StringBuilder();
 			while (iterator.hasNext()) {
 				QueryProcessDataVO query = iterator.next();
-				if(query.getAncestors().contains(vos.getId()) || query.getAncestors().startsWith(vos.getParentId() + ",") || query.getTreeId().equals(vos.getId())){
-					//如果为空,说明未填报
-					if(query.getStatus() == null || query.getStatus() == -1){
-						colorStatusValue.append("1");
-					} else {
-						switch (query.getStatus()){
-							case 0:
-							case 3:
-								//未上报
-								colorStatusValue.append("2");
-								break;
-							case 1:
-								//待审批
-								colorStatusValue.append("3");
-								break;
-							case 2:
-								//已审批
-								colorStatusValue.append("4");
-								break;
-							default:
-								colorStatusValue.append("1");
-								break;
-						}
-						if(isRemove){
-							iterator.remove();
+				if(StringUtils.isNotEmpty(query.getAncestors()) && StringUtils.isNotEmpty(vos.getId())){
+					if(query.getAncestors().contains(vos.getId()) || query.getAncestors().startsWith(vos.getParentId() + ",") || query.getTreeId().equals(vos.getId())){
+						//如果为空,说明未填报
+						if(query.getStatus() == null || query.getStatus() == -1){
+							colorStatusValue.append("1");
+						} else {
+							switch (query.getStatus()){
+								case 0:
+								case 3:
+									//未上报
+									colorStatusValue.append("2");
+									break;
+								case 1:
+									//待审批
+									colorStatusValue.append("3");
+									break;
+								case 2:
+									//已审批
+									colorStatusValue.append("4");
+									break;
+								default:
+									colorStatusValue.append("1");
+									break;
+							}
+							if(isRemove){
+								iterator.remove();
+							}
 						}
 					}
+				} else {
+					colorStatusValue.append("1");
 				}
 			}
 			//检查字符串

+ 14 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/OpinionUserClientImpl.java

@@ -6,7 +6,11 @@ import org.springblade.business.entity.AssessmentUser;
 import org.springblade.business.feign.OpinionUserClient;
 import org.springblade.business.service.IAssessmentUserService;
 import org.springblade.business.service.IUserOpinionFlowService;
+import org.springblade.business.service.IUserOpinionService;
 import org.springblade.business.vo.AssessmentUserVOS;
+import org.springblade.business.vo.BusinessUserOpinionVO;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -19,6 +23,16 @@ public class OpinionUserClientImpl implements OpinionUserClient {
 
     private final IAssessmentUserService assessmentUserService;
 
+    private final IUserOpinionService userOpinionService;
+
+    @Override
+    public List<BusinessUserOpinionVO> queryBusinessUserOpinionList(Integer current, Integer size) {
+        Query query = new Query();
+        query.setCurrent(current);
+        query.setSize(size);
+        return this.userOpinionService.queryBusinessUserOpinionList(String.valueOf(AuthUtil.getUserId()), query).getRecords();
+    }
+
     @Override
     public List<AssessmentUser> queryUserAssessmentByUserId(String userId) {
         return this.assessmentUserService.list(Wrappers.<AssessmentUser>lambdaQuery().eq(AssessmentUser::getIsDeleted, 0).eq(AssessmentUser::getAssessmentUser, userId));

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -30,6 +30,7 @@
         <result column="sheet_source" property="sheetSource"/>
         <result column="drawing_no" property="drawingNo"/>
         <result column="cite_change_number" property="citeChangeNumber"/>
+        <result column="e_visa_file" property="eVisaFile"/>
     </resultMap>
 
     <select id="selectArchiveFileCount" resultMap="archiveFileResultMap">

+ 14 - 9
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1,6 +1,7 @@
  package org.springblade.business.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -153,7 +154,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             //修改主流程状态为3
             this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 3).eq(Task::getId, task.getId()));
             //修改业务数据状态为未上报
-            this.updateBusinessDataByFormDataId(task, 0);
+            this.updateBusinessDataByFormDataId(task, 0, null);
         }
 
         return true;
@@ -189,7 +190,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             //todo ============================ 执行电签区域 ============================
 
             //电签状态分为success/notPfxOrFile/error,当状态为error时就需要重新提交请求
-            if("success".equals(eVisaStatus)){
+            if("success".equals(eVisaStatus) || eVisaStatus.contains("success")){
+                //审批通过会返回签章成功的文件,需要设置替换
                 //完成/审批当前分支流程
                 this.newFlowClient.completeApprovalTask(taskId, parallelProcessInstanceId, comment).getData();
                 //修改分支状态,改为已完成
@@ -210,7 +212,7 @@ 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);
+                        this.updateBusinessDataByFormDataId(task, 2, eVisaStatus.contains("@@@@") ? eVisaStatus.split("@@@@")[1] : null);
                     }
                 }
             } else if("error".equals(eVisaStatus)) {
@@ -269,7 +271,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             }
             this.update(Wrappers.<Task>lambdaUpdate().set(Task::getStatus, 3).set(Task::getUpdateTime, new Date()).eq(Task::getProcessInstanceId, masterProcessInstanceId));
             //修改对应的业务数据状态为已废除
-            this.updateBusinessDataByFormDataId(this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getProcessInstanceId, masterProcessInstanceId)), 3);
+            this.updateBusinessDataByFormDataId(this.getOne(Wrappers.<Task>lambdaQuery().eq(Task::getProcessInstanceId, masterProcessInstanceId)), 3, null);
         }
 
         return true;
@@ -362,7 +364,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     /**
      * 修改业务数据状态
      */
-    private void updateBusinessDataByFormDataId(Task task, Integer status){
+    private void updateBusinessDataByFormDataId(Task task, Integer status, String newFileUrl){
         switch (task.getApprovalType()){
             case 1:
                 //资料填报
@@ -370,10 +372,10 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 break;
             case 2:
                 //工程文件
-                this.updateArchiveFileBusinessDataStatus(task.getFormDataId(), status);
+                this.updateArchiveFileBusinessDataStatus(task.getFormDataId(), status, newFileUrl);
                 break;
             case 3:
-                //工程文件
+                //日志文件
                 this.updateContractLogBusinessDataStatus(task.getFormDataId(), status);
                 break;
             default:
@@ -398,8 +400,11 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     /**
      * 工程文件
      */
-    private void updateArchiveFileBusinessDataStatus(String formDataId, Integer status){
-        this.archiveFileService.update(Wrappers.<ArchiveFile>lambdaUpdate().set(ArchiveFile::getStatus, status).in(ArchiveFile::getId, Arrays.asList(formDataId.split(","))));
+    private void updateArchiveFileBusinessDataStatus(String formDataId, Integer status, String newFileUrl){
+        LambdaUpdateWrapper<ArchiveFile> wrapper = Wrappers.lambdaUpdate();
+        //更改状态,更改电签文件信息
+        wrapper.set(ArchiveFile::getStatus, status).set(ArchiveFile::getEVisaFile, newFileUrl);
+        this.archiveFileService.update(wrapper.in(ArchiveFile::getId, Arrays.asList(formDataId.split(","))));
     }
 
 }

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

@@ -15,8 +15,8 @@ public class EVisaClientImpl implements EVisaClient {
     private final EVisaService eVisaService;
 
     @Override
-    public String checkSeal(String pdfUrl) {
-        List<CertBean> beans = this.eVisaService.checkSeal(pdfUrl);
+    public String onlineCheckSeal(String pdfUrl) {
+        List<CertBean> beans = this.eVisaService.onlineCheckSeal(pdfUrl);
 
         return null;
     }

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

@@ -24,8 +24,8 @@ public interface EVisaService {
     String createSeal(EVisaMakeSealVO makeSealDto);
 
     /**
-     * 验签
+     * 在线验签
      */
-    List<CertBean> checkSeal(String pdfUrl);
+    List<CertBean> onlineCheckSeal(String pdfUrl);
 
 }

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

@@ -216,10 +216,13 @@ public class EVisaServiceImpl implements EVisaService {
                         vo.setSealPassword(AuthUtil.getUserId().toString().substring(0, EVisaConstant.USER_ID_SUB));
                         vo.setSealPerson(AuthUtil.getNickName());
                         //设置签字文件
-                        vo.setImageUrl(userPfxList.get(0).getCertificateFileUrl());
+                        vo.setImageUrl(userPfxList.get(0).getSignatureFileUrl());
                         vo.setSealType("3");
 
                         //todo ====================== 暂时缺少关键信息 =====================
+//                        vo.setKeyword("监理");
+//                        vo.setLx("10");
+//                        vo.setLy("0");
                         //todo ====================== 暂时缺少关键信息 =====================
 
                         //设置页
@@ -233,9 +236,19 @@ public class EVisaServiceImpl implements EVisaService {
                     byte[] fileByte = CommonUtil.InputStreamToBytes(CommonUtil.getOSSInputStream(file.getFileUrl()));
                     //执行电签
                     Object[] result = this.signPdf(pdfVO, fileByte);
-                    if(result == null){
+                    if(result != null){
+                        MultipartFile newFiles = new MockMultipartFile("file", SnowFlakeUtil.getId() + ".pdf", "text/plain", IOUtils.toByteArray(new ByteArrayInputStream((byte[])result[0])));
+                        //重新上传
+                        BladeFile bladeFile = this.newIOSSClient.uploadFileByInputStream(newFiles);
+                        if(bladeFile != null){
+                            return SUCCESS + "@@@@" + bladeFile.getLink();
+                        } else {
+                            return ERROR;
+                        }
+                    } else {
                         return ERROR;
                     }
+
                 }
             }catch (Exception e){
                 e.printStackTrace();
@@ -243,7 +256,7 @@ public class EVisaServiceImpl implements EVisaService {
             }
         }
 
-        return SUCCESS;
+        return ERROR;
     }
 
     /**
@@ -548,7 +561,7 @@ public class EVisaServiceImpl implements EVisaService {
     }
 
     @Override
-    public List<CertBean> checkSeal(String pdfUrl) {
+    public List<CertBean> onlineCheckSeal(String pdfUrl) {
         try{
             PaperlessClient paperlessClient = new PaperlessClient(SIGN_HOST, SIGN_PORT, 300000, 1800000);
             paperlessClient.setSSL(false);

+ 48 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ManagerHomePageController.java

@@ -0,0 +1,48 @@
+package org.springblade.manager.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.business.feign.OpinionUserClient;
+import org.springblade.business.vo.BusinessUserOpinionVO;
+import org.springblade.business.vo.ManagerHomePageVO;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Iterator;
+import java.util.List;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/managerHomePage")
+@Api(value = "后管首页", tags = "后管首页")
+public class ManagerHomePageController extends BladeController {
+
+    private final OpinionUserClient opinionUserClient;
+
+    /**
+     * 获取当前用户的工单待办
+     * @param current 当前页
+     * @param size 当前页条数
+     * @return 结果
+     */
+    @PostMapping("/queryBusinessUserOpinion")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "")
+    public R<List<ManagerHomePageVO>> queryBusinessUserOpinion(@RequestParam Integer current, @RequestParam Integer size){
+        //获取当前用户的工单
+        List<BusinessUserOpinionVO> result = this.opinionUserClient.queryBusinessUserOpinionList(current, size);
+        //删除掉已经办结的
+        result.removeIf(BusinessUserOpinionVO::getIsCurrent);
+
+
+
+        return null;
+    }
+
+}