From a6d6627a6e13aef60941337a270541f507d53ba7 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 15 十二月 2023 09:36:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java                             |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/model/openapi/request/erp/MemberFailRequest.java      |   25 +++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java                        |   61 ++++++-
 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java                        |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java                        |    4 
 server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java                                       |   60 ------
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/DevicePictureRequest.java |   10 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java     |   57 ++++++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarPictureRequest.java    |   10 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/join/CarJoinMapper.java                       |    7 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java                         |    3 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java                 |   13 -
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java                            |   54 ++++++
 server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java                                 |   17 +
 server/dmvisit_service/src/main/java/com/doumee/core/utils/FtpUtil.java                                    |   39 ++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java               |   27 +++
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitPictureRequest.java  |   11 +
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                  |    8 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java                             |    4 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java                           |    2 
 server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java                           |    8 +
 21 files changed, 326 insertions(+), 98 deletions(-)

diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
index 5c38b14..3ea4554 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/CarsController.java
@@ -69,7 +69,7 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-   // @RequiresPermissions("business:cars:query")
+    @RequiresPermissions("business:cars:query")
     public ApiResponse<PageData<Cars>> findPage (@RequestBody PageWrap<Cars> pageWrap) {
         return ApiResponse.success(carsService.findPage(pageWrap));
     }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
index ff7f611..70c7f05 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/business/DeviceController.java
@@ -69,7 +69,7 @@
 
     @ApiOperation("鍒嗛〉鏌ヨ")
     @PostMapping("/page")
-    @RequiresPermissions("business:device:query")
+    //@RequiresPermissions("business:device:query")
     public ApiResponse<PageData<Device>> findPage (@RequestBody PageWrap<Device> pageWrap) {
         return ApiResponse.success(deviceService.findPage(pageWrap));
     }
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 e4eb4d3..69790af 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
@@ -151,4 +151,12 @@
         return ApiResponse.success(memberService.findVisitPage(pageWrap));
     }
 
+
+    @ApiOperation("寮傚父浜哄憳")
+    @PostMapping("/findUnusualPage")
+    @RequiresPermissions("business:member:query")
+    public ApiResponse<PageData<MemberInfoDTO>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap) {
+        return ApiResponse.success(memberService.findUnusualPage(pageWrap));
+    }
+
 }
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
index 9369302..58d4b0c 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java
@@ -2,6 +2,7 @@
 
 
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.utils.URIBuilder;
@@ -29,9 +30,8 @@
 @EnableScheduling
 public class ScheduleTool {
 
-
     @Autowired
-    private SystemDictDataBiz systemDictDataBiz;
+    private HkSyncImgServiceImpl hkSyncImgService;
     /**
      * 鏄惁寮�鍙戣��
      */
@@ -43,60 +43,10 @@
      * 缂撳瓨鐪佸競鍖�
      * @throws Exception
      */
-    @Scheduled(fixedDelay=24*60*60*1000)
-    public void cacheCampus() throws Exception {
-    }
-     /**
-     * 姣忓ぉ鍑屾櫒閲嶇疆鎵�鏈夎鍗昪ode绫诲垵濮嬪��
-     * @throws Exception
-     */
-    @Scheduled(cron="0 0 0 * * ?")
-    public void resetOrderCodes() throws Exception {
+    @Scheduled(fixedDelay= 60*1000)
+    public void downloadHkImg() throws Exception {
+        hkSyncImgService.downHKImgs(0);
     }
 
-
-
-    /**
-     * 鍙戦�乬et璇锋眰
-     * @param url 璇锋眰URL
-     * @param param 璇锋眰鍙傛暟 key:value url鎼哄甫鍙傛暟 鎴栬�呮棤鍙傚彲涓嶅~
-     * @return
-     */
-    public  String doGet(String url, Map<String, String> param) {
-        // 鍒涘缓Httpclient瀵硅薄
-        CloseableHttpClient httpclient = HttpClients.createDefault();
-        String resultString = "";
-        CloseableHttpResponse response = null;
-        try {
-            // 鍒涘缓uri
-            URIBuilder builder = new URIBuilder(url);
-            if (param != null) {
-                for (String key : param.keySet()) {
-                    builder.addParameter(key, param.get(key));
-                }
-            }
-            URI uri = builder.build();
-            // 鍒涘缓http GET璇锋眰
-            HttpGet httpGet = new HttpGet(uri);
-            // 鎵ц璇锋眰
-            response = httpclient.execute(httpGet);
-            // 鍒ゆ柇杩斿洖鐘舵�佹槸鍚︿负200
-            if (response.getStatusLine().getStatusCode() == 200) {
-                resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            try {
-                if (response != null) {
-                    response.close();
-                }
-                httpclient.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-        return resultString;
-    }
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
index bd896ca..3f6ab67 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -53,6 +53,9 @@
         String eventSub= "/api/eventService/v1/eventSubscriptionByEventTypes";//浜嬩欢璁㈤槄
         String doorSearch= "/api/resource/v2/door/search";//鏌ヨ闂ㄧ鐐瑰垪琛╲2
         String cancelEventSub= "/api/eventService/v1/eventUnSubscriptionByEventTypes";//鍙栨秷浜嬩欢璁㈤槄
+        String visitPicture= "/api/visitor/v1/record/pictures";//鑾峰彇璁垮璁板綍涓殑鍥剧墖
+        String devicePicture= "/api/acs/v1/event/pictures";//鑾峰彇闂ㄧ浜嬩欢鐨勫浘鐗�
+        String carPicture= "/api/pms/v1/image";//鏌ヨ杞﹁締鎶撴媿鍥剧墖
     }
 
     /**
@@ -78,7 +81,6 @@
             this.name = name;
             this.key = key;
         }
-
 
 
         // get set 鏂规硶
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
index c179655..c639633 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -291,6 +291,60 @@
 		}
 	}
 	/**
+	 * 鑾峰彇璁垮璁板綍涓殑鍥剧墖
+	 * @param body
+	 * @return
+	 */
+	public static InputStream getVisitPicture(String body)  throws  Exception{
+
+		Map<String, String> path = getPath(HKConstants.InterfacePath.visitPicture);
+		//鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆
+		HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null);
+		if (200==resp.getStatusLine().getStatusCode()) {
+			HttpEntity entity = resp.getEntity();
+			InputStream in = entity.getContent();
+			return  in;
+		}else{
+			throw  new Exception("鑾峰彇璁垮璁板綍涓殑鍥剧墖涓嬭浇鍑洪敊");
+		}
+	}
+	/**
+	 * 鑾峰彇闂ㄧ浜嬩欢鐨勫浘鐗�
+	 * @param body
+	 * @return
+	 */
+	public static InputStream getDevicePicture(String body)  throws  Exception{
+
+		Map<String, String> path = getPath(HKConstants.InterfacePath.devicePicture);
+		//鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆
+		HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null);
+		if (200==resp.getStatusLine().getStatusCode()) {
+			HttpEntity entity = resp.getEntity();
+			InputStream in = entity.getContent();
+			return  in;
+		}else{
+			throw  new Exception("鑾峰彇闂ㄧ浜嬩欢鐨勫浘鐗囦笅杞藉嚭閿�");
+		}
+	}
+	/**
+	 * 鏌ヨ杞﹁締鎶撴媿鍥剧墖
+	 * @param body
+	 * @return
+	 */
+	public static InputStream getCarPicture(String body)  throws  Exception{
+
+		Map<String, String> path = getPath(HKConstants.InterfacePath.carPicture);
+		//鍙傛暟鏍规嵁鎺ュ彛瀹為檯鎯呭喌璁剧疆
+		HttpResponse resp = ArtemisHttpUtil.doPostStringImgArtemis( path, body, null, null,"application/json",null);
+		if (200==resp.getStatusLine().getStatusCode()) {
+			HttpEntity entity = resp.getEntity();
+			InputStream in = entity.getContent();
+			return  in;
+		}else{
+			throw  new Exception("鏌ヨ杞﹁締鎶撴媿鍥剧墖涓嬭浇鍑洪敊");
+		}
+	}
+	/**
 	 *	鑾峰彇闂ㄧ鐐瑰垪琛�
 	 * @param body
 	 * @return
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarPictureRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarPictureRequest.java
new file mode 100644
index 0000000..0cd18a8
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/CarPictureRequest.java
@@ -0,0 +1,10 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class CarPictureRequest {
+
+    private String  aswSyscode;//	string	True	鍥剧墖鏈嶅姟鍞竴鏍囪瘑鐮侊紙鏈�澶ч暱搴�64锛�  浠庡叾浠栬繑鍥炲浘鐗嘦ri鎺ュ彛澶勮幏鍙�
+    private String  picUri	;//string	True	鍥剧墖Uri锛堟渶澶ч暱搴�256锛�
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/DevicePictureRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/DevicePictureRequest.java
new file mode 100644
index 0000000..0c2112d
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/DevicePictureRequest.java
@@ -0,0 +1,10 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class DevicePictureRequest {
+
+    private String  svrIndexCode	;//	string	True	鎻愪緵picUri澶勪細鎻愪緵姝ゅ瓧娈�
+    private String  picUri	;//	string	True	鍥剧墖鐩稿鍦板潃
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitPictureRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitPictureRequest.java
new file mode 100644
index 0000000..5387f03
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/VisitPictureRequest.java
@@ -0,0 +1,11 @@
+package com.doumee.core.haikang.model.param.request;
+
+import lombok.Data;
+
+@Data
+public class VisitPictureRequest {
+
+    private String  svrIndexCode	;//	string	True	鎻愪緵picUri澶勪細鎻愪緵姝ゅ瓧娈�
+    private String  picUri	;//	string	True	鍥剧墖鐩稿鍦板潃
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
index f886834..c53ce61 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1,29 +1,19 @@
 package com.doumee.core.haikang.service;
 
 import com.alibaba.fastjson.JSONObject;
-import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.haikang.model.param.request.*;
-import com.doumee.core.haikang.model.param.respose.*;
-import com.doumee.core.utils.Constants;
+import com.alibaba.fastjson.TypeReference;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.HKTools;
 import com.doumee.core.haikang.model.param.BaseRequst;
 import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.dao.business.model.InterfaceLog;
-import com.doumee.service.business.InterfaceLogService;
-import com.hikvision.artemis.sdk.config.ArtemisConfig;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import com.alibaba.fastjson.TypeReference;
 
 import java.io.InputStream;
-import java.util.Date;
 import java.util.List;
 
 @Slf4j
@@ -244,6 +234,51 @@
         }
         return  null;
     }
+    /**
+     * 鑾峰彇璁垮璁板綍涓殑鍥剧墖
+     * @return
+     */
+    public static InputStream getVisitPicture(VisitPictureRequest param) {
+        log.info("銆愭捣搴疯瀹㈠浘鐗囨祦銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            InputStream res = HKTools.getVisitPicture(JSONObject.toJSONString(param));
+            log.error("銆愭捣搴疯瀹㈠浘鐗囨祦銆�================鎴愬姛====\n");
+            return  res;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯瀹㈠浘鐗囨祦銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 鑾峰彇闂ㄧ浜嬩欢鐨勫浘鐗�
+     * @return
+     */
+    public static InputStream getDevicePicture(DevicePictureRequest param) {
+        log.info("銆愭捣搴烽棬绂佷簨浠跺浘鐗囨祦銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            InputStream res = HKTools.getDevicePicture(JSONObject.toJSONString(param));
+            log.error("銆愭捣搴烽棬绂佷簨浠跺浘鐗囨祦銆�================鎴愬姛====\n");
+            return  res;
+        }catch (Exception e){
+            log.error("銆愭捣搴烽棬绂佷簨浠跺浘鐗囨祦銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
+    /**
+     * 鏌ヨ杞﹁締鎶撴媿鍥剧墖
+     * @return
+     */
+    public static InputStream getCarPicture(CarPictureRequest param) {
+        log.info("銆愭捣搴疯溅杈嗘姄鎷嶅浘鐗囧浘鐗囨祦銆�================寮�濮�===="+JSONObject.toJSONString(param));
+        try {
+            InputStream res = HKTools.getCarPicture(JSONObject.toJSONString(param));
+            log.error("銆愭捣搴疯溅杈嗘姄鎷嶅浘鐗囧浘鐗囨祦銆�================鎴愬姛====\n");
+            return  res;
+        }catch (Exception e){
+            log.error("銆愭捣搴疯溅杈嗘姄鎷嶅浘鐗囧浘鐗囨祦銆�================澶辫触====锛歕n"+ e.getMessage());
+        }
+        return  null;
+    }
 
     /**
      *鑾峰彇杞﹀簱鍒楄〃鏁版嵁锛堝叏閲忥級
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/model/openapi/request/erp/MemberFailRequest.java b/server/dmvisit_service/src/main/java/com/doumee/core/model/openapi/request/erp/MemberFailRequest.java
new file mode 100644
index 0000000..c6c52f2
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/model/openapi/request/erp/MemberFailRequest.java
@@ -0,0 +1,25 @@
+package com.doumee.core.model.openapi.request.erp;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel(value = "鍛樺伐鍚屾澶辫触鎺ㄩ�佽姹傚弬鏁�" )
+public class MemberFailRequest {
+
+    @ApiModelProperty(value = "鍛樺伐id"  )
+    private  String userId;
+    @ApiModelProperty(value = "澶辫触绫诲瀷 0浜哄憳鍚屾澶辫触 1鏉冮檺涓嬪彂澶辫触 "  )
+    private  Integer type;
+
+    @ApiModelProperty(value = "澶囨敞淇℃伅锛屾弿杩板け璐ュ師鍥�")
+    private String info;
+
+}
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 73e6cc5..3c51aa3 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
@@ -49,6 +49,11 @@
     public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG";
     public static final String CAR_EVENT_IMG = "CAR_EVENT_IMG";
     public static final String DEVICE_EVENT_IMG = "DEVICE_EVENT_IMG";
+    public static final String FTP ="FTP" ;
+    public static final String FTP_HOST ="FTP_HOST" ;
+    public static final String FTP_PORT ="FTP_PORT" ;
+    public static final String FTP_USERNAME ="FTP_USERNAME" ;
+    public static final String FTP_PWD ="FTP_PWD" ;
     public static  boolean DEALING_HK_IMG = false;
     // ERP鎺ュ彛閰嶇疆
     public static final String ERP_CONFIG = "ERP_CONFIG";
@@ -249,7 +254,8 @@
 
         /** 鐢ㄦ埛鍚敤绂佺敤鏋氫妇鍊�*/
         ENABLE(0,"姝e父"),
-        DISABLE(1,"绂佺敤");
+        DISABLE(1,"绂佺敤"),
+        FREEZE(2,"鎷夐粦/鍐荤粨");
 
         private  Integer value;
         private  String des;
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/FtpUtil.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/FtpUtil.java
index f158543..9e2a26a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/FtpUtil.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/FtpUtil.java
@@ -233,6 +233,39 @@
 		}
 		return result;
 	}
+	public boolean uploadInputstream(InputStream inputStream, String remote)  {
+		// 璁剧疆PassiveMode浼犺緭
+		try {
+			ftpClient.enterLocalPassiveMode();
+
+			// 璁剧疆浠ヤ簩杩涘埗娴佺殑鏂瑰紡浼犺緭
+			ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
+			ftpClient.setControlEncoding("GBK");
+			// 瀵硅繙绋嬬洰褰曠殑澶勭悊
+			String remoteFileName = remote;
+			if (remote.contains(File.separator)) {
+				remoteFileName = remote.substring(remote.lastIndexOf(File.separator) + 1);
+				// 鍒涘缓鏈嶅姟鍣ㄨ繙绋嬬洰褰曠粨鏋勶紝鍒涘缓澶辫触鐩存帴杩斿洖
+				if (StringUtils.equals(CreateDirecroty(remote, ftpClient), "2")) {
+					log.error("鍒涘缓ftp鐩綍澶辫触======================="+remote);
+					return false;
+				}
+			}
+			boolean result = ftpClient.storeFile(remoteFileName, inputStream);
+			inputStream.close();
+			ftpClient.logout();
+			if(result){
+				log.info("涓婁紶鏂囦欢鎴愬姛======================"+remote);
+			}else{
+				log.error("涓婁紶鏂囦欢澶辫触======================="+remote);
+			}
+			return result;
+		}catch (Exception e){
+			e.printStackTrace();
+			log.error("涓婁紶鏂囦欢澶辫触======================="+remote);
+		}
+		return false;
+	}
 	public int getNumFromStr(String str,char searchstr) {
 		int count = 0;
 		char[] charArray = str.toCharArray();
@@ -599,8 +632,6 @@
 		File src = new File(localDirectory);
 		try {
 			remoteDirectoryPath =  remoteDirectoryPath  + File.separator;
-
-//			System.out.println(remoteDirectoryPath+":===============鍒涘缓鐩綍=================");
 			boolean makeDirFlag = this.ftpClient.makeDirectory(remoteDirectoryPath);
 		}catch (IOException e) {
 			e.printStackTrace();
@@ -611,11 +642,9 @@
 		for (int currentFile = 0;currentFile < allFile.length;currentFile++) {
 			File f =allFile[currentFile];
 			String srcName=	f.getPath().toString();
-//			System.out.println(srcName+":====================璇诲彇鏂囦欢======================");
 			String tPath = remoteDirectoryPath+f.getName();
 			if (!f.isDirectory()) {
 
-//				System.out.println(srcName+":====================寮�濮嬩紶杈撴枃浠�======================");
 				int dNum = getNumFromStr(tPath,File.separator.toCharArray()[0]);
 				uploadFile(f, tPath);
 				if(dNum -2>=0){
@@ -624,11 +653,9 @@
 					}
 				}
 			}else{
-//				System.out.println(srcName+":====================鍒涘缓瀛愮洰褰�======================");
 				uploadDirectory(srcName,
 						tPath+File.separator);
 			}
-//			System.out.println(srcName+":====================涓婁紶瀹屾瘯======================");
 		}
 		return true;
 	}
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 b7ef45b..e35b43f 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
@@ -42,5 +42,8 @@
     @ApiModelProperty(value = "韬唤璇佸彿")
     private String idcardNo;
 
+    @ApiModelProperty(value = " 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    private Integer type;
+
 
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/CarJoinMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/CarJoinMapper.java
new file mode 100644
index 0000000..db544b7
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/CarJoinMapper.java
@@ -0,0 +1,7 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.Cars;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+public interface CarJoinMapper extends MPJJoinMapper<Cars> {
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
index 569d570..4226cb0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Device.java
@@ -52,8 +52,8 @@
     @ExcelColumn(name="澶囨敞")
     private String remark;
 
-    @ApiModelProperty(value = "璁惧埆鍚�")
-    @ExcelColumn(name="璁惧埆鍚�")
+    @ApiModelProperty(value = "璁惧鍚嶇О")
+    @ExcelColumn(name="璁惧鍚嶇О")
     private String name;
 
     @ApiModelProperty(value = "娴峰悍鏍囪瘑", example = "1")
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 55b51c1..7f95229 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
@@ -153,6 +153,8 @@
 
     PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap);
 
+    PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap);
+
 
     /********************************************鍏紬鍙锋帴鍙�***********************************************************************/
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index fa224c3..64358a0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -1,5 +1,9 @@
 package com.doumee.service.business.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
@@ -11,10 +15,6 @@
 import com.doumee.dao.business.join.ParkBookJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.CarsService;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -99,11 +99,6 @@
     @Override
     public PageData<Cars> findPage(PageWrap<Cars> pageWrap) {
 
-        MPJLambdaWrapper<Cars> visRecord = new MPJLambdaWrapper<>();
-        visRecord.selectAll(Cars.class);
-        visRecord.eq(Cars::getIsdeleted, Constants.ZERO);
-        visRecord.eq(Cars::getId, Constants.ZERO);
-        Cars result = carJoinMapper.selectJoinOne(Cars.class,visRecord);
 
         IPage<Cars> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         QueryWrapper<Cars> queryWrapper = new QueryWrapper<>();
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 8bdd4a9..dae492d 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
@@ -516,6 +516,33 @@
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone())
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName())
                 .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
+                .eq(Member::getStatus,Constants.Status.FREEZE)
+                .orderByDesc(Member::getCreateDate);
+
+
+        IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
+        return PageData.from(memberIPage);
+
+    }
+
+
+    @Override
+    public PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap) {
+
+
+        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
+        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");
+
+        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
+        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())
+                .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
                 .eq(Member::getStatus,Constants.Status.ENABLE)
                 .orderByDesc(Member::getCreateDate);
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
index f4562f5..643bbd3 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
@@ -2,28 +2,36 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
+import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse;
 import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.FtpUtil;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.model.CarEvent;
 import com.doumee.dao.business.model.Device;
 import com.doumee.dao.business.model.DeviceEvent;
 import com.doumee.dao.business.model.VisitEvent;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * 璁惧淇℃伅琛⊿ervice瀹炵幇
@@ -31,6 +39,7 @@
  * @date 2023/11/30 15:33
  */
 @Service
+@Slf4j
 public class HkSyncImgServiceImpl extends HkSyncBaseServiceImpl {
 
     @Autowired
@@ -39,7 +48,10 @@
     private DeviceEventMapper deviceEventMapper;
     @Autowired
     private VisitEventMapper visitEventMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
     @Override
+    @Async
     public  String downHKImgs(int type){
         if(Constants.DEALING_HK_IMG){
             return null ;
@@ -161,9 +173,46 @@
 
     }
 
-    private String downHkImgToFtp(String img1, String serverIndex, String visitEventImg) {
-        //
-
+    private String downHkImgToFtp(String img1, String serverIndex, String folder) {
+        InputStream is = null;
+        if(StringUtils.equals(folder,Constants.CAR_EVENT_IMG)){
+            //鍋滆溅鍦烘姄鎷嶅浘
+            CarPictureRequest param = new CarPictureRequest();
+            param.setPicUri(img1);
+            param.setAswSyscode(serverIndex);
+            is = HKService.getCarPicture(param);
+        }else if(StringUtils.equals(folder,Constants.DEVICE_EVENT_IMG)){
+            //闂ㄧ浜嬩欢鍥剧墖
+            DevicePictureRequest param = new DevicePictureRequest();
+            param.setPicUri(img1);
+            param.setSvrIndexCode(serverIndex);
+            is = HKService.getDevicePicture(param);
+        }else if(StringUtils.equals(folder,Constants.VISIT_EVENT_IMG)){
+            //璁垮浜嬩欢鍥剧墖
+            VisitPictureRequest param = new VisitPictureRequest();
+            param.setPicUri(img1);
+            param.setSvrIndexCode(serverIndex);
+            is = HKService.getVisitPicture(param);
+        }
+        //TODO------jiangping---------
+        try {
+            FtpUtil ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
+                    Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+            String date = DateUtil.getNowShortDate();
+            String fName = File.separator+date+File.separator+ UUID.randomUUID().toString()+".jpg";
+            String fileName = folder+fName;
+            boolean r = ftp.uploadInputstream(is,fileName);//涓婁紶
+            if(r){
+                log.info("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================" );
+                return  fName;
+            }else{
+                log.error("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================" );
+            }
+        } catch (Exception e) {
+            log.error("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================"+e.getMessage());
+        }
         return  null;
     }
 }
diff --git a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
index 6864bcf..a89ee60 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/ErpResourceController.java
@@ -5,6 +5,7 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.openapi.request.erp.ApproveAddRequest;
+import com.doumee.core.model.openapi.request.erp.MemberFailRequest;
 import com.doumee.core.model.openapi.request.erp.OrgListRequest;
 import com.doumee.core.model.openapi.request.erp.UserListRequest;
 import com.doumee.core.model.openapi.response.erp.ApproveInfoResponse;
@@ -16,6 +17,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
 import java.util.UUID;
 
 /**
@@ -27,32 +29,37 @@
 
 @Api(tags = "2銆併�怑RP銆戠鎻愪緵鎺ュ彛锛堝悜璁垮绔彁渚涙垨鎻愪氦鏁版嵁淇℃伅锛�")
 @RestController
-@RequestMapping("/erp")
+@RequestMapping("/erp/resource")
 @Slf4j
 public class ErpResourceController extends ApiController{
     @ApiOperation(value = "鍏ㄩ噺缁勭粐淇℃伅鎺ュ彛", notes = "ERP绔彁渚涳紝渚涜瀹㈢鎷夊彇鍏ㄩ儴缁勭粐淇℃伅锛岀敤浜庡垵濮嬪寲鍙婂懆鏈熸�ф暟鎹牳鏌�")
-    @PostMapping("/resource/org/list")
+    @PostMapping("/org/list")
     public ApiResponse<PageData<OrgListResponse>> orgList (@RequestBody PageWrap<OrgListRequest> pageWrap) {
         return ApiResponse.success(null);
     }
     @ApiOperation(value = "鍏ㄩ噺浜哄憳淇℃伅鎺ュ彛", notes = "ERP绔彁渚涳紝渚涜瀹㈢鎷夊彇鍏ㄩ儴浜哄憳淇℃伅锛岀敤浜庡垵濮嬪寲鍙婂懆鏈熸�ф暟鎹牳鏌�")
-    @PostMapping("/resource/user/list")
+    @PostMapping("/user/list")
     public ApiResponse<PageData<UserListRespone>> userList (@RequestBody PageWrap<UserListRequest> pageWrap) {
         return ApiResponse.success(null);
     }
     @ApiOperation(value = "璁垮鐢宠鎻愪氦瀹℃壒鎺ュ彛", notes = "ERP绔彁渚涳紝渚涜瀹㈢璋冪敤锛屾彁浜よ瀹㈢敵璇蜂俊鎭�,鎺ュ彛鎻愪氦鎴愬姛锛孍RP绔繑鍥炲鎵硅褰曠紪鐮�")
     @PostMapping("/event/approve/apply")
-    public ApiResponse<String> approveApply(@RequestBody ApproveAddRequest account ) {
+    public ApiResponse<String> approveApply(@RequestBody ApproveAddRequest param ) {
         return  ApiResponse.success(UUID.randomUUID().toString());
     }
     @ApiOperation(value = "璁垮鐢宠瀹℃壒缁撴灉鏌ヨ鎺ュ彛", notes = "ERP绔彁渚涳紝渚涜瀹㈢璋冪敤锛屾煡璇㈣瀹㈢敵璇峰鎵圭粨鏋�")
-    @GetMapping("/resource/approve/info")
+    @GetMapping("/approve/info")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "瀹℃壒璁板綍鍞竴鏍囪瘑", required = true)
     })
     public ApiResponse<ApproveInfoResponse> approveInfo(@RequestParam String id ) {
         return  ApiResponse.success(null );
     }
+    @ApiOperation(value = "鍛樺伐鍚屾澶辫触鎺ㄩ�佹帴鍙�", notes = "ERP绔彁渚涳紝渚涜瀹㈢璋冪敤锛屽憡鐭rp鍛樺伐淇℃伅鍚屾澶辫触鐨勬暟鎹�")
+    @PostMapping("/member/fail")
+    public ApiResponse<ApproveInfoResponse> memberFail(@RequestBody List<MemberFailRequest> param) {
+        return  ApiResponse.success(null );
+    }
 
 }
 

--
Gitblit v1.9.3