From bdbb62001dc4c3c63198270269795e54235c0e40 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 21 十二月 2023 15:34:14 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/UserUpdateRequest.java      |    2 
 server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java                                 |    6 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                        |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java |  249 +++++++++++++++++++++++-------
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |   70 --------
 server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java                           |   13 -
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java                            |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java          |   23 +-
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java    |   69 ++++++++
 9 files changed, 281 insertions(+), 159 deletions(-)

diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
index 80aef2c..66055b0 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/HkSyncController.java
@@ -71,19 +71,6 @@
     @ApiOperation("銆愭捣搴枫�戦棬绂佷簨浠惰闃呮帹閫佸鎺ュ鐞嗘帴鍙�")
     @PostMapping("/push/acs")
     public ApiResponse pushAcs(  HttpServletRequest request,@RequestBody EventAcsRequest param, HttpServletResponse response) {
-       /* try {
-            BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"UTF-8"));
-            String line = null;
-            StringBuffer sb = new StringBuffer();
-            while (true) {
-                if (!((line = br.readLine()) != null)) break;
-
-                sb.append(line);
-            }
-            System.out.println(sb.toString());
-        } catch (IOException e) {
-                throw new RuntimeException(e);
-        }*/
         String result = hkSyncPushService.dealAcsEvent(param,response);
         return ApiResponse.success(result);
     }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/UserUpdateRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/UserUpdateRequest.java
index 07c1826..02be9f9 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/UserUpdateRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/UserUpdateRequest.java
@@ -34,7 +34,7 @@
     @ApiModelProperty(value = "鏇存柊鏃堕棿,濡�2023-11-24 09:47:36")
     private Date editDate;
     @ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮�" ,required = true)
-    private Integer orgId;
+    private String orgId;
     @ApiModelProperty(value = "浜鸿劯鐓х墖鍦板潃" ,required = true)
     private String faceImg;
     @ApiModelProperty(value = "宸ュ彿" ,required = true)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index 42270b4..825ab86 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -169,7 +169,7 @@
      *娣诲姞浜鸿劯淇℃伅
      * @return
      */
-    public  static  BaseResponse<FaceAddOrEditesponse>  addFace(List<FaceAddRequest> param){
+    public  static  BaseResponse<FaceAddOrEditesponse>  addFace( FaceAddRequest  param){
         log.info("銆愭捣搴锋坊鍔犱汉鑴镐俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.addFace(JSONObject.toJSONString(param));
@@ -187,7 +187,7 @@
      *缂栬緫浜鸿劯淇℃伅
      * @return
      */
-    public  static  BaseResponse<FaceAddOrEditesponse>  editFace(List<FaceEditRequest> param){
+    public  static  BaseResponse<FaceAddOrEditesponse>  editFace( FaceEditRequest  param){
         log.info("銆愭捣搴风紪杈戜汉鑴镐俊鎭��================寮�濮�===="+JSONObject.toJSONString(param));
         try {
             String res = HKTools.editFace(JSONObject.toJSONString(param));
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
index d05fe0b..9c51476 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -103,8 +103,8 @@
     @ExcelColumn(name="娴峰悍鏍囪瘑")
     private String hkId;
 
-    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
-    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�")
+    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触")
+    @ExcelColumn(name="娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触")
     private Integer hkStatus;
 
     @ApiModelProperty(value = "娴峰悍鏈�杩戝悓姝ユ椂闂�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 9e8b703..659322e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -265,6 +265,7 @@
      * @return
      */
     @Override
+    @Transactional
     public  String syncUsers(UserListRequest param){
         List<UserListRespone>  list = ErpTool.getErpUserList(ErpConstants.userListUrl,param);
         if(list !=null && list.size()>0) {
@@ -756,8 +757,7 @@
                     ||StringUtils.isNotBlank(param.getFaceImg())
                     ||StringUtils.isNotBlank(param.getCode())
                     ||StringUtils.isNotBlank(param.getPhone())
-                    ||Objects.isNull(param.getEditDate())
-            ){
+                    ||Objects.isNull(param.getEditDate())){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST);
             }
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getId()).last("limit 1"));
@@ -776,10 +776,10 @@
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
-                member.setCompanyId(param.getOrgId());
+                member.setErpOrgId(param.getOrgId());
                 doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 memberMapper.insert(member);
-                //TODO 娴峰悍鏁版嵁鍒涘缓
+                //TODO 娴峰悍鏁版嵁鍒涘缓-------------淇敼-------------------
             }else{
                 Integer id = member.getId();
                 BeanUtils.copyProperties(param,member);
@@ -787,7 +787,7 @@
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
-                member.setCompanyId(param.getOrgId());
+                member.setErpOrgId(param.getOrgId());
                 member.setEditDate(new Date());
                 doorIds = getRoleIdByParam(param.getRoleIds(),member);
                 member.setErpDate(new Date());
@@ -836,14 +836,13 @@
      */
     private void dealMemberRoleEmpower(Member member, List<Integer> doorIds,Date startTime,Date endTime ) {
         //鍒犻櫎鎵�鏈夎�佺殑鎺堟潈淇℃伅
-//        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
-//                .eq(Empower::getMemberId,member.getId())
-//                .set(Empower::getIsdeleted,Constants.ONE)
-//                .set(Empower::getSendStatus,Constants.ZERO)
-//                );
-        empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                 .eq(Empower::getMemberId,member.getId())
-                );
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .set(Empower::getSendStatus,Constants.ZERO));
+//        empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+//                .eq(Empower::getMemberId,member.getId())
+//                );
         if(doorIds==null || doorIds.size() == 0){
           return;
         }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
index 9f44dd3..c983ab6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -1,16 +1,23 @@
 package com.doumee.service.business.impl.hksync;
 
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
-import com.doumee.core.haikang.model.param.request.DoorsListRequest;
-import com.doumee.core.haikang.model.param.request.ParkListRequest;
-import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.param.BaseResponse;
+import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
 import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
+import com.doumee.core.haikang.model.param.respose.TaskAdditionResponse;
+import com.doumee.core.haikang.service.HKService;
+import com.doumee.dao.business.model.Device;
 import com.doumee.service.business.HkSyncService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 璁惧淇℃伅琛⊿ervice瀹炵幇
@@ -94,5 +101,59 @@
     @Override
     public     void syncEmpowerDetailData() {
     }
+    public boolean addTaskDataAllDel(String userId, String taskId, List<Device> deviceList) {
+        if(StringUtils.isBlank(userId )){
+            //蹇呭~鍙傛暟鏍¢獙
+            return  false;
+        }
+        TaskDataAdditionRequest param = new TaskDataAdditionRequest();
+        param.setTaskId(taskId);
+        List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();//	object[]	True	璧勬簮瀵硅薄
+        for(Device d:deviceList){
+            TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest();
+            res.setChannelNos(d.getChannelNo().split(","));
+            res.setResourceType(d.getResourceType());
+            res.setResourceIndexCode(d.getHkId());
+            resourceInfos.add(res);
+        }
+        List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>();
+        TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest();
+        pinfo.setOperatorType(HKConstants.OPERA_TYPE.DEL.getKey());
+        pinfo.setPersonId(userId);
+        param.setResourceInfos(resourceInfos);
+        param.setPersonInfos(personInfos);
+        BaseResponse response =  HKService.taskDataAddition(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
+            return true;
+        }else{
+            return  false;
+        }
+    }
+    public boolean startTask(String taskId) {
+        TaskProgressRequest param = new TaskProgressRequest();
+        param.setTaskId(taskId);
+        BaseResponse response =  HKService.taskStart(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){
+            return true;
+        }else{
+            return  false;
+        }
+    }
+
+    public  String hkTaskAddtion() {
+        TaskAdditionRequest param = new TaskAdditionRequest();
+        param.setTaskType(HKConstants.TASK_TYPE.FACE.getKey());
+        BaseResponse<TaskAdditionResponse> response = HKService.taskAddition(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                && response.getData()!=null
+                && StringUtils.isNotBlank(response.getData().getTaskId())){
+            return  response.getData().getTaskId();
+        }else{
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "娴峰悍鍒涘缓涓嬭浇浠诲姟澶辫触==================");
+        }
+    }
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
index b201c67..87c31ce 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -147,7 +147,7 @@
         Constants.DEALING_HK_EMPOWER =true;
         try {
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
-//            dealDelListTask(getDealList(Constants.ONE));
+            dealDelListTask(getDealList(Constants.ONE));
             //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁
             dealNewListTask(getDealList(Constants.ZERO));
         }catch (Exception e){
@@ -206,7 +206,7 @@
         if(list ==null || list.size()==0){
             return;
         }
-        clearAllEmpowerFirst(list);
+//        clearAllEmpowerFirst(list);
         Date date = new Date();
         //鍒涘缓浠诲姟
         String taskId = hkTaskAddtion();
@@ -256,8 +256,8 @@
         //鍒涘缓浠诲姟
         String taskId = hkTaskAddtion();
         for(Empower c : list) {
-            //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
-            addTaskDataAll(c,taskId,allDevice);
+            //鍚戜换鍔″埅闄や汉鍛樼殑鎵�鏈夎澶囦俊鎭暟鎹�
+            addTaskDataAllDel(c.getHkId(),taskId,allDevice);
         }
         startTask(taskId);
     }
@@ -295,67 +295,7 @@
             return  false;
         }
     }
-    private boolean addTaskDataAll(Empower c,String taskId,List<Device> deviceList) {
-        if(StringUtils.isBlank(c.getMemberHkId() )
-                ||StringUtils.isBlank(c.getDeviceChannelNo())
-                ||StringUtils.isBlank(c.getDeviceType())
-                ||StringUtils.isBlank(c.getDeviceIndexCode())){
-            //蹇呭~鍙傛暟鏍¢獙
-            return  false;
-        }
-        TaskDataAdditionRequest param = new TaskDataAdditionRequest();
-        param.setTaskId(taskId);
-        List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();//	object[]	True	璧勬簮瀵硅薄
-        for(Device d:deviceList){
-            TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest();
-            res.setChannelNos(d.getChannelNo().split(","));
-            res.setResourceType(d.getResourceType());
-            res.setResourceIndexCode(c.getDeviceIndexCode());
-            resourceInfos.add(res);
-        }
-        List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>();
-        TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest();
-        pinfo.setName(c.getMemberName());
-        pinfo.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime()));
-        pinfo.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime()));
-        pinfo.setOperatorType(HKConstants.OPERA_TYPE.DEL.getKey());
-        pinfo.setPersonId(c.getMemberHkId());
-        param.setResourceInfos(resourceInfos);
-        param.setPersonInfos(personInfos);
-        BaseResponse response =  HKService.taskDataAddition(param);
-        if(response!=null
-                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
-            return true;
-        }else{
-            return  false;
-        }
-    }
 
-    private boolean startTask(String taskId) {
-        TaskProgressRequest param = new TaskProgressRequest();
-        param.setTaskId(taskId);
-        BaseResponse response =  HKService.taskStart(param);
-        if(response!=null
-                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
-            return true;
-        }else{
-            return  false;
-        }
-    }
-
-    private String hkTaskAddtion() {
-        TaskAdditionRequest param = new TaskAdditionRequest();
-        param.setTaskType(HKConstants.TASK_TYPE.FACE.getKey());
-        BaseResponse<TaskAdditionResponse> response = HKService.taskAddition(param);
-        if(response!=null
-                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
-                && response.getData()!=null
-                && StringUtils.isNotBlank(response.getData().getTaskId())){
-            return  response.getData().getTaskId();
-        }else{
-            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "娴峰悍鍒涘缓涓嬭浇浠诲姟澶辫触==================");
-        }
-    }
 
     private List<Empower> getDealList(int del ) {
         MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
@@ -367,7 +307,7 @@
         queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
         queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait);
-//        queryWrapper.eq( Empower::getIsdeleted,del);
+        queryWrapper.eq( Empower::getIsdeleted,del);
 //        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
index 6f4a268..8635604 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.erp.model.openapi.request.UserUpdateRequest;
 import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
@@ -15,13 +16,9 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.ImageBase64Util;
-import com.doumee.dao.business.CompanyMapper;
-import com.doumee.dao.business.MemberMapper;
-import com.doumee.dao.business.ParksMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.CompanyJoinMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Parks;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.ERPSyncService;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -30,6 +27,7 @@
 import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -47,9 +45,15 @@
     @Autowired
     private CompanyMapper companyMapper;
     @Autowired
+    private MemberRoleMapper memberRoleMapper;
+    @Autowired
+    private EmpowerMapper empowerMapper;
+    @Autowired
     private MemberMapper memberMapper;
     @Autowired
     private ERPSyncService erpSyncService;
+    @Autowired
+    private DeviceMapper deviceMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
@@ -224,47 +228,132 @@
             String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
             for(Member c : list){
-                if( c.getCompanyId() == null){
-                    //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
-                    continue;
-                }
-                UserAddRequest  addHkModel = new UserAddRequest();
-                if(StringUtils.isBlank(c.getHkId())){
-                    //濡傛灉鏂板鍚屾鏁告摎
-                    if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
-                        //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
-                        c.setHkStatus(Constants.TWO);
-                        memberMapper.updateById(c);
-                        continue ;
-                    }
-                    addHkModel = getUserAddModel(c,path);
-                    c.setHkId(addHkModel.getPersonId());
-                }else{
-                    //鍒犻櫎娴峰悍鍘熸湁鐨勬暟鎹紝鍐嶆柊澧炵粍缁�
-                    addHkModel = getUserAddModel(c,path);
-                    c.setHkId(addHkModel.getPersonId());
-                }
-                if(addHkModel == null){
-                    //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥�
-                    noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
-                    continue;
-                }
-                //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛岀劧鍚庢柊澧烇級
-                doHkDeleteUser(c.getId(),c.getHkId(),date);
-                //澶勭悊鏂板鏁版嵁
-                BaseResponse<UserAddResponse> result =  HKService.addUser(addHkModel);
-                if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
-                    c.setFaceId(result.getData().getFaceId());
-                    memberMapper.updateById(c);
-                }else{
-                    noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
-                }
+                dealMemberInfoBiz(c,date,path) ;
             }
         }catch (Exception e){
             e.printStackTrace();
         }finally {
             Constants.DEALING_HK_USER =false;
         }
+    }
+
+    @Transactional
+    private boolean dealMemberInfoBiz(Member c, Date date, String path) {
+        if( c.getCompanyId() == null){
+            //濡傛灉娌℃湁缁勭粐涓嶅仛澶勭悊
+            return  false;
+        }
+        if(StringUtils.isBlank(c.getHkId())){
+            //濡傛灉鏂板鍚屾鏁告摎
+            dealUserHkAddBiz(c,date,path);
+        }else{
+            //濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
+            dealUserHkEditBiz(c,date,path);
+        }
+        return  false;
+    }
+
+    /**
+     *  濡傛灉涔嬪墠宸茬粡鍜屾捣搴峰悓姝ワ紝鍒欐洿鏂扮敤鎴锋暟鎹互鍙婁汉鑴告暟鎹紙鍙兘鏂板浜鸿劯 涔熷彲鑳芥洿鏂颁汉鑴革級
+     * @param c
+     * @param date
+     * @param path
+     */
+    private void dealUserHkEditBiz(Member c, Date date, String path) {
+        c.setHkStatus(Constants.ONE);
+        if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
+            //澶勭悊鍒犻櫎鏁版嵁锛堝垹闄や箣鍓嶄笅鍙戠殑娴峰悍浜哄憳淇℃伅锛�
+            boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
+            c.setHkStatus(r?Constants.ONE:Constants.TWO);
+            c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
+        }else{
+            //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
+            UserAddRequest  addHkModel = getUserAddModel(c,path,1);//淇敼
+            //澶勭悊鏂板鏁版嵁
+            BaseResponse result =  HKService.editUser(addHkModel);
+            if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+                if(StringUtils.isNotBlank(c.getFaceImg())){
+                    //濡傛灉鏈変汉鑴哥収鐗囷紝澶勭悊浜鸿劯鐓х墖鍚屾
+                    String faceid = dealMemberFace(c,path);
+                    if(StringUtils.isBlank(faceid)){
+                        noticeErpFail(c,Constants.ZERO,"浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒");
+                        c.setHkStatus(Constants.TWO);
+                        c.setRemark("浜鸿劯淇℃伅鏇存柊澶辫触锛岃妫�鏌ヤ汉鑴哥収鐗囨槸鍚﹀悎娉曪紒锛�");
+                    }else{
+                        c.setFaceId(faceid);
+                    }
+                }
+            }else{
+                noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
+                c.setHkStatus(Constants.TWO);
+                c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�");
+            }
+
+        }
+        c.setHkDate(date);
+        memberMapper.updateById(c);
+    }
+
+    /**
+     * 鏂扮敤鎴峰悓姝ュ埌娴峰悍骞冲彴
+     * @param c
+     * @param date
+     * @param path
+     * @return
+     */
+    private boolean dealUserHkAddBiz(Member c, Date date, String path) {
+        if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){
+            //鍒犻櫎鐨勭粍缁囷紝涓嶅仛澶勭悊,娴峰悍鐘舵�佹洿鏂颁负涓嶅鐞嗭紝涓嬫涓嶅啀澶勭悊杩欎釜璁板綍
+            c.setHkStatus(Constants.TWO);
+            c.setRemark("鏈悓姝ユ暟鎹紝鐩存帴鍒犻櫎");
+            memberMapper.updateById(c);
+            return  false;
+        }
+        UserAddRequest addHkModel = getUserAddModel(c,path,0);//鏂板
+        if(addHkModel == null){
+            //濡傛灉浜鸿劯鏁版嵁涓嶆纭紝涓嬭浇澶辫触绛夊師鍥�
+            noticeErpFail(c,Constants.ZERO,"浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
+            c.setHkStatus(Constants.TWO);
+            c.setRemark("浜鸿劯鐓х墖涓嶅瓨鍦紝鑾峰彇澶辫触锛�");
+            memberMapper.updateById(c);
+            return  false;
+        }
+        //澶勭悊鏂板鏁版嵁
+        BaseResponse<UserAddResponse> result =  HKService.addUser(addHkModel);
+        if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){
+            c.setFaceId(result.getData().getFaceId());
+            c.setHkStatus(Constants.ONE);
+            c.setHkId(addHkModel.getPersonId());
+            memberMapper.updateById(c);
+            return  true;
+        }else{
+            noticeErpFail(c,Constants.ZERO,"浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒"+result.getCode()+result.getMsg());
+            c.setHkStatus(Constants.TWO);
+            c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃淇鍚庨噸璇曪紒");
+            memberMapper.updateById(c);
+            return  false;
+        }
+    }
+
+    /**
+     * 澶勭悊鏂板鎴栬�呬慨鏀逛汉鑴镐俊鎭�
+     * @param c
+     * @param path
+     * @return
+     */
+    private String dealMemberFace(Member c,String path) {
+        if(StringUtils.isBlank(c.getFaceId())){
+            BaseResponse<FaceAddOrEditesponse> response = HKService.addFace(getFaceAddModel(c,path));
+            if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)&& response.getData()!=null ){
+                return  response.getData().getFaceId();
+            }
+        }else{
+            BaseResponse response = HKService.editFace(getFaceUpdateModel(c,path));
+            if(StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+                return  c.getFaceId();
+            }
+        }
+        return null;
     }
 
     /**
@@ -287,53 +376,95 @@
      * @param id
      * @param date
      */
-    private void doHkDeleteUser(Integer  id,String delHkIds,  Date date) {
+    private boolean doHkDeleteUser(Integer  id,String delHkIds,  Date date ) {
         if(StringUtils.isBlank(delHkIds)){
-            return;
+            return false;
         }
         UserDelRequest request = new UserDelRequest();
         request.setPersonIds(new String[]{delHkIds});
         BaseResponse<List<UserDelResponse>> result =  HKService.delBatchUser(request);
         if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
             List<String> fIds = new ArrayList<>();
+            //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
             if(result.getData()!=null && result.getData().size()>0){
                 log.info("娴峰悍鍒犻櫎鐢ㄦ埛澶辫触锛�==============="+result.getData().get(0).getPersonId());
-               /*   for(UserDelResponse r : result.getData()){
-                  if(!r.getCode().equals("0x00072001")){
-                        //涓嶅瓨鍦ㄧ殑涔熺畻鍒犻櫎鎴愬姛
-                         fIds.add(r.getPersonId());//鍒犻櫎澶辫触鐨勬暟鎹泦鍚�
-                    }
-                }}*/
+                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                        .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触
+                        .set(Member::getHkDate,date)
+                        .in(Member::getId, id));
             }else{
                 //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
-                companyMapper.update(null,new UpdateWrapper<Company>().lambda()
-                        .set(Company::getHkStatus,Constants.ONE)
-                        .set(Company::getHkDate,date)
-                        .in(Company::getId, id));
+                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                        .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
+                        .set(Member::getHkDate,date)
+                        .in(Member::getId, id));
             }
+            return true;
         }
+        return false;
     }
 
-    private UserAddRequest getUserAddModel(Member c,String path) {
+    /**
+     * 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭�
+     * @param userId
+     * @param allDevice
+     */
+    private void delUserHkRolle(String userId,List<Device> allDevice) {
+        //鍒涘缓浠诲姟
+        String taskId = hkTaskAddtion();
+        //
+       if(taskId!=null){
+           //鍒犻櫎鎵�鏈夎澶囦笂鐨勬潈闄�
+           addTaskDataAllDel(userId,taskId,allDevice);
+           startTask(taskId);
+       }
+    }
+
+    private UserAddRequest getUserAddModel(Member c,String path,int type) {
         UserAddRequest model = new UserAddRequest();
         model.setOrgIndexCode(c.getCompanyHkId());
-        model.setPersonId(HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", ""));
+        model.setPersonId(type == 0 ?HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", ""):c.getHkId());
         model.setGender(Constants.formatIntegerNum(c.getSex())+"");
         model.setPersonName(c.getName());
-        if(StringUtils.isNotBlank(c.getFaceImg())){
+        if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){
             model.setFaces(new ArrayList<>());
             UserAddFaceRequest face = new UserAddFaceRequest();
             String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
-            if(face.getFaceData() == null){
+            if(imageBase== null){
                 //浜鸿劯鏁版嵁涓嶆纭紝
                 return  null;
             }
+            face.setFaceData(imageBase);
             model.getFaces().add(face);
 
         }
         return  model;
-
     }
-
+    private FaceAddRequest getFaceAddModel(Member c,String path) {
+        FaceAddRequest model = new FaceAddRequest();
+        model.setPersonId(c.getHkId());
+        if(StringUtils.isNotBlank(c.getFaceImg())){
+            String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
+            if(imageBase == null){
+                //浜鸿劯鏁版嵁涓嶆纭紝
+                return  null;
+            }
+            model.setFaceData(imageBase);
+        }
+        return  model;
+    }
+    private FaceEditRequest getFaceUpdateModel(Member c,String path) {
+        FaceEditRequest model = new FaceEditRequest();
+        model.setFaceId(c.getFaceId());
+        if(StringUtils.isNotBlank(c.getFaceImg())){
+            String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg());
+            if(imageBase == null){
+                //浜鸿劯鏁版嵁涓嶆纭紝
+                return  null;
+            }
+            model.setFaceData(imageBase);
+        }
+        return  model;
+    }
 
 }
diff --git a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
index 172f38c..f120330 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -157,7 +157,9 @@
 
 
 
-    @ApiOperation(value = "FTP璐︽埛淇℃伅", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝FTP璐︽埛淇℃伅")
+    @ApiOperation(value = "FTP璐︽埛淇℃伅", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝FTP璐︽埛淇℃伅,鍏朵腑銆怓TP璧勬簮璁块棶鏄犲皠鍦板潃銆戠敤浜庡浘鐗囧洖鏄句娇鐢紝" +
+            "姣斿浜鸿劯鍥剧墖鍥炴樉鎷兼帴锛氥�怓TP璧勬簮璁块棶鏄犲皠鍦板潃銆�+銆怓TP鐢ㄦ埛鍥剧墖瀛樺偍鐩綍銆�+銆愬疄闄呬汉鑴稿浘鐗囧瓨鍌ㄥ瓧娈靛唴瀹广��" +
+            "濡傦細http://175.27.187.84/file4/member/20231211/skjd-skdjf4enc-flgk.png")
     @GetMapping("/resource/ftpAccount")
     public ApiResponse<Map<String,Object>> ftpAccount() {
         Map<String,Object> map = new HashMap<>();
@@ -177,6 +179,8 @@
         systemDictDataBiz.queryByCode(Constants.FTP,Constants.DEVICE_EVENT_IMG).getCode());
         map.put("FTP鐢ㄦ埛鍥剧墖瀛樺偍鐩綍",
         systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
+        map.put("FTP璧勬簮璁块棶鏄犲皠鍦板潃",
+        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode());
         return  ApiResponse.success(map);
     }
 

--
Gitblit v1.9.3