From 165078645b8cfe800aeda7206e89ebd901c7e6c8 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 19 十二月 2023 18:13:54 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                       |   21 ++++
 server/openapi/src/main/java/com/doumee/web/BizResourceController.java                               |   13 --
 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java                  |    2 
 server/openapi/src/main/java/com/doumee/web/ErpResourceController.java                               |    2 
 server/openapi/src/main/java/com/doumee/web/ApiController.java                                       |    2 
 server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java                                 |   16 +-
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java         |   24 ++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java    |   66 +++++++++++-
 server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java                     |    4 
 server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java                           |    9 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java         |   56 ++++++++++-
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                            |    4 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java                    |   10 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java        |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java                   |    2 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java                     |   24 ++++
 server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java                     |    2 
 18 files changed, 216 insertions(+), 45 deletions(-)

diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
index b3480ae..1f64cf3 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CompanyController.java
@@ -92,6 +92,7 @@
         companyService.updateStatusById(company);
         return ApiResponse.success(null);
     }
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:company:exportExcel")
@@ -130,4 +131,13 @@
         return ApiResponse.success(companyService.findCompanyTreePage(type));
     }
 
+
+
+    @ApiOperation("閮ㄩ棬淇℃伅鍚屾")
+    @PostMapping("/sync")
+//    @RequiresPermissions("business:company:sync")
+    public ApiResponse sync(){
+        //TODO 鎵嬪姩鍚屾 閮ㄩ棬淇℃伅
+        return ApiResponse.success("鍚屾鎴愬姛");
+    }
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
index 043b24e..a88a33d 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.admin.request.LaborMemberDTO;
 import com.doumee.dao.admin.request.MemberQuery;
 import com.doumee.dao.admin.response.MemberInfoDTO;
@@ -102,6 +103,21 @@
         return ApiResponse.success(null);
     }
 
+
+    @ApiOperation("鎵归噺鎷夐粦/鍐荤粨")
+    @GetMapping("/batchBlock")
+    @RequiresPermissions("business:member:delete")
+    public ApiResponse batchBlock(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        memberService.batchBlock(idList);
+        return ApiResponse.success(null);
+    }
+
+
     @ApiOperation("鏄惁鍙嫓璁跨姸鎬佷慨鏀�")
     @PostMapping("/updateCanVisitById")
     @RequiresPermissions("business:member:update")
@@ -149,7 +165,13 @@
     @PostMapping("/findMemberInfoPage")
     @RequiresPermissions("business:member:query")
     public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap){
-        return ApiResponse.success(memberService.findMemberInfoPage(pageWrap));
+        if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
+            return ApiResponse.success(memberService.findVisitPage(pageWrap));
+        }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){
+            return ApiResponse.success(memberService.findMemberInfoPage(pageWrap));
+        }else {
+            return ApiResponse.success(null);
+        }
     }
 
     @ApiOperation("鍒嗛〉鏌ヨ璁垮浜哄憳淇℃伅")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
index 355479e..01ff012 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/VisitsController.java
@@ -84,7 +84,7 @@
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @RequiresPermissions("business:visits:query")
-    public ApiResponse findById(@PathVariable Integer id) {
+    public ApiResponse<Visits> findById(@PathVariable Integer id) {
         return ApiResponse.success(visitsService.findById(id));
     }
 
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
index 8818ff7..c94d5b0 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -45,10 +45,10 @@
      * 瀹氭椂鍚屾缁勭粐淇℃伅鍒版捣搴风郴缁�
      * @throws Exception
      */
-    @Scheduled(fixedDelay= 60*1000)
-    public void syncOrgData() {
-        hkSyncOrgUserService.syncOrgData();
-    }
+//    @Scheduled(fixedDelay= 60*1000)
+//    public void syncOrgData() {
+//        hkSyncOrgUserService.syncOrgData();
+//    }
     /**
      * 瀹氭椂鍚屾缁勭粐淇℃伅鍒版捣搴风郴缁�
      * @throws Exception
@@ -61,9 +61,9 @@
      * 瀹氭椂鍚屾鐢ㄦ埛淇℃伅鍒版捣搴风郴缁�
      * @throws Exception
      */
-    @Scheduled(fixedDelay= 60*1000)
-    public void syncUserData()  {
-        hkSyncImgService.syncUserData();
-    }
+//    @Scheduled(fixedDelay= 60*1000)
+//    public void syncUserData()  {
+//        hkSyncImgService.syncUserData();
+//    }
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java
index 89c2a51..a5442d6 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/CarAuthorRequest.java
@@ -14,7 +14,7 @@
 @Data
 @ApiModel(value = "杞﹁締鎺堟潈鍋滆溅鍦鸿姹備俊鎭�" )
 public class CarAuthorRequest {
-    @ApiModelProperty(value = "浜哄憳鍞竴鏍囪瘑锛圗RP绔疘D锛夛紝濡傛灉涓虹┖锛屽垯娓呯┖杞﹁締褰掑睘浜轰俊鎭�")
+    @ApiModelProperty(value = "浜哄憳鍞竴鏍囪瘑锛圗RP绔疘D锛夛紝濡傛灉涓虹┖锛屽垯娓呯┖杞﹁締褰掑睘浜轰俊鎭�", required = true)
     private String userId;
     @ApiModelProperty(value = "杞︾墝鍙�" , required = true)
     private String carCode;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index d278adf..22ac061 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -262,8 +262,8 @@
 
 
 public interface  memberType{
-    int visitor = 0;//鏅�氳瀹�
-    int lw_visitor = 1;//鍔冲姟璁垮
+    int lw_visitor = 0;//鍔冲姟璁垮
+    int visitor = 1;//鏅�氳瀹�
     int internal = 2;//鍐呴儴浜哄憳
 }
     public static void main(String[] args) {
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java
index b9efaad..396618d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/CompanyDTO.java
@@ -13,6 +13,8 @@
 @ApiModel("缁勭粐妯″瀷")
 public class CompanyDTO {
 
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
 
     @ApiModelProperty(value = "鍚嶇О")
     private String name;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
index 7551e1e..1357775 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/ParkBookMapper.java
@@ -1,7 +1,10 @@
 package com.doumee.dao.business;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.Empower;
 import com.doumee.dao.business.model.ParkBook;
+
+import java.util.List;
 
 /**
  * @author 姹熻箘韫�
@@ -9,4 +12,5 @@
  */
 public interface ParkBookMapper extends BaseMapper<ParkBook> {
 
+    void insertBatchSomeColumn(List<ParkBook> list);
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
index 4525313..310ffed 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -200,6 +200,7 @@
     @ApiModelProperty(value = "ERP缁勭粐缂栫爜")
     @ExcelColumn(name="ERP缁勭粐缂栫爜")
     private String erpOrgId;
+
     @ApiModelProperty(value = "缁勭粐鍚嶇О")
     @TableField(exist = false)
     private String companyName;
@@ -209,4 +210,24 @@
     @ApiModelProperty(value = "瑙掕壊缂栫爜鏌ヨ")
     @TableField(exist = false)
     private String roleIdParam;
+
+    //鏆傛棤浣跨敤
+    @ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/宸ュ彿")
+    @TableField(exist = false)
+    private String keyword;
+
+    @ApiModelProperty(value = "鏄惁鏈変汉鑴革細0=鏃狅紱1=鏈夛紱")
+    @TableField(exist = false)
+    private Integer isFace;
+
+    @ApiModelProperty(value = "璁块棶娆℃暟")
+    @TableField(exist = false)
+    private Integer visitTimes;
+
+    @ApiModelProperty(value = "鏈�鍚庤闂椂闂�")
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date lastVisitDate;
+
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index 8a08150..3e658f3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -59,6 +59,8 @@
      */
     void deleteByIdInBatch(List<Integer> ids);
 
+    void batchBlock(List<Integer> ids);
+
     /**
      * 涓婚敭鏇存柊
      *
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 2ef7904..1c94c15 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -267,7 +267,7 @@
                    /*   .selectAs(Member::getName,Company::getHeadName)
                     .selectAs(Member::getPhone,Company::getHeadPhone)
                     .select("count(t1.id) as countNum");*/
-        queryWrapper.eq(Company::getType,Constants.ZERO);
+//        queryWrapper.eq(Company::getType,Constants.ZERO);
         queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getStatus()),Company::getStatus,Constants.ZERO);
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Company::getName,pageWrap.getModel().getName());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getParentName()),"c.name",pageWrap.getModel().getParentName());
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 0e9d62e..86b5e37 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
@@ -14,6 +14,7 @@
 import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
+import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -167,13 +168,35 @@
         Member member=new Member();
         ids.stream().forEach(s ->{
             member.setId(s);
-            member.setIsdeleted(Constants.ZERO);
+            member.setIsdeleted(Constants.ONE);
             member.setEditor(loginUserInfo.getId());
             member.setEditDate(new Date());
             memberMapper.updateById(member);
         });
       /*  memberMapper.deleteBatchIds(ids);*/
     }
+
+    @Override
+    public void batchBlock(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Member member=new Member();
+        for (Integer id:ids) {
+            member = memberMapper.selectById(id);
+            if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){
+                member.setStatus(Constants.TWO);
+                member.setEditor(loginUserInfo.getId());
+                member.setEditDate(new Date());
+                memberMapper.updateById(member);
+            }
+        }
+        /*  memberMapper.deleteBatchIds(ids);*/
+    }
+
+
+
 
     @Override
     public void updateById(Member member) {
@@ -296,6 +319,24 @@
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<Member> queryWrapper = new QueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+        if (pageWrap.getModel().getKeyword() != null) {
+            queryWrapper.lambda().and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword())
+                            .or().like(Member::getPhone,pageWrap.getModel().getKeyword())
+                    .or().like(Member::getCode,pageWrap.getModel().getKeyword()));
+        }
+        if(pageWrap.getModel().getType() != null){
+            if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){
+                queryWrapper.select(" * , (select v.COMPANY_NAME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 ) as companyName  , " +
+                        " (select v.STARTTIME  from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2   order by v.CREATE_DATE desc limit 1 )  as lastVisitDate , " +
+                        " (select count(1) from visits v where v.MEMBER_ID =  member.id and v.STATUS = 2 ) as visitTimes  ");
+            }
+        }
+
+        if (pageWrap.getModel().getIsFace() != null) {
+            queryWrapper.lambda().isNull(pageWrap.getModel().getIsFace()==Constants.ZERO,Member::getFaceImg);
+            queryWrapper.lambda().isNotNull(pageWrap.getModel().getIsFace()==Constants.ONE,Member::getFaceImg);
+        }
+
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.lambda().eq(Member::getId, pageWrap.getModel().getId());
         }
@@ -530,7 +571,8 @@
 
         queryWrapper.selectAll(Member.class);
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
-        queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,Member::getCompanyId,pageWrap.getModel().getCompanyIds())
+        queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,
+                        Member::getCompanyId,pageWrap.getModel().getCompanyIds())
                 .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getKeyWords())
                         .or().like(Member::getName,pageWrap.getModel().getKeyWords())
                         .or().like(Member::getCode,pageWrap.getModel().getKeyWords()))
@@ -538,7 +580,9 @@
                 .isNotNull(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::getCanVisit,pageWrap.getModel().getStatus())
-                .eq(Member::getIsdeleted,0)
+                .eq(Member::getIsdeleted,Constants.ZERO)
+                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
+                .eq(Member::getType,Constants.memberType.internal)
                 .orderByDesc(Member::getCreateDate);
 
         IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
@@ -548,8 +592,6 @@
 
     @Override
     public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) {
-
-
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
@@ -562,7 +604,9 @@
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone())
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
-                .eq(Member::getStatus,Constants.Status.FREEZE)
+                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
+                .eq(Member::getType,Constants.memberType.visitor)
+                .eq(Member::getIsdeleted,Constants.ZERO)
                 .orderByDesc(Member::getCreateDate);
 
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index 1ba1259..72e79ad 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -38,6 +38,7 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -311,7 +312,7 @@
             member.setOpenid(visits.getOpenid());
             member.setType(Constants.memberType.visitor);
             member.setStatus(Constants.ZERO);
-            member.setSex(visits.getSex());
+            member.setSex(Constants.getSexByCardNo(cardno));
             // 鏂板璁垮璁板綍
             addList.add(member);
         }else{
@@ -328,9 +329,19 @@
             member.setName(visits.getName());
             member.setPhone(visits.getPhone());
             member.setOpenid(visits.getOpenid());
-            member.setSex(visits.getSex());
+            member.setSex(Constants.getSexByCardNo(cardno));
             // 鏇存柊璁垮淇℃伅,
             editList.add(member);
+        }
+        //鏍规嵁鎵嬫満鍙峰拰韬唤璇佸彿鐮佹煡璇� 褰撳墠棰勭害鐨勬椂闂存槸鍚︿笌鍏朵粬棰勭害璁板綍鏈夊啿绐�
+        if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda()
+                .eq(Visits::getPhone, member.getPhone())
+                .and(ms -> ms.eq(Visits::getPhone, member.getPhone())
+                        .or().eq(Visits::getIdcardDecode, member.getIdcardDecode()))
+                .and(ms -> ms.apply(" visits.STARTTIME <= '" + visits.getStarttime() + "' and visits.ENDTIME >= '" + visits.getStarttime() + "' ")
+                        .or().apply(" visits.STARTTIME <= '" + visits.getEndtime() + "' and visits.ENDTIME >= '" + visits.getEndtime() + "' ")
+                )) > Constants.ZERO) {
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戞垨韬唤璇併��"+ member.getIdcardDecode() +"銆戝瓨鍦ㄩ绾︽椂闂村啿绐侊紝鏃犳硶鐢宠鍝︼紒");
         }
         return  member;
     }
@@ -348,6 +359,9 @@
         if(v !=null){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戝瓨鍦ㄦ湭绛剧棰勭害鐢宠锛屼笉鑳介噸澶嶇敵璇峰摝锛�");
         }
+
+
+
     }
 
     private List<Member> isValideWithUsers(List<Visits> withUserList) {
@@ -519,8 +533,10 @@
         visitQuery.isNotNull(Visits::getParentId);
         visitQuery.eq(Visits::getIsdeleted,Constants.ZERO);
         List<Visits> visitsList = visitsJoinMapper.selectList(visitQuery);
-        visitsList.add(0,result);
-        result.setVisitsList(visitsList);
+        Visits v = new Visits();
+        BeanUtils.copyProperties(result,v);
+        visitsList.add(0,v);
+        result.setWithUserList(visitsList);
         return result;
     }
 
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 5899ea8..f38dd29 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
@@ -740,9 +740,10 @@
             }
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getId()).last("limit 1"));
             List<Integer> doorIds = null;
-            if(Objects.isNull(member)){
+              if(Objects.isNull(member)){
                 member = new Member();
                 BeanUtils.copyProperties(param,member);
+                member.setId(null);
                 member.setCreateDate(new Date());
                 member.setHkStatus(Constants.ZERO);
                 member.setErpStatus(Constants.ONE);
@@ -758,20 +759,24 @@
                 memberMapper.insert(member);
                 //TODO 娴峰悍鏁版嵁鍒涘缓
             }else{
+                Integer id = member.getId();
                 BeanUtils.copyProperties(param,member);
+                member.setId(id);
                 String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                 member.setIdcardNo(encryptIdNo);
                 member.setIdcardDecode(Constants.getTuominStr(param.getIdNo()));
                 member.setCompanyId(param.getOrgId());
                 member.setEditDate(new Date());
                 doorIds = getRoleIdByParam(param.getRoleIds(),member);
+                member.setErpDate(new Date());
+                member.setHkStatus(Constants.ZERO);
                 memberMapper.updateById(member);
                 //鍒犻櫎鐢ㄦ埛鍗$墖鏁版嵁  浜哄憳瑙掕壊鍏宠仈
                 memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId()));
                 //TODO 娴峰悍鏁版嵁鏇存柊
             }
             //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
-            dealMemberRoleEmpower(member,doorIds,param);
+            dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
             //娣诲姞浜哄憳鍗$墖鏁版嵁
             dealMemberCard(member,param);
         }catch (Exception e){
@@ -807,18 +812,18 @@
      * //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
      * @param member
      */
-    private void dealMemberRoleEmpower(Member member, List<Integer> doorids,UserUpdateRequest param) {
+    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)
                 );
-        if(doorids==null || doorids.size() == 0){
+        if(doorIds==null || doorIds.size() == 0){
           return;
         }
         List<Empower> list = new ArrayList<>();
-        List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorids));
+        List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds));
         if(deviceList == null || deviceList.size() == 0){
             return;
         }
@@ -829,8 +834,8 @@
             model.setIsdeleted(Constants.ZERO);
             model.setDeviceId(deviceRole.getId());
             model.setSendStatus(Constants.ZERO);
-            model.setStartTime(param.getValidStartTime());
-            model.setEndTime(param.getValidEndTime());
+            model.setStartTime(startTime);
+            model.setEndTime(endTime);
             model.setSendType(Constants.ZERO);
             list.add(model);
         }
@@ -886,12 +891,59 @@
 
     @Override
     public void roleUserAuthor(UserAuthorRequest param){
+        if(Objects.isNull(param)
+                ||StringUtils.isBlank(param.getUserId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
+        if(Objects.isNull(member)){
+            return;
+        }
+        List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
+        //濡傛灉鏈夋巿鏉冮棬绂佹暟鎹紝杩涜鐢ㄦ埛鎺堟潈鏁版嵁涓嬪彂浠诲姟鍒涘缓
+        dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime());
 
     }
     @Override
     public void parkCarAuthor(CarAuthorRequest param){
+        if(Objects.isNull(param)
+                ||StringUtils.isBlank(param.getCarCode())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
+        if(Objects.isNull(member)){
+            return;
+        }
+        //鍒犻櫎杞﹂噺搴撹褰曟暟鎹�
+        parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda()
+                .eq(ParkBook::getCarCode,param.getCarCode())
+                .set(ParkBook::getIsdeleted,Constants.ONE)
+                .set(ParkBook::getHkStatus,Constants.ZERO)
+        );
+        //鏌ヨ杞﹀簱淇℃伅
+        List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>().lambda().in(Parks::getId,param.getPartIdList()));
+        if(CollectionUtils.isNotEmpty(parksList)){
+            List<ParkBook> parkBookList = new ArrayList<>();
+            for (Parks parks:parksList) {
+                ParkBook parkBook = new ParkBook();
+                parkBook.setIsdeleted(Constants.ZERO);
+                parkBook.setCreateDate(new Date());
+                parkBook.setCarCode(param.getCarCode());
+                parkBook.setParkId(parks.getId());
+                parkBook.setOrigin(Constants.ZERO);
+                parkBook.setStartTime(Objects.isNull(param.getValidStartTime())?new Date():param.getValidStartTime());
+                parkBook.setEndTime(param.getValidEndTime());
+                parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
+                parkBook.setMemberId(member.getId());
+                parkBook.setHkStatus(Constants.ZERO);
+                parkBookList.add(parkBook);
+            }
+            parkBookMapper.insertBatchSomeColumn(parkBookList);
+        }
 
     }
+
+
     @Override
     public void approveApply(ApproveNoticeRequest param){
         try{
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
index 6dd7a94..a930855 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
@@ -3,6 +3,7 @@
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;
+import com.doumee.dao.business.model.Visits;
 import com.doumee.dao.web.reqeust.CheckVisitedDTO;
 import com.doumee.dao.web.response.MemberVO;
 import com.doumee.dao.web.response.WxAuthorizeVO;
@@ -57,4 +58,12 @@
         return ApiResponse.success("鏌ヨ鎴愬姛", memberService.getVisitedMember(checkVisitedDTO));
     }
 
+
+    @ApiOperation(value = "璁垮璁板綍鎻愪氦", notes = "璁垮璁板綍鎻愪氦")
+    @PostMapping("/createFk")
+    public ApiResponse createFk(@RequestBody Visits visits) {
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits));
+    }
+
+
 }
diff --git a/server/openapi/src/main/java/com/doumee/api/web/ApiController.java b/server/openapi/src/main/java/com/doumee/web/ApiController.java
similarity index 96%
rename from server/openapi/src/main/java/com/doumee/api/web/ApiController.java
rename to server/openapi/src/main/java/com/doumee/web/ApiController.java
index ecceb79..304d00f 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/ApiController.java
+++ b/server/openapi/src/main/java/com/doumee/web/ApiController.java
@@ -1,4 +1,4 @@
-package com.doumee.api.web;
+package com.doumee.web;
 
 import com.doumee.config.Jwt.JwtTokenUtil;
 import lombok.extern.slf4j.Slf4j;
diff --git a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/openapi/src/main/java/com/doumee/web/BizResourceController.java
similarity index 93%
rename from server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
rename to server/openapi/src/main/java/com/doumee/web/BizResourceController.java
index 7c2cf5c..6691df6 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/web/BizResourceController.java
@@ -1,31 +1,20 @@
-package com.doumee.api.web;
+package com.doumee.web;
 
-import com.doumee.config.Jwt.JwtPayLoad;
-import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.config.annotation.ErpLoginRequired;
-import com.doumee.config.annotation.LoginRequired;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.erp.model.openapi.request.*;
 import com.doumee.core.erp.model.openapi.response.*;
-import com.doumee.core.utils.Constants;
-import com.doumee.service.business.DeviceRoleService;
-import com.doumee.service.business.DeviceService;
 import com.doumee.service.business.ERPSyncService;
-import com.doumee.service.business.MemberService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.http.HttpRequest;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
diff --git a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java b/server/openapi/src/main/java/com/doumee/web/ErpResourceController.java
similarity index 98%
rename from server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
rename to server/openapi/src/main/java/com/doumee/web/ErpResourceController.java
index 3aa4aa3..1258ff0 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/web/ErpResourceController.java
@@ -1,4 +1,4 @@
-package com.doumee.api.web;
+package com.doumee.web;
 
 import com.doumee.core.erp.model.openapi.response.erp.ERPApiResponse;
 import com.doumee.core.haikang.model.param.respose.OrgListResponse;

--
Gitblit v1.9.3