From c1e7bbbec984e4cd1b9f31490e3d85ae7c923ab0 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 04 三月 2024 13:58:43 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java                        |    2 
 server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java                        |    3 +
 server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java                      |    4 +-
 server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java               |    2 
 server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java                       |    3 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java      |   27 ++++++-------
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java |   19 +++++++--
 server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java                  |   14 +++++++
 8 files changed, 49 insertions(+), 25 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index 66eaa30..c827e52 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -75,11 +75,11 @@
                         String token = request.getHeader(JwtTokenUtil.HEADER_KEY);
                         String redisToken = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,String.class);
                         if(StringUtils.isBlank(redisToken)||!token.equals(redisToken)){
-                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈櫥褰�");
+                            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎺堟潈宸插け鏁�");
                         }
                         request.setAttribute(JwtTokenUtil.HEADER_KEY,token);
                     } catch (IllegalArgumentException | JwtException e) {
-                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�");
+                        throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鎺堟潈宸插け鏁�");
                     }
 //                    request.setAttribute("token", token);
                 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
index 1eebcab..dc375df 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
@@ -8,6 +8,9 @@
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.util.Date;
 import java.util.List;
 
@@ -21,18 +24,23 @@
 @ApiModel("ERP璁垮鐢宠涓荤被")
 public class ErpVisitDTO extends BaseRequst {
 
+    @NotBlank(message = "ERP璁板綍涓婚敭涓嶈兘涓虹┖")
     @ApiModelProperty(value = "ERP璁板綍涓婚敭")
     private String erpId;
 
+    @NotBlank(message = "璁垮濮撳悕涓嶈兘涓虹┖")
     @ApiModelProperty(value = "璁垮濮撳悕")
     private String name;
 
+    @NotBlank(message = "鎵嬫満鍙蜂笉鑳戒负绌�")
     @ApiModelProperty(value = "鎵嬫満鍙�")
     private String phone;
 
+    @NotNull(message = "璇佷欢绫诲瀷涓嶈兘涓虹┖")
     @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収")
     private Integer idcardType;
 
+    @NotBlank(message = "璇佷欢鍙蜂笉鑳戒负绌�")
     @ApiModelProperty(value = "璇佷欢鍙�")
     private String idcardNo;
 
@@ -42,25 +50,31 @@
     @ApiModelProperty(value = "鍋ュ悍璇�")
     private String imgurl;
 
+    @NotBlank(message = "鍏徃鍚嶇О涓嶈兘涓虹┖")
     @ApiModelProperty(value = "鍏徃鍚嶇О")
     private String companyName;
 
+    @NotBlank(message = "琚浜轰笉鑳戒负绌�")
     @ApiModelProperty(value = "琚浜� erp 涓婚敭 ")
     private String receptMemberId;
 
+    @NotNull(message = "闂ㄧ鏈夋晥璧锋湡涓嶈兘涓虹┖")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
     private Date starttime;
 
+    @NotNull(message = "闂ㄧ鏈夋晥姝㈡湡涓嶈兘涓虹┖")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熸埅姝�")
     private Date endtime;
 
+    @NotBlank(message = "闂ㄧ缂栫爜涓嶈兘涓虹┖")
     @ApiModelProperty(value = "闂ㄧ缂栫爜  娴峰悍绯荤粺涓婚敭 锛屽涓敤鑻辨枃閫楀彿闅斿紑")
     private String doors;
 
+    @NotBlank(message = "鏉ヨ浜嬬敱涓嶈兘涓虹┖")
     @ApiModelProperty(value = "鏉ヨ浜嬬敱")
     private String reason;
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
index 3d5d37d..fc7fa7d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -26,7 +26,7 @@
      */
     Integer create(Visits visits);
 
-    Integer createFk(Visits visits);
+    Integer createFk(Visits visits,Boolean isERP);
 
     void createFKForErp(ErpVisitDTO erpVisitDTO);
 
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 43d9931..e387803 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
@@ -111,7 +111,6 @@
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public void createFKForErp(ErpVisitDTO erpVisitDTO){
         try {
-
             if (Objects.isNull(erpVisitDTO)
                     || StringUtils.isBlank(erpVisitDTO.getName())
                     || StringUtils.isBlank(erpVisitDTO.getPhone())
@@ -120,6 +119,7 @@
                     || Objects.isNull(erpVisitDTO.getStarttime())
                     || Objects.isNull(erpVisitDTO.getEndtime())
                     || StringUtils.isBlank(erpVisitDTO.getFaceImg())
+                    || StringUtils.isBlank(erpVisitDTO.getDoors())
                     || Objects.isNull(erpVisitDTO.getReceptMemberId())
                     || Objects.isNull(erpVisitDTO.getErpId())
             ) {
@@ -159,7 +159,7 @@
                 }
                 visits.setWithUserList(visitsList);
             }
-            this.createFk(visits);
+            this.createFk(visits,true);
         }catch (BusinessException e){
             throw e;
         }finally {
@@ -190,12 +190,12 @@
      */
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
-    public Integer createFk(Visits visits) {
+    public Integer createFk(Visits visits,Boolean isERP) {
         isValidBaseParam(visits);
         //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰
         ProblemLog problemLog = isValidProblemLog(visits);
         //鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅
-        getHkDeviceRoles(visits);
+        getHkDeviceRoles(visits,isERP);
         //妫�楠屾嫓璁夸汉鏄惁鍚堟硶
         Member visitMember = isValideVisitedUser(visits.getReceptMemberId());
         if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&visits.getIdcardNo().length()!=18
@@ -577,9 +577,9 @@
                 || visits.getReceptMemberId() == null){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
         }
-//        if(visits.getStarttime().getTime() < System.currentTimeMillis()){
-//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害寮�濮嬫椂闂村繀椤诲ぇ浜庡綋鍓嶆椂闂达紒");//
-//        }
+        if(visits.getEndtime().getTime() < System.currentTimeMillis()){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿锛�");//
+        }
         if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂达紒");//
         }
@@ -944,16 +944,13 @@
      * @param visits
      * @return
      */
-    private String[] getHkDeviceRoles(Visits visits) {
+    private String[] getHkDeviceRoles(Visits visits,Boolean isERP) {
         String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode();
+        if(isERP){
+            mustSelectDoors = Constants.ONE+"";
+        }
         List<DeviceRole> roles = null;
         if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){
-            //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭�
-            if(StringUtils.isBlank(visits.getDoors())){
-                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨璁块棶闂ㄧ锛�");
-            }
-            //鏍¢獙闂ㄧ缁勪俊鎭槸鍚︽纭�
-            String[] dIds = visits.getDoors().split(",");
             roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
                     .eq(DeviceRole::getIsDefault,Constants.ZERO)
                     .eq(DeviceRole::getIsdeleted,Constants.ZERO)
@@ -963,7 +960,7 @@
             }
         }else{
             //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨
-            if(StringUtils.isNotBlank(visits.getDoors())){
+            if(StringUtils.isBlank(visits.getDoors())){
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥璁块棶闂ㄧ锛�");
             }
             String[] dIds = visits.getDoors().split(",");
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 bc734f7..5bc3112 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
@@ -1017,12 +1017,16 @@
             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);
@@ -1035,8 +1039,10 @@
                 ||StringUtils.isBlank(param.getCarCode())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
-        if(param.getValidStartTime()!=null && param.getValidEndTime()!=null&&param.getValidStartTime().getTime()> param.getValidEndTime().getTime()){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏈夋晥鏈熸椂闂翠笉鍚堟硶锛�");
+        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)){
@@ -1048,8 +1054,13 @@
                 .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())
+            );
+        }
         //鏌ヨ杞﹀簱淇℃伅
-        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) {
@@ -1060,7 +1071,7 @@
                 parkBook.setParkId(parks.getId());
                 parkBook.setOrigin(Constants.ZERO);
                 parkBook.setStartTime(Objects.isNull(param.getValidStartTime())?new Date():param.getValidStartTime());
-                parkBook.setEndTime(param.getValidEndTime());
+                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);
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java
index 6736f29..f36f20b 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/InternalController.java
@@ -24,6 +24,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -108,7 +109,7 @@
     })
     public ApiResponse createVisit(@RequestBody Visits visits) {
         visits.setCreateMemberId(getMemberId());
-        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits));
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false));
     }
 
     @LoginRequired
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 717c757..2a4a690 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
@@ -64,7 +64,7 @@
     @PostMapping("/createFk")
     public ApiResponse createFk(@RequestBody Visits visits) {
         visits.setSourceType(Constants.ZERO);
-        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits));
+        return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits,false));
     }
 
 
diff --git a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
index 8de719e..ca45c88 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -19,6 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -166,7 +167,7 @@
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
     })
-    public ApiResponse  createVisit(@RequestBody ErpVisitDTO param) {
+    public ApiResponse  createVisit(@Valid @RequestBody ErpVisitDTO param) {
         param.setToken(this.getToken());
         visitsService.createFKForErp(param);
         return  ApiResponse.success("鎿嶄綔鎴愬姛");

--
Gitblit v1.9.3