From f386341ce2bb205bd056a7611d3ae678ca106e65 Mon Sep 17 00:00:00 2001
From: p-honggang.li <p-honggang.li@pcitc.com>
Date: 星期一, 08 九月 2025 16:26:09 +0800
Subject: [PATCH] 修改token参数类型问题

---
 src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java |  109 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 75 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java
index 7655559..b12d62b 100644
--- a/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java
+++ b/src/main/java/com/webmanage/service/impl/OrderInfoServiceImpl.java
@@ -186,7 +186,7 @@
         Page<OrderInfo> page = new Page<>(queryDTO.getPageNum(), queryDTO.getPageSize());
 
         // 鍩轰簬workFlowType鏌ヨ娴佺▼瀹炰緥ID闆嗗悎
-        List<String> workFlowIds = fetchWorkflowProcessInstanceIds(
+        List<Object> workFlowsList = fetchWorkflowProcessInstanceIds(
             queryDTO.getWorkFlowType(),
             queryDTO.getUserId(),
             queryDTO.getDepartmentId(),
@@ -196,7 +196,7 @@
         );
 
         // 濡傛灉娌℃湁浠讳綍娴佺▼ID锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
-        if (workFlowIds == null || workFlowIds.isEmpty()) {
+        if (workFlowsList == null || workFlowsList.isEmpty()) {
             return new PageResult<OrderDetailVO>(
                 java.util.Collections.emptyList(),
                 0L,
@@ -205,6 +205,18 @@
                 0L
             );
         }
+
+        List<String> workFlowIds = workFlowsList.stream()
+                 .filter(item -> item instanceof Map)
+                 .map(item -> (Map<?, ?>) item)
+                 .map(m -> m.get("processInstanceId"))
+                 .filter(Objects::nonNull)
+                 .map(Object::toString)
+                 .collect(Collectors.toList());
+
+        Map<String,String> workFlowIdAndTaskIdMap = workFlowsList.stream()
+                .filter(item -> item instanceof Map)
+                .map(item -> (Map<?, ?>) item).collect(Collectors.toMap(m -> m.get("processInstanceId").toString(), m -> m.get("taskId").toString(),(k1,k2) -> k2));
 
         // 鎵ц鍒嗛〉鏌ヨ
         IPage<OrderInfo> result = baseMapper.selectPendingApprovalOrderPage(
@@ -226,6 +238,7 @@
                 return item;
             }).collect(java.util.stream.Collectors.toList());
             vo.setOrderDetails(items);
+            vo.setTaskId(workFlowIdAndTaskIdMap.get(vo.getWorkflowId()));
             return vo;
         }).collect(java.util.stream.Collectors.toList());
 
@@ -240,7 +253,7 @@
     }
 
     @Override
-    public PageResult<OrderInfo> getPendingApprovalOrderPageWithProductConditions(OrderQueryDTO queryDTO) {
+    public PageResult<OrderDetailVO> getPendingApprovalOrderPageWithProductConditions(OrderQueryDTO queryDTO) {
         // 鏍规嵁浜у搧鏉′欢鏌ヨ浜у搧ID鍒楄〃
         List<String> productIds = null;
         if (StringUtils.hasText(queryDTO.getIndustryId()) || StringUtils.hasText(queryDTO.getUnitProjectId()) ||
@@ -252,7 +265,7 @@
             
             // 濡傛灉娌℃湁鎵惧埌鍖归厤鐨勪骇鍝侊紝鐩存帴杩斿洖绌虹粨鏋�
             if (CollectionUtils.isEmpty(productIds)) {
-                return new PageResult<OrderInfo>(
+                return new PageResult<OrderDetailVO>(
                     java.util.Collections.emptyList(),
                     0L,
                     queryDTO.getPageNum().longValue(),
@@ -267,7 +280,7 @@
 
         // 鎵ц鍒嗛〉鏌ヨ
         // 鍩轰簬workFlowType鏌ヨ娴佺▼瀹炰緥ID闆嗗悎
-        List<String> workFlowIds = fetchWorkflowProcessInstanceIds(
+        List<?> workFlowList = fetchWorkflowProcessInstanceIds(
             queryDTO.getWorkFlowType(),
             queryDTO.getUserId(),
             queryDTO.getDepartmentId(),
@@ -275,17 +288,29 @@
             queryDTO.getPageNum(),
             queryDTO.getPageSize()
         );
-
         // 濡傛灉娌℃湁浠讳綍娴佺▼ID锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
-        if (workFlowIds == null || workFlowIds.isEmpty()) {
-            return new PageResult<OrderInfo>(
-                java.util.Collections.emptyList(),
-                0L,
-                queryDTO.getPageNum().longValue(),
-                queryDTO.getPageSize().longValue(),
-                0L
+        if (workFlowList == null || workFlowList.isEmpty()) {
+            return new PageResult<OrderDetailVO>(
+                    java.util.Collections.emptyList(),
+                    0L,
+                    queryDTO.getPageNum().longValue(),
+                    queryDTO.getPageSize().longValue(),
+                    0L
             );
         }
+
+        List<String> workFlowIds = workFlowList.stream()
+                        .filter(item -> item instanceof Map)
+                        .map(item -> (Map<?, ?>) item)
+                        .map(m -> m.get("processInstanceId"))
+                        .filter(Objects::nonNull)
+                        .map(Object::toString)
+                        .collect(Collectors.toList());
+
+        Map<String,String> workFlowIdAndTaskIdMap = workFlowList.stream()
+                .filter(item -> item instanceof Map)
+                .map(item -> (Map<?, ?>) item).collect(Collectors.toMap(m -> m.get("processInstanceId").toString(), m -> m.get("taskId").toString(),(k1,k2) -> k2));
+
 
         IPage<OrderInfo> result = baseMapper.selectPendingApprovalOrderPageWithProductConditions(
             page, queryDTO.getOrderStatus(), queryDTO.getProductName(), queryDTO.getProviderName(),
@@ -294,10 +319,24 @@
             queryDTO.getApplyTimeEnd() != null ? queryDTO.getApplyTimeEnd().toString() : null,
             queryDTO.getOrderBy(), queryDTO.getOrderDirection(), productIds, workFlowIds
         );
+        // 灏嗚鍗曚笌璇︽儏鑱旇〃灏佽鍒癡O
+        List<OrderDetailVO> voList = result.getRecords().stream().map(order -> {
+            OrderDetailVO vo = new OrderDetailVO();
+            BeanUtils.copyProperties(order, vo);
+            List<OrderDetail> details = orderDetailMapper.selectByOrderId(order.getOrderId());
+            List<OrderDetailItemVO> items = details.stream().map(d -> {
+                OrderDetailItemVO item = new OrderDetailItemVO();
+                BeanUtils.copyProperties(d, item);
+                return item;
+            }).collect(java.util.stream.Collectors.toList());
+            vo.setOrderDetails(items);
+            vo.setTaskId(workFlowIdAndTaskIdMap.get(vo.getWorkflowId()));
+            return vo;
+        }).collect(java.util.stream.Collectors.toList());
 
         // 鏋勫缓杩斿洖缁撴灉
-        return new PageResult<OrderInfo>(
-            result.getRecords(),
+        return new PageResult<OrderDetailVO>(
+            voList,
             result.getTotal(),
             queryDTO.getPageNum().longValue(),
             queryDTO.getPageSize().longValue(),
@@ -964,9 +1003,9 @@
         // 鏍规嵁瀹℃壒缁撴灉璋冪敤鎻愪氦鎴栭┏鍥炴帴鍙�
         String comment = orderApprovalDTO.getApprovalResult().contains("椹冲洖") ? "瀹℃牳椹冲洖" : "瀹℃牳閫氳繃";
         if ("瀹℃牳椹冲洖".equals(comment)) {
-            rejectWorkflowTask(orderInfo.getTaskId(), String.valueOf(orderApprovalDTO.getApproverId()), comment);
+            rejectWorkflowTask(orderApprovalDTO.getTaskId(), String.valueOf(orderApprovalDTO.getApproverId()), comment);
         } else {
-            completeWorkflowTask(orderInfo.getTaskId(), String.valueOf(orderApprovalDTO.getApproverId()), comment);
+            completeWorkflowTask(orderApprovalDTO.getTaskId(), String.valueOf(orderApprovalDTO.getApproverId()), comment);
         }
 
         log.info("瀹℃壒璁板綍娣诲姞鎴愬姛锛岃鍗旾D: {}, 瀹℃壒绫诲瀷: {}, 瀹℃壒缁撴灉: {}, 瀹℃壒浜�: {}, 瀹℃壒鎰忚: {}", 
@@ -1528,7 +1567,7 @@
      * 鎸夌収workFlowType鏌ヨ娴佺▼瀹炰緥ID闆嗗悎
      * workFlowType: 0=浠e姙锛�1=宸插姙
      */
-    private List<String> fetchWorkflowProcessInstanceIds(Integer workFlowType, String userId, String depId,String businessKey,Integer pageIndex, Integer pageSize) {
+    private List<Object> fetchWorkflowProcessInstanceIds(Integer workFlowType, String userId, String depId,String businessKey,Integer pageIndex, Integer pageSize) {
         try {
             if (workFlowType == null) {
                 return java.util.Collections.emptyList();
@@ -1572,28 +1611,30 @@
                 if (!(dataObj instanceof java.util.List)) {
                     return java.util.Collections.emptyList();
                 }
-                java.util.List<?> list = (java.util.List<?>) dataObj;
-                return list.stream()
-                        .filter(item -> item instanceof Map)
-                        .map(item -> (Map<?, ?>) item)
-                        .map(m -> m.get("processInstanceId"))
-                        .filter(Objects::nonNull)
-                        .map(Object::toString)
-                        .collect(Collectors.toList());
+                java.util.List<Object> list = (java.util.List<Object>) dataObj;
+                return list;
+//                        list.stream()
+//                        .filter(item -> item instanceof Map)
+//                        .map(item -> (Map<?, ?>) item)
+//                        .map(m -> m.get("processInstanceId"))
+//                        .filter(Objects::nonNull)
+//                        .map(Object::toString)
+//                        .collect(Collectors.toList());
             }else {
                 if (!(dataObj instanceof Map)) {
                     return java.util.Collections.emptyList();
                 }
                 Map<?,?> map = (Map<?,?>) dataObj;
                 Object dataObj1 = ((Map<?, ?>) dataObj).get("list");
-                java.util.List<?> list = (java.util.List<?>) dataObj1;
-                return list.stream()
-                        .filter(item -> item instanceof Map)
-                        .map(item -> (Map<?, ?>) item)
-                        .map(m -> m.get("processInstanceId"))
-                        .filter(Objects::nonNull)
-                        .map(Object::toString)
-                        .collect(Collectors.toList());
+                java.util.List<Object> list = (java.util.List<Object>) dataObj1;
+                return list;
+//                        list.stream()
+//                        .filter(item -> item instanceof Map)
+//                        .map(item -> (Map<?, ?>) item)
+//                        .map(m -> m.get("processInstanceId"))
+//                        .filter(Objects::nonNull)
+//                        .map(Object::toString)
+//                        .collect(Collectors.toList());
             }
 
         } catch (Exception e) {

--
Gitblit v1.8.0