Sfoglia il codice sorgente

feat: 修复缺陷优化代码

huangzqa 1 anno fa
parent
commit
e2275fd9cb

+ 1 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/api/IApproveApiBusiness.java

@@ -26,5 +26,5 @@ public interface IApproveApiBusiness {
      * @param taskId taskId
      * @return 是否正确
      */
-    boolean checkTaskId(String taskId);
+    boolean isStanderTaskNo(String taskId);
 }

+ 6 - 4
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/api/impl/ApproveApiBusinessImpl.java

@@ -57,11 +57,13 @@ public class ApproveApiBusinessImpl implements IApproveApiBusiness {
     }
 
     @Override
-    public boolean checkTaskId(String taskId) {
-        if (StrUtil.isBlank(taskId)) {
+    public boolean isStanderTaskNo(String taskNo) {
+        if (StrUtil.isBlank(taskNo)) {
             return false;
         }
-        return taskId.startsWith(ApproveConstants.TASK_ID_PREFIX);
-
+        if (!taskNo.startsWith(ApproveConstants.TASK_ID_PREFIX)) {
+            return false;
+        }
+        return taskNo.length() == ApproveConstants.TAK_ID_LENGTH;
     }
 }

+ 9 - 19
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/external/impl/BuSyncBusinessImpl.java

@@ -1,12 +1,11 @@
 package com.dragonsoft.dcuc.approve.business.external.impl;
 
 import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.common.annotation.CacheLock;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
 import com.dragonsoft.dcuc.approve.business.INoticeBusiness;
+import com.dragonsoft.dcuc.approve.business.api.IApproveApiBusiness;
 import com.dragonsoft.dcuc.approve.business.external.IBuSyncBusiness;
-import com.dragonsoft.dcuc.approve.constants.ApproveConstants;
 import com.dragonsoft.dcuc.approve.enumresources.bu.ApproveModeEnum;
 import com.dragonsoft.dcuc.approve.model.ApprovalInfo;
 import com.dragonsoft.dcuc.approve.model.ApproveCirculationInfo;
@@ -46,6 +45,13 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
 
     private INoticeBusiness noticeBusiness;
 
+    private IApproveApiBusiness approveApiBusiness;
+
+    @Autowired
+    public void setApproveApiBusiness(IApproveApiBusiness approveApiBusiness) {
+        this.approveApiBusiness = approveApiBusiness;
+    }
+
     @Autowired
     public void setNoticeBusiness(INoticeBusiness noticeBusiness) {
         this.noticeBusiness = noticeBusiness;
@@ -70,7 +76,7 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
                 String id = approveRecordInfo.getId();
                 String approveNo = approveRecordInfo.getApproveNo();
                 //  检查任务编号是否正确?,还是初始化脚本就处理
-                if (isStanderTaskNo(approveNo)) {
+                if (approveApiBusiness.isStanderTaskNo(approveNo)) {
                     ResponseStatus responseStatus = syncToBu(approveRecordInfo);
                     BooleanEnum booleanEnum = BooleanEnum.TRUE;
                     if (ResponseUtil.isFail(responseStatus)) {
@@ -88,22 +94,6 @@ public class BuSyncBusinessImpl implements IBuSyncBusiness {
         return ResponseStatus.success();
     }
 
-    /**
-     * 是否是标准的任务编号
-     *
-     * @param taskNo 任务编号
-     * @return 是否是
-     */
-    protected boolean isStanderTaskNo(String taskNo) {
-        if (StrUtil.isBlank(taskNo)) {
-            return false;
-        }
-        if (!taskNo.startsWith(ApproveConstants.TASK_ID_PREFIX)) {
-            return false;
-        }
-        return taskNo.length() == ApproveConstants.TAK_ID_LENGTH;
-    }
-
     /**
      * 同步到BU
      *

+ 1 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/api/v3/ApiV3ApproveFacade.java

@@ -137,7 +137,7 @@ public class ApiV3ApproveFacade implements IApiV3ApproveFacade {
             return ZeroTrustResultDataVO.operateFailMessage("验证签名出错");
         }
 
-        if (!approveApiBusiness.checkTaskId(approveTaskId)) {
+        if (!approveApiBusiness.isStanderTaskNo(approveTaskId)) {
             return ZeroTrustResultDataVO.operateFailMessage("taskId格式出错");
         }
 

+ 1 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/properties/ApproveBuProperties.java

@@ -22,7 +22,7 @@ public class ApproveBuProperties {
     /**
      * 是否启用同步
      */
-    private boolean enable;
+    private boolean enable = true;
 
     /**
      * 同步任务路径

+ 11 - 5
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveRecordServiceImpl.java

@@ -6,7 +6,6 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SmUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
@@ -21,7 +20,9 @@ import com.dragonsoft.dcuc.approve.model.ApprovalInfo;
 import com.dragonsoft.dcuc.approve.model.ApproveRecordInfo;
 import com.dragonsoft.dcuc.approve.model.resp.ApprovalInfoRespVO;
 import com.dragonsoft.dcuc.approve.service.IApproveRecordService;
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.date.DateConst;
 import com.dragonsoft.duceap.commons.util.date.DateUtils;
 import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
@@ -214,9 +215,7 @@ public class ApproveRecordServiceImpl implements IApproveRecordService {
         approveRecordInfo.setStartTime(approvalInfo.getStartTime());
         approveRecordInfo.setEndTime(approvalInfo.getEndTime());
         approveRecordInfo.setApplyReason(approvalInfo.getApplyReason());
-        if (StringUtils.isNotEmpty(approvalInfo.getApproveResult())) {
-            approveRecordInfo.setFinalApprovalResult(approvalInfo.getApproveResult());
-        }
+        approveRecordInfo.setFinalApprovalResult("");
         approveRecordInfo.setProcessInstanceId(approvalInfo.getProcessInstanceId());
         approveRecordInfo.setTaskCode(approvalInfo.getBusinessCode());
         approveRecordInfo.setTaskId(approvalInfo.getTaskId());
@@ -316,6 +315,13 @@ public class ApproveRecordServiceImpl implements IApproveRecordService {
         ApproveRecordInfo approveRecordInfo = approveRecordMapper.selectById(id);
         if (ObjectUtil.isNotNull(approveRecordInfo)) {
             approveRecordInfo.setSyncFlag(booleanEnum.value);
+            approveRecordInfo.setUpdateTime(new Date());
+            SecurityUser currentUser = UserContextUtils.getCurrentUser();
+            if (ObjectUtil.isNotNull(currentUser)) {
+                approveRecordInfo.setUpdateUser(currentUser.getIdcard());
+            }
+
+            approveRecordMapper.updateById(approveRecordInfo);
         }
     }
 
@@ -324,7 +330,7 @@ public class ApproveRecordServiceImpl implements IApproveRecordService {
         LambdaQueryWrapper<ApproveRecordInfo> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.eq(ApproveRecordInfo::getIsDeleted, BooleanEnum.FALSE.value)
                 .eq(ApproveRecordInfo::getSyncFlag, BooleanEnum.FALSE.value)
-                .eq(ApproveRecordInfo::getFinalApprovalResult, BooleanEnum.FALSE.value)
+                .eq(ApproveRecordInfo::getFinalApprovalResult, ApproveResultEnum.SUCCESS.getValue())
                 .orderByDesc(ApproveRecordInfo::getCreateTime);
 
         return approveRecordMapper.selectList(queryWrapper);

+ 5 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveServiceImpl.java

@@ -11,7 +11,10 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
 import com.dragoninfo.dcuc.duceap.enums.ManageDisposeTypeEnum;
-import com.dragonsoft.dcuc.approve.business.*;
+import com.dragonsoft.dcuc.approve.business.IApproveBaseBusiness;
+import com.dragonsoft.dcuc.approve.business.IApproveBusiness;
+import com.dragonsoft.dcuc.approve.business.IApproveLogBusiness;
+import com.dragonsoft.dcuc.approve.business.IWorkFlowBusiness;
 import com.dragonsoft.dcuc.approve.business.external.IDcucAuthBusiness;
 import com.dragonsoft.dcuc.approve.constants.ApproveConstants;
 import com.dragonsoft.dcuc.approve.dto.BaseOperateReqDTO;
@@ -712,13 +715,13 @@ public class ApproveServiceImpl implements IApproveService {
                     default:
                         break;
                 }
+                approveRecordInfo.setFinalApprovalResult(approvalInfo.getApproveResult());
             }
             //构建任务id、任务标识码、任务名称字段,多个均以,相隔
             approveBusiness.buildTaskInfoByProcessInstanceId(approvalInfo, afterTaskRunDetailVos);
             logger.info("====当前任务详情:{}====", JSONObject.toJSON(afterTaskRunDetailVos));
             logger.info("====开始更新审批单信息====");
             //设置表单信息
-
             buildUpdateInfo(approveRecordInfo, approvalInfo);
             //修改表单
             approveRecordService.updateById(approveRecordInfo);

+ 10 - 11
approve-core-service/src/test/java/com/dragonsoft/dcuc/approve/business/external/impl/BimBusinessImplTest.java

@@ -33,21 +33,20 @@ import static com.github.dreamhead.moco.Moco.*;
  */
 public class BimBusinessImplTest {
 
-//
-//    public static void main(String[] args) {
-//        try {
-//            BimBusinessImplTest.before();
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//    }
+
+    public static void main(String[] args) {
+        try {
+            BimBusinessImplTest.before();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
     public static Runner runner;
 
 
     static String identityUrl = "http://127.0.0.1:19000";
-//    static String appInfoUrl = "/idp/rest/getAppTokenInfo";
-    static String appInfoUrl = "/idp/rest/testGetAppTokenInfo";
+    static String appInfoUrl = "/idp/rest/getAppTokenInfo";
 
     static String userInfoUrl = "/idp/rest/getUserTokenInfo";
 
@@ -58,7 +57,7 @@ public class BimBusinessImplTest {
         HttpServer httpServer = httpServer(19000, log());
 
         httpServer.request(by(uri(appInfoUrl)))
-                .response(pathResource("bim/getAppTokenInfo.json"));
+                .response(pathResource("bim/testGetAppTokenInfo.json"));
 
 
         httpServer.request(by(uri(userInfoUrl)))

+ 0 - 7
approve-core-service/src/test/java/com/dragonsoft/dcuc/approve/business/external/impl/BuSyncBusinessImplTest.java

@@ -13,12 +13,5 @@ import org.junit.Test;
  */
 public class BuSyncBusinessImplTest {
 
-    @Test
-    public void isStanderTaskNo() {
-        BuSyncBusinessImpl buSyncBusiness = new BuSyncBusinessImpl();
 
-        Assert.assertTrue(buSyncBusiness.isStanderTaskNo("RWBH0100000000002023071409530500000010"));
-        Assert.assertFalse(buSyncBusiness.isStanderTaskNo("iwrw0100000000002023071409530500000010"));
-        Assert.assertFalse(buSyncBusiness.isStanderTaskNo("iwrw010000000000202307140953050000001022"));
-    }
 }

+ 7 - 0
approve-core-service/src/test/java/com/dragonsoft/dcuc/approve/business/impl/ApproveApiBusinessImplTest.java

@@ -43,4 +43,11 @@ public class ApproveApiBusinessImplTest {
 
 
     }
+
+    @Test
+    public void isStanderTaskNo() {
+        org.junit.Assert.assertTrue(approveApiBusiness.isStanderTaskNo("RWBH0100000000002023071409530500000010"));
+        org.junit.Assert.assertFalse(approveApiBusiness.isStanderTaskNo("iwrw0100000000002023071409530500000010"));
+        org.junit.Assert.assertFalse(approveApiBusiness.isStanderTaskNo("iwrw010000000000202307140953050000001022"));
+    }
 }

+ 12 - 4
approve-core-service/src/test/java/com/dragonsoft/dcuc/approve/business/impl/NoticeBusinessImplTest.java

@@ -13,7 +13,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.dreamhead.moco.HttpServer;
 import com.github.dreamhead.moco.Runner;
 import org.junit.Assert;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.springframework.web.client.RestTemplate;
 
@@ -32,20 +32,28 @@ import static com.github.dreamhead.moco.Moco.*;
 public class NoticeBusinessImplTest {
     static int port = 19001;
 
+    public static void main(String[] args) {
+        try {
+            NoticeBusinessImplTest.before();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 
     static String baseUrl = "http://127.0.0.1:" + port;
 
     static String syncToBuUrl = "/sync/tuBu";
 
-    String fullBusinessUrl = baseUrl + syncToBuUrl;
+    static String fullBusinessUrl = baseUrl + syncToBuUrl;
 
     static NoticeBusinessImpl noticeBusiness;
 
     public static Runner runner;
 
 
-    @Before
-    public void before() throws Exception {
+    @BeforeClass
+    public static void before() throws Exception {
         HttpServer httpServer = httpServer(port, log());
 
         httpServer.request(by(uri(syncToBuUrl)))

+ 1 - 1
approve-core-service/src/test/resources/bim/testGetAppTokenInfo.json

@@ -4,7 +4,7 @@
       "createTime": "2023-06-15 14:34:18",
       "orgCode": "010000000000",
       "ip": "127.0.0.1",
-      "name": "鲁班一号\n",
+      "name": "鲁班一号",
       "sign": "83522b44abfd628093490c969fc7df1741f410e940c18c21e0f0b1594bf2a761",
       "mid": "",
       "pid": "362428199108047711",