From 6c40e04eb7c2060feb2533735cd3089d438965e5 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期二, 19 三月 2024 17:19:36 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java                                |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java                             |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java                   |    4 
 server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java                                        |   13 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java                             |    5 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java                    |   17 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java                        |   14 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java                         |   12 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java                    |  133 +++++++++++++++-
 server/openapi/pom.xml                                                                                              |    2 
 server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java                                      |    6 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java          |   89 +++++------
 server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java                                          |   21 +-
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java |   70 ++++++++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java                                  |    4 
 server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java                                               |   12 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java             |    4 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java                                |   14 
 18 files changed, 326 insertions(+), 97 deletions(-)

diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java
index 6a9623f..0ff1fe9 100644
--- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java
+++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleSendTaskTool.java
@@ -22,23 +22,22 @@
     @Autowired
     private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
 
-    public static int endId = 0;
+    public static Integer 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);
+        if(endId ==null){
+            endId =0;
+        }
+        endId = hkSyncEmpowerService.syncEmpowerData(endId);
+        for (int i = 0; i < 9; i++) {
+            if(endId!=null){
+                endId = hkSyncEmpowerService.syncEmpowerData(endId);
+            }
+        }
     }
 
 }
diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
index c6a2ee4..84fdd4f 100644
--- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
+++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskDetailTool.java
@@ -19,6 +19,7 @@
 @EnableScheduling
 public class ScheduleTaskDetailTool {
 
+    public static Integer endId = 0;
     @Autowired
     private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
 
@@ -26,8 +27,16 @@
      * 瀹氭椂鏌ヨ浜哄憳瀹為檯涓嬪彂鏉冮檺缁撴灉锛屾槸鍚﹀凡缁忎笅杞芥垚鍔�
      * @throws Exception
      */
-    @Scheduled(fixedDelay= 3*1000)
+    @Scheduled(fixedDelay= 30*1000)
     public void syncEmpowerDetailData()  {
-        hkSyncEmpowerService.syncEmpowerDetailData();
+        if(endId ==null){
+            endId =0;
+        }
+        endId =  hkSyncEmpowerService.syncEmpowerDetailData(endId);
+        for (int i = 0; i < 9; i++) {
+            if(endId!=null){
+                endId =  hkSyncEmpowerService.syncEmpowerDetailData(endId);
+            }
+        }
     }
 }
diff --git a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
index f95b694..7919f10 100644
--- a/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
+++ b/server/admin_timer/src/main/java/com/doumee/task/ScheduleTaskProgressTool.java
@@ -18,15 +18,17 @@
 @Component
 @EnableScheduling
 public class ScheduleTaskProgressTool {
+
+    public static Integer endId = 0;
     @Autowired
     private HkSyncEmpowerServiceImpl hkSyncEmpowerService;
     /**
      * 瀹氭椂鏌ヨ浜哄憳涓嬪彂娴峰悍缁撴灉锛堜换鍔℃槸鍚﹀凡涓嬭浇缁撴潫锛�
      * @throws Exception
      */
-    @Scheduled(fixedDelay=60*1000)
+    @Scheduled(fixedDelay=20*1000)
     public void syncEmpowerResultData()  {
-        hkSyncEmpowerService.syncEmpowerResultData();
+        endId = hkSyncEmpowerService.syncEmpowerResultData(endId);
     }
 
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java
index fe0f82e..42eb3cc 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceRoleController.java
@@ -33,14 +33,14 @@
     @PreventRepeat
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
-    //@RequiresPermissions("business:devicerole:create")
+    @RequiresPermissions("business:devicerole:create")
     public ApiResponse create(@RequestBody DeviceRole deviceRole) {
         return ApiResponse.success(deviceRoleService.create(deviceRole));
     }
 
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
-    //@RequiresPermissions("business:devicerole:delete")
+    @RequiresPermissions("business:devicerole:delete")
     public ApiResponse deleteById(@PathVariable Integer id) {
         deviceRoleService.deleteById(id);
         return ApiResponse.success(null);
@@ -48,7 +48,7 @@
 
     @ApiOperation("鎵归噺鍒犻櫎")
     @GetMapping("/delete/batch")
-    //@RequiresPermissions("business:devicerole:delete")
+    @RequiresPermissions("business:devicerole:delete")
     public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
         String [] idArray = ids.split(",");
         List<Integer> idList = new ArrayList<>();
@@ -61,7 +61,7 @@
 
     @ApiOperation("鏍规嵁ID淇敼")
     @PostMapping("/updateById")
-    //@RequiresPermissions("business:devicerole:update")
+    @RequiresPermissions("business:devicerole:update")
     public ApiResponse updateById(@RequestBody DeviceRole deviceRole) {
         deviceRoleService.updateById(deviceRole);
         return ApiResponse.success(null);
@@ -69,7 +69,7 @@
 
     @ApiOperation("鏍规嵁ID淇敼榛樿闂ㄧ缁勭姸鎬�")
     @PostMapping("/updateStatusById")
-    //@RequiresPermissions("business:devicerole:update")
+    @RequiresPermissions("business:devicerole:update")
     public ApiResponse updateStatusById(@RequestBody DeviceRole deviceRole) {
         deviceRoleService.updateStatusById(deviceRole);
         return ApiResponse.success(null);
@@ -77,14 +77,14 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    //@RequiresPermissions("business:devicerole:query")
+    @RequiresPermissions("business:devicerole:query")
     public ApiResponse<PageData<DeviceRole>> findPage (@RequestBody PageWrap<DeviceRole> pageWrap) {
         return ApiResponse.success(deviceRoleService.findPage(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
-    //@RequiresPermissions("business:devicerole:exportExcel")
+    @RequiresPermissions("business:devicerole:exportExcel")
     public void exportExcel (@RequestBody PageWrap<DeviceRole> pageWrap, HttpServletResponse response) {
         ExcelExporter.build(DeviceRole.class).export(deviceRoleService.findPage(pageWrap).getRecords(), "闂ㄧ瑙掕壊淇℃伅琛�", response);
     }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java
index b4ccc8d..598328d 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberCardController.java
@@ -112,6 +112,7 @@
         return ApiResponse.success(memberCardService.findById(id));
     }
 
+
     @ApiOperation("鏍规嵁鏉′欢鏌ヨ鍙敤鍗″彿")
     @PostMapping("/queryCard")
     //@RequiresPermissions("business:membercard:query")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
index 08fda60..17067e0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/ErpTool.java
@@ -17,11 +17,14 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.HttpsUtil;
+import com.doumee.dao.business.InterfaceLogMapper;
 import com.doumee.dao.business.model.InterfaceLog;
 import com.doumee.dao.business.model.Member;
 import com.doumee.service.business.InterfaceLogService;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -34,8 +37,12 @@
 
     @Autowired
     private InterfaceLogService interfaceLogService;
-
+    @Autowired
+    private SqlSessionFactory sqlSessionFactory;
     public void saveInterfaceLog(Object param, String path,String result,Integer type) {
+        SqlSession sqlSession2 = sqlSessionFactory.openSession(true);
+        InterfaceLogMapper mapper2 = sqlSession2.getMapper(InterfaceLogMapper.class);
+
         InterfaceLog interfaceLog=new InterfaceLog();
         interfaceLog.setType(type);
         interfaceLog.setCreateDate(new Date());
@@ -47,7 +54,8 @@
         interfaceLog.setRepose(result);
         interfaceLog.setName(path);
         interfaceLog.setUrl(path);
-        interfaceLogService.create(interfaceLog);
+        mapper2.insert(interfaceLog);
+        sqlSession2.commit();
     }
 
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java
new file mode 100644
index 0000000..8eb63a7
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberRoleJoinMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRole;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author T14
+ */
+//@Repository
+public interface MemberRoleJoinMapper extends MPJJoinMapper<MemberRole> {
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
index 230a9bb..dcb78f3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/MemberRole.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -58,6 +59,9 @@
     @ApiModelProperty(value = "瑙掕壊缂栫爜锛堝叧鑱攄oor_role),澶氫釜鑻辨枃閫楀彿闅斿紑")
     @ExcelColumn(name="瑙掕壊缂栫爜锛堝叧鑱攄oor_role)")
     private String roleId;
+    @ApiModelProperty(value = "鍙娇鐢ㄩ棬绂佺紪鐮侀泦鍚堬紝澶氫釜鑻辨枃閫楀彿闅斿紑")
+    @TableField(exist = false)
+    private String doorIds;
 
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java
index 014dbe7..1f256fa 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberCardService.java
@@ -91,7 +91,7 @@
      * @return PageData<MemberCard>
      */
     PageData<MemberCard> findPage(PageWrap<MemberCard> pageWrap);
-
+    void dealMemberRoleEmpowerById(Integer memberId );
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
index 8fe26cf..7b650a9 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -9,6 +9,7 @@
 import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
 import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse;
 import com.doumee.dao.business.model.ParkBook;
+import io.swagger.models.auth.In;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.Date;
@@ -73,7 +74,7 @@
     void syncEmpowerDataNew(int start,int end);
     void syncParkBookData();
     void syncParkBookBySingleModel(ParkBook c);
-    void syncEmpowerResultData();
-    void syncEmpowerDetailData();
+    Integer syncEmpowerResultData(Integer endId);
+    Integer   syncEmpowerDetailData(Integer endId);
     void syncParkRecords(Date date);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
index 9984ab1..a8dcc10 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -11,11 +12,10 @@
 import com.doumee.core.erp.model.openapi.response.RoleListResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.DeviceMapper;
-import com.doumee.dao.business.DeviceRoleMapper;
-import com.doumee.dao.business.model.Device;
-import com.doumee.dao.business.model.DeviceRole;
-import com.doumee.dao.business.model.Member;
+import com.doumee.dao.admin.response.MemberInfoDTO;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.join.MemberRoleJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.web.response.DeviceRoleVO;
 import com.doumee.service.business.DeviceRoleService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -23,7 +23,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.service.business.MemberService;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.models.auth.In;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
@@ -42,12 +45,22 @@
  * @date 2023/11/30 15:33
  */
 @Service
+@Slf4j
 public class DeviceRoleServiceImpl implements DeviceRoleService {
 
     @Autowired
     private DeviceRoleMapper deviceRoleMapper;
     @Autowired
-    private MemberService memberService;
+    private MemberCardMapper memberCardMapper;
+    @Autowired
+    private EmpowerMapper empowerMapper;
+
+    @Autowired
+    private DeviceMapper deviceMapper;
+    @Autowired
+    private MemberRoleJoinMapper memberRoleMapper;
+    @Autowired
+    private MemberMapper memberMapper;
 
 
     @Override
@@ -118,6 +131,10 @@
 
     @Override
     public void updateById(DeviceRole deviceRole) {
+        DeviceRole model = deviceRoleMapper.selectById(deviceRole.getId());
+        if(model == null){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
         DeviceRole newDeviceRole = null;
         if(null != deviceRole.getType()) {
             newDeviceRole = getDeviceRole(deviceRole.getType());
@@ -131,9 +148,109 @@
             update.setIsDefault(Constants.ONE);
             deviceRoleMapper.updateById(update);
         }
-        deviceRoleMapper.updateById(deviceRole);
+       int t = deviceRoleMapper.updateById(deviceRole);
+       if(t>0){
+            Thread tt = new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        startUpdateMemberEmpower(model,deviceRole);
+                    }catch (Exception e){
+                        log.error("======闂ㄧ鍒嗙粍淇敼锛屾洿鏂颁汉鍛樻潈闄愬け璐�==="+e.getMessage());
+                    }
+                }
+            });
+            tt.start();
+       }
     }
 
+    /**
+     * 鏇存柊璇ユ潈闄愪笅鐩稿叧鐨勪汉鍛樻渶鏂板叏鏂颁笅鍙�
+     * @param model
+     * @param deviceRole
+     */
+    private void startUpdateMemberEmpower(DeviceRole model, DeviceRole deviceRole) {
+        String[] ids = StringUtils.defaultString(model.getDoorIds()).split(",");
+        String[] newIds =StringUtils.defaultString(deviceRole.getDoorIds()).split(",");
+        List<Integer>  delIds = getChangeIdsByArray(newIds,ids);//鍒犻櫎鐨勮澶�
+        List<Integer>  addIds = getChangeIdsByArray(ids,newIds);//鏈�鏂拌澶�
+        if((addIds==null ||addIds.size()==0)&&( delIds ==null || delIds.size() == 0 )){
+            //濡傛灉娌℃湁鍙樺寲锛屼笉鍋氬鐞�
+            return;
+        }
+        List<Integer>  allids = getChangeIdsByArray(new String[]{},newIds);//鏈�鏂拌澶�
+        List<MemberRole> memberRoleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda()
+                .eq(MemberRole::getRoleId,model.getId())
+                .eq(MemberRole::getIsdeleted,Constants.ZERO)
+        );
+        if(memberRoleList!=null && memberRoleList.size()>0){
+            for(MemberRole memberRole : memberRoleList){
+                //濡傛灉鏈変汉鍛樻巿鏉冧簡璇ユ潈闄�
+                Member member = memberMapper.selectById(memberRole.getMemberId());
+                if(member==null || member.getIsdeleted().equals(Constants.ONE)){
+                    continue;
+                }
+                MPJLambdaWrapper<MemberRole> queryWrapper = new MPJLambdaWrapper<>();
+                queryWrapper.leftJoin(DeviceRole.class,DeviceRole::getId,MemberRole::getRoleId );
+                queryWrapper.selectAll(MemberRole.class)
+                        .selectAs(DeviceRole::getDoorIds, MemberRole::getDoorIds)
+                        .eq(MemberRole::getMemberId,memberRole.getMemberId())
+                        .eq(MemberRole::getIsdeleted,Constants.ZERO)
+                        .ne(MemberRole::getRoleId,deviceRole.getId());
+                List<MemberRole> tLis = memberRoleMapper.selectJoinList(MemberRole.class,queryWrapper);
+                List<Integer>  actDelIds = getActChangeDoorIds(tLis,delIds);
+                List<Integer>  actAddIds = getActChangeDoorIds(tLis,allids);
+                HkSyncOrgUserToHKServiceImpl.dealChangeDeviceRoleEmpower(member,actAddIds,actDelIds,deviceRoleMapper,empowerMapper,deviceMapper);
+            }
+        }
+    }
+
+    /**
+     * 鏍规嵁鐢ㄦ埛褰撳墠鏈�鏂扮殑闂ㄧ瑙掕壊锛屾煡璇㈠疄闄呭簲璇ュ垹闄ゆ垨鑰呭鍔犵殑闂ㄧ鐐规潈闄�
+     * @param tLis
+     * @param changeIds
+     * @return
+     */
+    private List<Integer> getActChangeDoorIds(List<MemberRole> tLis, List<Integer> changeIds) {
+        List<Integer> list = new ArrayList<>();
+        for(MemberRole memberRole : tLis){
+            String[] ids = StringUtils.defaultString(memberRole.getDoorIds()).split(",");
+            if(ids!=null && ids.length>0){
+                for (String s:ids){
+                    list.add(Integer.parseInt(s));
+                }
+            }
+        }
+        List<Integer> actList = new ArrayList<>();
+        if(list.size()>0){
+            Flag:
+            for (Integer t : changeIds){
+                for (Integer tt : list){
+                    if(Constants.equalsInteger(t,tt)){
+                        continue Flag;
+                    }
+                }
+                actList.add(t);
+            }
+        }
+        return  actList;
+    }
+
+    private List<Integer> getChangeIdsByArray(String[] ids, String[] newIds) {
+        List<Integer> list = new ArrayList<>();
+        if(newIds!=null){
+            FLAG :
+            for(String s :newIds){
+                for(String s1 :ids){
+                    if(StringUtils.equals(s,s1)){
+                        continue FLAG;
+                    }
+                }
+                list.add(Integer.parseInt(s));
+            }
+        }
+        return list;
+    }
     @Override
     public void updateStatusById(DeviceRole deviceRole) {
         // 鑾峰彇涔嬪墠鏄惁瀛樺湪榛樿闂ㄧ缁�
@@ -278,7 +395,7 @@
                 Member member = new Member();
                 member.setIsdeleted(Constants.ZERO);
                 member.setRoleIdParam("["+dto.getId()+"]");
-                dto.setMemberNum((int) memberService.count(member));
+                dto.setMemberNum( memberMapper.selectCount(new QueryWrapper<>(member)));
             }
             newPage.setRecords(deviceRoleList);
         }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
index 31fa2f3..af8d16d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -77,7 +77,6 @@
         memberCard.setCreateDate(new Date());
         memberCard.setStatus(Constants.ONE);
         memberCard.setIsdeleted(Constants.ZERO);
-        dealMemberRoleEmpower(memberMapper.selectById(memberCard.getMemberId()));
         Member member = memberMapper.selectById(memberCard.getMemberId());
         if(Objects.isNull(member)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鐢ㄦ埛淇℃伅");
@@ -101,6 +100,8 @@
         }
         memberCard.setHkStatus(Constants.ONE);
         memberCardMapper.insert(memberCard);
+        //鏇存柊鐢ㄦ埛鏉冮檺
+        dealMemberRoleEmpower(memberMapper.selectById(memberCard.getMemberId()));
         return memberCard.getId();
     }
 
@@ -236,6 +237,20 @@
         List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper);
         HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
     }
+    /**
+     * 鏇寸粏浜哄憳鍏ㄩ儴闂ㄧ鏉冮檺
+     * @param
+     */
+    @Override
+    public void dealMemberRoleEmpowerById(Integer memberId ) {
+        //澶勭悊鏂板鐨勪汉鍛樺崱鐗囨暟鎹紙涓庢捣搴峰悓姝ワ級
+        Member member = memberMapper.selectById(memberId);
+        if(member==null){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper);
+        HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
+    }
 
     @Override
     public PageData<MemberCard> findPage(PageWrap<MemberCard> pageWrap) {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index ba74240..fa402e2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -42,6 +42,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -89,6 +90,8 @@
     @Autowired
     private UserActionJoinMapper userActionJoinMapper;
 
+    @Autowired
+    private MemberCardMapper memberCardMapper;
     @Autowired
     private CompanyMapper companyMapper;
 
@@ -182,7 +185,14 @@
 
     @Override
     public void roleAuthById(Integer id) {
-        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Member member = memberMapper.selectById(id);
+        if(member==null || member.getIsdeleted().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍛樺伐淇℃伅宸插垹闄�");
+        }
+        List<MemberCard> cards = HkSyncOrgUserToHKServiceImpl.getNormalCardList(member,memberCardMapper);
+        HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(cards,member,deviceRoleMapper,empowerMapper,deviceMapper);
+
+    /*    LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         Member member = memberMapper.selectById(id);
         if(member.getIsdeleted().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍛樺伐淇℃伅宸插垹闄�");
@@ -191,7 +201,7 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲唴閮ㄤ汉鍛樻棤娉曡繘琛岃鎿嶄綔");
         }
         List<MemberRole> roleList = memberRoleMapper.selectList(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId()));
-
+*/
     }
 
 
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 70c1451..26aad7c 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
@@ -897,8 +897,8 @@
                     //濡傛灉宸茬粡寮�鍗″畬鎴�,涓嶅仛浠讳綍澶勭悊
                 }else if(model !=null){
                     //濡傛灉瀛樺湪锛屼絾鏈紑鍗★紝鍒欑洿鎺ユ洿鏀逛负寰呭悓姝�
-                    model.setHkStatus(Constants.ZERO);
-                    model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+//                    model.setHkStatus(Constants.ZERO);
+//                    model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     model.setIsdeleted(Constants.ZERO);
                     memberCardMapper.updateById(model);
                 }else{
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 e666793..5568c42 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
@@ -128,10 +128,10 @@
     public void syncParkBookBySingleModel(ParkBook c) {
     }
     @Override
-    public     void syncEmpowerResultData() {
+    public     Integer syncEmpowerResultData(Integer endId) {return null;
     }
     @Override
-    public     void syncEmpowerDetailData() {
+    public   Integer   syncEmpowerDetailData(Integer endId) {return null;
     }
     public boolean addTaskDataAllDel(String userId, String taskId, List<Device> deviceList) {
         if(StringUtils.isBlank(userId )){
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 a0b2d69..3b9e929 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
@@ -52,33 +52,29 @@
      * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
      */
     @Override
-    public  void syncEmpowerDetailData(){
-        if(Constants.DEALING_HK_EMPOWER_DETAIL){
-            return   ;
-        }
-        Constants.DEALING_HK_EMPOWER_DETAIL = true;
-        try {
+    public  Integer   syncEmpowerDetailData(Integer endId){
+//        if(Constants.DEALING_HK_EMPOWER_DETAIL){
+//            return   ;
+//        }
+//        Constants.DEALING_HK_EMPOWER_DETAIL = true;
             //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
-            List<Empower>  list = getDealListDetail();
+            List<Empower>  list = getDealListDetail(endId);
            if(list == null || list.size() ==0){
-               return;
+               return null;
            }
-            Thread t1=new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    try {
+        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.setPageSize(10);
                         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);
@@ -150,21 +146,19 @@
                             checkDelMemberTask(c.getMemberId());
                         }
                     }
-                    }catch (Exception e){
+                }catch (Exception e){
 
-                    }finally {
-                        Constants.DEALING_HK_EMPOWER_DETAIL=false;
-                    }
+                }finally {
+//                    Constants.DEALING_HK_EMPOWER_DETAIL=false;
                 }
-            });
-            t1.start();
-
-
-        }catch (Exception e){
-            e.printStackTrace();
-        }
+            }
+        });
+        t1.start();
+         return list.get(list.size()-1).getId();
 
     }
+
+
     /**
      * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
      * @param id
@@ -226,7 +220,7 @@
         Constants.DEALING_HK_EMPOWER_DETAIL = true;
         try {
             //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
-            List<Empower>  list = getDealListDetail();
+            List<Empower>  list = getDealListDetail(0);
            if(list == null || list.size() ==0){
                return;
            }
@@ -272,16 +266,15 @@
      * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
      */
     @Override
-    public  void syncEmpowerResultData(){
-        if(Constants.DEALING_HK_EMPOWER_RESULT){
-            return   ;
-        }
-        Constants.DEALING_HK_EMPOWER_RESULT=true;
-        try {
+    public  Integer syncEmpowerResultData(Integer endId){
+//        if(Constants.DEALING_HK_EMPOWER_RESULT){
+//            return  null ;
+//        }
+//        Constants.DEALING_HK_EMPOWER_RESULT=true;
             //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹�
-            List<Empower>  list = getIngTaskListResult();
+         List<Empower>  list = getIngTaskListResult(Constants.formatIntegerNum(endId));
            if(list == null || list.size() ==0){
-               return;
+               return null;
            }
             Thread t1=new Thread(new Runnable() {
                 @Override
@@ -315,9 +308,8 @@
                 }
             });
             t1.start();
-        }catch (Exception e){
-            e.printStackTrace();
-        }
+            return list.get(list.size()-1).getId();
+
     }
 
 
@@ -331,7 +323,6 @@
 //            return  null ;
 //        }
 //        Constants.DEALING_HK_EMPOWER =true;
-        try {
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
             List<Empower> allList =getAllWaitDealList( endId);
             if(allList !=null && allList.size()>0){
@@ -360,12 +351,6 @@
                 t1.start();
                 return allList.get(allList.size()-1).getId();
             }
-
-        }catch (Exception e){
-            e.printStackTrace();
-        }finally {
-//            Constants.DEALING_HK_EMPOWER =false;
-        }
         return null;
     }
     @Override
@@ -631,7 +616,7 @@
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
     }
-    private List<Empower> getDealListDetail() {
+    private List<Empower> getDealListDetail(int endId ) {
         MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.selectAll(Empower.class);
         queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
@@ -642,17 +627,23 @@
         queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded);
         queryWrapper.isNotNull(Member::getHkId) ;
+        queryWrapper.gt(Empower::getId,endId);
         queryWrapper.orderByAsc(Empower::getSendDate);
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
     }
-    private List<Empower> getIngTaskListResult() {
+    private List<Empower> getIngTaskListResult(int endId) {
         MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.selectAll(Empower.class);
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing);
+        queryWrapper.gt(Empower::getId,endId);
         queryWrapper.groupBy(Empower::getHkId);
-        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+        queryWrapper.orderByAsc(Empower::getSendDate);
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectList(queryWrapper);
         return list;
     }
 
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index 572e8ff..b3f28f6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -366,9 +366,6 @@
     }
 
     public static void dealMemberRoleEmpowerDo(List<MemberCard> cards,Member member , DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) {
-        if(cards == null || cards.size() == 0){
-            return;
-        }
         List<Integer> doorIds = getRoleIdByParam(member,deviceRoleMapper);
         if(doorIds==null || doorIds.size() == 0){
             //濡傛灉鏉冮檺娓呯┖锛屽垯娓呯┖浜哄憳鎺堟潈鐨勬潈闄愭暟鎹�
@@ -379,7 +376,8 @@
                     .set(Empower::getSendStatus,Constants.ZERO));
             return;
         }
-        if(StringUtils.isBlank(member.getFaceImg())){
+        if((cards == null || cards.size() == 0) && StringUtils.isBlank(member.getFaceId())){
+            //濡傛灉娌℃湁鍗� 涔熸病鏈変汉鑴�
             return;
         }
 
@@ -428,6 +426,66 @@
             empowerMapper.insertBatchSomeColumn(list);
         }
     }
+    public static void dealChangeDeviceRoleEmpower( Member member ,List<Integer> addDoorIds,List<Integer> delDoorIds, DeviceRoleMapper deviceRoleMapper, EmpowerMapper empowerMapper, DeviceMapper deviceMapper) {
+        if(delDoorIds!=null && delDoorIds.size()>0){
+            //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
+            empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                    .eq(Empower::getMemberId,member.getId())
+                    .set(Empower::getIsdeleted,Constants.ONE)
+                    .eq(Empower::getIsdeleted,Constants.ZERO)
+                    .in(Empower::getDeviceId,delDoorIds)
+                    .set(Empower::getSendStatus,Constants.ZERO));
+        }
+        if(StringUtils.isBlank(member.getFaceId())){
+            //濡傛灉娌℃湁鍗� 涔熸病鏈変汉鑴�
+            return;
+        }
+
+        List<Integer> deviceIds =new ArrayList<>();//鏂拌澶囩紪鐮侀泦鍚�
+        List<Empower> list = new ArrayList<>();//鏂版巿鏉冭褰曢泦鍚�
+        if(Constants.equalsInteger(member.getIsdeleted(),Constants.ZERO)
+                && Constants.equalsObject(member.getHkStatus(),Constants.ONE)){
+            //濡傛灉鐢ㄦ埛鏄悓姝ユ捣搴锋垚鍔燂紝娣诲姞甯︿笅鍙戞潈闄愶紙鍙鐞嗘柊澧炴垨鑰呯紪杈戠殑锛�
+            List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,addDoorIds));
+            if(deviceList == null || deviceList.size() == 0){
+                return;
+            }
+            for (Device deviceRole:deviceList) {
+                Empower model = new Empower();
+                model.setCreateDate(new Date());
+                model.setMemberId(member.getId());
+                model.setIsdeleted(Constants.ZERO);
+                model.setDeviceId(deviceRole.getId());
+                model.setSendStatus(Constants.ZERO);
+                model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
+                model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                model.setStartTime(member.getStartTime());
+                model.setEndTime(member.getEndTime());
+                //榛樿缁欎簬铏氭嫙鍗�
+                model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
+                model.setSendType(Constants.ZERO);
+                //鏍囪鏈�鏂扮殑鎺堟潈璁惧缂栫爜闆嗗悎
+                deviceIds.add(deviceRole.getId());
+                list.add(model);
+            }
+        }
+        //寰呯Щ闄ゆ潈闄愮殑璁惧鏁版嵁鎺堟潈璁板綍锛堥拡瀵瑰垹闄ゅ拰鏇存柊涓㈠け鐨勬潈闄愶紝闇�瑕佸悓姝ヤ笅鍙戝垹闄ゆ潈闄愶級
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                .eq(Empower::getMemberId,member.getId())
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .eq(Empower::getIsdeleted,Constants.ZERO)
+                .notIn(deviceIds.size()>0,Empower::getDeviceId,deviceIds)
+                .set(Empower::getSendStatus,Constants.ZERO));
+        //瀵煎叆鏂板鐨勬巿鏉冧俊鎭�
+        if(list.size()>0){
+            //鐩存帴瑕嗙洊閲嶅鐨勮澶囨潈闄愶紝鐩存帴鍒犻櫎鍗冲彲
+            empowerMapper.delete(new UpdateWrapper<Empower>().lambda()
+                    .eq(Empower::getMemberId,member.getId())
+                    .eq(Empower::getIsdeleted,Constants.ZERO)
+                    .in(Empower::getDeviceId,deviceIds) );
+            empowerMapper.insertBatchSomeColumn(list);
+        }
+    }
 
     /**
      * 瀵逛汉鍛樺甫寮�鍗℃暟鎹繘琛岃嚜鍔ㄥ紑鍗℃搷浣�
@@ -437,7 +495,7 @@
     private List<MemberCard> dealMemberHkCard(Member member) {
         List<MemberCard> memberCards = memberCardMapper.selectList(new QueryWrapper<MemberCard>().lambda()
                 .eq(MemberCard::getMemberId,member.getId())
-//                .eq(MemberCard::getType,Constants.TWO)
+//              .eq(MemberCard::getType,Constants.TWO)
                 .eq(MemberCard::getHkStatus,Constants.ZERO)  );
         if(memberCards==null ||  memberCards.size()==0){
             //娌℃湁甯﹀鐞嗙殑鏁版嵁锛岀洿鎺ヨ烦杩�
@@ -468,6 +526,8 @@
         //澶勭悊鏂板鏁版嵁
         BaseResponse<List<CardInfoResponse>> result =  HKService.cardBingding(param);
         if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){
+
+//            0x04a12022","msg":"cardNo [1223382985] is exists
             if(result.getData()!=null ){
                 for(CardInfoResponse r : result.getData()){
                     doneCodes.add(r.getCardNo());
diff --git a/server/openapi/pom.xml b/server/openapi/pom.xml
index 218a68a..af5003d 100644
--- a/server/openapi/pom.xml
+++ b/server/openapi/pom.xml
@@ -24,7 +24,7 @@
         </dependency>
     </dependencies>
     <build>
-        <finalName>openapi</finalName>
+        <finalName>erp_interface</finalName>
         <resources>
             <resource>
                 <directory>src/main/resources</directory>

--
Gitblit v1.9.3