From 02cbb2209e8bf10e86ce8aa1e2bada305317026c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <8153694@qq.com>
Date: Thu, 17 Aug 2023 16:52:53 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=BC=E5=87=BA=E5=8A=A8?=
 =?UTF-8?q?=E6=80=81=E5=88=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../xhx/base/login/web/LoginController.java   | 25 ++++-----------
 .../busiz/h5/web/DingTalkLoginController.java | 31 ++++++++++++++++---
 .../impl/AttendanceRecordHikServiceImpl.java  | 19 ++++++------
 3 files changed, 43 insertions(+), 32 deletions(-)

diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
index d680c4de..890d981a 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/base/login/web/LoginController.java
@@ -47,6 +47,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
@@ -190,7 +191,7 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
 
 
         AttendanceRecordQuery attendanceRecordQuery = new AttendanceRecordQuery();
-        attendanceRecordQuery.setAttendanceDateStart(DateUtil.today());
+        attendanceRecordQuery.setAttendanceDateStart(DateUtil.beginOfMonth(new Date()).toDateStr());
         attendanceRecordQuery.setAttendanceDateEnd(DateUtil.today());
         List<AttendanceRecordEntity> attendanceRecordEntities = recordService.find(attendanceRecordQuery);
         //鎬绘墦鍗�
@@ -252,24 +253,6 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
     }
 
 
-    private String generateMenuUrlCode(Set<String> urls) {
-        try {
-            String securityKey = GlobalSysInfo.getPropertyValue(SysConstains.PROP_COOKIE_SECURITY_KEY);
-            StringBuilder sb = new StringBuilder();
-            if (urls != null && urls.size() > 0) {
-                for (String url : urls) {
-                    int index = url.hashCode() & (Integer.MAX_VALUE - 1);
-                    sb.append(index).append(",");
-                }
-            }
-            String menuUrl = sb.toString();
-            return AESUtil.encrypt(menuUrl, securityKey);
-        } catch (Throwable e) {
-            log.error("缂栫爜寮傚父", e);
-            return null;
-
-        }
-    }
 
     @RequestMapping("validcode")
     public String validCode(HttpServletRequest request, HttpServletResponse response, LoginForm loginForm) {
@@ -322,4 +305,8 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
     }
 
 
+    public static void main(String[] args) {
+        System.out.println(DateUtil.beginOfMonth(new Date()).toDateStr());
+    }
+
 }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
index ddba833f..1a38d2e8 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/h5/web/DingTalkLoginController.java
@@ -1,5 +1,6 @@
 package com.mortals.xhx.busiz.h5.web;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.mortals.framework.annotation.UnAuth;
@@ -25,9 +26,14 @@ import com.mortals.xhx.base.system.user.model.UserQuery;
 import com.mortals.xhx.base.system.user.service.UserService;
 import com.mortals.xhx.base.system.valid.service.ValidCodeService;
 import com.mortals.xhx.busiz.h5.req.DingTalkReq;
+import com.mortals.xhx.common.code.GoWorkResultEnum;
+import com.mortals.xhx.common.code.OffWorkResultEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
 import com.mortals.xhx.common.key.RedisKey;
 import com.mortals.xhx.common.pdu.HomeStatInfo;
+import com.mortals.xhx.module.attendance.model.AttendanceRecordEntity;
+import com.mortals.xhx.module.attendance.model.AttendanceRecordQuery;
+import com.mortals.xhx.module.attendance.model.AttendanceVacationRecordQuery;
 import com.mortals.xhx.module.dept.model.DeptQuery;
 import com.mortals.xhx.module.dept.service.DeptService;
 import com.mortals.xhx.module.dingding.IDingTalkService;
@@ -45,10 +51,7 @@ import org.springframework.web.bind.annotation.RestController;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import static com.mortals.xhx.common.key.ErrorCode.*;
 
@@ -190,6 +193,26 @@ public class DingTalkLoginController extends BaseCRUDJsonBodyMappingController<U
         }
     }
 
+
+    @RequestMapping("index")
+    public String index() throws Exception {
+        JSONObject ret = new JSONObject();
+        IUser user = this.getCurUser();
+        if (user == null) {
+            return JSONObject.toJSONString(Rest.fail(ERROR_TOKEN_EXPIRED, ERROR_TOKEN_EXPIRED_CONTENT));
+        }
+        JSONObject data = new JSONObject();
+        UserEntity userEntity = userService.get(user.getId());
+        String token = authTokenService.getToken(request);
+        data.put("id", user.getId());
+        data.put("token", token);
+        data.put("userType", userEntity.getUserType());
+        ret.put(KEY_RESULT_DATA, data);
+        ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
+        ret.put(KEY_RESULT_MSG, "鐢ㄦ埛鐧诲綍绯荤粺鎴愬姛!");
+        return ret.toJSONString();
+    }
+
     @RequestMapping("logout")
     public void logout(HttpServletRequest request, HttpServletResponse response) {
         recordSysLog(request, "閫€鍑虹櫥褰�");
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
index 02ea5a6e..a5404b80 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/impl/AttendanceRecordHikServiceImpl.java
@@ -154,11 +154,9 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
                         commonData.setStaffId(attendanceRecordEntity.getStaffId());
                         commonData.setDateStr(dateStr);
                         workAbstract.doHandleWork(commonData);
-
                     }
                 }
 
-
                 if (!ObjectUtils.isEmpty(detailEntityList)) {
                     attendanceRecordEntity.setAttendanceRecordDetailList(detailEntityList);
                     //鍒ゆ柇绛惧埌 鍙瀛樺湪涓€娆℃甯告墦鍗¤缁嗚褰� 灏卞垽鏂鍒�
@@ -307,21 +305,22 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
                 if (!ObjectUtils.isEmpty(detailEntityList)) {
                     attendanceRecordEntity.setAttendanceRecordDetailList(detailEntityList);
                     //鍒ゆ柇绛惧埌 鍙瀛樺湪涓€娆℃甯告墦鍗¤缁嗚褰� 灏卞垽鏂鍒�
+                    attendanceRecordEntity.setSignInResult(YesNoEnum.YES.getValue());
                     for (AttendanceRecordDetailEntity detailEntity : detailEntityList) {
-                        if (GoWorkResultEnum.姝e父.getValue() == detailEntity.getGoWorkResult() || GoWorkResultEnum.杩熷埌.getValue() == detailEntity.getOffWorkResult()) {
-                            attendanceRecordEntity.setSignInResult(YesNoEnum.YES.getValue());
+                        if (GoWorkResultEnum.缂哄崱.getValue() == detailEntity.getGoWorkResult() || GoWorkResultEnum.杩熷埌.getValue() == detailEntity.getOffWorkResult()) {
+                            attendanceRecordEntity.setSignInResult(YesNoEnum.NO.getValue());
                             break;
                         }
                     }
-
+                    attendanceRecordEntity.setSignOutResult(YesNoEnum.YES.getValue());
                     for (AttendanceRecordDetailEntity detailEntity : detailEntityList) {
-                        if (OffWorkResultEnum.姝e父.getValue() == detailEntity.getOffWorkResult() || OffWorkResultEnum.鏃╅€€.getValue() == detailEntity.getOffWorkResult()) {
-                            attendanceRecordEntity.setSignOutResult(YesNoEnum.YES.getValue());
+                        if (OffWorkResultEnum.缂哄崱.getValue() == detailEntity.getOffWorkResult() || OffWorkResultEnum.鏃╅€€.getValue() == detailEntity.getOffWorkResult()) {
+                            attendanceRecordEntity.setSignOutResult(YesNoEnum.NO.getValue());
                             break;
                         }
                     }
 
-                    for (AttendanceRecordDetailEntity detailEntity : detailEntityList) {
+     /*               for (AttendanceRecordDetailEntity detailEntity : detailEntityList) {
                         if (OffWorkResultEnum.缂哄崱.getValue() == detailEntity.getOffWorkResult()) {
                             attendanceRecordEntity.setPunchResult(YesNoEnum.NO.getValue());
                             break;
@@ -331,10 +330,12 @@ public class AttendanceRecordHikServiceImpl extends AbstractCRUDServiceImpl<Atte
                             attendanceRecordEntity.setPunchResult(YesNoEnum.NO.getValue());
                             break;
                         }
-                    }
+                    }*/
 
                     if (YesNoEnum.YES.getValue() == attendanceRecordEntity.getSignInResult() && YesNoEnum.YES.getValue() == attendanceRecordEntity.getSignOutResult()) {
                         attendanceRecordEntity.setPunchResult(YesNoEnum.YES.getValue());
+                    } else {
+                        attendanceRecordEntity.setPunchResult(YesNoEnum.NO.getValue());
                     }
 
                     attendanceRecordEntity.setAttendType("鐜板満鎵撳崱");
-- 
2.24.3