From 5067a85bba03e5320c728b0c0ca713242beb8779 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期六, 22 二月 2025 17:06:19 +0800
Subject: [PATCH] 首页统计数量、金额问题、待办展示剩余时间的bug

---
 business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index bc3f826..6ce896f 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -89,6 +89,7 @@
     private final ISysDeptService deptService;
     private final ProcessLogService processLogService;
     private final ISysDictTypeService dictTypeService;
+    private final ProcessConfigInfoService processConfigInfoService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -406,6 +407,20 @@
             if (processLogService.taskIsHangup(task.getId(), task.getProcessInstanceId())) {
                 taskVO.setTaskStatus(TaskStatusEnum.HANGUP);
             }
+
+            // 璁$畻鍔炵悊鏃堕棿
+            ProcessCoding processCoding = processCodingService.getByTaskId(task.getId());
+            if (processCoding != null) {
+                if (StringUtils.isNotBlank(processCoding.getOvertime())) {
+                    Long overtime = getTime(processCoding.getOvertime());
+
+                    long durationTime = ((new Date()).getTime() - processCoding.getStartTaskTime().getTime()) / 1000;
+
+                    taskVO.setRemainingTime((overtime - durationTime) / 3600 + "灏忔椂");
+                } else {
+                    taskVO.setRemainingTime("-");
+                }
+            }
             this.distinctVo(taskVO);
             vos.add(taskVO);
         }
@@ -413,6 +428,23 @@
             result.total(vos.size());
         }
         result.put("taskList", vos);
+    }
+
+    private Long getTime(String timeStr) {
+        Long time = null;
+        if (StringUtils.isNotBlank(timeStr)) {
+            String[] timeArr = timeStr.split("-");
+            // 瑙f瀽澶╂暟鍜屽皬鏃舵暟
+            int days = Integer.parseInt(timeArr[0]);
+            int hours = 0;
+            if (timeArr.length > 1) {
+                hours = Integer.parseInt(timeArr[1]);
+            }
+            time = (days * 24L + hours) * 3600L;
+//            //鍒�-绉�
+//            time= (days * 60L) + hours;
+        }
+        return time;
     }
 
     @Override
@@ -606,7 +638,7 @@
         jsonData.setAfterHandlerIds(afterHandlerIds);
         jsonData.setAfterHandlerType(form.getPeopleType());
         // 鍙戝竷杞姙浜嬩欢
-        publisher.publishEvent(new TaskLogEvent(this, null,SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getName(),ProcessLogEventTypeEnum.DELEGATE, jsonData));
+        publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), task.getId(), task.getName(), ProcessLogEventTypeEnum.DELEGATE, jsonData));
 
         return Result.ok("杞姙鎴愬姛");
     }
@@ -617,7 +649,7 @@
         Task task = taskService.createTaskQuery().taskId(form.getTaskId()).processInstanceId(form.getProcessInsId()).singleResult();
         if (Objects.nonNull(task)) {
             // 娣诲姞璺宠繃鏃ュ織
-            publisher.publishEvent(new TaskLogEvent(this, null,SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(),ProcessLogEventTypeEnum.JUMP, new JumpData(form.getDesc())));
+            publisher.publishEvent(new TaskLogEvent(this, null, SecurityUtils.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(), ProcessLogEventTypeEnum.JUMP, new JumpData(form.getDesc())));
             // 鏌ュ嚭璇ヤ换鍔$粦瀹氱殑琛ㄥ崟
 
             Map<String, Object> data = new HashMap<>(1);
@@ -661,7 +693,7 @@
         }
         dataList.add(jsonData);
         //娣诲姞鐫e姙鏃ュ織
-        publisher.publishEvent(new TaskLogEvent(this, processLog.getId(), processLog.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(),ProcessLogEventTypeEnum.SUPERVISE, dataList));
+        publisher.publishEvent(new TaskLogEvent(this, processLog.getId(), processLog.getUserId(), form.getProjectId(), form.getProcessInsId(), form.getTaskId(), task.getName(), ProcessLogEventTypeEnum.SUPERVISE, dataList));
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
@@ -691,7 +723,7 @@
                 task.getName(),
                 ProcessLogEventTypeEnum.HANGUP,
                 new HangupData(form.getReason())
-                ));
+        ));
         return Result.ok("鎿嶄綔鎴愬姛");
     }
 
@@ -747,11 +779,11 @@
                 newV.put(task.getTaskDefinitionKey() + "&" + key, form.getVariables().get(key));
                 //瀛楀吀閲屾湁灏辨斁鍏ユ祦绋嬪彉閲忎腑
                 if (org.apache.commons.collections4.CollectionUtils.isNotEmpty(dictList) && dictList.contains(key)) {
-                    processVariables.put(key,form.getVariables().get(key));
+                    processVariables.put(key, form.getVariables().get(key));
                 }
             }
         }
-        if( !processVariables.isEmpty() ) {
+        if (!processVariables.isEmpty()) {
             taskService.setVariables(form.getTaskId(), processVariables);
         }
 

--
Gitblit v1.8.0