diff --git a/attendance-performance-manager-ui/admin/vue.config.js b/attendance-performance-manager-ui/admin/vue.config.js
index 23ef9cb172d970590eb6e20012158bfcfdf96d41..318ead4cb6f8c947704006b480e52dffed61ee81 100644
--- a/attendance-performance-manager-ui/admin/vue.config.js
+++ b/attendance-performance-manager-ui/admin/vue.config.js
@@ -8,9 +8,9 @@ module.exports = {
 		hot: true,//鑷姩淇濆瓨
 		proxy: {
 			'/attendance': {
-				target: 'http://192.168.0.98:11039',
+				//target: 'http://192.168.0.98:11039',
 				//   target: 'http://112.19.80.237:11039',
-				//   target: 'http://localhost:17500',
+				   target: 'http://localhost:17500',
 				changeOrigin: true,
 				secure: false,
 				cookieDomainRewrite: 'localhost',
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 26fbb12aa6436653f59161cf1b62189dcc3e01b6..6c2bf6c7712095f146f059dcd176c909ba1af863 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
@@ -1,7 +1,6 @@
 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;
@@ -9,32 +8,30 @@ 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.AttendanceLeaveRecordEntity;
 import com.mortals.xhx.module.attendance.model.AttendanceRecordHikEntity;
-import com.mortals.xhx.module.attendance.model.AttendanceRecordHikQuery;
 import com.mortals.xhx.module.attendance.service.AttendanceLeaveRecordService;
 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.door.model.DoorEntity;
+import com.mortals.xhx.module.door.model.DoorQuery;
+import com.mortals.xhx.module.door.service.DoorService;
 import com.mortals.xhx.module.hik.door.model.req.door.DoorEventReq;
+import com.mortals.xhx.module.hik.door.model.req.door.HikDoorEventReq;
 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;
+import com.mortals.xhx.module.hik.staff.service.IHikStaffService;
 import com.mortals.xhx.module.staff.model.StaffEntity;
 import com.mortals.xhx.module.staff.model.StaffQuery;
 import com.mortals.xhx.module.staff.service.StaffService;
@@ -45,9 +42,11 @@ import org.springframework.util.ObjectUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.ByteArrayInputStream;
 import java.io.InputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -61,10 +60,6 @@ import java.util.stream.Collectors;
 @Slf4j
 @RequestMapping("/test")
 public class TestController {
-
-    @Autowired
-    private IdgeneratorService idgeneratorService;
-
     @Autowired
     private ICacheService cacheService;
     @Autowired
@@ -77,15 +72,15 @@ public class TestController {
     private UploadService uploadService;
     @Autowired
     private DeptService deptService;
-
-    @Autowired
-    private PerformPerposeStaffService performPerposeStaffService;
-
     @Autowired
     private AttendanceRecordHikService recordHikService;
-
     @Autowired
     private IHikDoorService hikDoorService;
+    @Autowired
+    private DoorService doorService;
+    @Autowired
+    private IHikStaffService hikStaffService;
+
 
     /**
      * 鍚屾鎸囧畾鏃ユ湡鐨勬捣搴锋暟鎹�
@@ -174,26 +169,8 @@ public class TestController {
                 } 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());*/
     }
 
 
@@ -241,73 +218,15 @@ public class TestController {
                     // 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
     public String updatePersons() {
         log.info("鏇存柊鐢ㄦ埛鎵嬫満鍙风爜");
-
         cacheService.select(1);
         Map<String, String> map = cacheService.hgetAll("com:mortals:xhx:module:workman:model:WorkmanEntity");
         cacheService.select(14);
@@ -363,7 +282,6 @@ public class TestController {
                 ImgReq imgReq = new ImgReq();
                 imgReq.setUrl(staffEntity.getPicUri());
                 imgReq.setServerIndexCode(staffEntity.getServerIndexCode());
-                //Rest<String> rest = faceService.downloadPicture(imgReq);
                 try {
                     InputStream in = faceService.callPostImgs(imgReq);
                     if (!ObjectUtils.isEmpty(in)) {
@@ -375,20 +293,6 @@ public class TestController {
                 } catch (Exception e) {
                     log.error("涓嬭浇鍑洪敊");
                 }
-/*
-                if (YesNoEnum.YES.getValue() == rest.getCode()) {
-                    byte[] bytes = Base64.decode(rest.getData());
-                    if (!org.springframework.util.ObjectUtils.isEmpty(bytes)) {
-                        InputStream inputStream = new ByteArrayInputStream(bytes);
-                        MultipartFile file = ServletUtils.getMultipartFile(inputStream, "snap.jpg");
-                        String filePath = uploadService.saveFileUpload(file, "file/fileupload/snap/" + DateUtil.today(), null);
-                        staffEntity.setPhotoPath(filePath);
-
-                        updateList.add(staffEntity);
-                    }
-                } else {
-                    log.info("download:{}", JSON.toJSONString(rest));
-                }*/
             }
         }
         if (!ObjectUtils.isEmpty(updateList)) {
@@ -462,11 +366,44 @@ public class TestController {
         try {
             attendanceLeaveRecordService.doUpdateRecord(processInstanceId, leaveRecordEntity);
         } catch (Exception e) {
-            log.error("寮傚父",e);
+            log.error("寮傚父", e);
         }
+        return Rest.ok();
+    }
 
 
-        return Rest.ok();
+    /**
+     * 鍚屾鎸囧畾璁惧浜哄憳淇℃伅
+     *
+     * @param testReq
+     * @return
+     */
+    @PostMapping("updatePersonsByDevices")
+    @UnAuth
+    public String updatePersonsByDevices(@RequestBody TestReq testReq) {
+        log.info("鏇存柊璁惧浜哄憳==>{}",JSON.toJSONString(testReq));
+        staffService.syncPersonsByDevices(null);
+        return "ok";
+    }
+
+
+    /**
+     * 鏌ヨ璁惧鑰冨嫟浜嬩欢淇℃伅
+     *
+     * @param testReq
+     * @return
+     */
+    @PostMapping("searchEventsByDevices")
+    @UnAuth
+    public String searchEventsByDevices(@RequestBody TestReq testReq) {
+        log.info("鏌ヨ璁惧鑰冨嫟淇℃伅==>{}",JSON.toJSONString(testReq));
+        HikDoorEventReq hikDoorEventReq = new HikDoorEventReq();
+
+        hikDoorEventReq.setStartTime(testReq.getCreateTimeStart());
+        hikDoorEventReq.setEndTime(testReq.getCreateTimeEnd());
+        DoorEntity doorEntity = doorService.get(testReq.getDeviceId());
+        doorService.syncDoorDeviceEvents(doorEntity, hikDoorEventReq);
+        return "ok";
     }
 
 
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
index 900b2168ece3af56db8a9323bd79c835ba813cd4..1061fdc28c224cb0b059504bc250879dbb455d9a 100644
--- 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
@@ -11,4 +11,8 @@ public class TestReq {
     private Date createTimeStart;
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTimeEnd;
+
+
+    private Long deviceId;
+
 }
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 ab5bdc1d040a88daf5412e9e9851a19c3de98600..29de3684b01e073e01d05928e0d5a4297cc3a016 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
@@ -99,12 +99,9 @@ public class SyncUserTaskImpl implements ITaskExcuteService {
                     log.error("鍚屾閽夐拤usreId澶辫触");
                 }
             } else {
-                //todo 璁惧鐩磋繛
-               // deptService.syncDeptByDevice(null);
+                log.info("璁惧鐩磋繛鍚屾浜哄憳淇℃伅");
                 staffService.syncPersonsByDevices(null);
             }
-
-
         } catch (Exception e) {
             log.error("鍚屾浜轰簨寮傚父", e);
         }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
index eec8a01c94cc271426c35a2fc809452f2756e131..2fb094063970bea6aa658f0c3c5e1f23959474ca 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/hikdoor/Acs/AcsMain.java
@@ -92,7 +92,7 @@ public class AcsMain {
 
 
         /**鐧诲綍*/
-        login_V40("192.168.0.111","admin","asd12345",(short)8000);
+        login_V40("10.102.221.201","admin","10.102.221.201",(short)8000);
 
 
         /**杩滅▼鎺ч棬*/
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
index 1855f09af88e117e5135391e312027b350918eb1..8f581ef4ee45a61d265cd034382f10afd4d736f6 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/door/service/impl/DoorServiceImpl.java
@@ -53,13 +53,9 @@ public class DoorServiceImpl extends AbstractCRUDServiceImpl<DoorDao, DoorEntity
 
     @Override
     public Rest<Void> syncDoorDeviceEvents(DoorEntity doorEntity, HikDoorEventReq hikDoorEventReq) {
-
-
         Rest<List<EventInfo>> listRest = hikDoorService.searchDoorEventsList(hikDoorEventReq, doorEntity);
-
         if (listRest.getCode() == YesNoEnum.YES.getValue()) {
             List<EventInfo> list = listRest.getData();
-
             List<AttendanceRecordHikEntity> attRecords = list.stream().map(item -> {
                 AttendanceRecordHikEntity recordHikEntity = new AttendanceRecordHikEntity();
                 recordHikEntity.initAttrValue();
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
index e86819c5dc3dd4e5abc02cc02b3dbc7d005744f2..9a44912dcf6da828588ff2eebed44544dd57df48 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/IHikStaffService.java
@@ -33,4 +33,21 @@ public interface IHikStaffService {
 
 
 
+    /**
+     * 鑾峰彇浜哄憳浜鸿劯淇℃伅
+     *
+     * @param personReq
+     * @return
+     */
+    Rest<UserSearchInfo> getPersonPicByDevices(StaffReq personReq, DoorEntity doorEntity);
+
+
+    /**
+     * 涓嬪彂鍥剧墖鍒版寚瀹氳澶�
+     *
+     * @param personReq
+     * @return
+     */
+    Rest<UserSearchInfo> downPersonPicToDevice(StaffReq personReq, DoorEntity doorEntity);
+
 }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
index ed6193c93ed8e493c3a1dd4775492d34c64a3928..4ee1a38c8a82295982a2644dd913a52ad6bc3ec7 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/hik/staff/service/impl/HikStaffServiceImpl.java
@@ -202,4 +202,14 @@ public class HikStaffServiceImpl extends AbstractHikService implements IHikStaff
         }
     }
 
+    @Override
+    public Rest<UserSearchInfo> getPersonPicByDevices(StaffReq personReq, DoorEntity doorEntity) {
+        return null;
+    }
+
+    @Override
+    public Rest<UserSearchInfo> downPersonPicToDevice(StaffReq personReq, DoorEntity doorEntity) {
+        return null;
+    }
+
 }
diff --git a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
index 08baa860dd58de4c548e2eb8a571163aa24273a8..83f466436ee2eef53a365984ee3383dc567d007d 100644
--- a/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
+++ b/attendance-performance-manager/src/main/java/com/mortals/xhx/module/staff/service/impl/StaffServiceImpl.java
@@ -352,10 +352,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
                 //璁剧疆鍒濆瀵嗙爜
                 entity.setLoginPwd("123456");
             }
-
-            //鐢熸垚鐢ㄦ埛id,涓嶄笌闂ㄦ埛鏈嶅姟鐢ㄦ埛鐩稿悓
-//            Long userId = idgeneratorService.getLongId(USER_KEY);
-//            entity.setId(userId);
             userEntity.setLoginName(StrUtil.cleanBlank(entity.getLoginName()));
             userEntity.setRealName(entity.getName());
             userEntity.setUserType(UserType.WORK_PERSON.getValue());
@@ -537,7 +533,6 @@ public class StaffServiceImpl extends AbstractCRUDCacheServiceImpl<StaffDao, Sta
                                 staffCollect.remove(userInfoItem.getEmployeeNo());
                             }
                             StaffEntity staffEntity = this.getExtCache(StrUtil.padPre(userInfoItem.getEmployeeNo(), 8, "0"));
-                            //DeptEntity deptEntity = deptService.selectOne(new DeptQuery().deptCode(userInfoItem.getBelongGroup()));
                             //璁剧疆鍒伴粯璁ら儴闂�
                             //鍒ゆ柇鏈湴鏁版嵁鏄惁涓虹┖
                             if (ObjectUtils.isEmpty(staffEntity)) {
diff --git a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
index 4adff777d95af9b8ed0b15b3dfc4799a8fa57b91..ff0d0c7bfcc0647f2b08339dd3f5f675f77c5d34 100644
--- a/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
+++ b/attendance-performance-manager/src/test/java/com/mortals/httpclient/system.http
@@ -146,3 +146,8 @@ Content-Type: application/json
   "windowNum": "123123"
 }
 
+###璁惧鐩磋繛鏇存柊浜哄憳
+GET {{baseUrl}}/test/updatePersonsByDevices
+Content-Type: application/json
+
+{}
\ No newline at end of file