From e2b0e215d7f208a8f40aadb5ff05cd0f3088f0d9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 15 十二月 2023 09:09:35 +0800
Subject: [PATCH] 海康接口对接开发

---
 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/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/service/business/impl/CarsServiceImpl.java                 |    8 
 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/core/haikang/model/param/request/VisitPictureRequest.java  |   11 +
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                  |    5 
 13 files changed, 273 insertions(+), 88 deletions(-)

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 4949a87..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";
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/service/business/impl/CarsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
index dcb60df..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;
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