From 89610234a2bdc56f60e0998045892ef2672edccc Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期五, 19 四月 2024 14:18:31 +0800
Subject: [PATCH] 最新版本

---
 server/dmvisit_screen/src/main/resources/application.yml                                                      |    4 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HIKCSDemo.java                               |  151 +++++++++++++++++++++
 server/dmvisit_web/src/main/resources/application.yml                                                         |    4 
 server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java                        |    7 -
 server/openapi/src/main/resources/application.yml                                                             |    4 
 server/dmvisit_admin/src/main/java/com/doumee/task/ScheduleTool.java                                          |    6 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java                  |   11 +
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java       |   11 +
 server/dmvisit_web/pom.xml                                                                                    |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HCUsbSDK.java                                |  156 ++++++++++++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java             |    3 
 logs/admin_timer.2024-04-12.log.zip                                                                           |    0 
 server/dmvisit_admin/src/main/resources/application.yml                                                       |    4 
 server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/Dewlt.java                                   |    7 +
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java                                     |    3 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java                                      |    9 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java |    5 
 server/admin_timer/src/main/resources/application.yml                                                         |    4 
 18 files changed, 356 insertions(+), 35 deletions(-)

diff --git a/logs/admin_timer.2024-04-12.log.zip b/logs/admin_timer.2024-04-12.log.zip
new file mode 100644
index 0000000..c82e39f
--- /dev/null
+++ b/logs/admin_timer.2024-04-12.log.zip
Binary files differ
diff --git a/server/admin_timer/src/main/resources/application.yml b/server/admin_timer/src/main/resources/application.yml
index de16cc7..fefb609 100644
--- a/server/admin_timer/src/main/resources/application.yml
+++ b/server/admin_timer/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   #  application:
-  #    name: doumeemes
+  #    name: doumeevisit
   profiles:
     active: proHS
 
@@ -53,7 +53,7 @@
 # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
 logging:
   level:
-    doumeemes.dao: debug
+    com.doumee.dao: debug
 
 knife4j:
   enable: true
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
index 3c8935d..b7f4fef 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/service/impl/HkSyncEventServiceImpl.java
@@ -34,13 +34,6 @@
 
     @PostConstruct
     public  int  initHkConfig(){
-        if(StringUtils.isBlank( ArtemisConfig.host )){
-            ArtemisConfig.host = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HOST).getCode();
-            ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
-            ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
-            HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
-        }
-        HKTools.interfaceLogService=interfaceLogService;
         //鑾峰彇鏍圭粍缁囩紪鐮�
         getRootOrgCode();
         //寮�濮嬭闃呴棬绂佷簨浠躲�佽瀹簨浠躲�佸拰鍋滆溅鍦轰簨浠�
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 71b10b5..c99682c 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
@@ -24,8 +24,8 @@
  * @date 2021-10-10 14:40:35
  * https://www.bejson.com/othertools/cron/  cron 琛ㄨ揪寮忕敓鎴愬湴鍧�
  */
-@Component
-@EnableScheduling
+//@Component
+//@EnableScheduling
 public class ScheduleTool {
 
     @Autowired
@@ -157,7 +157,7 @@
     /**
      * 瀹氭椂鍐荤粨鍐呴儴浜哄憳
      */
-    @Scheduled(fixedRate= 60*1000)
+//    @Scheduled(fixedRate= 60*1000)
     public void memberFreeze()  {
         memberService.memberFreeze();
     }
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index e7fd5cb..ae8d663 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   #  application:
-  #    name: doumeemes
+  #    name: doumeevisit
   profiles:
     active: proHS
 
@@ -53,7 +53,7 @@
 # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
 logging:
   level:
-    doumeemes.dao: debug
+    com.doumee.dao: debug
 
 knife4j:
   enable: true
diff --git a/server/dmvisit_screen/src/main/resources/application.yml b/server/dmvisit_screen/src/main/resources/application.yml
index cb40363..6f450bc 100644
--- a/server/dmvisit_screen/src/main/resources/application.yml
+++ b/server/dmvisit_screen/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   #  application:
-  #    name: doumeemes
+  #    name: doumeevisit
   profiles:
     active: devYL
 
@@ -55,7 +55,7 @@
 # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
 logging:
   level:
-    doumeemes.dao: debug
+    com.doumee.dao: debug
 
 knife4j:
   enable: true
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/Dewlt.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/Dewlt.java
new file mode 100644
index 0000000..b352cbc
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/Dewlt.java
@@ -0,0 +1,7 @@
+package com.doumee.core.haikang.sdk;
+
+import com.sun.jna.win32.StdCallLibrary;
+
+public interface Dewlt extends StdCallLibrary{
+	int dewlt(String strPictureBin);	 
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HCUsbSDK.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HCUsbSDK.java
new file mode 100644
index 0000000..bff901a
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HCUsbSDK.java
@@ -0,0 +1,156 @@
+package com.doumee.core.haikang.sdk;
+
+//import com.sun.javafx.scene.paint.GradientUtils.Point;
+import com.sun.jna.Native;
+import com.sun.jna.Pointer;
+import com.sun.jna.Structure;
+import com.sun.jna.win32.StdCallLibrary;
+
+public interface HCUsbSDK extends StdCallLibrary{
+	
+	HCUsbSDK INSTANCE = (HCUsbSDK) Native.loadLibrary("D:\\work\\瀹夐槻骞冲彴瀵规帴\\HCUSBSDKV2.4.0.3_build20230418_win64_ZH\\library\\win64\\HCUSBSDK",HCUsbSDK.class);
+	
+	public static final int MAX_MANUFACTURE_LEN = 32;  //鍒堕�犲晢鍚嶇О鏈�澶ч暱搴�
+	public static final int MAX_DEVICE_NAME_LEN = 32;  //璁惧鍚嶇О鏈�澶ч暱搴�
+	public static final int MAX_SERIAL_NUM_LEN = 48;  //搴忓垪鍙锋渶澶ч暱搴�
+	public static final int MAX_USB_DEV_LEN = 64;  
+	public static final int ERR_LEVEL = 1;  
+	public static final int DBG_LEVEL = 2;  
+	public static final int INF_LEVEL = 3;  
+	public static final int MAX_USERNAME_NAME = 32;  //鐢ㄦ埛鍚嶆渶澶ч暱搴�
+	public static final int MAX_PASSWORD_LEN = 16;  //瀵嗙爜鏈�澶ч暱搴�
+	public static final int INVALID_USER_ID = -1;  //鐧诲綍杩斿洖ID,鐧诲綍澶辫触涓�-1锛屾湁鏁圛D 0-128
+	public static final int USB_ERROR_BASE = 0;
+	public static final int USB_SUCCESS = (HCUsbSDK.USB_ERROR_BASE + 0);
+	public static final int USB_GET_ACTIVATE_CARD 	 = 1004;
+	public static final int USB_GET_CERTIFICATE_INFO = 1020;
+	public static final int MAX_SERIAL_NUMBER_LEN = 48;
+	public static final int MAX_PATH_LEN = 260;
+	public static final int MAX_USERNAME_LEN = 32;
+	public enum LOG_LEVEL_ENUM
+	{
+		NONE,  				//濉ˉ0杩欎釜浣嶇疆锛屽悗闈�1锛�2锛�3
+		ENUM_ERROR_LEVEL,
+		ENUM_DEBUG_LEVEL,
+		ENUM_INFO_LEVEL
+	};
+	
+	public static class  USB_DEVICE_INFO extends Structure
+	{
+		public int   		dwSize;   //缁撴瀯浣撳ぇ灏�
+		public int   		dwIndex; // 璁惧绱㈠紩 
+		public int   		dwVID;   //璁惧VID
+		public int   		dwPID;   //璁惧PID
+		public byte[]    	szManufacturer  = new byte[MAX_MANUFACTURE_LEN/*32*/];//鍒堕�犲晢锛堟潵鑷弿杩扮锛�
+		public byte[]    	szDeviceName	 = new byte[MAX_DEVICE_NAME_LEN/*32*/];//璁惧鍚嶇О锛堟潵鑷弿杩扮锛�
+		public byte[]    	szSerialNumber	 = new byte[MAX_SERIAL_NUMBER_LEN/*48*/];//璁惧搴忓垪鍙凤紙鏉ヨ嚜鎻忚堪绗︼級
+		public byte    		byHaveAudio;	// 鏄惁鍏锋湁闊抽
+		public byte    		iColorType;     // 1.RGB璺紝 2.IR璺�
+		public byte[]    	szDevicePath = new byte[MAX_PATH_LEN];
+		public byte[]    	byRes		= new byte[254];
+	 }
+	
+	public static class  USB_USER_LOGIN_INFO extends Structure
+    {
+		public int   	 dwSize; //缁撴瀯浣撳ぇ灏�
+		public int    	 dwTimeout; //鐧诲綍瓒呮椂鏃堕棿锛堝崟浣嶏細姣锛�
+		public int    	 dwDevIndex; //璁惧涓嬫爣
+		public int    	 dwVID;  //璁惧VID锛屾灇涓捐澶囨椂寰楀埌
+		public int    	 dwPID;  //璁惧PID锛屾灇涓捐澶囨椂寰楀埌
+		public byte[]    szUserName	= new byte	[MAX_USERNAME_LEN/*32*/]; //鐢ㄦ埛鍚嶏紝鑾峰彇婵�娲荤姸鎬佹椂鏃犻渶濉�
+		public byte[]    szPassword = new byte[MAX_PASSWORD_LEN/*16*/]; //瀵嗙爜锛岃幏鍙栨縺娲荤姸鎬佹椂鏃犻渶濉�
+		public byte[]    szSerialNumber = new byte[MAX_SERIAL_NUMBER_LEN/*48*/]; //璁惧搴忓垪鍙凤紝鏋氫妇璁惧鏃跺緱鍒�
+        public byte    	 byLoginMode; //0-璁よ瘉鐧婚檰 1-榛樿璐﹀彿鐧婚檰锛堜笉鍏冲績鐢ㄦ埛鍚嶅瘑鐮侊級锛堟潈闄愪笉鍚岋紝閮ㄥ垎鍔熻兘闇�璁よ瘉鐧婚檰鎵嶆敮鎸侊級
+        public byte[]    byRes2 = new byte[3];
+        public int   	 dwFd; //璁惧鎻忚堪绗d (android涓嬫病鏈塺oot鏉冮檺鐧诲綍鏃朵娇鐢�)
+        public byte[] 	 byRes	= new byte[248];
+    }
+	
+	
+	public static class  USB_DEVICE_REG_RES extends Structure
+	{
+		public int   	dwSize;   						//缁撴瀯浣撳ぇ灏�
+		public byte[]   szDeviceName	 = new byte[MAX_DEVICE_NAME_LEN /*32*/]; //璁惧鍚嶇О
+		public byte[]   szSerialNumber 	 = new byte[MAX_SERIAL_NUMBER_LEN /*48*/]; //璁惧搴忓垪鍙�
+		public int      dwSoftwareVersion; 				//杞欢鐗堟湰鍙�,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+	    public short    wYear;
+	    public byte 	byMonth;
+	    public byte  	byDay;
+	    public byte  	byRetryLoginTimes; 							//鍓╀綑鍙皾璇曠櫥闄嗙殑娆℃暟
+	    public byte[]	byRes1  		 = new byte[3];             //淇濈暀
+	    public int    	dwSurplusLockTime; 							//鍓╀綑鏃堕棿锛屽崟浣嶇 鐢ㄦ埛閿佸畾鏃讹紝姝ゅ弬鏁版湁鏁�
+	    public byte[]   byRes			 = new byte[256];
+	}
+	
+	
+	public static class USB_ACTIVATE_CARD_RES extends Structure
+    {
+		public int  	dwSize;
+		public byte   	byCardType;						// 鍗$被鍨嬶紙0-TypeA m1鍗★紝1-TypeA cpu鍗�,2-TypeB,3-125kHz Id鍗�,4-Felica Card 5-Desfire Card锛�
+		public byte   	bySerialLen; 					//鍗$墿鐞嗗簭鍒楀彿瀛楄妭闀垮害
+		public byte[]	bySerial = new byte[10];		//鍗$墿鐞嗗簭鍒楀彿
+		public byte   	bySelectVerifyLen; 				//閫夋嫨纭闀垮害
+		public byte[]  	bySelectVerify = new byte[3];  //閫夋嫨纭(3瀛楄妭)
+		public byte[]  	byRes		   = new byte[12];
+    }
+	
+	public static class USB_WAIT_SECOND extends Structure
+	{
+		public int dwSize;  //缁撴瀯浣撳ぇ灏�
+		public byte byWait; //1Byte鎿嶄綔绛夊緟鏃堕棿锛�0-涓�鐩存墽琛岀洿鍒版湁鍗″搷搴旓紝鍏朵粬瀵瑰簲1S鍗曚綅锛�
+		public byte[] byRes = new byte[27];
+	}//32瀛楄妭
+	
+	public static class USB_CONFIG_INPUT_INFO extends Structure
+	{
+		public Pointer  lpCondBuffer;  //鎸囧悜鏉′欢缂撳啿鍖�
+		public int 		dwCondBufferSize;  //鏉′欢缂撳啿鍖哄ぇ灏�
+		public Pointer  lpInBuffer;  //鎸囧悜杈撳嚭缂撳啿鍖�
+		public int 		dwInBufferSize;  //杈撳叆缂撳啿鍖哄ぇ灏�
+		public byte[]   byRes = new byte[48];
+	}//64瀛楄妭
+	
+	public static class USB_CONFIG_OUTPUT_INFO extends Structure
+	{
+		public Pointer  lpOutBuffer;  //鎸囧悜杈撳嚭缂撳啿鍖�
+		public int 		dwOutBufferSize;  //杈撳嚭缂撳啿鍖哄ぇ灏�
+		public byte[]   byRes = new byte[56];
+	}//64瀛楄妭
+	
+	public static class USB_CERTIFICATE_INFO extends Structure
+	{
+		public int dwSize;  //缁撴瀯浣撳ぇ灏�
+		public short wWorldInfoSize;  //鏂囧瓧淇℃伅闀垮害
+		public short wPicInfoSize;	//鐩哥墖淇℃伅闀垮害
+		public short wFingerPrintInfoSize; //鎸囩汗淇℃伅闀垮害
+		public byte byCertificateType; //璇佷欢绫诲瀷锛�0-韬唤璇侊紝1-涓浗缁垮崱
+		public byte byRes2;
+		public byte[] byWordInfo = new byte[256];  //鏂囧瓧淇℃伅
+		public byte[] byPicInfo = new byte[1024];  //鐩哥墖淇℃伅
+		public byte[] byFingerPrintInfo = new byte[1024];  //鎸囩汗淇℃伅
+		public byte[] byRes = new byte[40];
+	}
+	
+	public static class OUT_USB_DEVICE_INFO extends Structure
+	{
+		public USB_DEVICE_INFO[] struDeviceArr; 
+		public void init(int devCount)
+		{
+			struDeviceArr = new USB_DEVICE_INFO[devCount];
+		}
+	}
+	
+	boolean USB_Init();	
+	boolean USB_Cleanup();
+	int USB_GetLastError();
+	
+	int USB_GetDeviceCount();
+	//鏂板鑾峰彇璁惧鍒楄〃淇℃伅鎺ュ彛锛屾浛鎹㈠師鏈夊洖璋冪殑鏂瑰紡鍘昏幏鍙栬澶囦俊鎭�
+	boolean  USB_EnumDevices(int dwCount, Pointer pDevInfoList);
+	Pointer  USB_GetErrorMsg(int dwErrorCode);
+	boolean  USB_SetLogToFile(int dwLogLevel, String strLogDir, boolean bAutoDel);  
+	int 	 USB_GetSDKVersion();
+	int 	 USB_Login(USB_USER_LOGIN_INFO pUsbLoginInfo, USB_DEVICE_REG_RES pDevRegRes);
+	boolean USB_Logout(int lUserID);
+	boolean USB_GetDeviceConfig(int lUserID, int dwCommand, USB_CONFIG_INPUT_INFO InputInfo, USB_CONFIG_OUTPUT_INFO OutputInfo);
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HIKCSDemo.java b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HIKCSDemo.java
new file mode 100644
index 0000000..f270213
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/haikang/sdk/HIKCSDemo.java
@@ -0,0 +1,151 @@
+package com.doumee.core.haikang.sdk;
+
+import com.sun.jna.Pointer;
+
+public class HIKCSDemo {
+	
+	static HCUsbSDK hCUsbSDK = HCUsbSDK.INSTANCE;
+	static int iHandle = -1;
+	
+	
+	
+	public static void main(String[] args) throws InterruptedException{
+		HIKCSDemo csdemo = new HIKCSDemo();		
+		hCUsbSDK.USB_Init();
+		hCUsbSDK.USB_SetLogToFile(3, ".\\", false);
+		System.out.println(System.getProperty("user.dir"));
+		csdemo.getVersion(); //鑾峰彇鐗堟湰
+		
+		csdemo.EnumDevices();	//鏋氫妇璁惧
+		csdemo.Login();
+		csdemo.ActivateCard();
+
+		while(true);
+	}
+	
+	
+	public void getVersion(){
+		int iVersion = hCUsbSDK.USB_GetSDKVersion();
+		
+		String v1 = Integer.toString((iVersion>>24) & 0xff);
+		String v2 = Integer.toString((iVersion>>16) & 0xff);
+		String v3 = Integer.toString((iVersion>>8) & 0xff);
+		String v4 = Integer.toString((iVersion) & 0xff);		
+		System.out.println("USB_GetSDKVersion succeed, version:" + v1 + "." + v2 + "." + v3 + "." + v4);		
+	}
+	
+	public void EnumDevices(){
+		int iNum = hCUsbSDK.USB_GetDeviceCount();
+		System.out.println("iNum:" + iNum);
+		if(iNum < 1){
+			System.out.println("鏃犺澶囨帴鍏�");
+			return ;
+		}
+		
+		//鏍规嵁鑾峰彇鍒扮殑璁惧鏁伴噺锛岀敵璇峰搴斿ぇ灏忕殑璁惧淇℃伅缁撴瀯浣撴暟缁�
+    	//瀵圭粨鏋勪綋鏁扮粍涓殑姣忎釜鎴愬憳杩涜鍒濆鍖�
+    	HCUsbSDK.OUT_USB_DEVICE_INFO  struOutDevice = new HCUsbSDK.OUT_USB_DEVICE_INFO();
+    	struOutDevice.init(iNum);
+    	struOutDevice.write();
+
+    	Pointer pStruDeviceInfo = struOutDevice.getPointer();
+    	if(hCUsbSDK.USB_EnumDevices(iNum, pStruDeviceInfo))
+    	{
+    		struOutDevice.read();
+    		while((--iNum) >= 0)
+    		{
+    			String s1, s2, s3, s4, s5, s6;
+        		s1 = String.valueOf(struOutDevice.struDeviceArr[iNum].dwIndex);
+        		s2 = String.valueOf(struOutDevice.struDeviceArr[iNum].dwVID);
+        		s3 = String.valueOf(struOutDevice.struDeviceArr[iNum].dwPID);
+        		s4 = new String(struOutDevice.struDeviceArr[iNum].szManufacturer).trim();
+        		s5 = new String(struOutDevice.struDeviceArr[iNum].szDeviceName).trim();
+        		s6 = new String(struOutDevice.struDeviceArr[iNum].szSerialNumber).trim();
+        		System.out.println("device:" + s1 + ",dwVID:" +s2 + ",dwPID:" + s3 + ",szManufacturer:" + s4 + ",szDeviceName:" +s5 + ",szSerialNumber:" + s6);
+    		}
+    		System.out.println("USB_EnumDevices succeed");
+    	}
+    	else
+    	{
+    		System.out.println("USB_EnumDevices failed, error:" + hCUsbSDK.USB_GetLastError());
+		}
+	}
+	
+	public void Login(){
+		HCUsbSDK.USB_DEVICE_REG_RES struDeviceReg = new HCUsbSDK.USB_DEVICE_REG_RES();
+		struDeviceReg.dwSize = struDeviceReg.size();
+		struDeviceReg.write();
+		
+		HCUsbSDK.USB_USER_LOGIN_INFO struUserLoginInfo = new HCUsbSDK.USB_USER_LOGIN_INFO();
+		struUserLoginInfo.dwSize = struUserLoginInfo.size();
+		struUserLoginInfo.dwTimeout = 5000;
+		struUserLoginInfo.dwDevIndex = 1; 
+		struUserLoginInfo.dwVID = 1155;
+		struUserLoginInfo.dwPID = 22352;	
+		System.arraycopy("813717552".getBytes(), 0, struUserLoginInfo.szSerialNumber, 0, "813717552".length());
+		System.arraycopy("admin".getBytes(), 0, struUserLoginInfo.szUserName, 0, "admin".length());
+		System.arraycopy("12345".getBytes(), 0, struUserLoginInfo.szPassword, 0, "12345".length());
+		
+		struUserLoginInfo.write();
+		
+		iHandle = hCUsbSDK.USB_Login(struUserLoginInfo, struDeviceReg);
+		System.out.println("iHandle:" + iHandle);
+		if(iHandle < 0){
+			System.out.println("USB_Login failed, error:" + hCUsbSDK.USB_GetLastError());
+		}
+		else{
+			System.out.println("USB_Login succeed, lHandle:" + iHandle);
+		}
+	}
+	
+	
+	public void ActivateCard(){
+		HCUsbSDK.USB_WAIT_SECOND StruWaitSecond = new HCUsbSDK.USB_WAIT_SECOND();
+		StruWaitSecond.dwSize = StruWaitSecond.size();
+		StruWaitSecond.byWait = 5;
+		
+		HCUsbSDK.USB_ACTIVATE_CARD_RES StruActivateRes = new HCUsbSDK.USB_ACTIVATE_CARD_RES();
+		StruActivateRes.dwSize = StruActivateRes.size();
+		
+		HCUsbSDK.USB_CONFIG_INPUT_INFO StruInput = new HCUsbSDK.USB_CONFIG_INPUT_INFO();
+		StruInput.dwInBufferSize = StruWaitSecond.size();
+		Pointer ptrwaitSecond = StruWaitSecond.getPointer();
+		StruWaitSecond.write();
+		StruInput.lpInBuffer = ptrwaitSecond;
+		
+		HCUsbSDK.USB_CONFIG_OUTPUT_INFO StruOutput = new HCUsbSDK.USB_CONFIG_OUTPUT_INFO();
+		StruOutput.dwOutBufferSize = StruActivateRes.size();
+		Pointer ptrActivateRes = StruActivateRes.getPointer();
+		StruActivateRes.write();
+		StruOutput.lpOutBuffer = ptrActivateRes;
+		
+		if(!hCUsbSDK.USB_GetDeviceConfig(iHandle, HCUsbSDK.USB_GET_ACTIVATE_CARD, StruInput, StruOutput))
+		{
+			System.out.println("USB_GET_ACTIVATE_CARD failed, error:" + hCUsbSDK.USB_GetLastError());
+		}
+		else{
+			StruActivateRes.read();
+			System.out.println("byCardType:" + StruActivateRes.byCardType + ",bySerialLen:" + StruActivateRes.bySerialLen);
+			
+			System.out.println("USB_GET_ACTIVATE_CARD succeed");	
+			
+			String SerialNumber = "";
+			//杩斿洖鐨刡ySerial鏁扮粍闇�瑕佸弽搴忎箣鍚庯紝灏嗗崄鍏繘鍒惰浆鎹㈡垚鍗佽繘鍒跺氨鏄崱鍙�
+			for(int i = 0; i < StruActivateRes.bySerialLen; i++)
+			{
+				String hex = Integer.toHexString(StruActivateRes.bySerial[StruActivateRes.bySerialLen-i-1] & 0xff); 
+				if(hex.length() == 1)
+				{
+					hex += '0';
+				}
+				SerialNumber += hex.toUpperCase();
+			}
+			System.out.println("SerialNumber:0x" + SerialNumber);
+			System.out.println("cardNo:" + Long.parseLong(SerialNumber,  16));
+			
+		}
+		
+	}
+	
+//class 缁撴潫	
+}
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 a248995..cf2c21b 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
@@ -422,9 +422,10 @@
 
     public static void main(String[] args) {
         System.out.println(Constants.getVehiclePlateNo("鐨朅A10991").getDescription());
-
 //        System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
 //        System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
+
+        
     }
 
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 274ec82..2ccb323 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1374,7 +1374,6 @@
         }
         int nday = caln.get(Calendar.DAY_OF_YEAR);
         days = days + nday - oday;
-
         return days;
     }
 
@@ -2836,11 +2835,9 @@
 
     public static void main(String[] args) {
         try {
-            System.out.println(RandomStringUtils.randomNumeric(3));
-            Date date = getISO8601DateByStr("2024-02-21T15:46:36.014+08:00");
-            System.out.println(getISO8601Timestamp(date));
-
-
+            Date date = getISO8601DateByStr("2024-04-15T07:46:36.014+08:00");
+            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00");
+            System.out.println(daysBetweenDates11(date1,date)+1);
 
         } catch (Exception ex) {
             ex.printStackTrace();
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 05ad825..cd3eed5 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
@@ -587,9 +587,16 @@
         }
         if(visits.getSourceType().equals(Constants.ZERO)){
             String code = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VALIDATE_VISIT).getCode();
+            int codenum =0;
+            try {
+                codenum = Integer.parseInt(code);
+            }catch (Exception e){
+
+            }
             if(StringUtils.isNotBlank(code)&&!StringUtils.equals(code,"0")){
-                Integer betweenDays = Math.toIntExact(cn.hutool.core.date.DateUtil.between(visits.getEndtime(), visits.getStarttime(), DateUnit.DAY));
-                if(Integer.compare(betweenDays,Integer.valueOf(code))>0){
+//                Integer betweenDays = Math.toIntExact(cn.hutool.core.date.DateUtil.between(visits.getEndtime(), visits.getStarttime(), DateUnit.DAY));
+                int betweenDays = DateUtil.daysBetweenDates11(visits.getEndtime(), visits.getStarttime())+1;
+                if( betweenDays > codenum){
                     throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害鎬诲ぉ鏁颁笉鑳借秴杩嘯"+code+"澶锛�");
                 }
             }
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 1f7fec6..e50e043 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
@@ -771,7 +771,9 @@
                 company.setParentId(Objects.isNull(parentCompany)?null:parentCompany.getId());
                 company.setErpParentId(param.getParentId());
                 company.setFsStatus(Constants.ZERO);
+                company.setStatus(Constants.ZERO);
                 company.setType(Constants.ONE);
+                company.setIsdeleted(Constants.ZERO);
                 company.setLinkName(param.getLinkName());
                 company.setLinkPhone(param.getLinkPhone());
                 companyMapper.insert(company);
@@ -1116,7 +1118,6 @@
                 throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥鐨勮瀹㈤棬绂佺粍锛�");
             }
         }
-
     }
 
     @Override
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
index 5b0a837..4fe3c6e 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncInitConfigServiceImpl.java
@@ -2,7 +2,9 @@
 
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.haikang.model.HKConstants;
+import com.doumee.core.haikang.model.HKTools;
 import com.doumee.core.utils.Constants;
+import com.doumee.service.business.InterfaceLogService;
 import com.hikvision.artemis.sdk.config.ArtemisConfig;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,6 +21,8 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private InterfaceLogService interfaceLogService;
 
     @PostConstruct
     public  int  initHkConfig(){
@@ -26,6 +30,7 @@
         ArtemisConfig.appKey = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPKEY).getCode();
         ArtemisConfig.appSecret = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_APPSECRET).getCode();
         HKConstants.https = systemDictDataBiz.queryByCode(Constants.HK_PARAM, Constants.HK_HTTPS).getCode();
+        HKTools.interfaceLogService=interfaceLogService;
         return  0;
     }
 
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index d967f24..a68cbb0 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -115,7 +115,7 @@
         }catch (Exception e) {
             log.error("銆愭捣搴烽棬绂佷簨浠舵帹閫併��========澶辫触=======锛歕n" + e.getMessage());
         }finally {
-            saveInterfaceLog(param,"/business/hksync/push/acs",result);
+            saveInterfaceLog(param,"/business/hksync/push/acs",result,false);//涓嶈鏃ュ織
         }
         return  null;
 
@@ -306,7 +306,7 @@
 
             log.error("銆愭捣搴疯瀹簨浠舵帹閫併��========澶辫触=======锛歕n"+e.getMessage());
         }
-        saveInterfaceLog(param,"/business/hksync/push/visit",result);
+        saveInterfaceLog(param,"/business/hksync/push/visit",result,true);
         return  null;
 
     }
@@ -478,7 +478,7 @@
 
             log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========澶辫触=======锛歕n"+e.getMessage());
         }
-        saveInterfaceLog(param,"/business/hksync/push/parks",result);
+        saveInterfaceLog(param,"/business/hksync/push/parks",result,false);
         return  null;
     }
 
@@ -586,7 +586,10 @@
         return retention;
     }
 
-    private void saveInterfaceLog(Object param, String path,String result) {
+    private void saveInterfaceLog(Object param, String path,String result,boolean need) {
+        if(!need){
+            return;
+        }
         InterfaceLog hkMonitoryLogDO=new InterfaceLog();
         hkMonitoryLogDO.setType(1);
         hkMonitoryLogDO.setCreateDate(new Date());
diff --git a/server/dmvisit_web/pom.xml b/server/dmvisit_web/pom.xml
index e6d8042..cd76b67 100644
--- a/server/dmvisit_web/pom.xml
+++ b/server/dmvisit_web/pom.xml
@@ -26,7 +26,7 @@
     </dependencies>
 
     <build>
-        <finalName>visit_web</finalName>
+        <finalName>web_interface</finalName>
         <resources>
             <resource>
                 <directory>src/main/resources</directory>
diff --git a/server/dmvisit_web/src/main/resources/application.yml b/server/dmvisit_web/src/main/resources/application.yml
index 789558e..5a8c63a 100644
--- a/server/dmvisit_web/src/main/resources/application.yml
+++ b/server/dmvisit_web/src/main/resources/application.yml
@@ -8,7 +8,7 @@
 
 spring:
   #  application:
-  #    name: doumeemes
+  #    name: doumeevisit
   profiles:
     active: proHS
 
@@ -55,7 +55,7 @@
 # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
 logging:
   level:
-    doumeemes.dao: debug
+    com.doumee.dao: debug
 
 knife4j:
   enable: true
diff --git a/server/openapi/src/main/resources/application.yml b/server/openapi/src/main/resources/application.yml
index 7ac254a..fca0d3f 100644
--- a/server/openapi/src/main/resources/application.yml
+++ b/server/openapi/src/main/resources/application.yml
@@ -7,7 +7,7 @@
 
 spring:
   #  application:
-  #    name: doumeemes
+  #    name: doumeevisit
   profiles:
     active: proHS
 
@@ -54,7 +54,7 @@
 # dao灞傜殑鏃ュ織璁剧疆涓篸ebug锛屾柟渚挎煡鐪媠ql
 logging:
   level:
-    doumeemes.dao: debug
+    com.doumee.dao: debug
 
 knife4j:
   enable: true

--
Gitblit v1.9.3