Ver código fonte

1.修复资产流程退回bug

GouGengquan 2 meses atrás
pai
commit
fc5555b0fa

+ 1 - 1
dao/src/main/java/com/dayou/mapper/AssetsEvaluationTargetMapper.java

@@ -73,5 +73,5 @@ public interface AssetsEvaluationTargetMapper extends CustomBaseMapper<AssetsEva
      * @param businessId 业务id
      * @return List<Long>
      */
-    List<Long> getTargetIdsByBusinessId(@Param("businessId") Long businessId);
+    List<Long> getTargetIdsByBusinessId(@Param("businessId") Long businessId, @Param("statementNo") String statementNo);
 }

+ 3 - 0
dao/src/main/resources/mapper/AssetsEvaluationTargetMapper.xml

@@ -148,6 +148,9 @@
         FROM assets_evaluation_target
         WHERE deleted = 0
         AND assets_id = #{businessId}
+        <if test="statementNo != null">
+            AND statement_no = #{statementNo}
+        </if>
     </select>
 
 </mapper>

+ 1 - 1
service/src/main/java/com/dayou/service/impl/AssetsServiceImpl.java

@@ -468,7 +468,7 @@ public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> impleme
         //获取当前资产业务流程的评估对象已经生成的产品号集合
         List<String> productionNoList = null;
         // 获取业务下所有评估对象的id集合
-        takeAssetsProductionNoDTO.setAllTargetIdList(assetsEvaluationTargetMapper.getTargetIdsByBusinessId(takeAssetsProductionNoDTO.getBusinessId()));
+        takeAssetsProductionNoDTO.setAllTargetIdList(assetsEvaluationTargetMapper.getTargetIdsByBusinessId(takeAssetsProductionNoDTO.getBusinessId(), takeAssetsProductionNoDTO.getStatementNo()));
         //判断取号的产品类型(获取已取过的号)
         if (takeAssetsProductionNoDTO.getProductionType().equals(STATEMENT.getCode())) { //意见书
             productionNoList = assetsEvaluationTargetMapper.getStatementNoList(takeAssetsProductionNoDTO.getBusinessId());

+ 3 - 1
service/src/main/java/com/dayou/workflow/handler/AssetsNodeHandler.java

@@ -169,7 +169,7 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
             workFlowNodeInstanceService.update(new LambdaUpdateWrapper<WorkFlowNodeInstance>()
                     .set(WorkFlowNodeInstance::getState, PENDING)
                     .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId())
-                    // 如果subId和minId都不为空,有可能意见书开始就已经流程分叉,所以需要判断一下subId
+                    // 如果subId和minId都不为空,有可能意见书开始就已经流程分叉,所以需要判断一下subId(由于取号节点实例没有minId信息,所以这里不判断minId是否相等,但是可能已经出了意见书且可能取子号,所以意见书要判断)
                     .eq(ObjectUtil.isNotNull(currentNode.getBusinessSubId()) && ObjectUtil.isNotNull(currentNode.getBusinessMinId()), WorkFlowNodeInstance::getBusinessSubId, currentNode.getBusinessSubId())
                     .eq(WorkFlowNodeInstance::getFlowId, currentNode.getFlowId())
                     .eq(WorkFlowNodeInstance::getSequence, (currentNode.getSequence() - 1))
@@ -204,6 +204,8 @@ public class AssetsNodeHandler extends WorkNodeProcessable {
                     .eq(WorkFlowNodeInstance::getBusinessId, currentNode.getBusinessId())
                     // 如果subId和minId都不为空,有可能意见书开始就已经流程分叉,所以需要判断一下subId
                     .eq(ObjectUtil.isNotNull(currentNode.getBusinessSubId()) && ObjectUtil.isNotNull(currentNode.getBusinessMinId()), WorkFlowNodeInstance::getBusinessSubId, currentNode.getBusinessSubId())
+                    // 由于取号节点提交后可能会流程分叉,所以撰写报告节点的实例已经有了minId,所以还需要判断minId是否相等
+                    .eq(ObjectUtil.isNotNull(currentNode.getBusinessMinId()), WorkFlowNodeInstance::getBusinessMinId, currentNode.getBusinessMinId())
                     .eq(WorkFlowNodeInstance::getFlowId, currentNode.getFlowId())
                     .eq(WorkFlowNodeInstance::getSequence, (currentNode.getSequence() - 2))
                     .eq(BaseEntity::getDeleted, Boolean.FALSE));