From cc80794e556bbe1e43f9c1369e1dfc9c61318fda Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 07 三月 2024 14:57:10 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                           |    6 +
 server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java                                        |    1 
 server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java                     |    4 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java       |   11 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java             |   15 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java        |  131 ++++++++++++++++---------
 server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java                                |    1 
 server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java                      |    3 
 server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java                               |    1 
 server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                         |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java         |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java             |   22 +++-
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java |    7 +
 server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java                                 |   13 ++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceRoleServiceImpl.java         |   15 ++
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java                    |    5 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java            |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java  |    5 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java                          |    4 
 20 files changed, 186 insertions(+), 68 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 2cf79ff..274ec82 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -439,6 +439,19 @@
         }
         return "";
     }
+
+    public static String getShortTimeToNull(Date date) {
+
+        if (date == null)
+            return null;
+        try {
+            String nowDate = sdfLong.format(date);
+            return nowDate;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
     /**
      * Descrption:鍙栧緱褰撳墠鏃ユ湡,鏍煎紡涓�:yyyy-MM-dd HH:mm:ss
      *
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index 38a982a..57febaf 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -38,7 +38,7 @@
         WxMpTemplateMessage templateMessage =  WxMpTemplateMessage.builder()
                 .toUser(visits.getOpenid())
                 .templateId(tempId)
-                .url(prefix + "pages/appointmentDetails/appointmentDetails?id="+visits.getId())
+                .url(prefix + visits.getId())
                 .build();
         String thing1 = "寰呭鎵�";
         if(visits.getStatus()==2){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
index f26310a..15cd76b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
@@ -38,4 +38,9 @@
 
     @ApiModelProperty(value = "鍏ュ巶椤荤煡")
     private String visitNotice;
+
+    @ApiModelProperty(value = "鑷�夐棬绂侀厤缃�")
+    private Integer doorsVisitRequired;
+
+
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
index 284d522..7d74f1b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
@@ -36,7 +36,7 @@
     @ApiModelProperty(value = "鍏徃鍚嶇О")
     private String companyName;
 
-    @ApiModelProperty(value = "娴峰悍鐘舵�� 0寰呬笅鍙� 1鎴愬姛2澶辫触")
+    @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝� 2鍚屾澶辫触 3涓嶇鍚堜笅鍙戞潯浠� 4绛夊緟鍒犻櫎鏉冮檺  ", example = "1")
     private Integer hkStatus;
 
     @ApiModelProperty(value = "鍏徃璐熻矗浜�")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
index 1c958a1..3f3f823 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -71,6 +71,10 @@
     @ApiModelProperty(value = "鍙栨秷澶囨敞")
     private String cancelInfo;
 
+    @ApiModelProperty(value = "璁惧鍚嶇О")
+    @TableField(exist = false)
+    private String deviceName;
+
     @ApiModelProperty(value = "鎵�灞炲叕鍙哥紪鐮�")
     @TableField(exist = false)
     private String companyId;
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 72ce6e7..1ac0a30 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
@@ -99,9 +99,11 @@
     @ApiModelProperty(value = "璇佷欢鏄剧ず淇℃伅")
     @ExcelColumn(name="璇佷欢鏄剧ず淇℃伅")
     private String idcardDecode;
+
     @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収", example = "1")
     @ExcelColumn(name="璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収")
     private Integer idcardType;
+
     @ApiModelProperty(value = "宸ュ彿")
     @ExcelColumn(name="宸ュ彿")
     private String code;
@@ -215,6 +217,10 @@
     @TableField(exist = false)
     private String roleIdParam;
 
+    @ApiModelProperty(value = "鍓嶇紑鍦板潃")
+    @TableField(exist = false)
+    private String prefixUrl;
+
     @ApiModelProperty(value = "鎺堟潈闂ㄧ缁勭紪鐮侀泦鍚�,銆愯瀹㈢銆戝敮涓�鏍囪瘑",hidden = true )
     @TableField(exist = false)
     private Integer[] roleIds;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java
index 03ac978..8256ca2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/web/response/WxAuthorizeVO.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.web.response;
 
+import com.doumee.dao.business.model.Member;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -18,4 +19,6 @@
     @ApiModelProperty(value = "鐢ㄦ埛token")
     private String token;
 
+    @ApiModelProperty(value = "鐢ㄦ埛淇℃伅")
+    private Member member;
 }
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 406c8c9..7899ef0 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
@@ -52,14 +52,20 @@
 
     @Override
     public Integer create(DeviceRole deviceRole) {
-
+        if(Objects.isNull(deviceRole)
+            || StringUtils.isBlank(deviceRole.getName())
+            || Objects.isNull(deviceRole.getType())
+            || Objects.isNull(deviceRole.getIsDefault())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
         // 鑾峰彇涔嬪墠鏄惁瀛樺湪榛樿闂ㄧ缁�
         DeviceRole newDeviceRole = null;
         if(null != deviceRole.getType()) {
             newDeviceRole = getDeviceRole(deviceRole.getType());
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
-        if(null != newDeviceRole) {
+        if(null != newDeviceRole && deviceRole.getIsDefault().equals(Constants.ZERO)) {
             DeviceRole updateDeviceRole = new DeviceRole();
             // 鑻ョ幇鍦ㄦ柊澧炴暟鎹缃粯璁ら棬绂佺粍锛涢偅涔堝厛鎶婁箣鍓嶇殑榛樿闂ㄧ缁勭姸鎬佹敼涓轰笉鏄粯璁ょ殑
             updateDeviceRole.setId(newDeviceRole.getId());
@@ -117,7 +123,7 @@
             newDeviceRole = getDeviceRole(deviceRole.getType());
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
-        if(null != newDeviceRole) {
+        if(null != newDeviceRole  && deviceRole.getIsDefault().equals(Constants.ZERO)) {
             DeviceRole update = new DeviceRole();
             update.setEdirot(loginUserInfo.getId().toString());
             update.setEditDate(new Date());
@@ -163,7 +169,8 @@
         LambdaQueryWrapper<DeviceRole> query = new LambdaQueryWrapper<>();
         query.eq(DeviceRole::getIsdeleted,Constants.ZERO)
                 .eq(DeviceRole::getIsDefault,Constants.ZERO)
-                .eq(DeviceRole::getType,type);
+                .eq(DeviceRole::getType,type)
+                .last(" limit 1");
         // 鏌ヨ鏄惁鏈夐粯璁ら棬绂佺粍锛屽彧鑳芥湁涓�缁勯粯璁ら棬绂佺粍
         DeviceRole getDeviceRole = deviceRoleMapper.selectOne(query);
         return getDeviceRole;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
index 1fd3fbf..77cb8f1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
@@ -9,6 +9,7 @@
 import com.doumee.dao.business.EmpowerMapper;
 import com.doumee.dao.business.join.EmpowerJoinMapper;
 import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.Empower;
 import com.doumee.dao.business.model.Member;
 import com.doumee.dao.system.model.SystemUser;
@@ -109,11 +110,13 @@
         queryWrapper.selectAs(Member::getName,Empower::getMemberName);
         queryWrapper.selectAs(Member::getPhone,Empower::getMemberPhone);
         queryWrapper.selectAs(Member::getIdcardDecode,Empower::getMemberidCard);
+        queryWrapper.selectAs(Device::getName,Empower::getDeviceName);
         queryWrapper.selectAs(Company::getName,Empower::getCompanyName);
         queryWrapper.selectAs(SystemUser::getUsername,Empower::getCreaterName);
         queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Empower::getCreator);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
 
         queryWrapper
                /* .eq(Empower::getIsdeleted, Constants.ZERO)*/
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 7e5c9e9..4a84782 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
@@ -296,7 +296,8 @@
                     .selectAs(Member::getName,MemberCard::getMemberName)
                     .selectAs(Member::getPhone,MemberCard::getMemberPhone)
                     .selectAs(Member::getType,MemberCard::getMemberType)
-                    .selectAs(Company::getName,MemberCard::getCompanyName);
+                    .selectAs(Company::getName,MemberCard::getCompanyName)
+                    .eq(MemberCard::getIsdeleted,Constants.ZERO);
         queryWrapper.like(Objects.nonNull(pageWrap.getModel().getCode()),MemberCard::getCode,pageWrap.getModel().getCode())
                     .eq(Objects.nonNull(pageWrap.getModel().getStatus()),MemberCard::getStatus,pageWrap.getModel().getStatus())
                     .eq(Objects.nonNull(pageWrap.getModel().getStatus()),MemberCard::getStatus,pageWrap.getModel().getStatus())
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 5f44246..9bce39b 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
@@ -603,6 +603,7 @@
 
         queryWrapper.selectAll(Member.class);
         queryWrapper.selectAs(Company::getName,Member::getCompanyName);
+        queryWrapper.select(" ( select count(1) from member_card mc where mc.member_id = t.id ) as  memberCardCount ");
         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())
@@ -714,8 +715,8 @@
                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
                 .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0  order by ua.CREATE_DATE desc  limit 1) as optTime")
                 .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID    where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc  limit 1) as creatorName")
-                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc  limit 1) as visitsLastDate");
-
+                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc  limit 1) as visitsLastDate")
+                .eq(Member::getIsdeleted,Constants.ZERO);
                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId());
                 queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
                 queryWrapper
@@ -878,24 +879,35 @@
         WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO();
         wxAuthorizeVO.setOpenid(openId);
         //鏍规嵁openId 鏌ヨ鐢ㄦ埛淇℃伅
-        Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+        Member member = memberJoinMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>()
+                .selectAll(Member.class)
+                .selectAs(Company::getName,Member::getCompanyName)
+                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                 .eq(Member::getOpenid,openId)
                 .eq(Member::getIsdeleted,Constants.ZERO)
-                .ne(Member::getType,Constants.memberType.visitor)
+                .orderByDesc(Member::getCreateDate)
+                .last(" limit 1 ")
         );
         //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛
-        if(!Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){
+        if(!Objects.isNull(member)){
             if(member.getIsdeleted() == Constants.ONE){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
             }
             if(member.getStatus() != Constants.ZERO){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳");
             }
+            if(StringUtils.isNotBlank(member.getIdcardNo())){
+               member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo()));
+            }
+            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+            member.setPrefixUrl(prefixUrl);
             JwtPayLoad payLoad = new JwtPayLoad(Integer.toString(member.getId()));
             String token = JwtTokenUtil.generateToken(payLoad);
             //瀛樺偍token鑷硆edis
             RedisUtil.addObject(redisTemplate,Constants.RedisKeys.INTERNAL_TOKEN+"_"+member.getId(),token,Constants.RedisKeys.EXPIRE_TIME);
             wxAuthorizeVO.setToken(token);
+            wxAuthorizeVO.setMember(member);
         }
         return wxAuthorizeVO;
     }
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 e387803..e340737 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
@@ -54,6 +54,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.DigestUtils;
 
@@ -114,6 +115,7 @@
             if (Objects.isNull(erpVisitDTO)
                     || StringUtils.isBlank(erpVisitDTO.getName())
                     || StringUtils.isBlank(erpVisitDTO.getPhone())
+                    || StringUtils.isBlank(erpVisitDTO.getCompanyName())
                     || Objects.isNull(erpVisitDTO.getIdcardType())
                     || StringUtils.isBlank(erpVisitDTO.getIdcardNo())
                     || Objects.isNull(erpVisitDTO.getStarttime())
@@ -155,6 +157,8 @@
                 for (ErpWithVisitDTO erpWithVisitDTO : erpWithVisitDTOList) {
                     Visits withVisits = new Visits();
                     BeanUtils.copyProperties(erpWithVisitDTO, withVisits);
+                    withVisits.setCompanyName(visits.getCompanyName());
+                    withVisits.setReason(visits.getReason());
                     visitsList.add(withVisits);
                 }
                 visits.setWithUserList(visitsList);
@@ -163,11 +167,12 @@
         }catch (BusinessException e){
             throw e;
         }finally {
-            saveInterfaceLog(erpVisitDTO,"/visitBiz/resource/crateVisit",null,Constants.ZERO);
+            saveInterfaceLog(erpVisitDTO,"/visitBiz/resource/createVisit",null,Constants.ZERO);
         }
     }
 
-    private void saveInterfaceLog(Object param, String path,String result,Integer type) {
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
+    void saveInterfaceLog(Object param, String path, String result, Integer type) {
         InterfaceLog interfaceLog=new InterfaceLog();
         interfaceLog.setType(type);
         interfaceLog.setCreateDate(new Date());
@@ -568,9 +573,10 @@
     private void isValidBaseParam(Visits visits) {
         if(visits.getEndtime() == null
                 || visits.getStarttime() == null
-//                ||  StringUtils.isBlank(visits.getReason())
+                ||  StringUtils.isBlank(visits.getReason())
                 ||  StringUtils.isBlank( visits.getName())
                 ||  StringUtils.isBlank( visits.getPhone())
+                ||  StringUtils.isBlank( visits.getCompanyName())
                 ||  visits.getIdcardType() == null
 //                ||  StringUtils.isBlank( visits.getFaceImg() )
                 ||  StringUtils.isBlank( visits.getIdcardNo() )
@@ -917,6 +923,9 @@
         if(!Constants.equalsInteger(Constants.ONE, member.getCanVisit())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ユ嫓璁夸汉鏆傛椂涓嶈兘鎺ュ彈鎮ㄧ殑鎷滆鐢宠~");
         }
+        if(StringUtils.isBlank(member.getHkId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ユ嫓璁夸汉鏈笅鍙戞殏鏃朵笉鑳芥帴鍙楁偍鐨勬嫓璁跨敵璇穨");
+        }
         return  member;
     }
 
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 6e63bab..9cce8e3 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
@@ -44,6 +44,7 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.PostConstruct;
@@ -524,7 +525,7 @@
                    for (DeviceRole deviceRole:deviceRoleList) {
                        RoleListResponse roleListResponse = new RoleListResponse();
                        BeanUtils.copyProperties(deviceRole,roleListResponse);
-                       if(deviceRole.getType().equals(Constants.TWO)){
+                       if(deviceRole.getType().equals("2")){
                            roleListResponse.setType(Constants.ONE);
                        }else{
                            roleListResponse.setType(Constants.ZERO);
@@ -877,6 +878,7 @@
                     member.setFsStatus(Constants.ZERO);
                     member.setCompanyId(company.getId());
                     member.setType(Constants.memberType.internal);
+                    member.setCanVisit(Constants.ONE);
                     String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo());
                     member.setIdcardNo(encryptIdNo);
                     member.setStartTime(param.getValidStartTime());
@@ -1008,6 +1010,30 @@
 
     @Override
     public void roleUserAuthor(UserAuthorRequest param){
+        try{
+//            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)){
+//                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
+//            }
+//            List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member);
+//            if(StringUtils.isBlank(member.getRoleId())){
+//                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌闂ㄧ缁勬暟鎹�");
+//            }
+//            //鏇存柊鎺堟潈鏈夋晥鏈�
+//            Member update = new Member();
+//            update.setId(member.getId());
+//            update.setEditDate(new Date());
+//            update.setStartTime(param.getValidStartTime());
+//            update.setEndTime(param.getValidEndTime());
+//            update.setRoleId(StringUtils.isNotBlank(member.getRoleId())?member.getRoleId():null);
+//            update.setHkStatus(Constants.ZERO);//鍋氫竴閬嶆洿鏂伴�昏緫
+//            update.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+//            memberMapper.updateById(update);
+
         if(Objects.isNull(param)
                 ||StringUtils.isBlank(param.getUserId())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -1042,61 +1068,68 @@
                 .set(Member::getEndTime,param.getValidEndTime())
                 .set(Member::getEditDate,new Date())
                 .set(Member::getHkStatus,Constants.ZERO ));
+        }catch (BusinessException e){
+            throw e;
+        }finally {
+            saveInterfaceLog(param,"/event/role/userAuthor",null,Constants.ZERO);
+        }
     }
 
 
     @Override
     public void parkCarAuthor(CarAuthorRequest param){
-        if(Objects.isNull(param)
-                ||StringUtils.isBlank(param.getCarCode())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST);
-        }
-        if(Objects.nonNull(param.getValidStartTime())&&Objects.nonNull(param.getValidEndTime())){
-            if(param.getValidStartTime().getTime()> param.getValidEndTime().getTime()){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏈夋晥鏈熸椂闂翠笉鍚堟硶锛�");
+        try{
+            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)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
-        }
-        //鍒犻櫎杞﹂噺搴撹褰曟暟鎹�
-        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 = new ArrayList<>();
-        if(CollectionUtils.isNotEmpty(param.getParkIdList())){
-             parksList  = parksMapper.selectList(new QueryWrapper<Parks>().lambda()
-                    .in(Parks::getId,param.getParkIdList())
+            if(Objects.nonNull(param.getValidStartTime())&&Objects.nonNull(param.getValidEndTime())){
+                if(param.getValidStartTime().getTime()> param.getValidEndTime().getTime()){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏈夋晥鏈熸椂闂翠笉鍚堟硶锛�");
+                }
+            }
+            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getErpId,param.getUserId()).last("limit 1"));
+            if(Objects.isNull(member)){
+                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
+            }
+            //鍒犻櫎杞﹂噺搴撹褰曟暟鎹�
+            parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda()
+                    .eq(ParkBook::getCarCode,param.getCarCode())
+                    .set(ParkBook::getIsdeleted,Constants.ONE)
+                    .set(ParkBook::getHkStatus,Constants.ZERO)
             );
-        }else{
-            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍋滆溅搴撲俊鎭笉瀛樺湪锛屾巿鏉冨け璐�");
-        }
-        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(Objects.isNull(param.getValidEndTime())?null:param.getValidEndTime());
-                parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
-                parkBook.setMemberId(member.getId());
-                parkBook.setHkStatus(Constants.ZERO);
-                parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
-                parkBookList.add(parkBook);
+            //鏌ヨ杞﹀簱淇℃伅
+            if(CollectionUtils.isNotEmpty(param.getParkIdList())){
+                List<Parks>  parksList  = parksMapper.selectList(new QueryWrapper<Parks>().lambda()
+                        .in(Parks::getId,param.getParkIdList())
+                );
+                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())?null:param.getValidStartTime());
+                        parkBook.setEndTime(Objects.isNull(param.getValidEndTime())?null:param.getValidEndTime());
+                        parkBook.setTimeType(Objects.isNull(param.getValidEndTime())?Constants.ZERO:Constants.ONE);
+                        parkBook.setMemberId(member.getId());
+                        parkBook.setHkStatus(Constants.ZERO);
+                        parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
+                        parkBookList.add(parkBook);
+                    }
+                    parkBookMapper.insertBatchSomeColumn(parkBookList);
+                }else{
+                    throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍋滆溅搴撲俊鎭笉瀛樺湪锛屾巿鏉冨け璐�");
+                }
             }
-            parkBookMapper.insertBatchSomeColumn(parkBookList);
-        }else{
-            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍋滆溅搴撲俊鎭笉瀛樺湪锛屾巿鏉冨け璐�");
+        }catch (BusinessException e){
+            throw e;
+        }finally {
+            saveInterfaceLog(param,"/event/park/carAuthor",null,Constants.ZERO);
         }
-
     }
 
 
@@ -1142,8 +1175,8 @@
     }
 
 
-
-    private void saveInterfaceLog(Object param, String path,String result,Integer type) {
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
+    public void saveInterfaceLog(Object param, String path, String result, Integer type) {
         InterfaceLog interfaceLog=new InterfaceLog();
         interfaceLog.setType(type);
         interfaceLog.setCreateDate(new Date());
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
index b902487..a786ef7 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncParkServiceImpl.java
@@ -30,6 +30,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 娴峰悍鍋滆溅搴撳悓姝ervice瀹炵幇
@@ -138,8 +139,8 @@
         CarChargeAddRequest param = new CarChargeAddRequest();
         param.setPlateNo(c.getCarCode());
         param.setParkSyscode(c.getParkHkId());
-        param.setStartTime(DateUtil.getShortTime(c.getStartTime()));
-        param.setEndTime(DateUtil.getShortTime(c.getEndTime()));
+        param.setStartTime(Objects.isNull(c.getStartTime())?DateUtil.getDate(new Date(),"yyyy-MM-dd"):DateUtil.getShortTimeToNull(c.getStartTime()));
+        param.setEndTime(Objects.isNull(c.getEndTime())?"2999-12-31":DateUtil.getShortTimeToNull(c.getEndTime()));
         BaseResponse response = HKService.carChargeAddtion(param);
         if(response!=null
                 && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
index 4c5b975..95c71f3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -379,6 +379,13 @@
         request.setVisitEndTime(DateUtil.getISO8601Timestamp(c.getEndtime()));
         request.setReceptionistId(c.getReceptMemberHkId());//琚浜烘捣搴风紪鐮�
         request.setVisitPurpose(c.getReason());
+        if(StringUtils.isNotBlank(c.getReason())){
+            char[] charArray = c.getReason().toCharArray();
+            int length = charArray.length;
+            if(length>32){
+                request.setVisitPurpose(c.getReason().substring(32));
+            }
+        }
         //鑾峰彇鏉冮檺缁勯泦鍚�
         request.setVisitorPermissionSet(getVisitPermissonRequest(roleList,c));
         List<VisitAppointmentVistorRequest> infolist = new ArrayList<>();
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java b/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
index 365c4bc..4852691 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/common/tree/CompanyTree.java
@@ -43,12 +43,12 @@
         for (Company treeNode : nodeList){
             // 鍒ゆ柇褰撳墠鑺傜偣鏄惁涓烘牴鑺傜偣锛屾澶勬敞鎰忥細鑻arentId绫诲瀷鏄疭tring锛屽垯瑕侀噰鐢╡quals()鏂规硶鍒ゆ柇銆�
             if(origin== DataSyncConfig.origin.hk){
-                if (Objects.isNull(treeNode.getHkParentId())) {
+                if (StringUtils.isBlank(treeNode.getHkParentId())) {
                     // 鏄紝娣诲姞
                     rootNodeList.add(treeNode);
                 }
             }else if(origin== DataSyncConfig.origin.erp){
-                if (Objects.isNull(treeNode.getErpParentId())) {
+                if (StringUtils.isBlank(treeNode.getErpParentId())) {
                     // 鏄紝娣诲姞
                     rootNodeList.add(treeNode);
                 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 65edb21..9445510 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -179,6 +179,11 @@
             throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍏ュ巶椤荤煡 瀛楀吀涓嶅瓨鍦�");
         }
         visitConfigDTO.setVisitNotice(visitNotice.getCode());
+        SystemDictData doorsVisitRequired = systemDictList.stream().filter(m->m.getLabel().equals(Constants.SELECT_DOORS_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(doorsVisitRequired)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鑷�夐棬绂侀厤缃� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setDoorsVisitRequired(Integer.valueOf(doorsVisitRequired.getCode()));
         return visitConfigDTO;
     }
 
@@ -243,6 +248,11 @@
         }
         visitNotice.setCode(visitConfigDTO.getVisitNotice());
 
+        SystemDictData doorsVisitRequired = systemDictList.stream().filter(m->m.getLabel().equals(Constants.SELECT_DOORS_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(doorsVisitRequired)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鑷�夐棬绂侀厤缃� 瀛楀吀涓嶅瓨鍦�");
+        }
+        doorsVisitRequired.setCode(visitConfigDTO.getDoorsVisitRequired().toString());
 
         systemDictDataMapper.updateById(reservationWay);
         systemDictDataMapper.updateById(checkVisit);
@@ -251,6 +261,7 @@
         systemDictDataMapper.updateById(theme);
         systemDictDataMapper.updateById(description);
         systemDictDataMapper.updateById(visitNotice);
+        systemDictDataMapper.updateById(doorsVisitRequired);
 
     }
 
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java b/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
index f9f7345..e1fc4ba 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/ScheduleTool.java
@@ -66,6 +66,7 @@
         String url = WXConstant.GET_ACCESS_TOKEN_URL.replace("APPID",appId).replace("APPSECRET",appSecret);
         String response = HttpsUtil.get(url,false);
         JSONObject json = JSONObject.parseObject(response);
+        System.out.println(json);
         SystemDictData systemDictData =  systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN);
         if(!Objects.isNull(systemDictData)){
             systemDictData.setCode(json.getString("access_token"));
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
index b38b36e..626e9cc 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/PublicController.java
@@ -95,6 +95,7 @@
     @RequestMapping(method= RequestMethod.POST,value="api/uploadFtp.do")
     @ResponseBody
     public void uploadFtp(HttpServletRequest request, HttpServletResponse response, String folderCode) throws Exception {
+        System.out.println("涓婁紶涓�");
         String folder = systemDictDataBiz.queryByCode(Constants.FTP,folderCode).getCode();
         String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
         InputStream is = null;
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 2a4a690..92ded6e 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
@@ -1,5 +1,6 @@
 package com.doumee.api.web;
 
+import com.doumee.config.annotation.LoginRequired;
 import com.doumee.core.annotation.trace.Trace;
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.utils.Constants;

--
Gitblit v1.9.3