From 4feb653eece3d5e7cc8aa120cea5f4b260c64238 Mon Sep 17 00:00:00 2001
From: chenqi <1799796883@qq.com>
Date: Wed, 27 Jan 2021 16:49:01 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=E7=BB=93?=
 =?UTF-8?q?=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../service/WorkTimeOrderService.java         |  8 ++-
 .../service/impl/WorkCollectServiceImpl.java  | 19 ++-----
 .../impl/WorkTimeOrderServiceImpl.java        | 56 +++++++++++--------
 .../app/WorkTimeOrderController.java          | 10 ++--
 4 files changed, 53 insertions(+), 40 deletions(-)

diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java
index 441a523..d440c53 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/WorkTimeOrderService.java
@@ -127,5 +127,11 @@ public interface WorkTimeOrderService {
     List<WorkTimeOrderDto> addTest(CreateWorkOrderDto createWorkOrderDto);
 
 
-
+    /**
+     * 功能:获取当天填报总状态
+     * @param userId
+     * @param workDay
+     * @return
+     */
+    int statusYes(Integer userId, Date workDay);
 }
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkCollectServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkCollectServiceImpl.java
index 0642c41..792a0fe 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkCollectServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkCollectServiceImpl.java
@@ -148,7 +148,6 @@ public class WorkCollectServiceImpl implements WorkCollectService {
             throw new BaseCustomException(BASE_RESP_CODE_ENUM.INPUT_PARAM_IS_NULL);
         }
         Integer id = getByUserIdAndWorkDay(workCollect.getUserId(), workCollect.getWorkDay()).getId();
-        System.out.println("我是collect的id:" + id);
         int updateRow = workCollectMapper.updateStatusOrTotalTime(id, workCollect.getStatus(), workCollect.getTotalTime());
         if (updateRow == 0) {
             throw new BaseCustomException(BASE_RESP_CODE_ENUM.UPDATE_DATA_FAIL);
@@ -164,24 +163,18 @@ public class WorkCollectServiceImpl implements WorkCollectService {
             userId = workTimeOrder.getUserId();
             workDay = workTimeOrder.getWorkDay();
 
-            WorkCollect workCollect = workCollectService.getByUserIdAndWorkDay(userId, workDay);
-            if (null == workCollect) {
-                throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_INFO_IS_NULL);
-            }
-            int status = 2;
+            List<WorkTimeOrder> byDay = workTimeOrderMapper.getByDay(workTimeOrder.getUserId(), workTimeOrder.getWorkDay());
             int total_time = 0;
-            // 查看userId workDay 的数据status是否全部为2
-            List<WorkTimeOrder> timeOrders = workTimeOrderMapper.getByDay(userId, workDay);
-            for (WorkTimeOrder timeOrder : timeOrders) {
-                if (1 == timeOrder.getStatus() || 3 == timeOrder.getStatus() || 4 == timeOrder.getStatus()) {
-                    status = 1;
-                }
+            for (WorkTimeOrder timeOrder : byDay) {
                 total_time += timeOrder.getWorkTime();
-
             }
+            int status = workTimeOrderService.statusYes(workTimeOrder.getUserId(), workTimeOrder.getWorkDay());
+            WorkCollect workCollect = workCollectService.getByUserIdAndWorkDay(workTimeOrder.getUserId(), workTimeOrder.getWorkDay());
             workCollect.setStatus(status);
+            workCollect.setTotalTime(total_time);
             workCollectService.update(workCollect);
         }
+
         return true;
     }
 }
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
index f4f34ae..badbcdd 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/impl/WorkTimeOrderServiceImpl.java
@@ -217,10 +217,16 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
 
             }
 
-            dto.setStatus(1);
+            if (null == dto.getStatus()) {
+                dto.setStatus(1);
+            }
             if (3 == type || 4 == type) {
                 dto.setStatus(2);
             }
+            if (null != dto.getStatus() && 3 == dto.getStatus()) {
+                dto.setStatus(4);
+            }
+
             dto.setIsOvertime(0);
             if (workHolidayService.isHoliday(dto.getWorkDay())) {
                 dto.setIsOvertime(1);
@@ -261,7 +267,6 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
             workCollect.setStatus(status);
             workCollectService.update(workCollect);
         }
-
         return workTimeOrders;
     }
 
@@ -283,34 +288,37 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
         // 1.判断是否超过8小时
         int count = 0;
         List<WorkTimeOrder> byDayToDto = getByDayToDto(workTimeOrders.get(0).getUserId(), workTimeOrders.get(0).getWorkDay());
-        for (WorkTimeOrder workTimeOrder : byDayToDto) {
-            if (3 == workTimeOrder.getStatus()) {
-                continue;
+        int i;
+        for (WorkTimeOrder timeOrder : byDayToDto) {
+            i = 0;
+            for (WorkTimeOrderDto workTimeOrder : workTimeOrders) {
+                if (!workTimeOrder.getWorkId().equals(timeOrder.getWorkId())) {
+                    i++;
+                }
             }
-            count += workTimeOrder.getWorkTime();
+            if (i == workTimeOrders.size())
+                count += timeOrder.getWorkTime();
         }
+        System.out.println(count);
         timeNotEight(count, workTimeOrders);
-        int totalTime = 0;
+
         // 2.判断是否重复填报
         isRepeat(workTimeOrders);
         for (WorkTimeOrderDto workTimeOrder : workTimeOrders) {
             for (WorkTimeOrder orderDto : byDayToDto) {
-                // 过滤表中已经被驳回的
-                if (3 == orderDto.getStatus()) {
-                    continue;
+                // workId如果相同就不管
+                if (workTimeOrder.getWorkId().equals(orderDto.getWorkId())) {
+                    break;
                 }
-                totalTime += orderDto.getWorkTime();
-                // 如果类型不相同
-                if (!workTimeOrder.getType().equals(orderDto.getType())) {
-                    continue;
-                }
-                // 类型相同projectId不同
-                if (null != workTimeOrder.getProjectId() && null != orderDto.getProjectId() || !workTimeOrder.getProjectId().equals(orderDto.getProjectId())) {
-                    continue;
+                // 填报和数据库的类型相同
+                if (workTimeOrder.getType().equals(orderDto.getType())) {
+                    if (1 == workTimeOrder.getType() || 2 == workTimeOrder.getType())
+                        if (workTimeOrder.getProjectId().equals(orderDto.getProjectId())) {
+                            throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
+                        }
+                    throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
                 }
-                throw new BaseCustomException(BASE_RESP_CODE_ENUM.WORK_ORDER_ALREADY_COMMIT);
             }
-            totalTime += workTimeOrder.getWorkTime();
 
         }
 
@@ -318,7 +326,11 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
         // 更新collect表
 
         int status = statusYes(workTimeOrders.get(0).getUserId(), workTimeOrderDtos.get(0).getWorkDay());
-
+        int totalTime = 0;
+        List<WorkTimeOrder> byDay = workTimeOrderMapper.getByDay(workTimeOrders.get(0).getUserId(), workTimeOrderDtos.get(0).getWorkDay());
+        for (WorkTimeOrder workTimeOrder : byDay) {
+            totalTime += workTimeOrder.getWorkTime();
+        }
         WorkCollect workCollect = new WorkCollect();
         BeanUtils.copyProperties(workTimeOrders.get(0), workCollect);
         workCollect.setTotalTime(totalTime);
@@ -922,7 +934,7 @@ public class WorkTimeOrderServiceImpl implements WorkTimeOrderService {
     }
 
     // 判断当天是否全部审批通过
-    private int statusYes(Integer userId, Date workDay) {
+    public int statusYes(Integer userId, Date workDay) {
         int status = 1;
         int size = 0;
 
diff --git a/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java b/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java
index 6c17d12..93635d3 100644
--- a/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java
+++ b/wisenergy-web-admin/src/main/java/cn/wisenergy/web/admin/controller/app/WorkTimeOrderController.java
@@ -1,13 +1,15 @@
 package cn.wisenergy.web.admin.controller.app;
 
 import cn.wisenergy.common.utils.DateUtil;
-import cn.wisenergy.common.utils.exception.BaseCustomException;
 import cn.wisenergy.common.utils.exception.CustomException;
 import cn.wisenergy.common.utils.exception.RESP_CODE_ENUM;
 import cn.wisenergy.common.utils.exception.Result;
 import cn.wisenergy.model.app.WorkTimeOrder;
-import cn.wisenergy.model.dto.*;
-import cn.wisenergy.service.*;
+import cn.wisenergy.model.dto.AppletsPendApprovalDto;
+import cn.wisenergy.model.dto.CreateWorkOrderDto;
+import cn.wisenergy.model.dto.ProjectsDto;
+import cn.wisenergy.model.dto.WorkTimeOrderDto;
+import cn.wisenergy.service.WorkTimeOrderService;
 import cn.wisenergy.web.admin.controller.common.BaseController;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
@@ -16,7 +18,6 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -175,4 +176,5 @@ public class WorkTimeOrderController extends BaseController {
         return getResult(workTimeOrderDtos);
     }
 
+
 }
-- 
2.18.1