diff --git a/attendance-performance-manager/pom.xml b/attendance-performance-manager/pom.xml
index f8811914af1630f982055859b75330f3485a92db..4f3092181e8f66e71497faef7804244d214bb8a5 100644
--- a/attendance-performance-manager/pom.xml
+++ b/attendance-performance-manager/pom.xml
@@ -68,6 +68,7 @@
 				<profiles.hik.appSecret>2m9RcPJOKq5j2QPQM4v5</profiles.hik.appSecret>
 
 				<profiles.dingtalk.domain>https://oapi.dingtalk.com</profiles.dingtalk.domain>
+				<profiles.dingtalk.oaUrl>api.dingtalk.com</profiles.dingtalk.oaUrl>
 				<profiles.dingtalk.agentId>2652674890</profiles.dingtalk.agentId>
 				<profiles.dingtalk.appKey>dingpqzradgfr4efdi2j</profiles.dingtalk.appKey>
 				<profiles.dingtalk.appSecret>bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd</profiles.dingtalk.appSecret>
@@ -98,6 +99,7 @@
 				<profiles.hik.appSecret>2m9RcPJOKq5j2QPQM4v5</profiles.hik.appSecret>
 
 				<profiles.dingtalk.domain>http://172.15.28.113:8918</profiles.dingtalk.domain>
+				<profiles.dingtalk.oaUrl>172.15.28.113:8919</profiles.dingtalk.oaUrl>
 				<profiles.dingtalk.agentId>2652674890</profiles.dingtalk.agentId>
 				<profiles.dingtalk.appKey>dingpqzradgfr4efdi2j</profiles.dingtalk.appKey>
 				<profiles.dingtalk.appSecret>bF2WALmo5_Wuj3hg5gXeWqezrYnZChUJ88HjzNWpkA9ivdOxfBDGOGYcfVRfB3vd</profiles.dingtalk.appSecret>
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 dece0c08a797e7987a7a690f2d45884aeff371ff..4ef4f02522c454496d90c0608427052bcf909747 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
@@ -158,11 +158,12 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
         homeStatInfo.setTotalDeptNum(totalDeptNum);
 
         //todo
-        homeStatInfo.setAttendRadio(new BigDecimal(91.00));
+        homeStatInfo.setAttendRadio(new BigDecimal(98.00));
         homeStatInfo.setLevealPersonNum(6);
         homeStatInfo.setLatePersonNum(2);
         homeStatInfo.setLeftEarlyPersonNum(1);
-        homeStatInfo.setMissCardPersonNum(0);
+        homeStatInfo.setMissCardPersonNum(23);
+        homeStatInfo.setAttendPersonNum(426);
 
         data.put("homeStat", homeStatInfo);
         data.put("token", token);
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/BaseReq.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/BaseReq.java
index 4156b8391a771eb44e3da3f59e4130c94198665b..80b4338d55d45ce7a7605ea3a15717cdb1205430 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/BaseReq.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/BaseReq.java
@@ -19,8 +19,6 @@ public abstract class BaseReq implements Serializable {
      */
     private Integer size;
 
-
-
     /**
      * 宸ュ彿
      */
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
index b0310bec8d43c82df23ee37b8910d7f1abbb144f..0fe6c223d7b61dc96725ab2456f0608275a4119d 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestController.java
@@ -3,18 +3,33 @@ package com.mortals.xhx.busiz;
 
 import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.PageUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.mortals.framework.annotation.UnAuth;
 import com.mortals.framework.common.Rest;
+import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICacheService;
+import com.mortals.framework.util.DateUtils;
 import com.mortals.framework.utils.ServletUtils;
 import com.mortals.xhx.base.system.idgenerator.service.IdgeneratorService;
 import com.mortals.xhx.base.system.upload.service.UploadService;
 import com.mortals.xhx.base.system.user.model.UserEntity;
 import com.mortals.xhx.base.system.user.model.UserQuery;
 import com.mortals.xhx.base.system.user.service.UserService;
+import com.mortals.xhx.busiz.h5.rsp.ApiResp;
+import com.mortals.xhx.common.code.ApiRespCodeEnum;
 import com.mortals.xhx.common.code.YesNoEnum;
+import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
+import com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery;
+import com.mortals.xhx.module.attendance.service.AttendanceRecordHikService;
+import com.mortals.xhx.module.dept.model.DeptEntity;
+import com.mortals.xhx.module.dept.model.DeptQuery;
+import com.mortals.xhx.module.dept.service.DeptService;
+import com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq;
+import com.mortals.xhx.module.hik.door.model.rsp.door.DoorEventDataInfo;
+import com.mortals.xhx.module.hik.door.service.IHikDoorService;
 import com.mortals.xhx.module.hik.face.model.req.img.ImgReq;
 import com.mortals.xhx.module.hik.face.service.IHikFaceService;
 import com.mortals.xhx.module.perform.service.PerformPerposeStaffService;
@@ -25,17 +40,13 @@ import com.mortals.xhx.module.workman.model.WorkmanEntity;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -62,26 +73,234 @@ public class TestController {
     private IHikFaceService faceService;
     @Autowired
     private UploadService uploadService;
+    @Autowired
+    private DeptService deptService;
 
     @Autowired
     private PerformPerposeStaffService performPerposeStaffService;
 
+    @Autowired
+    private AttendanceRecordHikService recordHikService;
+
+    @Autowired
+    private IHikDoorService hikDoorService;
+
+    /**
+     * 鍚屾鎸囧畾鏃ユ湡鐨勬捣搴锋暟鎹�
+     *
+     * @param req
+     * @return
+     */
+    @PostMapping("hik")
+    public String register(@RequestBody TestReq req) {
+        log.info("銆愭祴璇曟秷鎭€戙€愯姹備綋銆�-->  " + JSONObject.toJSONString(req));
+
+
+        DoorEventReq doorEventReq = new DoorEventReq();
+        List<Integer> eventTypes = new ArrayList<>();
+        eventTypes.add(196885);
+        eventTypes.add(196887);
+        eventTypes.add(196893);
+        eventTypes.add(196888);
+        eventTypes.add(196889);
+        eventTypes.add(196890);
+        eventTypes.add(196891);
+        doorEventReq.setEventTypes(eventTypes);
+
+        doorEventReq.setStartTime(req.getCreateTimeStart());
+        doorEventReq.setEndTime(req.getCreateTimeEnd());
+        doorEventReq.setPageNo(1);
+        doorEventReq.setPageSize(1);
+
+        Rest<DoorEventDataInfo> doorEventsRest = hikDoorService.getDoorEvents(doorEventReq);
+        log.info("doorEventsRest:{} msg:{}", doorEventsRest.getCode(), doorEventsRest.getMsg());
+        if (doorEventsRest.getCode() == YesNoEnum.YES.getValue()) {
+            //鍒嗛〉鑾峰彇鑰冨嫟鏁版嵁
+            Integer total = doorEventsRest.getData().getTotal();
+            int pageCount = PageUtil.totalPage(total, 1000);
+            for (int i = 1; i <= pageCount; i++) {
+                doorEventReq.setPageNo(i);
+                doorEventReq.setPageSize(1000);
+                doorEventsRest = hikDoorService.getDoorEvents(doorEventReq);
+                log.info("doorEventsRest:{} msg:{},page:{}", doorEventsRest.getCode(), doorEventsRest.getMsg(), doorEventReq.getPageNo());
+                getDoorEvents(doorEventsRest);
+            }
+        }
+        return "ok";
+    }
+
+
+    private void getDoorEvents(Rest<DoorEventDataInfo> doorEventsRest) {
+        //鍚屾褰撳墠鑰冨嫟鏁版嵁
+        List<AttendanceRecordHikEntity> attRecords = doorEventsRest.getData().getList().stream().map(item -> {
+            AttendanceRecordHikEntity recordHikEntity = new AttendanceRecordHikEntity();
+            recordHikEntity.initAttrValue();
+            StaffEntity staffCache = staffService.getExtCache(StrUtil.padPre(item.getJobNo(), 8, "0"));
+            if (ObjectUtils.isEmpty(staffCache)) {
+                log.info("staff is null !staffCode:{}", item.getJobNo());
+                return null;
+            }
+
+            recordHikEntity.setStaffId(staffCache.getId());
+            recordHikEntity.setStaffName(staffCache.getName());
+            recordHikEntity.setWorkNum(staffCache.getWorkNum());
+            recordHikEntity.setDeptId(staffCache.getDeptId());
+            recordHikEntity.setDeptName(staffCache.getDeptName());
+            recordHikEntity.setPositionId(staffCache.getPositionId());
+            recordHikEntity.setPositionName(staffCache.getPositionName());
+
+            recordHikEntity.setAttendanceDate(item.getEventTime());
+            recordHikEntity.setAttendanceAddress(item.getDoorName());
+            recordHikEntity.setEventSource("闂ㄧ鐐�");
+            recordHikEntity.setRemark(item.getEventId());
+            recordHikEntity.setCreateTime(item.getEventTime());
+            recordHikEntity.setCreateUserName("system");
+            recordHikEntity.setCreateUserId(1L);
+            return recordHikEntity;
+        }).filter(f -> f != null).collect(Collectors.toList());
+
+        log.info("attRecords size:{}", attRecords.size());
+
+        if (!ObjectUtils.isEmpty(attRecords)) {
+            for (AttendanceRecordHikEntity attRecord : attRecords) {
+
+                //recordHikService.save(attRecord);
+
+                try {
+                    recordHikService.getDao().insert(attRecord);
+
+                }catch (Exception e){
+                    log.error("寮傚父",e);
+                }
+
+
+            }
+        }
+
+/*
+        List<String> eventIds = attRecords.parallelStream().filter(f -> !ObjectUtils.isEmpty(f) && !ObjectUtils.isEmpty(f.getRemark())).map(i -> i.getRemark()).collect(Collectors.toList());
+
+        //鏌ヨ褰撳ぉ鑰冨嫟璁板綍鏄惁鏈夐噸澶嶇殑 鏈夌殑 鍒欎笉娣诲姞
+        AttendanceRecordHikQuery recordHikQuery = new AttendanceRecordHikQuery();
+        recordHikQuery.setAttendanceDateStart(DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd"));
+        recordHikQuery.setAttendanceDateEnd(DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd"));
+        recordHikQuery.setRemarkList(eventIds);
+        Set<String> eventIdSet = recordHikService.find(recordHikQuery).parallelStream().map(i -> i.getRemark()).collect(Collectors.toSet());
+
+        List<AttendanceRecordHikEntity> saveRecordList = attRecords.stream().filter(f -> !eventIdSet.contains(f.getRemark())).collect(Collectors.toList());
+        if (!ObjectUtils.isEmpty(saveRecordList)) {
+            recordHikService.save(saveRecordList);
+        }
+        log.info("saveRecordList size:{}", saveRecordList.size());*/
+    }
+
+
+    @GetMapping("updateDeptNum")
+    @UnAuth
+    public String updateDeptNum() {
+        log.info("鏇存柊閮ㄩ棬鐢ㄦ埛鏁伴噺");
+        Map<Long, Long> collect = staffService.find(new StaffQuery()).stream().collect(Collectors.groupingBy(x -> x.getDeptId(), Collectors.counting()));
+
+        DeptEntity deptEntity1 = new DeptEntity();
+        deptEntity1.setPersonNum(0);
+        deptService.getDao().update(deptEntity1, new HashMap<>());
+
+        collect.entrySet().stream().forEach(item -> {
+            Long deptId = item.getKey();
+            Long count = item.getValue();
+            log.info("deptId:{},num:{}", deptId, count);
+            DeptEntity deptEntity = deptService.get(deptId);
+            if (!ObjectUtils.isEmpty(deptEntity)) {
+                deptEntity.setPersonNum(count.intValue());
+                deptService.update(deptEntity);
+            }
+
+        });
 
-    //    @GetMapping("webservice")@GetMapping("idGens")
-//    public String idGens() {
-//        log.info("娴嬭瘯id鐢熸垚");
-//
-//        String stringId = idgeneratorService.getLongId(IdgeneratorServiceImpl.IdGeneratorKey.EFFECT).toString();
-//
-//
-//        return stringId;
-//    }
-    public String webservice() {
-        log.info("娴嬭瘯");
 
+        for (Map.Entry<Long, Long> item : collect.entrySet()) {
+
+            Long deptId = item.getKey();
+            if (deptId == -1) continue;
+            DeptEntity deptEntity = deptService.get(deptId);
+            if (!ObjectUtils.isEmpty(deptEntity)) {
+                //鏌ヨ褰撳墠鐖惰妭鐐圭殑鎵€鏈夊瓙閮ㄩ棬
+                DeptQuery deptQuery = new DeptQuery();
+                deptQuery.setParentId(deptEntity.getParentId());
+
+                int sum = deptService.find(new DeptQuery().parentId(deptEntity.getParentId())).stream().map(i -> i.getPersonNum()).reduce(0, Integer::sum);
+                ;
+                DeptEntity parentDept = deptService.get(deptEntity.getParentId());
+                log.info("dept:{},sum:{}", parentDept.getDeptName(), sum);
+
+                if (!ObjectUtils.isEmpty(parentDept)) {
+                    log.info("parentDept:{},sum:{}", parentDept.getDeptName(), sum);
+                    parentDept.setPersonNum(sum);
+                    deptService.update(parentDept);
+                    // updateDeptPersonNum(parentDept);
+                }
+            }
+
+
+        }
+
+/*
+        //鏇存柊鐖堕儴闂ㄧ殑浜烘暟褰掗泦
+        collect.entrySet().stream().forEach(item -> {
+            Long deptId = item.getKey();
+            DeptEntity deptEntity = deptService.get(deptId);
+
+            if (!ObjectUtils.isEmpty(deptEntity) && !ObjectUtils.isEmpty(deptEntity.getParentId())) {
+                int sum = deptService.find(new DeptQuery().parentId(deptEntity.getId())).stream().mapToInt(i -> i.getPersonNum()).sum();
+                DeptEntity parentDept = deptService.get(deptEntity.getParentId());
+                if (ObjectUtils.isEmpty(parentDept)) {
+                    parentDept.setPersonNum(sum);
+                    deptService.update(parentDept);
+                    updateDeptPersonNum(parentDept);
+                }
+            }
+
+
+            // updateDeptPersonNum(deptEntity);
+
+        });*/
         return "ok";
     }
 
+
+    public static void calculateParentValue(DeptEntity root) {
+        if (root == null) {
+            return;
+        }
+
+        // 閫掑綊澶勭悊鍙跺瓙鑺傜偣
+        if (root.getChildren().isEmpty()) {
+            return;
+        }
+
+        // 閫掑綊璁$畻鎵€鏈夊瓙鑺傜偣鐨勫€间箣鍜�
+        int sum = 0;
+        for (DeptEntity child : root.getChildren()) {
+            calculateParentValue(child);
+            sum += child.getPersonNum();
+        }
+
+        // 鏇存柊褰撳墠鑺傜偣鐨勫€间负鎵€鏈夊瓙鑺傜偣鍊间箣鍜�
+        root.setPersonNum(sum);
+    }
+
+    private void updateDeptPersonNum(DeptEntity deptEntity) {
+        if (!ObjectUtils.isEmpty(deptEntity) && !ObjectUtils.isEmpty(deptEntity.getParentId())) {
+            int sum = deptService.find(new DeptQuery().parentId(deptEntity.getId())).stream().mapToInt(i -> i.getPersonNum()).sum();
+            DeptEntity parentDept = deptService.get(deptEntity.getParentId());
+            if (ObjectUtils.isEmpty(parentDept)) {
+                parentDept.setPersonNum(sum);
+                deptService.update(parentDept);
+                updateDeptPersonNum(parentDept);
+            }
+        }
+    }
+
     //
     @GetMapping("updatePersons")
     @UnAuth
@@ -211,7 +430,8 @@ public class TestController {
 
     /**
      * 鐢熸垚妯℃嫙鏁版嵁
-     *  mortals_xhx_perform_perpose_staff_stat
+     * mortals_xhx_perform_perpose_staff_stat
+     *
      * @return
      */
     @GetMapping("randomStatPerposeStaffData")
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java
new file mode 100644
index 0000000000000000000000000000000000000000..900b2168ece3af56db8a9323bd79c835ba813cd4
--- /dev/null
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/busiz/TestReq.java
@@ -0,0 +1,14 @@
+package com.mortals.xhx.busiz;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class TestReq {
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTimeStart;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTimeEnd;
+}
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
index 8f6d654945783c9d3e289b9e903c61899f816f0f..98c3497bd1be31bd062b29f1726740c021351e6a 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/daemon/task/SyncUserTaskImpl.java
@@ -139,21 +139,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
                     attendanceStatEntity.setHomeLeave(balanceEntity.getHomeLeave());
                     attendanceStatEntity.setPersonalLeave(balanceEntity.getPersonalLeaveDays());
                     attendanceStatService.save(attendanceStatEntity);
-                    //缁熻鍚勭骇閮ㄩ棬鍛樺伐鏁伴噺 todo  浼樺寲缁熻
-                    if (!ObjectUtils.isEmpty(deptEntity.getAncestors())) {
-                        String[] split = deptEntity.getAncestors().split(",", 2);
-                        if (split.length > 1) {
-                            String ancestor = split[1];
-                            String[] ancestors = ancestor.split(",");
-                            for (String newAncestor : ancestors) {
-                                DeptEntity deptEntity2 = deptService.get(Long.valueOf(newAncestor));
-                                if (Objects.nonNull(deptEntity2)) {
-                                    deptEntity2.setPersonNum(deptEntity2.getPersonNum() + 1);
-                                    deptService.update(deptEntity2);
-                                }
-                            }
-                        }
-                    }
+
                 } else {
                     //鏇存柊
                     if (!ObjectUtils.isEmpty(deptEntity)) {
@@ -170,21 +156,7 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
                     staffEntity.setUpdateUserId(1L);
                     staffEntity.setUpdateTime(new Date());
                     staffService.update(staffEntity);
-                    //缁熻鍚勭骇閮ㄩ棬鍛樺伐鏁伴噺
-                    if (!ObjectUtils.isEmpty(deptEntity.getAncestors())) {
-                        String[] split = deptEntity.getAncestors().split(",", 2);
-                        if(split.length>1){
-                            String ancestor = split[1];
-                            String[] ancestors = ancestor.split(",");
-                            for (String newAncestor : ancestors) {
-                                DeptEntity deptEntity2 = deptService.get(Long.valueOf(newAncestor));
-                                if (Objects.nonNull(deptEntity2)) {
-                                    deptEntity2.setPersonNum(deptEntity2.getPersonNum() + 1);
-                                    deptService.update(deptEntity2);
-                                }
-                            }
-                        }
-                    }
+
                 }
             }
         }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java
index 0d5bf0c73629846295bd11bb4c22ad370d807de9..86d7707df21a7eece95d49edf01dcec2b700abb8 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/attendance/service/AttendanceRecordHikService.java
@@ -1,6 +1,7 @@
 package com.mortals.xhx.module.attendance.service;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICRUDService;
+import com.mortals.xhx.module.attendance.dao.AttendanceRecordHikDao;
 import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
 
 /**
@@ -13,6 +14,8 @@ import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
 */
 public interface AttendanceRecordHikService extends ICRUDService<AttendanceRecordHikEntity,Long>{
 
+    AttendanceRecordHikDao getDao();
+
     /**
      * 灏嗗師濮嬫暟鎹鍏ユ墦鍗¤褰曡〃
      * @param entity
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
index f6a79821b0fd7eab867ad12fab2862d4ac1b98e5..d23eae6dbb266d489f60b936c1486b4f4230918e 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dept/service/DeptService.java
@@ -1,6 +1,7 @@
 package com.mortals.xhx.module.dept.service;
 import com.mortals.framework.model.Context;
 import com.mortals.framework.service.ICRUDService;
+import com.mortals.xhx.module.dept.dao.DeptDao;
 import com.mortals.xhx.module.dept.model.DeptEntity;
 import com.mortals.xhx.module.dept.model.DeptTreeSelect;
 
@@ -15,6 +16,8 @@ import java.util.List;
 */
 public interface DeptService extends ICRUDService<DeptEntity,Long>{
 
+    DeptDao getDao();
+
     /**
     * 鏄惁瀛樺湪閮ㄩ棬淇℃伅鑺傜偣
     *
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java
index ffde5357c0593d230e815b64979998f3e4c79414..9d48b61d116fb792f9e00439611d21fb599f4711 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/AbstractDingTalkService.java
@@ -52,6 +52,12 @@ public abstract class AbstractDingTalkService implements IDingPersonService {
     @Value("${dingtalk.AppSecret:''}")
     protected String appSecret;
 
+    /**
+     * appKey
+     */
+    @Value("${dingtalk.oaUrl:}")
+    protected String oaUrl;
+
     @Autowired
     private ICacheService cacheService;
 
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
index 59dcc7c43618b92cf063aefb2732300b9230f4e2..8ad8056b1c69c04a4924ec4f981739729efc78e3 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/dingding/personal/service/impl/DingPersonServiceImpl.java
@@ -120,9 +120,11 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
      */
     public com.aliyun.dingtalkworkflow_1_0.Client createClient() throws Exception {
         com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
-        config.protocol = "https";
+        //config.protocol = "https";
+        config.protocol = "http";
         config.regionId = "central";
-       // config.endpoint = domain.replace("http://", "");
+//        config.endpoint = domain.replace("http://", "");
+        config.endpoint = oaUrl;
         return new com.aliyun.dingtalkworkflow_1_0.Client(config);
     }
 
@@ -132,11 +134,11 @@ public class DingPersonServiceImpl extends AbstractDingTalkService implements ID
             com.aliyun.dingtalkworkflow_1_0.Client client = createClient();
             com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceHeaders getProcessInstanceHeaders = new com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceHeaders();
             getProcessInstanceHeaders.xAcsDingtalkAccessToken = getToken();
-/*            HashMap<String, String> map = new HashMap<>();
+            HashMap<String, String> map = new HashMap<>();
             getProcessInstanceHeaders.setCommonHeaders(map);
-            getProcessInstanceHeaders.getCommonHeaders().put("host", "172.15.28.113");
-            getProcessInstanceHeaders.getCommonHeaders().put("port", "8918");
-            getProcessInstanceHeaders.getCommonHeaders().put("protocol", "http");*/
+            getProcessInstanceHeaders.getCommonHeaders().put("host", "172.15.28.113:8919");
+//            getProcessInstanceHeaders.getCommonHeaders().put("port", "8919");
+//            getProcessInstanceHeaders.getCommonHeaders().put("protocol", "http");
 
             com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceRequest getProcessInstanceRequest = new com.aliyun.dingtalkworkflow_1_0.models.GetProcessInstanceRequest()
                     .setProcessInstanceId(processInstanceId);
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
index c72b7a210331171d98d9dbf7400d76e71b4c8216..1931853c2603e78fdc9e8f2e1976e48f1d0d7492 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/AbstractHikService.java
@@ -8,7 +8,7 @@ import java.util.Map;
 
 public abstract class AbstractHikService {
 
-    @Value("${hik.host:''}")
+    @Value("${hik.host:}")
     protected String host;
 
     @Value("${hik.appKey:''}")
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/job/web/JobController.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/job/web/JobController.java
index 099385ff305cb1e5149cc788d55e187e9d8cd04e..20261a1ce2cf40f96a8eebf387baa111c896bf1b 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/job/web/JobController.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/job/web/JobController.java
@@ -42,7 +42,7 @@ public class JobController extends BaseCRUDJsonBodyMappingController<JobService,
     @Override
     protected void init(Map<String, Object> model, Context context) {
         this.addDict(model, "type", JobTypeEnum.getEnumMap());
-        this.addDict(model, "group",service.queryGroupName(new JobQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getGroupName(),(o, n)->n)));
+        this.addDict(model, "groupId",service.queryGroupName(new JobQuery()).stream().collect(Collectors.toMap(x->x.getId().toString(), y->y.getGroupName(),(o, n)->n)));
         super.init(model, context);
     }
 
diff --git a/attendance-performance-manager/src/main/resources/bootstrap.yml b/attendance-performance-manager/src/main/resources/bootstrap.yml
index b70d92ebc61f5e971e97adcb20ce137fc4d1de8f..41715fe85ade073677c740f843c049a5520f745b 100644
--- a/attendance-performance-manager/src/main/resources/bootstrap.yml
+++ b/attendance-performance-manager/src/main/resources/bootstrap.yml
@@ -74,4 +74,5 @@ dingtalk:
   AppSecret: @profiles.dingtalk.appSecret@
   AesKey: @profiles.dingtalk.aesKey@
   token: @profiles.dingtalk.token@
+  oaUrl: @profiles.dingtalk.oaUrl@
 
diff --git a/attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml b/attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml
index 804e44ff03f11dbe637c70a6a07f669cce2bfabf..6cc0ac5a7f205a325ebfaae58732dbe17c7ae998 100644
--- a/attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml
+++ b/attendance-performance-manager/src/main/resources/config/mybatis-sqlmap-config.xml
@@ -20,7 +20,7 @@
 
 		<plugin interceptor="com.mortals.framework.thirty.mybatis.LogInterceptor">
 			<property name="enableExecutorTime" value="true" />
-			<property name="showSql" value="true" />
+			<property name="showSql" value="false" />
 		</plugin>
 	</plugins>
 </configuration>
\ No newline at end of file