nidapeng
2024-03-18 f2d095dd7f3df56b09564ba46dcaa36d912ae4a8
整理
已添加6个文件
已修改8个文件
557 ■■■■ 文件已修改
server/admin_timer/src/main/java/com/doumee/Main.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/java/com/doumee/TimerApplication.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/resources/application.yml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/admin_timer/src/main/java/com/doumee/Main.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.doumee;
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
server/admin_timer/src/main/java/com/doumee/TimerApplication.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.doumee;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.scheduling.annotation.EnableAsync;
/**
 * å¯åŠ¨ç±»
 * @author Eva.Caesar Liu
 * @date 2023/03/21 14:49
 */
@Slf4j
@EnableAsync
@SpringBootApplication
@MapperScan("com.doumee.dao.*")
public class TimerApplication {
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(TimerApplication.class);
        context.getEnvironment();
    }
}
server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.doumee.task;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * å®šæ—¶ä»»åŠ¡
 * @author jiangping
 * @date 2021-10-10 14:40:35
 * https://www.bejson.com/othertools/cron/  cron è¡¨è¾¾å¼ç”Ÿæˆåœ°å€
 */
@Component
@EnableScheduling
public class ScheduleSendTaskTool {
    @Autowired
    private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
    public static int endId = 0;
    /**
     * å®šæ—¶åŒæ­¥å†…部人员授权到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 30*1000)
    public void syncEmpowerData()  {
      endId = hkSyncEmpowerService.syncEmpowerData(0);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
      endId = hkSyncEmpowerService.syncEmpowerData(endId);
    }
}
server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.doumee.task;
import com.doumee.config.DataSyncConfig;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * å®šæ—¶ä»»åŠ¡
 * @author jiangping
 * @date 2021-10-10 14:40:35
 * https://www.bejson.com/othertools/cron/  cron è¡¨è¾¾å¼ç”Ÿæˆåœ°å€
 */
@Component
@EnableScheduling
public class ScheduleTaskDetailTool {
    @Autowired
    private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
    /**
     * å®šæ—¶æŸ¥è¯¢äººå‘˜å®žé™…下发权限结果,是否已经下载成功
     * @throws Exception
     */
    @Scheduled(fixedDelay= 3*1000)
    public void syncEmpowerDetailData()  {
        hkSyncEmpowerService.syncEmpowerDetailData();
    }
}
server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.doumee.task;
import com.doumee.config.DataSyncConfig;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
 * å®šæ—¶ä»»åŠ¡
 * @author jiangping
 * @date 2021-10-10 14:40:35
 * https://www.bejson.com/othertools/cron/  cron è¡¨è¾¾å¼ç”Ÿæˆåœ°å€
 */
@Component
@EnableScheduling
public class ScheduleTaskProgressTool {
    @Autowired
    private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
    /**
     * å®šæ—¶æŸ¥è¯¢äººå‘˜ä¸‹å‘海康结果(任务是否已下载结束)
     * @throws Exception
     */
    @Scheduled(fixedDelay=60*1000)
    public void syncEmpowerResultData()  {
        hkSyncEmpowerService.syncEmpowerResultData();
    }
}
server/admin_timer/src/main/resources/application.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
# é¡¹ç›®ä¿¡æ¯é…ç½®
project:
  name: è®¿å®¢ç³»ç»Ÿ
  version: 1.0.0
  env: development
#  env: production
spring:
  #  application:
  #    name: doumeemes
  profiles:
    active: proHS
  # JSON返回配置
  jackson:
    # é»˜è®¤æ—¶åŒº
    time-zone: GMT+8
    # é»˜è®¤æ—¥æœŸæ ¼å¼åŒ–
    date-format: yyyy-MM-dd HH:mm:ss
  servlet:
    multipart:
      max-file-size: 200MB
      max-request-size: 200MB
      enabled: true
# MyBatis配置
mybatis-plus:
  mapper-locations: classpath*:/mappers/**/*.xml
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# ç¼“存内容设置
cache:
  session:
    # ä¼šè¯è¿‡æœŸæ—¶é•¿(s)
    expire: 18000
  captcha:
    # éªŒè¯ç è¿‡æœŸæ—¶é•¿(s)
    expire: 300
# è·Ÿè¸ªæ—¥å¿—
trace:
  # å¼€å¯æ™ºèƒ½è·Ÿè¸ªæ¨¡å¼
  smart: true
  # æŽ’除跟踪的URL正则
  exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.*
# æ—¥å¿—配置
logback:
  level: INFO
  appender: ${project.env}
# dao层的日志设置为debug,方便查看sql
logging:
  level:
    doumeemes.dao: debug
knife4j:
  enable: true
  basic:
    enable: true
    username: admin
    password: 111111
# WEB服务器配置
server:
  compression:
    enabled: true
    mime-types: application/json
  port: 10031
  tomcat:
    max-swallow-size: -1
  servlet:
    session:
      timeout: PT3H  #表示12小时
server/dmvisit_admin/pom.xml
@@ -74,7 +74,7 @@
        </pluginManagement>
    </build>-->
    <build>
        <finalName>dmvisit_admin</finalName>
        <finalName>admin_interface</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -127,30 +127,30 @@
    public void syncVisitData()  {
        hkSyncVisitService.syncVisitData();
    }
    /**
 /*   *//**
     * å®šæ—¶åŒæ­¥å†…部人员授权到海康系统
     * @throws Exception
     */
    @Scheduled(fixedDelay= 10*1000)
     *//*
    @Scheduled(fixedDelay= 3*1000)
    public void syncEmpowerData()  {
        hkSyncEmpowerService.syncEmpowerData();
    }
    /**
    *//**
     * å®šæ—¶æŸ¥è¯¢äººå‘˜ä¸‹å‘海康结果(任务是否已下载结束)
     * @throws Exception
     */
     *//*
    @Scheduled(fixedDelay= 60*1000)
    public void syncEmpowerResultData()  {
        hkSyncEmpowerService.syncEmpowerResultData();
    }
    /**
    *//**
     * å®šæ—¶æŸ¥è¯¢äººå‘˜å®žé™…下发权限结果,是否已经下载成功
     * @throws Exception
     */
     *//*
    @Scheduled(fixedDelay= 60*1000)
    public void syncEmpowerDetailData()  {
        hkSyncEmpowerService.syncEmpowerDetailData();
    }
    }*/
    /**
     * å®šæ—¶åŒæ­¥è½¦è¾†åŒ…期到海康系统
     * @throws Exception
server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -69,7 +69,7 @@
    void syncVisitData();
    void getOutTimeVisitRecord( );
    void syncEmpowerData();
    Integer syncEmpowerData(Integer startPage);
    void syncEmpowerDataNew(int start,int end);
    void syncParkBookData();
    void syncParkBookBySingleModel(ParkBook c);
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -233,7 +233,7 @@
            queryWrapper.lambda().eq(DeviceRole::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(DeviceRole::getName, pageWrap.getModel().getName());
            queryWrapper.lambda().like(DeviceRole::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getIsDefault() != null) {
            queryWrapper.lambda().eq(DeviceRole::getIsDefault, pageWrap.getModel().getIsDefault());
@@ -270,6 +270,7 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        queryWrapper.lambda().orderByAsc( DeviceRole::getName);
        IPage<DeviceRole> newPage = deviceRoleMapper.selectPage(page, queryWrapper);
        if(null != newPage && newPage.getRecords().size() > 0) {
            List<DeviceRole> deviceRoleList = newPage.getRecords();
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -642,8 +642,8 @@
                        .like(Member::getPhone,pageWrap.getModel().getKeyword())
                        .or().like(Member::getName,pageWrap.getModel().getKeyword())
                        .or().like(Member::getCode,pageWrap.getModel().getKeyword()))
                .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId)
                .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                .isNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId)
                .isNotNull(pageWrap.getModel().getHasFace()!=null&& Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
                .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
                .eq(Objects.nonNull(pageWrap.getModel().getHkStatus()),Member::getHkStatus,pageWrap.getModel().getHkStatus())
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -115,7 +115,8 @@
    public void getOutTimeVisitRecord(){
    }
    @Override
    public  void syncEmpowerData() {
    public  Integer syncEmpowerData(Integer startPage) {
        return  null;
    }
    @Override
    public  void   syncEmpowerDataNew(int start,int end) {
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -63,101 +63,105 @@
           if(list == null || list.size() ==0){
               return;
           }
           int tryNum = 1;
           try {
               tryNum = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.RETRY_CONNECT_NUM).getCode());
           }catch (Exception e){
           }
           for(Empower c : list){
               TaskPersonDetailRequest param = new TaskPersonDetailRequest();
               param.setPageNo(1);
               param.setPageSize(100);
            Thread t1=new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                    for(Empower c : list){
                        TaskPersonDetailRequest param = new TaskPersonDetailRequest();
                        param.setPageNo(1);
                        param.setPageSize(100);
//               param.setPersonIds(new ArrayList<>());
               param.setPersonIds(new String[]{c.getMemberHkId()});
               param.setTaskId(c.getHkId());
               TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
               rec.setResourceIndexCode(c.getDeviceIndexCode());
               rec.setResourceType(c.getDeviceType());
                        param.setPersonIds(new String[]{c.getMemberHkId()});
                        param.setTaskId(c.getHkId());
                        TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
                        rec.setResourceIndexCode(c.getDeviceIndexCode());
                        rec.setResourceType(c.getDeviceType());
//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
               param.setResourceInfo(rec);
               //查询下发状态
               BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
               if(response!=null
                       && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null
                       ) {
                   if (response.getData().getList() != null
                           && response.getData().getList().size() > 0) {
                       TaskPersonDetailResponse model = response.getData().getList().get(0);
                       if (model != null && StringUtils.equals(model.getPersondownloadResult(), "0")) {
                           //更新已完成下载任务
                           String remark = "";
                           String cardInfo = "卡片下发失败";
                           TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
                           if (d.getCards() != null && d.getCards().size() > 0) {
                               cardInfo = "卡片:【";
                               for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
                                   cardInfo += card.getId() + " ";
                               }
                               cardInfo += "】下发成功";
                           }
                           if (d.getFaces() == null || d.getFaces().size() == 0) {
                               remark = cardInfo + ", ä¸æ”¯æŒäººè„¸è®¾å¤‡ï¼";
                           } else {
                               remark = "" + cardInfo + ",人脸下发成功!";
                           }
                           empowerMapper.update(null, new UpdateWrapper<Empower>()
                                   .lambda()
                                   .eq(Empower::getId, c.getId())
                                   .set(Empower::getRemark, remark)
                                   .set(Empower::getSendInfo, remark)
                                   .set(Empower::getSendStatus, Constants.EmpowerStatus.pass));
                       } else {
                           empowerMapper.update(null, new UpdateWrapper<Empower>()
                                   .lambda()
                                   .eq(Empower::getId, c.getId())
                                   .set(Empower::getRemark, "下发失败")
                                   .set(Empower::getSendInfo, "下发失败")
                                   .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                       }
                   } else {
                       //如果是已删除的数据,下发失败(防止设备离线),则尝试重新下发任务
                       if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
                        param.setResourceInfo(rec);
                        //查询下发状态
                        BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
                        if(response!=null
                                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null
                        ) {
                            if (response.getData().getList() != null
                                    && response.getData().getList().size() > 0) {
                                TaskPersonDetailResponse model = response.getData().getList().get(0);
                                if (model != null && StringUtils.equals(model.getPersondownloadResult(), "0")) {
                                    //更新已完成下载任务
                                    String remark = "";
                                    String cardInfo = "卡片下发失败";
                                    TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
                                    if (d.getCards() != null && d.getCards().size() > 0) {
                                        cardInfo = "卡片:【";
                                        for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
                                            cardInfo += card.getId() + " ";
                                        }
                                        cardInfo += "】下发成功";
                                    }
                                    if (d.getFaces() == null || d.getFaces().size() == 0) {
                                        remark = cardInfo + ", ä¸æ”¯æŒäººè„¸è®¾å¤‡ï¼";
                                    } else {
                                        remark = "" + cardInfo + ",人脸下发成功!";
                                    }
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, remark)
                                            .set(Empower::getSendInfo, remark)
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.pass));
                                } else {
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, "下发失败")
                                            .set(Empower::getSendInfo, "下发失败")
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                                }
                            } else {
                                //如果是已删除的数据,下发失败(防止设备离线),则尝试重新下发任务
                                if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
//                               && Constants.formatIntegerNum(c.getTryNum())+1 < tryNum ){
                           empowerMapper.update(null, new UpdateWrapper<Empower>()
                                   .lambda()
                                   .eq(Empower::getId, c.getId())
                                   .set(Empower::getRemark,  "下发失败,等待重新删除权限")
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark,  "下发失败,等待重新删除权限")
//                                   .set(Empower::getHkId,null)
//                                   .set(Empower::getSendDate,null)
                                   .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
                                   .set(Empower::getSendInfo, "下发失败,等待重新删除权限")
                                   .set(Empower::getSendStatus, Constants.EmpowerStatus.wait));
                       }else{
                           empowerMapper.update(null, new UpdateWrapper<Empower>()
                                   .lambda()
                                   .eq(Empower::getId, c.getId())
                                   .set(Empower::getRemark, "下发失败")
                                   .set(Empower::getSendInfo, "下发失败")
                                   .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                       }
                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
                                            .set(Empower::getSendInfo, "下发失败,等待重新删除权限")
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.wait));
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, "删除权限下发失败")
                                            .set(Empower::getSendInfo, "删除权限下发失败")
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                                }else{
                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getId, c.getId())
                                            .set(Empower::getRemark, "下发失败")
                                            .set(Empower::getSendInfo, "下发失败")
                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                                }
                            }
                            checkDelMemberTask(c.getMemberId());
                        }
                    }
                    }catch (Exception e){
                      /* empowerMapper.update(null, new UpdateWrapper<Empower>()
                               .lambda()
                               .eq(Empower::getId, c.getId())
                               .set(Empower::getRemark, Constants.equalsInteger(c.getIsdeleted(), Constants.ZERO) ? "下发失败" : "删除权限成功")
                               .set(Empower::getSendInfo, "删除权限成功")
                               .set(Empower::getSendStatus, Constants.equalsInteger(c.getIsdeleted(), Constants.ZERO) ? Constants.EmpowerStatus.fail : Constants.EmpowerStatus.pass));
                         */
                     }
                   checkDelMemberTask(c.getMemberId());
               }
           }
                    }finally {
                        Constants.DEALING_HK_EMPOWER_DETAIL=false;
                    }
                }
            });
            t1.start();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            Constants.DEALING_HK_EMPOWER_DETAIL=false;
        }
    }
@@ -279,30 +283,41 @@
           if(list == null || list.size() ==0){
               return;
           }
           for(Empower c : list){
               TaskProgressRequest param = new TaskProgressRequest();
               param.setTaskId(c.getHkId());
               //查询下发状态
               BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param);
               if(response!=null
                       && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
                       && response.getData()!=null
                       && response.getData().getIsDownloadFinished() != null
                       && response.getData().getIsDownloadFinished() ){
                   //更新已完成下载任务
                   empowerMapper.update(null,new UpdateWrapper<Empower>()
                           .lambda()
                           .eq(Empower::getHkId,c.getHkId() )
                           .set(Empower::getSendInfo,"任务已下载完成" )
                           .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) );
               }
           }
            Thread t1=new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        for(Empower c : list){
                            TaskProgressRequest param = new TaskProgressRequest();
                            param.setTaskId(c.getHkId());
                            //查询下发状态
                            BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param);
                            if(response!=null
                                    && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
                                    && response.getData()!=null){
                                //更新已完成下载任务
                                if(  response.getData().getIsDownloadFinished() != null
                                        && response.getData().getIsDownloadFinished() ){
                                    empowerMapper.update(null,new UpdateWrapper<Empower>()
                                            .lambda()
                                            .eq(Empower::getHkId,c.getHkId() )
                                            .set(Empower::getSendInfo,"任务已下载完成" )
                                            .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) );
                                }
                            }
                        }
                    }catch (Exception e1){
                        e1.printStackTrace();
                    }finally {
                        Constants.DEALING_HK_EMPOWER_RESULT =false;
                    }
                }
            });
            t1.start();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            Constants.DEALING_HK_EMPOWER_RESULT =false;
        }
    }
@@ -311,21 +326,47 @@
     * å¤„理人员授权数据,定时下发
     */
    @Override
    public  void syncEmpowerData() {
        if(Constants.DEALING_HK_EMPOWER){
            return   ;
        }
        Constants.DEALING_HK_EMPOWER =true;
    public  Integer syncEmpowerData(Integer endId) {
//        if(Constants.DEALING_HK_EMPOWER){
//            return  null ;
//        }
//        Constants.DEALING_HK_EMPOWER =true;
        try {
            //先删除所有需要取消授权的数据
            dealDelListTask(getDealList(Constants.ONE));
            //查询所有需要同步的数据,重新下发最新人员权限即可
            dealNewListTask(getDealList(Constants.ZERO));
            List<Empower> allList =getAllWaitDealList( endId);
            if(allList !=null && allList.size()>0){
                //查询所有需要同步的数据,重新下发最新人员权限即可
//            dealNewListTask(getDealList(Constants.ZERO,endId));
                List<Empower> dellist = new ArrayList<>();
                List<Empower> addlist = new ArrayList<>();
                for(Empower e : allList){
                    if(Constants.equalsInteger(e.getIsdeleted(),Constants.ONE)){
                        dellist.add(e);
                    }else {
                        addlist.add(e);
                    }
                }
                Thread t1=new Thread(new Runnable() {
                    @Override
                    public void run() {
                        if(dellist!=null &&dellist.size()>0) {
                            dealDelListTask(dellist);
                        }
                        if(addlist!=null &&addlist.size()>0) {
                            dealNewListTask(addlist);
                        }
                    }
                });
                t1.start();
                return allList.get(allList.size()-1).getId();
            }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            Constants.DEALING_HK_EMPOWER =false;
//            Constants.DEALING_HK_EMPOWER =false;
        }
        return null;
    }
    @Override
    public  void syncEmpowerDataNew(int start,int end) {
@@ -405,7 +446,21 @@
                .set(Empower::getEditDate,date)
                .in(Empower::getId,errorList));
    }
    public class TaskRuner implements Runnable{
        private    List<Empower> list ;
        @Override
        public void run() {
            dealNewListTask(list);
        }
        public List<Empower> getList() {
            return list;
        }
        public void setList(List<Empower> list) {
            this.list = list;
        }
    }
    private void dealNewListTask(List<Empower> list) {
        //按照父级申请分批处理每次申请数据
        if(list ==null || list.size()==0){
@@ -520,7 +575,7 @@
            return  false;
        }
    }
    private List<Empower> getDealList(int del  ) {
    private List<Empower> getDealList(int del ,Integer endId ) {
        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Empower.class);
        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
@@ -530,7 +585,26 @@
        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.gt(Empower::getId,endId);
        queryWrapper.orderByAsc(Empower::getId );
//        queryWrapper.orderByAsc(Empower::getCreateDate );
        queryWrapper.last("limit 100");//每次限制下发100个
        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
        return list;
    }
    private List<Empower> getAllWaitDealList(int endId   ) {
        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Empower.class);
        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
        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.gt(Empower::getId,endId);
        queryWrapper.orderByAsc(Empower::getId );
//        queryWrapper.orderByAsc(Empower::getCreateDate );
        queryWrapper.last("limit 100");//每次限制下发100个
server/pom.xml
@@ -15,6 +15,7 @@
    <module>dmvisit_service</module>
    <module>dmvisit_web</module>
    <module>openapi</module>
      <module>admin_timer</module>
  </modules>