From 79243a38ffb959be94e1a81f922675d093850454 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期日, 18 二月 2024 16:55:11 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java                           |    4 
 server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java                   |    8 
 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java                      |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java                |    4 
 server/dmvisit_web/src/main/resources/application.yml                                                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java                    |   10 
 server/openapi/src/main/resources/application.yml                                                        |    2 
 server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java       |  306 ++++++++++++++++++---------
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java                       |    7 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java             |   31 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java        |   11 
 server/dmvisit_admin/src/main/resources/application.yml                                                  |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                         |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java         |   10 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java             |  135 +++++++-----
 server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                |   12 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java |   14 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java                    |   41 +--
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java                           |    8 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java         |    1 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java                         |   18 +
 22 files changed, 407 insertions(+), 227 deletions(-)

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 a64efdb..93eecb0 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
@@ -109,7 +109,7 @@
     }
 
 
-    @ApiOperation("鎵归噺鎷夐粦/鍐荤粨")
+    @ApiOperation("鎵归噺鎷夐粦")
     @GetMapping("/batchBlock")
     @RequiresPermissions("business:member:delete")
     public ApiResponse batchBlock(@RequestParam String ids) {
@@ -118,10 +118,24 @@
         for (String id : idArray) {
             idList.add(Integer.valueOf(id));
         }
-        memberService.batchBlock(idList);
+        memberService.batchBlock(idList,2);
         return ApiResponse.success(null);
     }
 
+    @ApiOperation("鎵归噺鍐荤粨")
+    @GetMapping("/batchFreeze")
+    @RequiresPermissions("business:member:delete")
+    public ApiResponse batchFreeze(@RequestParam String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        memberService.batchBlock(idList,1);
+        return ApiResponse.success(null);
+    }
+
+
 
     @ApiOperation("鏄惁鍙嫓璁跨姸鎬佷慨鏀�")
     @PostMapping("/updateCanVisitById")
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
index 6caa78e..a2a801e 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -142,18 +142,18 @@
      */
     @ApiOperation(value = "鍔冲姟鏉ヨ閰嶇疆" )
     @GetMapping("/getLaborConfigDTO")
-    public ApiResponse<LaborConfigDTO> getLaborConfigDTO(){
+    public ApiResponse<VisitConfigDTO> getLaborConfigDTO(){
         return ApiResponse.success(systemDictDataService.getLaborConfigDTO());
     };
 
     /**
      * 淇敼鍔冲姟鏉ヨ閰嶇疆
-     * @param miniProgrammeDTO
+     * @param visitConfigDTO
      */
     @ApiOperation(value = "淇敼鍔冲姟鏉ヨ閰嶇疆" )
     @PostMapping("/updateLaborConfigDTO")
-    public ApiResponse updateLaborConfigDTO(@RequestBody LaborConfigDTO miniProgrammeDTO){
-        systemDictDataService.updateLaborConfigDTO(miniProgrammeDTO);
+    public ApiResponse updateLaborConfigDTO(@RequestBody VisitConfigDTO visitConfigDTO){
+        systemDictDataService.updateLaborConfigDTO(visitConfigDTO);
         return ApiResponse.success(null);
     };
 }
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index a081a8b..a5c7678 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -67,7 +67,7 @@
   compression:
     enabled: true
     mime-types: application/json
-  port: 10013
+  port: 10028
   tomcat:
     max-swallow-size: -1
   servlet:
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java
index e4a886a..9de2e39 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java
@@ -14,7 +14,7 @@
 @ApiModel("璁垮鐢宠瀹℃壒缁撴灉閫氱煡璇锋眰淇℃伅")
 public class ApproveNoticeRequest extends BaseRequst {
     @ApiModelProperty(value = "瀹℃壒璁板綍鍞竴鏍囪瘑锛圗RP绔疘D锛�" ,example = "1")
-    private Integer id;
+    private String id;
     @ApiModelProperty(value = "瀹℃壒缁撴灉 0-涓嶉�氳繃 1-閫氳繃,榛樿 0" ,example = "1")
     private Integer status;
     @ApiModelProperty(value = "瀹℃牳鏃堕棿 yyyy-MM-dd HH:mm:ss" )
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 ed71395..6cd365e 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
@@ -34,6 +34,8 @@
 
     //琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
     public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
+    public static final String LW_BEVISITED_USER_VALID = "LW_BEVISITED_USER_VALID";
+
     public static final String SELECT_DOORS_VISIT_REQUIRED = "SELECT_DOORS_VISIT_REQUIRED";
     public static final String SELECT_DOORS_LW_REQUIRED = "SELECT_DOORS_LW_REQUIRED";
     public static final String PROBLEM_LW_REQUIRED = "PROBLEM_LW_REQUIRED";
@@ -46,6 +48,16 @@
     // 璁垮鏉ヨ閰嶇疆
     public static final String VISIT_CONFIG = "VISIT_CONFIG";
     public static final String MEMBER_IMG = "MEMBER_IMG";
+    //鍋ュ悍璇侀厤缃�
+    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
+    public static final String HEALTH_CARD = "HEALTH_CARD";
+    //绛旈璇存槑
+    public static final String LW_DESCRIPTION = "LW_DESCRIPTION";
+    public static final String DESCRIPTION = "DESCRIPTION";
+    //绛旈涓婚
+    public static final String LW_THEME = "LW_THEME";
+    public static final String THEME = "THEME";
+
     // 鍔冲姟鏉ヨ閰嶇疆
     public static final String LABOR_CONFIG = "LABOR_CONFIG";
     public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG";
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 45b73db..38a982a 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
@@ -45,6 +45,10 @@
             thing1 = "瀹℃牳閫氳繃";
         }else if(visits.getStatus()==3){
             thing1 = "瀹℃牳涓嶉�氳繃";
+        }else if(visits.getStatus()==5){
+            thing1 = "璁惧鎺堟潈鎴愬姛";
+        }else if(visits.getStatus()==6){
+            thing1 = "璁惧鎺堟潈鏈垚鍔�";
         }
         // 娣诲姞妯℃澘鏁版嵁
         templateMessage.addData(new WxMpTemplateData("thing1", thing1))
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
index da6674b..92f37ee 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -16,7 +16,7 @@
 public class MemberQuery implements Serializable {
 
     @ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/宸ュ彿")
-    private String keyWords;
+    private String keyword;
 
     @ApiModelProperty(value = "鏄惁鏈変汉鑴� 0 鍚� 1 鏄�")
     private Integer hasFace;
@@ -52,4 +52,9 @@
     @ApiModelProperty(value = "鎿嶄綔浜哄憳 ")
     private Integer createrId;
 
+
+
+    @ApiModelProperty(value = "erp鏈烘瀯涓婚敭 ")
+    private String erpOrgId;
+
 }
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 1132258..303ead0 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
@@ -18,35 +18,22 @@
 @ApiModel("鍔冲姟鏉ヨ閰嶇疆")
 public class VisitConfigDTO {
 
+    @ApiModelProperty(value = "鏉ヨ棰勭害鏂瑰紡 0鍚︼紝1鏄�")
+    private Integer reservationWay;
 
-    @ApiModelProperty(value = "鍙傛暟瀵硅薄")
-    private VisitConfigParam visitConfigParam;
+    @ApiModelProperty(value = "琚浜烘牎楠屾柟寮� 0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙")
+    private Integer checkVisit;
 
-    @ApiModelProperty(value = "鍔冲姟绛旈涓婚")
-    private String theme = "";
+    @ApiModelProperty(value = "鍋ュ悍璇佹槸鍚﹀繀濉� 0=鍚︼紱1=鏄�")
+    private Integer healthCard;
 
-    @ApiModelProperty(value = "鍔冲姟绛旈璇存槑")
-    private String description = "";
+    @ApiModelProperty(value = "鏄惁绛旈 0涓嶉渶瑕侊紝1闇�瑕�" )
+    private Integer isAnswer;
 
-//    /**
-//     * 瀵硅薄椹煎嘲灞炴�ц浆涓嬪垝绾�
-//     * @param object
-//     * @return
-//     * @throws JsonProcessingException
-//     */
-//    public static String toUnderlineJSONString(Object object) throws JsonProcessingException {
-//        ObjectMapper mapper = new ObjectMapper();
-//        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
-//        mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
-//        String reqJson = mapper.writeValueAsString(object);
-//        return reqJson;
-//    }
-//
-//
-//    public static <T> T toSnakeObject(String json, Class<T> clazz) throws IOException {
-//        ObjectMapper mapper = new ObjectMapper();
-//        mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
-//        T reqJson =  mapper.readValue(json, clazz);
-//        return reqJson;
-//    }
+    @ApiModelProperty(value = "绛旈涓婚")
+    private String theme;
+
+    @ApiModelProperty(value = "绛旈璇存槑")
+    private String description;
+
 }
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 af30c66..1f168ae 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
@@ -9,6 +9,7 @@
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author T14
@@ -112,11 +113,16 @@
     @TableField(exist = false)
     private Date visitsLastDate;
 
-    @ApiModelProperty(value = "鏈�鍚庡喕缁撴椂闂�")
+    @ApiModelProperty(value = "鏈�鍚庡喕缁�/鎷夐粦鏃堕棿")
     @TableField(exist = false)
-    private Date userActionType1;
+    private Date optTime;
 
     @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収", example = "1")
     private Integer idcardType;
 
+    @ApiModelProperty(value = "璁垮鍏徃鍚嶇О")
+    private String visitCompanyName;
+
+    @ApiModelProperty(value = "闂ㄧ缁勫悕绉�")
+    private List<String> roleNames;
 }
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 d585a36..70c52fd 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
@@ -201,6 +201,10 @@
     @ExcelColumn(name="ERP缁勭粐缂栫爜")
     private String erpOrgId;
 
+    @ApiModelProperty(value = "璁垮鍏徃鍚嶇О")
+    @ExcelColumn(name="璁垮鍏徃鍚嶇О")
+    private String visitCompanyName;
+
     @ApiModelProperty(value = "缁勭粐鍚嶇О")
     @TableField(exist = false)
     private String companyName;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index 773d37f..5105d1c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -35,7 +35,7 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
@@ -262,10 +262,10 @@
     @TableField(exist = false)
     private String receptMemberDepartment;
 
-    @ApiModelProperty(value = "闂ㄧ闆嗗悎", example = "1")
-    @ExcelColumn(name="闂ㄧ闆嗗悎")
+    @ApiModelProperty(value = "闂ㄧ缁勯泦鍚�", example = "1")
+    @ExcelColumn(name="闂ㄧ缁勯泦鍚�")
     @TableField(exist = false)
-    private List<Device> deviceList;
+    private List<DeviceRole> deviceRoleList;
 
     @ApiModelProperty(value = "闅忚浜哄憳鍒楄〃", example = "1")
     @ExcelColumn(name="闅忚浜哄憳鍒楄〃")
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 b2fed95..b306c56 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
@@ -61,7 +61,7 @@
      */
     void deleteByIdInBatch(List<Integer> ids);
 
-    void batchBlock(List<Integer> ids);
+    void batchBlock(List<Integer> ids,Integer type);
 
     /**
      * 涓婚敭鏇存柊
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 e5c6889..7c2f924 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
@@ -289,11 +289,11 @@
         queryWrapper.orderByDesc(MemberCard::getCreateDate);
 
         //鏄惁鏄暟瀛�
-        boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
+        boolean number = Validator.isNumber(pageWrap.getModel().getKeyword());
         //鏄惁鍖呭惈涓枃
-        boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords());
+        boolean b = Validator.hasChinese(pageWrap.getModel().getKeyword());
         //鏄惁鍖呭惈鑻辨枃
-        boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords());
+        boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyword());
 
         queryWrapper.leftJoin(Member.class,Member::getId,MemberCard::getMemberId)
                     .leftJoin(Company.class,Company::getId,Member::getCompanyId);
@@ -305,8 +305,8 @@
         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())
-                    .like(number,Member::getPhone,pageWrap.getModel().getKeyWords())
-                    .like((b||hasWord),Member::getName,pageWrap.getModel().getKeyWords());
+                    .like(number,Member::getPhone,pageWrap.getModel().getKeyword())
+                    .like((b||hasWord),Member::getName,pageWrap.getModel().getKeyword());
         IPage<MemberCard> memberCardIPage = memberCardJoinMapper.selectJoinPage(page, MemberCard.class,queryWrapper);
         if(null != memberCardIPage && memberCardIPage.getRecords().size() > 0) {
             memberCardIPage.setRecords(getDataPackage(memberCardIPage));
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 99374b6..e41b4b1 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
@@ -197,7 +197,7 @@
     }
 
     @Override
-    public void batchBlock(List<Integer> ids) {
+    public void batchBlock(List<Integer> ids,Integer type) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
@@ -206,10 +206,28 @@
         for (Integer id:ids) {
             member = memberMapper.selectById(id);
             if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){
+                UserAction userAction=new UserAction();
+                userAction.setBeforeStatus(member.getStatus());
                 member.setStatus(Constants.TWO);
                 member.setEditor(loginUserInfo.getId());
                 member.setEditDate(new Date());
                 memberMapper.updateById(member);
+
+                userAction.setIsdeleted(Constants.ZERO);
+                userAction.setCreateDate(new Date());
+                userAction.setCreator(loginUserInfo.getId());
+                if(Constants.equalsInteger(type,Constants.ONE)){
+                    userAction.setType(Constants.ONE);
+                    userAction.setRemark("鐢便��"+loginUserInfo.getUsername()+"銆戜簬銆愭搷浣滄椂闂�"+new Date()+"銆戯紝杩涜銆愬喕缁撱��");
+                }
+                if(Constants.equalsInteger(type,Constants.TWO)){
+                    userAction.setType(Constants.TWO);
+                    userAction.setRemark("鐢便��"+loginUserInfo.getUsername()+"銆戜簬銆愭搷浣滄椂闂�"+new Date()+"銆戯紝杩涜銆愭媺榛戙��");
+
+                }
+                userAction.setMemberId(id+"");
+
+                userActionJoinMapper.insert(userAction);
             }
         }
         /*  memberMapper.deleteBatchIds(ids);*/
@@ -559,43 +577,6 @@
 
     @Override
     public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) {
-  /*      //鏄惁鏄暟瀛�
-        boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords());
-        //鏄惁鍖呭惈涓枃
-        boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords());
-        //鏄惁鍖呭惈鑻辨枃
-        boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords());*/
-
-      /*  IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
-        MemberQuery model = pageWrap.getModel();
-        Utils.MP.blankToNull(model);
-
-        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId)
-                .leftJoin(DeviceRole.class,DeviceRole::getId,Member::getRoleId);
-              *//*  .leftJoin(MemberCard.class,MemberCard::getMemberId,Member::getId);*//*
-
-        queryWrapper.selectAll(Member.class)
-                .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
-                .selectAs(DeviceRole::getName,MemberInfoDTO::getRoleName)
-             *//*   .select("count(t3.id) as memberCardCount ");*//*
-                .select("");
-
-        queryWrapper.in(Objects.nonNull(model.getCompanyIds()),Member::getCompanyId,model.getCompanyIds())
-              *//*      .like(number,Member::getPhone,model.getKeyWords())
-                    .like((b||hasWord),Member::getPhone,model.getKeyWords())*//*
-                     .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,model.getKeyWords())
-                     .or().like(Member::getName,model.getKeyWords())
-                     .or().like(Member::getCode,model.getKeyWords()))
-
-                    .isNull(Constants.equalsInteger(model.getHasFace(),Constants.ZERO),Member::getFaceId)
-                    .isNotNull(Constants.equalsInteger(model.getHasFace(),Constants.ONE),Member::getFaceId)
-                    .eq(Objects.nonNull(model.getCanVisit()),Member::getCanVisit,model.getCanVisit())
-                    .eq(Objects.nonNull(model.getStatus()),Member::getStatus,model.getStatus());
-        IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
-        if (!CollectionUtils.isEmpty(memberIPage.getRecords())){
-            memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode())));
-        }*/
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
 
@@ -603,22 +584,60 @@
         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())
-                .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()))
-                .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId)
-                .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()),ms->ms
+                        .like(Member::getPhone,pageWrap.getModel().getKeyword())
+                        .or().like(Member::getName,pageWrap.getModel().getKeyword())
+                        .or().like(Member::getCode,pageWrap.getModel().getKeyword()))
+                .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId)
+                .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId)
                 .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit())
-                .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getCanVisit,pageWrap.getModel().getStatus())
+                .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
+                .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId())
                 .eq(Member::getIsdeleted,Constants.ZERO)
-                .eq(Member::getStatus,Constants.Status.ENABLE.getValue())
+//                .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);
+
+        if(CollectionUtils.isNotEmpty(memberIPage.getRecords())){
+            //FTP鏂囦欢璁块棶鍓嶇紑
+            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+            //闂ㄧ缁勪俊鎭�
+            List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
+                            .select(DeviceRole::getId,DeviceRole::getName)
+                    .eq(DeviceRole::getIsdeleted,Constants.ZERO));
+            for (MemberInfoDTO memberInfoDTO:memberIPage.getRecords()) {
+                //鑾峰緱闂ㄧ缁勫悕绉版暟缁�
+                memberInfoDTO.setRoleNames(this.dealRoleDatas(memberInfoDTO.getRoleId(),deviceRoleList));
+                //鎷兼帴鍓嶇紑
+                if(StringUtils.isNotBlank(memberInfoDTO.getFaceImg())){
+                    memberInfoDTO.setFaceImg(prefixUrl + memberInfoDTO.getFaceImg());
+                }
+                if(StringUtils.isNotBlank(memberInfoDTO.getImgurl())){
+                    memberInfoDTO.setImgurl(prefixUrl + memberInfoDTO.getImgurl());
+                }
+            }
+        }
         return PageData.from(memberIPage);
     }
 
+
+    public List<String>  dealRoleDatas(String roleIds,List<DeviceRole> deviceRoleList){
+        List<String> stringList = new ArrayList<>();
+        if(StringUtils.isNotBlank(roleIds)){
+            roleIds = roleIds.replace("[","").replace("]","");
+            List<String> ids = Arrays.asList(roleIds.split(","));
+            ids.forEach(i->{
+                DeviceRole deviceRole = deviceRoleList.stream().filter(m->m.getId().toString().equals(i)).findFirst().get();
+                if(!Objects.isNull(deviceRole)){
+                    stringList.add(deviceRole.getName());
+                }
+            });
+        }
+        return stringList;
+    }
 
     @Override
     public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) {
@@ -627,19 +646,20 @@
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.selectAll(Member.class)
                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
-                .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount")
-                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate");
+                .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status = 2  ) as visitsCount")
+                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0  and v.status = 2  order by CREATE_DATE limit 1) as visitsLastDate");
 
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName())
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone())
-                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName())
+                        .or().like(Company::getName,pageWrap.getModel().getCompanyName()))
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
+                .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId())
                 .eq(Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,Constants.Status.ENABLE.getValue())
                 .eq(!Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus())
                 .eq(Member::getType,Constants.memberType.visitor)
                 .eq(Member::getIsdeleted,Constants.ZERO)
                 .orderByDesc(Member::getCreateDate);
-
 
         IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
         return PageData.from(memberIPage);
@@ -654,17 +674,18 @@
         queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.selectAll(Member.class)
                 .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
-                .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type=1 order by ua.CREATE_DATE limit 1) as userActionType1")
-                .select(" (select uac.remark from user_action uac  where uac.MEMBER_ID=t.id and uac.ISDELETED=0 and uac.type=1 order by uac.CREATE_DATE limit 1) as creatorName")
-             /*   .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount")*/
-                .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate");
+                .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");
 
                 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.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName())
-                .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName())
+        queryWrapper
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName())
                         .or().like(Member::getName,pageWrap.getModel().getName()))
-                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
+                .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
+                        ms->ms.like(Company::getName,pageWrap.getModel().getCompanyName())
+                        .or().like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()))
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
                 .eq(Member::getStatus,Constants.Status.FREEZE.getValue())
                 .eq(Objects.nonNull(pageWrap.getModel().getCode()),Member::getCode,pageWrap.getModel().getCode())
@@ -813,7 +834,7 @@
                 .ne(Member::getType,Constants.memberType.visitor)
         );
         //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛
-        if(Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){
+        if(!Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){
             if(member.getIsdeleted() == Constants.ONE){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳");
             }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
index 1772d7a..18e5090 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
@@ -179,6 +179,7 @@
         problemLog.setCreateDate(new Date());
         problemLog.setIsdeleted(Constants.ZERO);
         problemLog.setStatus(Constants.ZERO);
+        problemLog.setOpenid(finishAnswerDTO.getOpenId());
         if(finishAnswerDTO.getUseType().equals(Constants.ZERO)&&StringUtils.isNotBlank(finishAnswerDTO.getUserId())){
             Member member = memberMapper.selectById(finishAnswerDTO.getUserId());
             if(Objects.isNull(member)){
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 2009aaa..e42296e 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
@@ -134,6 +134,7 @@
         String erpId = startSendErpCheck(visits,visitMember);
         if(StringUtils.isNotBlank(erpId)){
             visits.setErpId(erpId);
+            visits.setStatus(Constants.VisitStatus.submitCheck);
             visitsMapper.updateById(visits);
         }else{
             throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�");
@@ -484,9 +485,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.getStarttime().getTime() < System.currentTimeMillis()){
+//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害寮�濮嬫椂闂村繀椤诲ぇ浜庡綋鍓嶆椂闂达紒");//
+//        }
         if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂达紒");//
         }
@@ -532,6 +533,7 @@
     private void initWithVisitInfo(Visits visits) {
         if(CollectionUtils.isNotEmpty(visits.getWithUserList())){
             for(Visits v :visits.getWithUserList()){
+                v.setBirthday(Constants.getBirthdyByCardNo(v.getIdcardNo()));
                 v.setParentId(visits.getId());
                 v.setStarttime(visits.getStarttime());
                 v.setEndtime(visits.getEndtime());
@@ -542,7 +544,7 @@
                 v.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, v.getIdcardNo()));//韬唤璇佸彿鍔犲瘑
                 v.setErpId(visits.getErpId());
                 v.setHkStatus(Constants.ZERO);
-                v.setStatus(Constants.ZERO);
+                v.setStatus(Constants.VisitStatus.submitCheck);
             }
             //鎵归噺鎻掑叆鏁版嵁
             visitsMapper.insertBatchSomeColumn(visits.getWithUserList());
@@ -652,6 +654,7 @@
         //闅忚浜哄憳淇℃伅澶勭悊
         if(visits.getWithUserList()!= null && visits.getWithUserList().size()>0){
             for(Visits model:visits.getWithUserList()){
+                model.setBirthday(Constants.getBirthdyByCardNo(model.getIdcardNo()));
                 model.setStarttime(visits.getStarttime());
                 model.setEndtime(visits.getEndtime());
                 //鏍¢獙闅忚浜哄憳濉姤鏁版嵁鍚堟硶鎬�
@@ -678,6 +681,11 @@
         if(StringUtils.isNotBlank(visits.getCarNos())&&!Constants.checkCarNo(visits.getCarNos())){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘");
         }
+        if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&cardno.length()!=18
+            //&&!IdcardUtil.isValidCard(cardno)
+        ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
+        }
         Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
                 .eq(Member::getType,Constants.memberType.visitor)
                 .eq(Member::getIdcardType,visits.getIdcardType())
@@ -689,6 +697,7 @@
             member.setCreateDate(visits.getCreateDate());
             member.setIsdeleted(Constants.ZERO);
             member.setIdcardNo(visits.getIdcardNo());
+            member.setBirthday(Constants.getBirthdyByCardNo(cardno));
             member.setIdcardDecode(visits.getIdcardDecode());
             member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑
             member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱鎵嬫満鍙�
@@ -704,6 +713,7 @@
             member.setSex(Constants.getSexByCardNo(cardno));
             member.setHkStatus(Constants.ZERO);
             member.setErpStatus(Constants.ZERO);
+            member.setVisitCompanyName(visits.getCompanyName());
             // 鏂板璁垮璁板綍
             addList.add(member);
         }else{
@@ -726,6 +736,7 @@
             member.setSex(Constants.getSexByCardNo(cardno));
             member.setHkStatus(Constants.ZERO);
             member.setErpStatus(Constants.ZERO);
+            member.setVisitCompanyName(visits.getCompanyName());
             // 鏇存柊璁垮淇℃伅,
             editList.add(member);
         }
@@ -909,7 +920,7 @@
         queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName);
         queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment);
         queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
-        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+        queryWrapper.leftJoin(Company.class,Company::getErpId,Member::getErpOrgId);
 
         queryWrapper.eq(Visits::getId,id);
         Visits result = visitsJoinMapper.selectJoinOne(Visits.class,queryWrapper);
@@ -917,10 +928,10 @@
         if(result!=null){
             if(StringUtils.isNotBlank(result.getDoors())){
                 String[] doorList=result.getDoors().split(",");
-                MPJLambdaWrapper<Device> deviceQuery = new MPJLambdaWrapper<>();
-                deviceQuery.in(Device::getId,doorList);
-                List<Device> deviceList= deviceJoinMapper.selectList(deviceQuery);
-                result.setDeviceList(deviceList);
+                MPJLambdaWrapper<DeviceRole> deviceQuery = new MPJLambdaWrapper<>();
+                deviceQuery.in(DeviceRole::getId,doorList);
+                List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(deviceQuery);
+                result.setDeviceRoleList(deviceRoleList);
             }
         }
 
@@ -1067,7 +1078,7 @@
         }
         visitDetailVO.setWithVisitsList(
                 visitsMapper.selectList(new QueryWrapper<Visits>().lambda()
-                .select(Visits::getName,Visits::getPhone,Visits::getFaceImg,Visits::getImgurl,Visits::getIdcardDecode)
+                .select(Visits::getName,Visits::getPhone,Visits::getFaceImg,Visits::getImgurl,Visits::getIdcardDecode,Visits::getStatus)
                 .eq(Visits::getParentId,id)));
         return visitDetailVO;
     }
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 9d4127d..58d3b84 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
@@ -26,6 +26,7 @@
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.Utils;
 import com.doumee.core.utils.redis.RedisUtil;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.CarEventJoinMapper;
 import com.doumee.dao.business.join.DeviceEventJoinMapper;
@@ -108,6 +109,9 @@
     @Autowired
     private ErpTool erpTool;
 
+
+    @Autowired
+    private WxPlatNotice wxPlatNotice;
 
     @Override
     @PostConstruct
@@ -1053,11 +1057,16 @@
             List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().eq(Visits::getErpId,param.getId()));
             if(CollectionUtils.isNotEmpty(visitsList)){
                 visitsList.forEach(i->{
-                    i.setStatus(param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass);
+                    i.setStatus(!param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass);
                     i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss"));
                     i.setHkStatus(Constants.ZERO);
                     i.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                     visitsMapper.updateById(i);
+                    if(Objects.isNull(i.getParentId())){
+                        wxPlatNotice.sendVisitAuditTemplateNotice(i,
+                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
+                                systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
+                    }
                 });
             }
         }catch (BusinessException e){
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 45c3843..7b0aca6 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
@@ -13,6 +13,7 @@
 import com.doumee.core.utils.DESUtil;
 import com.doumee.core.utils.DateUtil;
 import com.doumee.core.utils.ImageBase64Util;
+import com.doumee.core.wx.wxPlat.WxPlatNotice;
 import com.doumee.dao.business.CompanyMapper;
 import com.doumee.dao.business.DeviceRoleMapper;
 import com.doumee.dao.business.MemberMapper;
@@ -29,10 +30,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 
 /**
  * 娴峰悍璁垮涓氬姟Service瀹炵幇
@@ -48,7 +46,8 @@
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
     private DeviceRoleMapper deviceRoleMapper;
-
+    @Autowired
+    private WxPlatNotice wxPlatNotice;
     /**
      * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
      */
@@ -79,6 +78,11 @@
                 String type = Constants.equalsInteger(c.getType(),Constants.ONE)?applyType:applyLwType;
                 getUpdateModelByResponse(c,date,type,roleList,path);
                 visitsMapper.updateById(c);
+                if(Objects.isNull(c.getParentId())){
+                    wxPlatNotice.sendVisitAuditTemplateNotice(c,
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
+                            systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
+                }
             }
         }catch (Exception e){
             e.printStackTrace();
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
index c0ce5d2..e067f23 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -115,11 +115,11 @@
      * 鍔冲姟鏉ヨ閰嶇疆
      * @return
      */
-    LaborConfigDTO getLaborConfigDTO();
+    VisitConfigDTO getLaborConfigDTO();
 
     /**
      * 淇敼鍔冲姟鏉ヨ閰嶇疆
      * @param miniProgrammeDTO
      */
-    void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO);
+    void updateLaborConfigDTO(VisitConfigDTO visitConfigDTO);
 }
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 1a7911d..76d4642 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
@@ -27,6 +27,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import java.util.Date;
 import java.util.List;
@@ -130,62 +131,111 @@
 
     @Override
     public VisitConfigDTO getVisitConfigDTO() {
-
-        try {
-            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
-            systemDictQuery.lambda()
-                            .eq(SystemDict::getDeleted,Boolean.FALSE)
-                            .eq(SystemDict::getCode,Constants.VISIT_CONFIG);
-            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
-
-            if (Objects.isNull(systemDict)){
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
-            }
-            QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
-            wrapper.lambda()
-                    .eq(SystemDictData::getDictId,systemDict.getId());
-            List<SystemDictData> systemDictDatas = systemDictDataMapper.selectList(wrapper);
-            if (CollectionUtils.isEmpty(systemDictDatas)){
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀鍊间笉瀛樺湪");
-            }
-            VisitConfigDTO visitConfigDTO = null;
-            for (SystemDictData obj:systemDictDatas) {
-                visitConfigDTO = new VisitConfigDTO();
-                visitConfigDTO.setVisitConfigParam(JSONObject.parseObject(obj.getCode(),VisitConfigParam.class));
-                visitConfigDTO.setDescription(obj.getRemark());
-                visitConfigDTO.setTheme(obj.getLabel());
-            }
-            return visitConfigDTO;
-        } catch (Exception e) {
-            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+        VisitConfigDTO visitConfigDTO = new VisitConfigDTO();
+        SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM));
+        if(Objects.isNull(systemDict)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀绫讳笉瀛樺湪");
         }
+        List<SystemDictData> systemDictList = systemDictDataMapper.selectList(
+                new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId()));
+        if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+        }
+        SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(reservationWay)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鏉ヨ棰勭害鏂瑰紡 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setReservationWay(Integer.valueOf(reservationWay.getCode()));
+
+        SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.BEVISITED_USER_VALID)).findFirst().get();
+        if(Objects.isNull(checkVisit)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮琚浜烘牎楠屾柟寮� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setCheckVisit(Integer.valueOf(checkVisit.getCode()));
+        SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.HEALTH_CARD)).findFirst().get();
+        if(Objects.isNull(healthCard)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鍋ュ悍璇佹槸鍚﹀繀濉� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setHealthCard(Integer.valueOf(healthCard.getCode()));
+        SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(isAnswer)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鏄惁闇�瑕佺瓟棰� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setIsAnswer(Integer.valueOf(isAnswer.getCode()));
+        SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.THEME)).findFirst().get();
+        if(Objects.isNull(theme)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮绛旈涓婚 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setTheme(theme.getCode());
+        SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.DESCRIPTION)).findFirst().get();
+        if(Objects.isNull(description)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮绛旈璇存槑 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setDescription(description.getCode());
+        return visitConfigDTO;
     }
 
     @Override
-    public void updateVisitConfig(VisitConfigDTO miniProgrammeDTO) {
+    public void updateVisitConfig(VisitConfigDTO visitConfigDTO) {
+        if(Objects.isNull(visitConfigDTO)
+                ||Objects.isNull(visitConfigDTO.getReservationWay())
+                ||Objects.isNull(visitConfigDTO.getCheckVisit())
+                ||Objects.isNull(visitConfigDTO.getHealthCard())
+                ||Objects.isNull(visitConfigDTO.getIsAnswer())
+                || StringUtils.isEmpty(visitConfigDTO.getTheme())
+                || StringUtils.isEmpty(visitConfigDTO.getDescription())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM));
+        if(Objects.isNull(systemDict)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀绫讳笉瀛樺湪");
+        }
+        List<SystemDictData> systemDictList = systemDictDataMapper.selectList(
+                new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId()));
+        if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+        }
 
-            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
-            systemDictQuery.lambda()
-                    .eq(SystemDict::getDeleted,Boolean.FALSE)
-                    .eq(SystemDict::getCode,Constants.VISIT_CONFIG);
-            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+        SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(reservationWay)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鏉ヨ棰勭害鏂瑰紡 瀛楀吀涓嶅瓨鍦�");
+        }
+        reservationWay.setCode(visitConfigDTO.getReservationWay().toString());
 
-            if (Objects.isNull(systemDict)){
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
-            }
-            QuerySystemDictDataDTO dictData = new QuerySystemDictDataDTO();
-            dictData.setDictId((systemDict.getId()));
-            List<SystemDictDataListVO> systemDictDataListVOS = systemDictDataMapper.selectManageList(dictData);
-            SystemDictData systemDictData = getSystemDictDataListVO(systemDict);
-            systemDictData.setCode(JSON.toJSONString(miniProgrammeDTO.getVisitConfigParam()));
-            systemDictData.setLabel(miniProgrammeDTO.getTheme());
-            systemDictData.setRemark(miniProgrammeDTO.getDescription());
-            if(null != systemDictDataListVOS && systemDictDataListVOS.size() > 0) {
-                systemDictData.setId(systemDictDataListVOS.get(0).getId());
-                systemDictDataMapper.updateById(systemDictData);
-            }else {
-                systemDictDataMapper.insert(systemDictData);
-            }
+        SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.BEVISITED_USER_VALID)).findFirst().get();
+        if(Objects.isNull(checkVisit)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮琚浜烘牎楠屾柟寮� 瀛楀吀涓嶅瓨鍦�");
+        }
+        checkVisit.setCode(visitConfigDTO.getCheckVisit().toString());
+        SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.HEALTH_CARD)).findFirst().get();
+        if(Objects.isNull(healthCard)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鍋ュ悍璇佹槸鍚﹀繀濉� 瀛楀吀涓嶅瓨鍦�");
+        }
+        healthCard.setCode(visitConfigDTO.getHealthCard().toString());
+        SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_VISIT_REQUIRED)).findFirst().get();
+        if(Objects.isNull(isAnswer)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮鏄惁闇�瑕佺瓟棰� 瀛楀吀涓嶅瓨鍦�");
+        }
+        isAnswer.setCode(visitConfigDTO.getIsAnswer().toString());
+        SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.THEME)).findFirst().get();
+        if(Objects.isNull(theme)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮绛旈涓婚 瀛楀吀涓嶅瓨鍦�");
+        }
+        theme.setCode(visitConfigDTO.getTheme());
+        SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.DESCRIPTION)).findFirst().get();
+        if(Objects.isNull(description)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"璁垮绛旈璇存槑 瀛楀吀涓嶅瓨鍦�");
+        }
+        description.setCode(visitConfigDTO.getDescription());
+
+        systemDictDataMapper.updateById(reservationWay);
+        systemDictDataMapper.updateById(checkVisit);
+        systemDictDataMapper.updateById(healthCard);
+        systemDictDataMapper.updateById(isAnswer);
+        systemDictDataMapper.updateById(theme);
+        systemDictDataMapper.updateById(description);
+
     }
 
     private SystemDictData getSystemDictDataListVO(SystemDict systemDict) {
@@ -203,62 +253,114 @@
     }
 
     @Override
-    public LaborConfigDTO getLaborConfigDTO() {
-
-        try {
-            String jasonStr = Constants.toUnderlineJSONString(new LaborConfigDTO());
-            JSONObject parse = (JSONObject) JSONObject.parse(jasonStr);
-            List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList());
-
-            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
-            systemDictQuery.lambda()
-                    .eq(SystemDict::getDeleted,Boolean.FALSE)
-                    .eq(SystemDict::getCode,Constants.LABOR_CONFIG);
-            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
-
-            if (Objects.isNull(systemDict)){
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
-            }
-            QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
-            wrapper.lambda()
-                    .eq(SystemDictData::getDictId,systemDict.getId());
-            List<SystemDictData> systemDictDatas = systemDictDataMapper.selectList(wrapper);
-            LaborConfigDTO laborConfigDTO = null;
-            for (SystemDictData obj:systemDictDatas) {
-                laborConfigDTO = new LaborConfigDTO();
-                laborConfigDTO.setLaborConfigParam(JSONObject.parseObject(obj.getCode(), LaborConfigParam.class));
-                laborConfigDTO.setDescription(obj.getRemark());
-                laborConfigDTO.setTheme(obj.getLabel());
-            }
-            return laborConfigDTO;
-        } catch (Exception e) {
-            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀛楀吀鍊艰В鏋愭湁璇�");
+    public VisitConfigDTO getLaborConfigDTO() {
+        VisitConfigDTO visitConfigDTO = new VisitConfigDTO();
+        SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM));
+        if(Objects.isNull(systemDict)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀绫讳笉瀛樺湪");
         }
+        List<SystemDictData> systemDictList = systemDictDataMapper.selectList(
+                new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId()));
+        if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+        }
+        SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_LW_REQUIRED)).findFirst().get();
+        if(Objects.isNull(reservationWay)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鏉ヨ棰勭害鏂瑰紡 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setReservationWay(Integer.valueOf(reservationWay.getCode()));
+
+        SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_BEVISITED_USER_VALID)).findFirst().get();
+        if(Objects.isNull(checkVisit)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮琚浜烘牎楠屾柟寮� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setCheckVisit(Integer.valueOf(checkVisit.getCode()));
+
+        SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_HEALTH_CARD)).findFirst().get();
+        if(Objects.isNull(healthCard)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鍋ュ悍璇佹槸鍚﹀繀濉� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setHealthCard(Integer.valueOf(healthCard.getCode()));
+
+        SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_LW_REQUIRED)).findFirst().get();
+        if(Objects.isNull(isAnswer)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鏄惁闇�瑕佺瓟棰� 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setIsAnswer(Integer.valueOf(isAnswer.getCode()));
+
+        SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_THEME)).findFirst().get();
+        if(Objects.isNull(theme)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮绛旈涓婚 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setTheme(theme.getCode());
+
+        SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_DESCRIPTION)).findFirst().get();
+        if(Objects.isNull(description)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮绛旈璇存槑 瀛楀吀涓嶅瓨鍦�");
+        }
+        visitConfigDTO.setDescription(description.getCode());
+        return visitConfigDTO;
     }
 
     @Override
-    public void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO) {
-            QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>();
-            systemDictQuery.lambda()
-                    .eq(SystemDict::getDeleted,Boolean.FALSE)
-                    .eq(SystemDict::getCode,Constants.LABOR_CONFIG);
-            SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery);
+    public void updateLaborConfigDTO(VisitConfigDTO visitConfigDTO) {
+        if(Objects.isNull(visitConfigDTO)
+                ||Objects.isNull(visitConfigDTO.getReservationWay())
+                ||Objects.isNull(visitConfigDTO.getCheckVisit())
+                ||Objects.isNull(visitConfigDTO.getHealthCard())
+                ||Objects.isNull(visitConfigDTO.getIsAnswer())
+                || StringUtils.isEmpty(visitConfigDTO.getTheme())
+                || StringUtils.isEmpty(visitConfigDTO.getDescription())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM));
+        if(Objects.isNull(systemDict)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀绫讳笉瀛樺湪");
+        }
+        List<SystemDictData> systemDictList = systemDictDataMapper.selectList(
+                new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId()));
+        if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
+        }
 
-            if (Objects.isNull(systemDict)){
-                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"瀛楀吀涓嶅瓨鍦�");
-            }
-            QuerySystemDictDataDTO dictData = new QuerySystemDictDataDTO();
-            dictData.setDictId((systemDict.getId()));
-            List<SystemDictDataListVO> systemDictDataListVOS = systemDictDataMapper.selectManageList(dictData);
-            SystemDictData systemDictData = getSystemDictDataListVO(systemDict);
-            systemDictData.setCode(JSON.toJSONString(miniProgrammeDTO.getLaborConfigParam()));
-            systemDictData.setLabel(miniProgrammeDTO.getTheme());
-            systemDictData.setRemark(miniProgrammeDTO.getDescription());
-            if(null != systemDictDataListVOS && systemDictDataListVOS.size() > 0) {
-                systemDictData.setId(systemDictDataListVOS.get(0).getId());
-                systemDictDataMapper.updateById(systemDictData);
-            }else {
-                systemDictDataMapper.insert(systemDictData);
-            }
+        SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_LW_REQUIRED)).findFirst().get();
+        if(Objects.isNull(reservationWay)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鏉ヨ棰勭害鏂瑰紡 瀛楀吀涓嶅瓨鍦�");
+        }
+        reservationWay.setCode(visitConfigDTO.getReservationWay().toString());
+
+        SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_BEVISITED_USER_VALID)).findFirst().get();
+        if(Objects.isNull(checkVisit)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮琚浜烘牎楠屾柟寮� 瀛楀吀涓嶅瓨鍦�");
+        }
+        checkVisit.setCode(visitConfigDTO.getCheckVisit().toString());
+        SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_HEALTH_CARD)).findFirst().get();
+        if(Objects.isNull(healthCard)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鍋ュ悍璇佹槸鍚﹀繀濉� 瀛楀吀涓嶅瓨鍦�");
+        }
+        healthCard.setCode(visitConfigDTO.getHealthCard().toString());
+        SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_LW_REQUIRED)).findFirst().get();
+        if(Objects.isNull(isAnswer)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮鏄惁闇�瑕佺瓟棰� 瀛楀吀涓嶅瓨鍦�");
+        }
+        isAnswer.setCode(visitConfigDTO.getIsAnswer().toString());
+        SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_THEME)).findFirst().get();
+        if(Objects.isNull(theme)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮绛旈涓婚 瀛楀吀涓嶅瓨鍦�");
+        }
+        theme.setCode(visitConfigDTO.getTheme());
+        SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_DESCRIPTION)).findFirst().get();
+        if(Objects.isNull(description)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍔冲姟璁垮绛旈璇存槑 瀛楀吀涓嶅瓨鍦�");
+        }
+        description.setCode(visitConfigDTO.getDescription());
+
+        systemDictDataMapper.updateById(reservationWay);
+        systemDictDataMapper.updateById(checkVisit);
+        systemDictDataMapper.updateById(healthCard);
+        systemDictDataMapper.updateById(isAnswer);
+        systemDictDataMapper.updateById(theme);
+        systemDictDataMapper.updateById(description);
     }
 }
diff --git a/server/dmvisit_web/src/main/resources/application.yml b/server/dmvisit_web/src/main/resources/application.yml
index 3af5437..cc7d5b6 100644
--- a/server/dmvisit_web/src/main/resources/application.yml
+++ b/server/dmvisit_web/src/main/resources/application.yml
@@ -70,7 +70,7 @@
     enabled: true
     mime-types: application/json
 
-  port: 10016
+  port: 10027
   tomcat:
     max-swallow-size: -1
   servlet:
diff --git a/server/openapi/src/main/resources/application.yml b/server/openapi/src/main/resources/application.yml
index a81464d..8dc6444 100644
--- a/server/openapi/src/main/resources/application.yml
+++ b/server/openapi/src/main/resources/application.yml
@@ -70,7 +70,7 @@
     enabled: true
     mime-types: application/json
 
-  port: 10018
+  port: 10029
   tomcat:
     max-swallow-size: -1
   servlet:

--
Gitblit v1.9.3