diff --git a/.idea/sonarlint/issuestore/0/1/01bef5372279668ac8ad0c35b87e3a653ce8f2c6 b/.idea/sonarlint/issuestore/0/1/01bef5372279668ac8ad0c35b87e3a653ce8f2c6
index 29eb91c..d8308f1 100644
--- a/.idea/sonarlint/issuestore/0/1/01bef5372279668ac8ad0c35b87e3a653ce8f2c6
+++ b/.idea/sonarlint/issuestore/0/1/01bef5372279668ac8ad0c35b87e3a653ce8f2c6
@@ -1,15 +1,15 @@
 
-Y
-java:S2589s"7Remove this expression which always evaluates to "true"(îä·‚úÿÿÿÿ8ÁôÉìé1
-Z
-java:S2589™"7Remove this expression which always evaluates to "true"(îä·‚úÿÿÿÿ8ÁôÉìé1
 Z
 java:S2589¾"7Remove this expression which always evaluates to "true"(îä·‚úÿÿÿÿ8ÀôÉìé1
+Z
+java:S2589™"7Remove this expression which always evaluates to "true"(îä·‚úÿÿÿÿ8ÁôÉìé1
+Y
+java:S2589s"7Remove this expression which always evaluates to "true"(îä·‚úÿÿÿÿ8ÁôÉìé1
 ^	java:S125Õ"<This block of commented-out lines of code should be removed.(Æîöæþÿÿÿÿ8¨õÉìé1
 d
-java:S1128"HRemove this unused import 'com.haitongauto.rtosac.service.UsersService'.(ÕÃ¥l8°õÉìé1
+java:S1128"HRemove this unused import 'com.haitongauto.rtosac.service.UsersService'.(ÕÃ¥l8Æ²Ðð‡2
 ]
 java:S1128
-"@Remove this unused import 'org.apache.ibatis.annotations.Param'.(á¬Ó²8²õÉìé1
+"@Remove this unused import 'org.apache.ibatis.annotations.Param'.(á¬Ó²8É²Ðð‡2
 R
-java:S1128"0Remove this unused import 'java.time.LocalTime'.(à®øÃùÿÿÿÿ8´õÉìé1
\ No newline at end of file
+java:S1128"0Remove this unused import 'java.time.LocalTime'.(à®øÃùÿÿÿÿ8Ê²Ðð‡2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/3/0317a7778f8d8eeec9212515fad0dacf0d39096c b/.idea/sonarlint/issuestore/0/3/0317a7778f8d8eeec9212515fad0dacf0d39096c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/0/d/0d107ccf0ed795b2fb26f8a847b7c13e9360cff2 b/.idea/sonarlint/issuestore/0/d/0d107ccf0ed795b2fb26f8a847b7c13e9360cff2
index a3f74e5..1ff96e9 100644
--- a/.idea/sonarlint/issuestore/0/d/0d107ccf0ed795b2fb26f8a847b7c13e9360cff2
+++ b/.idea/sonarlint/issuestore/0/d/0d107ccf0ed795b2fb26f8a847b7c13e9360cff2
@@ -1,12 +1,12 @@
 
 U
-java:S2589"8Remove this expression which always evaluates to "false"(ÔÕªé8Ó×µùÓ1
+java:S2589%"8Remove this expression which always evaluates to "false"(ÔÕªé8Ãÿ³ùÓ1
 U
-java:S2589&"8Remove this expression which always evaluates to "false"(ÔÕªé8Ãÿ³ùÓ1
+java:S2589"8Remove this expression which always evaluates to "false"(ÔÕªé8Ó×µùÓ1
 W
 java:S1118
 ":Add a private constructor to hide the implicit public one.(–«¾¤8ê¯žöÓ1
 o	java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¹ÉþÖøÿÿÿÿ8ì¯žöÓ1
 o	java:S100 "NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ñÒÂãúÿÿÿÿ8ò¯žöÓ1
 L
-java:S5869="*Remove duplicates in this character class.(Õåï›þÿÿÿÿ8û¯žöÓ1
\ No newline at end of file
+java:S5869<"*Remove duplicates in this character class.(Õåï›þÿÿÿÿ8û¯žöÓ1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/0/e/0ecab55c43e84d4d750af1786d7d63ae83930073 b/.idea/sonarlint/issuestore/0/e/0ecab55c43e84d4d750af1786d7d63ae83930073
index a8ede08..2879b9a 100644
--- a/.idea/sonarlint/issuestore/0/e/0ecab55c43e84d4d750af1786d7d63ae83930073
+++ b/.idea/sonarlint/issuestore/0/e/0ecab55c43e84d4d750af1786d7d63ae83930073
@@ -1,14 +1,12 @@
 
-^	java:S125á"<This block of commented-out lines of code should be removed.(Ï¢ÒÁþÿÿÿÿ8Ü›Ÿ¢á1
-^	java:S125â"<This block of commented-out lines of code should be removed.(ò¤Íýþÿÿÿÿ8úŽÉ á1
-^	java:S125ð"<This block of commented-out lines of code should be removed.(©¦Àïÿÿÿÿÿ8üŽÉ á1
-^	java:S125‹"<This block of commented-out lines of code should be removed.(ÁÁš±ùÿÿÿÿ8ýŽÉ á1
-^	java:S125Â"<This block of commented-out lines of code should be removed.(ðÁŸ´þÿÿÿÿ8úêõ¬å1
-Y	java:S125Ö"<This block of commented-out lines of code should be removed.(�ÇŸ‰8‚ëõ¬å1
+^	java:S125‰"<This block of commented-out lines of code should be removed.(Ï¢ÒÁþÿÿÿÿ8¯éÚôƒ2
+^	java:S125±"<This block of commented-out lines of code should be removed.(©¦Àïÿÿÿÿÿ8�ñÚÈ„2
+^	java:S125Ì"<This block of commented-out lines of code should be removed.(ÁÁš±ùÿÿÿÿ8’ñÚÈ„2
+^	java:S125�"<This block of commented-out lines of code should be removed.(ðÁŸ´þÿÿÿÿ8žñÚÈ„2
+Y	java:S125£"<This block of commented-out lines of code should be removed.(�ÇŸ‰8¦ñÚÈ„2
 L
-java:S1940×")Use the opposite operator (">=") instead.(ŒÀ¨¦ûÿÿÿÿ8ƒëõ¬å1
+java:S1940¤")Use the opposite operator (">=") instead.(ŒÀ¨¦ûÿÿÿÿ8§ñÚÈ„2
 o
-java:S1128
-"RRemove this unused import 'org.springframework.web.bind.annotation.RequestHeader'.(ØÙë™8šö¥³€2
+java:S1128
"RRemove this unused import 'org.springframework.web.bind.annotation.RequestHeader'.(ØÙë™8þÑšý‚2
 W
-java:S1128":Remove this unused import 'java.util.concurrent.TimeUnit'.(Æ™�þ8›ö¥³€2
\ No newline at end of file
+java:S1128":Remove this unused import 'java.util.concurrent.TimeUnit'.(Æ™�þ8þÑšý‚2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/4/14ef601e6353443e773fa7e7dbf78bae725701b6 b/.idea/sonarlint/issuestore/1/4/14ef601e6353443e773fa7e7dbf78bae725701b6
new file mode 100644
index 0000000..38ba2e4
--- /dev/null
+++ b/.idea/sonarlint/issuestore/1/4/14ef601e6353443e773fa7e7dbf78bae725701b6
@@ -0,0 +1,4 @@
+
+Q	java:S125"<This block of commented-out lines of code should be removed.(ÙÜÖ�
+`
+java:S1128"ERemove this unused import 'com.haitongauto.rtosam.job.FileDeleteJob'.(ŒêÙïøÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/1/a/1ad36e648c327da69d991b22a299b927cb3d5f3d b/.idea/sonarlint/issuestore/1/a/1ad36e648c327da69d991b22a299b927cb3d5f3d
index 64f1b43..0c6cd75 100644
--- a/.idea/sonarlint/issuestore/1/a/1ad36e648c327da69d991b22a299b927cb3d5f3d
+++ b/.idea/sonarlint/issuestore/1/a/1ad36e648c327da69d991b22a299b927cb3d5f3d
@@ -1,3 +1,4 @@
 
 ]
-java:S1128	"@Remove this unused import 'org.apache.ibatis.annotations.Param'.(á¬Ó²8©Æý�õ1
\ No newline at end of file
+java:S1128
+"@Remove this unused import 'org.apache.ibatis.annotations.Param'.(á¬Ó²8øç¥‘‡2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/0/2076e4994875e94b1f0ffd8fd1512c083119b117 b/.idea/sonarlint/issuestore/2/0/2076e4994875e94b1f0ffd8fd1512c083119b117
new file mode 100644
index 0000000..42a270a
--- /dev/null
+++ b/.idea/sonarlint/issuestore/2/0/2076e4994875e94b1f0ffd8fd1512c083119b117
@@ -0,0 +1,3 @@
+
+V	java:S125"<This block of commented-out lines of code should be removed.(óÉ‹Ýùÿÿÿÿ
+Q	java:S125."<This block of commented-out lines of code should be removed.(½–ÐØ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/2/22661b853b5d07909dc6bb6a60fccc02ae31a42e b/.idea/sonarlint/issuestore/2/2/22661b853b5d07909dc6bb6a60fccc02ae31a42e
index 6099089..0412a3a 100644
--- a/.idea/sonarlint/issuestore/2/2/22661b853b5d07909dc6bb6a60fccc02ae31a42e
+++ b/.idea/sonarlint/issuestore/2/2/22661b853b5d07909dc6bb6a60fccc02ae31a42e
@@ -1,16 +1,20 @@
 
 Z
-java:S2629±"7Use the built-in formatting to construct this argument.(Ž¥ý·øÿÿÿÿ8ò˜‚ü÷1
+java:S2629¹"7Use the built-in formatting to construct this argument.(Ž¥ý·øÿÿÿÿ8ãåöð‡2
 Z
-java:S2629¿"7Use the built-in formatting to construct this argument.(Ž¥ý·øÿÿÿÿ8ò˜‚ü÷1
+java:S2629Æ"7Use the built-in formatting to construct this argument.(Ž¥ý·øÿÿÿÿ8äåöð‡2
+Z
+java:S2629Ò"7Use the built-in formatting to construct this argument.(Ž¥ý·øÿÿÿÿ8äåöð‡2
 U
-java:S2629Â"7Use the built-in formatting to construct this argument.(ç´½È8ó˜‚ü÷1
+java:S2629Ö"7Use the built-in formatting to construct this argument.(ç´½È8äåöð‡2
 Q
-java:S3416"4Update this logger to use "MessageController.class".(Ïî„“8¯™‚ü÷1
-]	java:S125l"<This block of commented-out lines of code should be removed.(õ­�ñøÿÿÿÿ8Ã™‚ü÷1
+java:S3416"4Update this logger to use "MessageController.class".(Ïî„“8‘æöð‡2
+]	java:S125u"<This block of commented-out lines of code should be removed.(õ­�ñøÿÿÿÿ8ªæöð‡2
 d
-java:S3457±"AFormat specifiers should be used instead of string concatenation.(Ž¥ý·øÿÿÿÿ8Ê™‚ü÷1
+java:S3457¹"AFormat specifiers should be used instead of string concatenation.(Ž¥ý·øÿÿÿÿ8ò´ÿð‡2
 d
-java:S3457¿"AFormat specifiers should be used instead of string concatenation.(Ž¥ý·øÿÿÿÿ8Ë™‚ü÷1
+java:S3457Æ"AFormat specifiers should be used instead of string concatenation.(Ž¥ý·øÿÿÿÿ8ó´ÿð‡2
+d
+java:S3457Ò"AFormat specifiers should be used instead of string concatenation.(Ž¥ý·øÿÿÿÿ8ô´ÿð‡2
 _
-java:S3457Â"AFormat specifiers should be used instead of string concatenation.(ç´½È8Ì™‚ü÷1
\ No newline at end of file
+java:S3457Ö"AFormat specifiers should be used instead of string concatenation.(ç´½È8õ´ÿð‡2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/6/26ae74fa1fe3842549b5a4291dec450e1acea0c9 b/.idea/sonarlint/issuestore/2/6/26ae74fa1fe3842549b5a4291dec450e1acea0c9
index cdec601..9e447ba 100644
--- a/.idea/sonarlint/issuestore/2/6/26ae74fa1fe3842549b5a4291dec450e1acea0c9
+++ b/.idea/sonarlint/issuestore/2/6/26ae74fa1fe3842549b5a4291dec450e1acea0c9
@@ -1,22 +1,18 @@
 
 J
-java:S4274P"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8¦Ê¹éÎ1
-Y	java:S125�"<This block of commented-out lines of code should be removed.(¾¹Œ›8±Ê¹éÎ1
-^	java:S125´"<This block of commented-out lines of code should be removed.(Ýâ“·ýÿÿÿÿ8´Ê¹éÎ1
-Y	java:S125¶"<This block of commented-out lines of code should be removed.(ˆ¨©á8µÊ¹éÎ1
-Y	java:S125¹"<This block of commented-out lines of code should be removed.(Ã�ÝÚ8µÊ¹éÎ1
-^	java:S125¾"<This block of commented-out lines of code should be removed.(Þ®ÎÀùÿÿÿÿ8¶Ê¹éÎ1
-Y	java:S125À"<This block of commented-out lines of code should be removed.(…ÆŠŽ8¶Ê¹éÎ1
-^	java:S125Ã"<This block of commented-out lines of code should be removed.(¹ªÖ˜þÿÿÿÿ8·Ê¹éÎ1
-Y	java:S125È"<This block of commented-out lines of code should be removed.(£Ñ�õ8¸Ê¹éÎ1
-^	java:S125Ê"<This block of commented-out lines of code should be removed.(±œÿªøÿÿÿÿ8¸Ê¹éÎ1
-Y	java:S125Í"<This block of commented-out lines of code should be removed.(”Â¬Ú8Ž˜¥Åð1
-^	java:S125ê"<This block of commented-out lines of code should be removed.(½ßŸûÿÿÿÿÿ8�˜¥Åð1
+java:S4274P"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8§ø¾ý‚2
+Y	java:S125�"<This block of commented-out lines of code should be removed.(¾¹Œ›8­ø¾ý‚2
+^	java:S125´"<This block of commented-out lines of code should be removed.(Ýâ“·ýÿÿÿÿ8Ìø¾ý‚2
+Y	java:S125¶"<This block of commented-out lines of code should be removed.(ˆ¨©á8Ìø¾ý‚2
+Y	java:S125¹"<This block of commented-out lines of code should be removed.(Ã�ÝÚ8Ìø¾ý‚2
+^	java:S125¾"<This block of commented-out lines of code should be removed.(Þ®ÎÀùÿÿÿÿ8Íø¾ý‚2
+Y	java:S125À"<This block of commented-out lines of code should be removed.(…ÆŠŽ8Íø¾ý‚2
+^	java:S125Ã"<This block of commented-out lines of code should be removed.(¹ªÖ˜þÿÿÿÿ8Íø¾ý‚2
+Y	java:S125È"<This block of commented-out lines of code should be removed.(£Ñ�õ8Îø¾ý‚2
+^	java:S125Ê"<This block of commented-out lines of code should be removed.(±œÿªøÿÿÿÿ8Îø¾ý‚2
+Y	java:S125Í"<This block of commented-out lines of code should be removed.(”Â¬Ú8Îø¾ý‚2
 D
-java:S1075¬"&Remove this hard-coded path-delimiter.(�Òþ 8’˜¥Åð1
-X	java:S899°";Do something with the "boolean" value returned by "delete".(ºý‘�8—˜¥Åð1
-l
-java:S4042°"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(ºý‘�8—˜¥Åð1
+java:S1075ñ"&Remove this hard-coded path-delimiter.(�Òþ 8Ðø¾ý‚2
 D
-java:S1075µ"&Remove this hard-coded path-delimiter.(òÛ¿˜8˜˜¥Åð1
-X	java:S125Ã"<This block of commented-out lines of code should be removed.(úý­`8š˜¥Åð1
\ No newline at end of file
+java:S1075ú"&Remove this hard-coded path-delimiter.(òÛ¿˜8Óø¾ý‚2
+X	java:S125ˆ"<This block of commented-out lines of code should be removed.(úý­`8Óø¾ý‚2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/2/9/29b8801d4ec84f7ca647af70d060b9e6f7bd1128 b/.idea/sonarlint/issuestore/2/9/29b8801d4ec84f7ca647af70d060b9e6f7bd1128
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/2/e/2ebbf045dda339e47654528523812112bc6f60f2 b/.idea/sonarlint/issuestore/2/e/2ebbf045dda339e47654528523812112bc6f60f2
index 95da464..bea9232 100644
--- a/.idea/sonarlint/issuestore/2/e/2ebbf045dda339e47654528523812112bc6f60f2
+++ b/.idea/sonarlint/issuestore/2/e/2ebbf045dda339e47654528523812112bc6f60f2
@@ -1,24 +1,24 @@
 
 J
-java:S5411E"(Use a primitive boolean expression here.(ýÑØÃúÿÿÿÿ8ªœ¶¸õ1
+java:S5411E"(Use a primitive boolean expression here.(ýÑØÃúÿÿÿÿ8ÿ¿žõƒ2
 K
-java:S5411¥"(Use a primitive boolean expression here.(Ú‰ã÷ûÿÿÿÿ8¬œ¶¸õ1
+java:S5411¤"(Use a primitive boolean expression here.(Ú‰ã÷ûÿÿÿÿ8„Àžõƒ2
 K
-java:S5411§"(Use a primitive boolean expression here.(ýÑØÃúÿÿÿÿ8¬œ¶¸õ1
-^	java:S125�"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8¼«¶¸õ1
-Y	java:S125¯"<This block of commented-out lines of code should be removed.(Ä—ˆÙ8¿«¶¸õ1
-^	java:S125Ñ"<This block of commented-out lines of code should be removed.(Îïˆ»øÿÿÿÿ8Ñ«¶¸õ1
-^	java:S125í"<This block of commented-out lines of code should be removed.(Üþ�êúÿÿÿÿ8Ô«¶¸õ1
-^	java:S125û"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8ç«¶¸õ1
+java:S5411¦"(Use a primitive boolean expression here.(ýÑØÃúÿÿÿÿ8†Àžõƒ2
+^	java:S125Ž"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8‚Þžõƒ2
+Y	java:S125®"<This block of commented-out lines of code should be removed.(Ä—ˆÙ8…Þžõƒ2
+^	java:S125Ð"<This block of commented-out lines of code should be removed.(Îïˆ»øÿÿÿÿ8ŠÞžõƒ2
+^	java:S125ì"<This block of commented-out lines of code should be removed.(Üþ�êúÿÿÿÿ8�Þžõƒ2
+^	java:S125ú"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8¤Þžõƒ2
 K
-java:S4274×"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8ç«¶¸õ1
-^	java:S125à"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8ù«¶¸õ1
-^	java:S125ë"<This block of commented-out lines of code should be removed.(âÌžÜþÿÿÿÿ8…¬¶¸õ1
-^	java:S125Ö"<This block of commented-out lines of code should be removed.(âÌžÜþÿÿÿÿ8”¬¶¸õ1
-^	java:S125¼"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8»¬¶¸õ1
-Y	java:S125Ð"<This block of commented-out lines of code should be removed.(ÉÒˆ‚8¾¬¶¸õ1
-Y	java:S125Ü"<This block of commented-out lines of code should be removed.(¿á‰Î8Å¬¶¸õ1
+java:S4274Ö"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8¥Þžõƒ2
+^	java:S125ß"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8½Þžõƒ2
+^	java:S125ë"<This block of commented-out lines of code should be removed.(âÌžÜþÿÿÿÿ8ÌÞžõƒ2
+^	java:S125Õ"<This block of commented-out lines of code should be removed.(âÌžÜþÿÿÿÿ8âÞžõƒ2
+^	java:S125»"<This block of commented-out lines of code should be removed.(®¡ÜÏùÿÿÿÿ8—ßžõƒ2
+Y	java:S125Ï"<This block of commented-out lines of code should be removed.(ÉÒˆ‚8šßžõƒ2
+Y	java:S125Û"<This block of commented-out lines of code should be removed.(¿á‰Î8œßžõƒ2
 c
-java:S1128"ARemove this unused import 'com.haitongauto.utils.FormatDateTime'.(�ÒÓŸüÿÿÿÿ8ˆ­¶¸õ1
+java:S1128"ARemove this unused import 'com.haitongauto.utils.FormatDateTime'.(�ÒÓŸüÿÿÿÿ8Âÿýç„2
 Z
-java:S1128"8Remove this unused import 'java.util.stream.Collectors'.(Óóº´úÿÿÿÿ8ˆ­¶¸õ1
\ No newline at end of file
+java:S1128"8Remove this unused import 'java.util.stream.Collectors'.(Óóº´úÿÿÿÿ8Âÿýç„2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/3/2/3295ba932c3ce2a83faa736a829107a085e5a386 b/.idea/sonarlint/issuestore/3/2/3295ba932c3ce2a83faa736a829107a085e5a386
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/5/35a396681ad25cef593011cb6a017bd9cf45860c b/.idea/sonarlint/issuestore/3/5/35a396681ad25cef593011cb6a017bd9cf45860c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/3/5/35facb9bc8a8209fae0ce1c89795e1d2c3ad6f47 b/.idea/sonarlint/issuestore/3/5/35facb9bc8a8209fae0ce1c89795e1d2c3ad6f47
index d744e7c..0a81a85 100644
--- a/.idea/sonarlint/issuestore/3/5/35facb9bc8a8209fae0ce1c89795e1d2c3ad6f47
+++ b/.idea/sonarlint/issuestore/3/5/35facb9bc8a8209fae0ce1c89795e1d2c3ad6f47
@@ -1,8 +1,4 @@
 
-g	java:S1123"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ8Å”™÷Þ1
-g	java:S1125"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ8Æ”™÷Þ1
-g	java:S112d"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ8Æ”™÷Þ1
-g	java:S112f"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ8Æ”™÷Þ1
 y
 java:S2629K"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(ÌŸúª8¢¾�øÞ1
 T
diff --git a/.idea/sonarlint/issuestore/3/7/3700e013a24e08955175b7280c8fa4233cee312e b/.idea/sonarlint/issuestore/3/7/3700e013a24e08955175b7280c8fa4233cee312e
index b17ac70..35222a5 100644
--- a/.idea/sonarlint/issuestore/3/7/3700e013a24e08955175b7280c8fa4233cee312e
+++ b/.idea/sonarlint/issuestore/3/7/3700e013a24e08955175b7280c8fa4233cee312e
@@ -1,4 +1,4 @@
 
-]	java:S125L"<This block of commented-out lines of code should be removed.(â�™Òþÿÿÿÿ8¬ïªÍå1
-^	java:S125¢"<This block of commented-out lines of code should be removed.(ŸžÁÝúÿÿÿÿ8³ïªÍå1
-k	java:S100¯"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ó±¿È8ÀïªÍå1
\ No newline at end of file
+]	java:S125S"<This block of commented-out lines of code should be removed.(â�™Òþÿÿÿÿ8½±£ý‚2
+^	java:S125ª"<This block of commented-out lines of code should be removed.(ŸžÁÝúÿÿÿÿ8À±£ý‚2
+k	java:S100º"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ó±¿È8Ä±£ý‚2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/4/3/43b4a0830f39bfe746332030dc9739db6712aac2 b/.idea/sonarlint/issuestore/4/3/43b4a0830f39bfe746332030dc9739db6712aac2
new file mode 100644
index 0000000..af93bad
--- /dev/null
+++ b/.idea/sonarlint/issuestore/4/3/43b4a0830f39bfe746332030dc9739db6712aac2
@@ -0,0 +1,2 @@
+
+h	java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(µÚ— üÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/4/b/4b08af7be9060fdf6b93fd39a56ef633727219c0 b/.idea/sonarlint/issuestore/4/b/4b08af7be9060fdf6b93fd39a56ef633727219c0
index cdcfd5f..7340871 100644
--- a/.idea/sonarlint/issuestore/4/b/4b08af7be9060fdf6b93fd39a56ef633727219c0
+++ b/.idea/sonarlint/issuestore/4/b/4b08af7be9060fdf6b93fd39a56ef633727219c0
@@ -1,5 +1,4 @@
 
-`	java:S112X"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ
 C
 java:S5411"(Use a primitive boolean expression here.(îÞ™�øÿÿÿÿ
 C
diff --git a/.idea/sonarlint/issuestore/5/6/560f24b8f45e670732a01c11923a32441901ae78 b/.idea/sonarlint/issuestore/5/6/560f24b8f45e670732a01c11923a32441901ae78
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/6/3/63add82a11c5f1e898e80ac2c05d620f0345baab b/.idea/sonarlint/issuestore/6/3/63add82a11c5f1e898e80ac2c05d620f0345baab
index e99f6cc..e69de29 100644
--- a/.idea/sonarlint/issuestore/6/3/63add82a11c5f1e898e80ac2c05d620f0345baab
+++ b/.idea/sonarlint/issuestore/6/3/63add82a11c5f1e898e80ac2c05d620f0345baab
@@ -1,2 +0,0 @@
-
-V	java:S125m"<This block of commented-out lines of code should be removed.(Ý±­¥þÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/6/66f6b2589f2c5b48652c67fafb95b6afd1d29165 b/.idea/sonarlint/issuestore/6/6/66f6b2589f2c5b48652c67fafb95b6afd1d29165
index fa331ae..a087c92 100644
--- a/.idea/sonarlint/issuestore/6/6/66f6b2589f2c5b48652c67fafb95b6afd1d29165
+++ b/.idea/sonarlint/issuestore/6/6/66f6b2589f2c5b48652c67fafb95b6afd1d29165
@@ -1,11 +1,15 @@
 
-D
-java:S5411­"(Use a primitive boolean expression here.(†çæ±ÿÿÿÿÿ
-Q	java:S125M"<This block of commented-out lines of code should be removed.(‘Òô›
-d	java:S100‰"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÐÞ£É
-R	java:S125£"<This block of commented-out lines of code should be removed.(Î£°ü
+K
+java:S5411´"(Use a primitive boolean expression here.(†çæ±ÿÿÿÿÿ8ºîÉ½…2
+X	java:S125I"<This block of commented-out lines of code should be removed.(‘Òô›8ïîÉ½…2
+[
+java:S1874s"9Remove this use of "StringEscapeUtils"; it is deprecated.(öƒ‘Êüÿÿÿÿ8óîÉ½…2
+k	java:S100Ž"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÐÞ£É8õîÉ½…2
 \
+java:S1874œ"9Remove this use of "StringEscapeUtils"; it is deprecated.(Ëï«¨úÿÿÿÿ8÷îÉ½…2
+Y	java:S125ª"<This block of commented-out lines of code should be removed.(Î£°ü8ýîÉ½…2
+c
 java:S1128
-"ARemove this unused import 'com.haitongauto.utils.FormatDateTime'.(�ÒÓŸüÿÿÿÿ
-?
-java:S1128")Remove this unused import 'java.io.File'.(†Ð¥Å
\ No newline at end of file
+"ARemove this unused import 'com.haitongauto.utils.FormatDateTime'.(�ÒÓŸüÿÿÿÿ8²¨Ê½…2
+F
+java:S1128")Remove this unused import 'java.io.File'.(†Ð¥Å8³¨Ê½…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/7/67f453cf6278d444c94a647f485c75f2bd5c19e3 b/.idea/sonarlint/issuestore/6/7/67f453cf6278d444c94a647f485c75f2bd5c19e3
new file mode 100644
index 0000000..6c8fc7a
--- /dev/null
+++ b/.idea/sonarlint/issuestore/6/7/67f453cf6278d444c94a647f485c75f2bd5c19e3
@@ -0,0 +1,3 @@
+
+=
+java:S1125p"(Remove the unnecessary boolean literals.(¶éÑ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/6/d/6d3c544425079f602cf69888136c6d4252621458 b/.idea/sonarlint/issuestore/6/d/6d3c544425079f602cf69888136c6d4252621458
index ae7ecc9..346df5a 100644
--- a/.idea/sonarlint/issuestore/6/d/6d3c544425079f602cf69888136c6d4252621458
+++ b/.idea/sonarlint/issuestore/6/d/6d3c544425079f602cf69888136c6d4252621458
@@ -1,2 +1,2 @@
 
-V	java:S125t"<This block of commented-out lines of code should be removed.(Ý±­¥þÿÿÿÿ
\ No newline at end of file
+V	java:S125k"<This block of commented-out lines of code should be removed.(Ý±­¥þÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/5/85592dc3f9f52de25b667fbf9b5339bbef9f21b3 b/.idea/sonarlint/issuestore/8/5/85592dc3f9f52de25b667fbf9b5339bbef9f21b3
new file mode 100644
index 0000000..615a48a
--- /dev/null
+++ b/.idea/sonarlint/issuestore/8/5/85592dc3f9f52de25b667fbf9b5339bbef9f21b3
@@ -0,0 +1,3 @@
+
+V	java:S125
"<This block of commented-out lines of code should be removed.(ÒÌâ–øÿÿÿÿ
+Q	java:S125."<This block of commented-out lines of code should be removed.(‹œ«Þ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/8/e/8e78280253f7d8b93e07906dd13dd4c901d0fbe6 b/.idea/sonarlint/issuestore/8/e/8e78280253f7d8b93e07906dd13dd4c901d0fbe6
index 083ca7f..6e3dce8 100644
--- a/.idea/sonarlint/issuestore/8/e/8e78280253f7d8b93e07906dd13dd4c901d0fbe6
+++ b/.idea/sonarlint/issuestore/8/e/8e78280253f7d8b93e07906dd13dd4c901d0fbe6
@@ -1,148 +1,170 @@
 
-h	java:S112Å	"FDefine and throw a dedicated exception instead of using a generic one.(Ò‚Òéüÿÿÿÿ8ÖÿÛý€2
 i
-java:S1301…"KReplace this "switch" statement by "if" statements to increase readability.(Êéô¶8ëÿÛý€2
+java:S1301�"KReplace this "switch" statement by "if" statements to increase readability.(Êéô¶8ƒÛ�ƒ‰2
 n
-java:S1301õ"KReplace this "switch" statement by "if" statements to increase readability.(�«ü”ùÿÿÿÿ8ëÿÛý€2
-z
-java:S2629‡"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(èÙçÎ8ûÿÛý€2
-
-java:S2629”"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(×Çª„ûÿÿÿÿ8ûÿÛý€2
-z
-java:S2629�"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(Þ¸çæ8ûÿÛý€2
-z
-java:S2629Ÿ"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(üš·×8ûÿÛý€2
-Z
-java:S2629Ð"7Use the built-in formatting to construct this argument.(™“”üùÿÿÿÿ8üÿÛý€2
-z
-java:S2629Ò"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(—äŽÃ8üÿÛý€2
-Z
-java:S2629Ñ"7Use the built-in formatting to construct this argument.(Žé‡›ùÿÿÿÿ8þÿÛý€2
-z
-java:S2629Ó"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(©ìÂ‚8þÿÛý€2
-z
-java:S2629‚"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(ÌŸúª8ÿÿÛý€2
-
-java:S2629…"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(åÆð�ùÿÿÿÿ8ÿÿÛý€2
-
-java:S2629È"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(úÐÍ½øÿÿÿÿ8€€Üý€2
-Z
-java:S2629Ñ"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8€€Üý€2
-Z
-java:S2629Ú"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8€€Üý€2
-Z
-java:S2629á"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8€€Üý€2
-Z
-java:S2629é"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8€€Üý€2
-Z
-java:S2629ù"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8�€Üý€2
-P
-java:S1199Ñ"-Extract this nested code block into a method.(ÒÌâ–øÿÿÿÿ8™€Üý€2
-P
-java:S1199Í
-"-Extract this nested code block into a method.(ÒÌâ–øÿÿÿÿ8š€Üý€2
-V
-java:S2589Î"8Remove this expression which always evaluates to "false"(ÚÙ¥Ò8¾–Üý€2
+java:S1301‹"KReplace this "switch" statement by "if" statements to increase readability.(�«ü”ùÿÿÿÿ8„Û�ƒ‰2
 y
-java:S1149ó"VReplace the synchronized class "Hashtable" by an unsynchronized one such as "HashMap".(ä–å»üÿÿÿÿ8Ê–Üý€2
-Y	java:S125ó"<This block of commented-out lines of code should be removed.(»½õÇ8á–Üý€2
-Y	java:S125¢"<This block of commented-out lines of code should be removed.(¸¿»Ó8å–Üý€2
+java:S2629½"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(ÔäøF8‹Û�ƒ‰2
+z
+java:S2629ý"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(èÙçÎ8‹Û�ƒ‰2
+
+java:S2629Š"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(×Çª„ûÿÿÿÿ8‹Û�ƒ‰2
+z
+java:S2629“"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(Þ¸çæ8‹Û�ƒ‰2
+z
+java:S2629•"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(üš·×8‹Û�ƒ‰2
+Z
+java:S2629¸"7Use the built-in formatting to construct this argument.(™“”üùÿÿÿÿ8‹Û�ƒ‰2
+z
+java:S2629º"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(—äŽÃ8‹Û�ƒ‰2
+z
+java:S2629ë"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(Ò÷”î8ŒÛ�ƒ‰2
+y
+java:S2629�	"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(ÔäøF8ŒÛ�ƒ‰2
+Z
+java:S2629è"7Use the built-in formatting to construct this argument.(Žé‡›ùÿÿÿÿ8�Û�ƒ‰2
+z
+java:S2629ê"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(©ìÂ‚8�Û�ƒ‰2
+Z
+java:S2629ï"7Use the built-in formatting to construct this argument.(šª�…ùÿÿÿÿ8�Û�ƒ‰2
+Z
+java:S2629ü"7Use the built-in formatting to construct this argument.(šª�…ùÿÿÿÿ8�Û�ƒ‰2
+Z
+java:S2629‡"7Use the built-in formatting to construct this argument.(šª�…ùÿÿÿÿ8�Û�ƒ‰2
+Z
+java:S2629�"7Use the built-in formatting to construct this argument.(šª�…ùÿÿÿÿ8�Û�ƒ‰2
+z
+java:S2629¥"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(ÌŸúª8ŽÛ�ƒ‰2
+
+java:S2629¨"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(åÆð�ùÿÿÿÿ8ŽÛ�ƒ‰2
+
+java:S2629ë"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(úÐÍ½øÿÿÿÿ8ŽÛ�ƒ‰2
+Z
+java:S2629ô"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8ŽÛ�ƒ‰2
+Z
+java:S2629ý"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8ŽÛ�ƒ‰2
+Z
+java:S2629„"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8ŽÛ�ƒ‰2
+Z
+java:S2629Œ"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8ŽÛ�ƒ‰2
+Z
+java:S2629œ"7Use the built-in formatting to construct this argument.(³€ðÖþÿÿÿÿ8ŽÛ�ƒ‰2
+P
+java:S1199â"-Extract this nested code block into a method.(ÒÌâ–øÿÿÿÿ8—Û�ƒ‰2
+P
+java:S1199ê
+"-Extract this nested code block into a method.(ÒÌâ–øÿÿÿÿ8˜Û�ƒ‰2
+V
+java:S2589ä"8Remove this expression which always evaluates to "false"(ÚÙ¥Ò8ÁÈšƒ‰2
+y
+java:S1149‰"VReplace the synchronized class "Hashtable" by an unsynchronized one such as "HashMap".(ä–å»üÿÿÿÿ8ÐÈšƒ‰2
+Y	java:S125„"<This block of commented-out lines of code should be removed.(»½õÇ8é÷�ƒ‰2
 L
-java:S1940¿")Use the opposite operator ("!=") instead.(Øµ¨«ýÿÿÿÿ8æ–Üý€2
-Y	java:S125þ"<This block of commented-out lines of code should be removed.(ªòý‡8í–Üý€2
+java:S1940±")Use the opposite operator ("!=") instead.(Øµ¨«ýÿÿÿÿ8�ø�ƒ‰2
+Y	java:S125ð"<This block of commented-out lines of code should be removed.(ªòý‡8˜ø�ƒ‰2
 Y
-java:S1751Ü"6Remove this "return" statement or make it conditional.(ÏÎ¢•üÿÿÿÿ8õ–Üý€2
+java:S1751³"6Remove this "return" statement or make it conditional.(ÏÎ¢•üÿÿÿÿ8¢ø�ƒ‰2
+^
+java:S3457½"AFormat specifiers should be used instead of string concatenation.(ÔäøF8¦ø�ƒ‰2
 _
-java:S3457‡"AFormat specifiers should be used instead of string concatenation.(èÙçÎ8û–Üý€2
+java:S3457ý"AFormat specifiers should be used instead of string concatenation.(èÙçÎ8µø�ƒ‰2
 d
-java:S3457”"AFormat specifiers should be used instead of string concatenation.(×Çª„ûÿÿÿÿ8þ–Üý€2
+java:S3457Š"AFormat specifiers should be used instead of string concatenation.(×Çª„ûÿÿÿÿ8¹ø�ƒ‰2
 W
-java:S1612š"9Replace this lambda with method reference 'Good::getVin'.(©ŠôÈ8�—Üý€2
+java:S1612�"9Replace this lambda with method reference 'Good::getVin'.(©ŠôÈ8½ø�ƒ‰2
 _
-java:S3457�"AFormat specifiers should be used instead of string concatenation.(Þ¸çæ8ƒ—Üý€2
+java:S3457“"AFormat specifiers should be used instead of string concatenation.(Þ¸çæ8¾ø�ƒ‰2
 _
-java:S3457Ÿ"AFormat specifiers should be used instead of string concatenation.(üš·×8…—Üý€2
+java:S3457•"AFormat specifiers should be used instead of string concatenation.(üš·×8¿ø�ƒ‰2
 _
-java:S3457¢"AFormat specifiers should be used instead of string concatenation.(¢Š¬Ð8…—Üý€2
-Y	java:S125£"<This block of commented-out lines of code should be removed.(£ÍÚÕ8†—Üý€2
-^	java:S125±"<This block of commented-out lines of code should be removed.(ë²�ëùÿÿÿÿ8†—Üý€2
+java:S3457˜"AFormat specifiers should be used instead of string concatenation.(¢Š¬Ð8¿ø�ƒ‰2
 d
-java:S3457¹"AFormat specifiers should be used instead of string concatenation.(™“”üùÿÿÿÿ8‡—Üý€2
+java:S3457¡"AFormat specifiers should be used instead of string concatenation.(™“”üùÿÿÿÿ8Äø�ƒ‰2
 _
-java:S3457»"AFormat specifiers should be used instead of string concatenation.(—äŽÃ8‡—Üý€2
+java:S3457£"AFormat specifiers should be used instead of string concatenation.(—äŽÃ8Åø�ƒ‰2
 d
-java:S3457½"AFormat specifiers should be used instead of string concatenation.(›œÿùÿÿÿÿÿ8‡—Üý€2
-F	java:S108Ä")Either remove or fill this block of code.(Úîø›8ˆ—Üý€2
+java:S3457¥"AFormat specifiers should be used instead of string concatenation.(›œÿùÿÿÿÿÿ8Æø�ƒ‰2
+F	java:S108¬")Either remove or fill this block of code.(Úîø›8Èø�ƒ‰2
 d
-java:S3457Ð"AFormat specifiers should be used instead of string concatenation.(™“”üùÿÿÿÿ8‰—Üý€2
+java:S3457¸"AFormat specifiers should be used instead of string concatenation.(™“”üùÿÿÿÿ8Ëø�ƒ‰2
 _
-java:S3457Ò"AFormat specifiers should be used instead of string concatenation.(—äŽÃ8‰—Üý€2
+java:S3457º"AFormat specifiers should be used instead of string concatenation.(—äŽÃ8Ìø�ƒ‰2
 d
-java:S3457Ô"AFormat specifiers should be used instead of string concatenation.(›œÿùÿÿÿÿÿ8‰—Üý€2
-Y	java:S125û"<This block of commented-out lines of code should be removed.(¶Â„ß8œ—Üý€2
-^	java:S125Õ"<This block of commented-out lines of code should be removed.(ÙâþÎþÿÿÿÿ8¡—Üý€2
-Y	java:S125Ø"<This block of commented-out lines of code should be removed.(‚Üå¸8¡—Üý€2
-Y	java:S125â"<This block of commented-out lines of code should be removed.(øì§Î8¢—Üý€2
-Y	java:S125±"<This block of commented-out lines of code should be removed.(Ä©Ã¡8¦—Üý€2
-Y	java:S125Õ"<This block of commented-out lines of code should be removed.(¸¿»Ó8¨—Üý€2
-Y	java:S125±"<This block of commented-out lines of code should be removed.(ªòý‡8¯—Üý€2
-^	java:S125�"<This block of commented-out lines of code should be removed.(¬�ñ£þÿÿÿÿ8¹—Üý€2
+java:S3457¼"AFormat specifiers should be used instead of string concatenation.(›œÿùÿÿÿÿÿ8Íø�ƒ‰2
+^	java:S125æ"<This block of commented-out lines of code should be removed.(ÙâþÎþÿÿÿÿ8¬Éšƒ‰2
+Y	java:S125é"<This block of commented-out lines of code should be removed.(‚Üå¸8¬Éšƒ‰2
+Y	java:S125ó"<This block of commented-out lines of code should be removed.(øì§Î8­Éšƒ‰2
+Y
+java:S1751Ø"6Remove this "return" statement or make it conditional.(ÏÎ¢•üÿÿÿÿ8ÍÉšƒ‰2
+_
+java:S3457ë"AFormat specifiers should be used instead of string concatenation.(Ò÷”î8ÐÉšƒ‰2
+^	java:S125ñ"<This block of commented-out lines of code should be removed.(Ÿ´©»øÿÿÿÿ8§Ü¤«‰2
+^
+java:S3457�	"AFormat specifiers should be used instead of string concatenation.(ÔäøF8ÕÉšƒ‰2
 c
-java:S1612³"EReplace this lambda with method reference 'myVin_dataBase::contains'.(¼Ò‘ú8º—Üý€2
-Y	java:S125Ü"<This block of commented-out lines of code should be removed.(Ñ´ùÀ8¿—Üý€2
-^	java:S125ñ"<This block of commented-out lines of code should be removed.(“õß×þÿÿÿÿ8¿—Üý€2
-K	java:S108ý")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8Á—Üý€2
-^	java:S125‡	"<This block of commented-out lines of code should be removed.(òÇ­„þÿÿÿÿ8Â—Üý€2
+java:S1612§	"EReplace this lambda with method reference 'myVin_dataBase::contains'.(¼Ò‘ú8ÙÉšƒ‰2
+^	java:S125Ñ	"<This block of commented-out lines of code should be removed.(“õß×þÿÿÿÿ8ÞÉšƒ‰2
+K	java:S108Ý	")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8ßÉšƒ‰2
+^	java:S125ç	"<This block of commented-out lines of code should be removed.(òÇ­„þÿÿÿÿ8áÉšƒ‰2
 W
-java:S1612¹	"9Replace this lambda with method reference 'Good::getVin'.(©ŠôÈ8Æ—Üý€2
-^	java:S125Ê	"<This block of commented-out lines of code should be removed.(ë²�ëùÿÿÿÿ8ë—Üý€2
-^	java:S125Ñ
-"<This block of commented-out lines of code should be removed.(ÙâþÎþÿÿÿÿ8ò—Üý€2
-Y	java:S125Ô
-"<This block of commented-out lines of code should be removed.(‚Üå¸8ó—Üý€2
-Y	java:S125Þ
-"<This block of commented-out lines of code should be removed.(øì§Î8ó—Üý€2
-^	java:S125™"<This block of commented-out lines of code should be removed.(¿��Êüÿÿÿÿ8õ—Üý€2
-^	java:S125Ü"<This block of commented-out lines of code should be removed.(ûÓº–øÿÿÿÿ8ø—Üý€2
+java:S1612˜
+"9Replace this lambda with method reference 'Good::getVin'.(©ŠôÈ8åÉšƒ‰2
+^	java:S125©
+"<This block of commented-out lines of code should be removed.(ë²�ëùÿÿÿÿ8“Êšƒ‰2
+^	java:S125î
+"<This block of commented-out lines of code should be removed.(ÙâþÎþÿÿÿÿ8—Êšƒ‰2
+Y	java:S125ñ
+"<This block of commented-out lines of code should be removed.(‚Üå¸8˜Êšƒ‰2
+Y	java:S125û
+"<This block of commented-out lines of code should be removed.(øì§Î8™Êšƒ‰2
+^	java:S125õ"<This block of commented-out lines of code should be removed.(ûÓº–øÿÿÿÿ8¡Êšƒ‰2
 d
-java:S3457Ñ"AFormat specifiers should be used instead of string concatenation.(Žé‡›ùÿÿÿÿ8þ—Üý€2
+java:S3457è"AFormat specifiers should be used instead of string concatenation.(Žé‡›ùÿÿÿÿ8¨Êšƒ‰2
 _
-java:S3457Ó"AFormat specifiers should be used instead of string concatenation.(©ìÂ‚8þ—Üý€2
+java:S3457ê"AFormat specifiers should be used instead of string concatenation.(©ìÂ‚8©Êšƒ‰2
 _
-java:S3457è"AFormat specifiers should be used instead of string concatenation.(³�¤þ8€˜Üý€2
-K	java:S108ì
")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8Š˜Üý€2
-^	java:S125¤"<This block of commented-out lines of code should be removed.(…ãÑÙúÿÿÿÿ8�˜Üý€2
-^	java:S125÷"<This block of commented-out lines of code should be removed.(¦ÀŽùýÿÿÿÿ8­˜Üý€2
+java:S3457ÿ"AFormat specifiers should be used instead of string concatenation.(³�¤þ8«Êšƒ‰2
+K	java:S108‚")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8³Êšƒ‰2
+^	java:S125º"<This block of commented-out lines of code should be removed.(…ãÑÙúÿÿÿÿ8·Êšƒ‰2
+^	java:S125�"<This block of commented-out lines of code should be removed.(¦ÀŽùýÿÿÿÿ8ÖÊšƒ‰2
+d
+java:S3457ï"AFormat specifiers should be used instead of string concatenation.(šª�…ùÿÿÿÿ8Þú�ƒ‰2
+d
+java:S3457ü"AFormat specifiers should be used instead of string concatenation.(šª�…ùÿÿÿÿ8äÊšƒ‰2
+d
+java:S3457‡"AFormat specifiers should be used instead of string concatenation.(šª�…ùÿÿÿÿ8åÊšƒ‰2
+d
+java:S3457�"AFormat specifiers should be used instead of string concatenation.(šª�…ùÿÿÿÿ8æÊšƒ‰2
 _
-java:S3457‚"AFormat specifiers should be used instead of string concatenation.(ÌŸúª8»˜Üý€2
+java:S3457¥"AFormat specifiers should be used instead of string concatenation.(ÌŸúª8éÊšƒ‰2
 d
-java:S3457…"AFormat specifiers should be used instead of string concatenation.(åÆð�ùÿÿÿÿ8¼˜Üý€2
+java:S3457¨"AFormat specifiers should be used instead of string concatenation.(åÆð�ùÿÿÿÿ8êÊšƒ‰2
 _
-java:S3457‹"AFormat specifiers should be used instead of string concatenation.(²çóª8¾˜Üý€2
+java:S3457®"AFormat specifiers should be used instead of string concatenation.(²çóª8ëÊšƒ‰2
 _
-java:S3457•"AFormat specifiers should be used instead of string concatenation.(…‘ÄÒ8¿˜Üý€2
-^	java:S125©"<This block of commented-out lines of code should be removed.(Žà…½üÿÿÿÿ8À˜Üý€2
+java:S3457¸"AFormat specifiers should be used instead of string concatenation.(…‘ÄÒ8íÊšƒ‰2
+^	java:S125Ì"<This block of commented-out lines of code should be removed.(Žà…½üÿÿÿÿ8îÊšƒ‰2
 d
-java:S3457È"AFormat specifiers should be used instead of string concatenation.(úÐÍ½øÿÿÿÿ8Â˜Üý€2
+java:S3457ë"AFormat specifiers should be used instead of string concatenation.(úÐÍ½øÿÿÿÿ8ðÊšƒ‰2
 d
-java:S3457Ñ"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8Ä˜Üý€2
+java:S3457ô"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8òÊšƒ‰2
 d
-java:S3457Ú"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8Æ˜Üý€2
+java:S3457ý"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8óÊšƒ‰2
 d
-java:S3457á"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8È˜Üý€2
+java:S3457„"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8ôÊšƒ‰2
 d
-java:S3457é"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8È˜Üý€2
+java:S3457Œ"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8õÊšƒ‰2
 d
-java:S3457ù"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8É˜Üý€2
+java:S3457œ"AFormat specifiers should be used instead of string concatenation.(³€ðÖþÿÿÿÿ8öÊšƒ‰2
 g
-java:S1128"JRemove this unused import 'com.haitongauto.models.valid.cus.ValidRequest'.(´ÍÆî8­Þâý€2
+java:S1128"JRemove this unused import 'com.haitongauto.models.valid.cus.ValidRequest'.(´ÍÆî8¼‡ËÚ‰2
 a
-java:S1128"DRemove this unused import 'com.haitongauto.rtosac.fangdou.Debounce'.(ìŸ‹¨8­Þâý€2
+java:S1128"DRemove this unused import 'com.haitongauto.rtosac.fangdou.Debounce'.(ìŸ‹¨8¼‡ËÚ‰2
 o
-java:S1128"MRemove this unused import 'com.haitongauto.rtosac.fangdou.DebounceInterface'.(Àó…üþÿÿÿÿ8­Þâý€2
+java:S1128"MRemove this unused import 'com.haitongauto.rtosac.fangdou.DebounceInterface'.(Àó…üþÿÿÿÿ8¼‡ËÚ‰2
 e
-java:S1128 "CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8­Þâý€2
+java:S1128!"CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8¼‡ËÚ‰2
 l
-java:S1128,"JRemove this unused import 'java.util.concurrent.ScheduledExecutorService'.(�Êßˆÿÿÿÿÿ8­Þâý€2
+java:S1128-"JRemove this unused import 'java.util.concurrent.ScheduledExecutorService'.(�Êßˆÿÿÿÿÿ8½‡ËÚ‰2
 o
-java:S1128-"MRemove this unused import 'java.util.concurrent.ScheduledThreadPoolExecutor'.(îêŸïüÿÿÿÿ8­Þâý€2
\ No newline at end of file
+java:S1128."MRemove this unused import 'java.util.concurrent.ScheduledThreadPoolExecutor'.(îêŸïüÿÿÿÿ8½‡ËÚ‰2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/7/97457093fb5e637b918df4ef9eebabd153ba1642 b/.idea/sonarlint/issuestore/9/7/97457093fb5e637b918df4ef9eebabd153ba1642
index a6a1350..912269c 100644
--- a/.idea/sonarlint/issuestore/9/7/97457093fb5e637b918df4ef9eebabd153ba1642
+++ b/.idea/sonarlint/issuestore/9/7/97457093fb5e637b918df4ef9eebabd153ba1642
@@ -1,13 +1,17 @@
 
 |
-java:S2293Ž"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8•ÍÄŽã1
+java:S2293”"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8Ò¿þÿ‚2
 |
-java:S2293™"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8•ÍÄŽã1
+java:S2293Ÿ"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8Ò¿þÿ‚2
 |
-java:S2293¹"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8–ÍÄŽã1
-X	java:S125f"<This block of commented-out lines of code should be removed.(˜±êœ8âÍÄŽã1
-X	java:S125s"<This block of commented-out lines of code should be removed.(úÖ˜²8ãÍÄŽã1
-D
-java:S1905{"(Remove this unnecessary cast to "Truck".(ÓîÜ>8åÍÄŽã1
-^	java:S125›"<This block of commented-out lines of code should be removed.(Ð½ûþûÿÿÿÿ8éÍÄŽã1
-^	java:S125¨"<This block of commented-out lines of code should be removed.(’ á¾ùÿÿÿÿ8éÍÄŽã1
\ No newline at end of file
+java:S2293¿"YReplace the type specification in this constructor call with the diamond operator ("<>").(†”ï�øÿÿÿÿ8Ò¿þÿ‚2
+X	java:S125l"<This block of commented-out lines of code should be removed.(˜±êœ8¸Àþÿ‚2
+X	java:S125y"<This block of commented-out lines of code should be removed.(úÖ˜²8¸Àþÿ‚2
+E
+java:S1905�"(Remove this unnecessary cast to "Truck".(ÓîÜ>8ºÀþÿ‚2
+^	java:S125¡"<This block of commented-out lines of code should be removed.(Ð½ûþûÿÿÿÿ8¾Àþÿ‚2
+^	java:S125®"<This block of commented-out lines of code should be removed.(’ á¾ùÿÿÿÿ8¾Àþÿ‚2
+^
+java:S1128"ARemove this unused import 'com.haitongauto.models.ido.CommonRes'.(’¬æ¬8©À�€ƒ2
+k
+java:S1128	"IRemove this unused import 'com.haitongauto.models.ido.login.UserInfoRes'.(ã¿¦¯ýÿÿÿÿ8©À�€ƒ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/8/980cef93c550ad2f41ad9f44dabd7929b7c4f799 b/.idea/sonarlint/issuestore/9/8/980cef93c550ad2f41ad9f44dabd7929b7c4f799
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/issuestore/9/a/9a82a007d1b17eec05ac2815a4ea24f654e09fbf b/.idea/sonarlint/issuestore/9/a/9a82a007d1b17eec05ac2815a4ea24f654e09fbf
index 9d5a558..ea3e20b 100644
--- a/.idea/sonarlint/issuestore/9/a/9a82a007d1b17eec05ac2815a4ea24f654e09fbf
+++ b/.idea/sonarlint/issuestore/9/a/9a82a007d1b17eec05ac2815a4ea24f654e09fbf
@@ -2,17 +2,11 @@
 Q	java:S1257"<This block of commented-out lines of code should be removed.(‹¦ÃÍ
 =
 java:S1075­"&Remove this hard-coded path-delimiter.(�Òþ 
-Q	java:S899±";Do something with the "boolean" value returned by "delete".(ºý‘�
-e
-java:S4042±"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(ºý‘�
 =
 java:S1075¶"&Remove this hard-coded path-delimiter.(òÛ¿˜
 R	java:S125½"<This block of commented-out lines of code should be removed.(¢ÃÃ�
 =
 java:S1075”"&Remove this hard-coded path-delimiter.(�Òþ 
-Q	java:S899˜";Do something with the "boolean" value returned by "delete".(ºý‘�
-e
-java:S4042˜"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(ºý‘�
 =
 java:S1075�"&Remove this hard-coded path-delimiter.(òÛ¿˜
 W	java:S125¥"<This block of commented-out lines of code should be removed.(¼“·Æûÿÿÿÿ
diff --git a/.idea/sonarlint/issuestore/9/a/9aa58592af3de8f6aa78fbc1670a9880561f0fd9 b/.idea/sonarlint/issuestore/9/a/9aa58592af3de8f6aa78fbc1670a9880561f0fd9
index 3333f14..292aa7c 100644
--- a/.idea/sonarlint/issuestore/9/a/9aa58592af3de8f6aa78fbc1670a9880561f0fd9
+++ b/.idea/sonarlint/issuestore/9/a/9aa58592af3de8f6aa78fbc1670a9880561f0fd9
@@ -1,3 +1,3 @@
 
 X	java:S1254"<This block of commented-out lines of code should be removed.(‘ùôƒ8ÚŽçÂ×1
-Y	java:S125›"<This block of commented-out lines of code should be removed.(È·÷°8ÖäÖìç1
\ No newline at end of file
+Y	java:S125š"<This block of commented-out lines of code should be removed.(È·÷°8ÖäÖìç1
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/9/b/9b9c619d7179c103b9b511d33a6b07e1c02dbadb b/.idea/sonarlint/issuestore/9/b/9b9c619d7179c103b9b511d33a6b07e1c02dbadb
index 5e5d83a..b6890d4 100644
--- a/.idea/sonarlint/issuestore/9/b/9b9c619d7179c103b9b511d33a6b07e1c02dbadb
+++ b/.idea/sonarlint/issuestore/9/b/9b9c619d7179c103b9b511d33a6b07e1c02dbadb
@@ -1,20 +1,19 @@
 
-Z
-java:S2589¤"7Remove this expression which always evaluates to "true"(®–’‡ùÿÿÿÿ8ïÔí¤å1
-]	java:S125b"<This block of commented-out lines of code should be removed.(ü´ŒÐýÿÿÿÿ8–Õí¤å1
-^	java:S125œ"<This block of commented-out lines of code should be removed.(ÙÖßïùÿÿÿÿ8�Õí¤å1
-Y	java:S125–"<This block of commented-out lines of code should be removed.(¼”õý8®Õí¤å1
-p	java:S100Ä"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ý°§‡ÿÿÿÿÿ8ÈÕí¤å1
-^	java:S125¸"<This block of commented-out lines of code should be removed.(ò¤Íýþÿÿÿÿ8ßÕí¤å1
-^	java:S125Æ"<This block of commented-out lines of code should be removed.(©¦Àïÿÿÿÿÿ8áÕí¤å1
-^	java:S125Š"<This block of commented-out lines of code should be removed.(ðÁŸ´þÿÿÿÿ8êÕí¤å1
-Y	java:S125ž"<This block of commented-out lines of code should be removed.(�ÇŸ‰8ïÕí¤å1
+U
+java:S2589Ö"7Remove this expression which always evaluates to "true"(Á­¢Ù8œï…›ƒ2
+^	java:S125«"<This block of commented-out lines of code should be removed.(ÙÖßïùÿÿÿÿ8¥ï…›ƒ2
+k	java:S100¶"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÿ�§ô8°ï…›ƒ2
+^	java:S125×"<This block of commented-out lines of code should be removed.(ò¤Íýþÿÿÿÿ8·ï…›ƒ2
+^	java:S125å"<This block of commented-out lines of code should be removed.(©¦Àïÿÿÿÿÿ8¸ï…›ƒ2
+^	java:S125¶"<This block of commented-out lines of code should be removed.(ðÁŸ´þÿÿÿÿ8ºï…›ƒ2
+Y	java:S125Ê"<This block of commented-out lines of code should be removed.(�ÇŸ‰8¼ï…›ƒ2
 L
-java:S1940Ÿ")Use the opposite operator (">=") instead.(ŒÀ¨¦ûÿÿÿÿ8ñÕí¤å1
-Y	java:S125Ü"<This block of commented-out lines of code should be removed.(ÖÇÒü8·Ø‡ªå1
+java:S1940Ë")Use the opposite operator (">=") instead.(ŒÀ¨¦ûÿÿÿÿ8¼ï…›ƒ2
+Y	java:S125•"<This block of commented-out lines of code should be removed.(ÖÇÒü8¿ï…›ƒ2
 Y
-java:S1128"<Remove this unused import 'com.alibaba.fastjson.JSONObject'.(äýµ�8ùÃÙ¥å1
+java:S1128"<Remove this unused import 'com.alibaba.fastjson.JSONObject'.(äýµ�8†ÿ‰›ƒ2
 h
-java:S1128	"FRemove this unused import 'com.haitongauto.models.forward.ForwardRes'.(÷˜ôÆûÿÿÿÿ8úÃÙ¥å1
+java:S1128
+"FRemove this unused import 'com.haitongauto.models.forward.ForwardRes'.(÷˜ôÆûÿÿÿÿ8ˆÿ‰›ƒ2
 e
-java:S1128"CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8úÃÙ¥å1
\ No newline at end of file
+java:S1128"CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8‰ÿ‰›ƒ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/4/a46601740fc27816ec9c0f2118b7d355d923c031 b/.idea/sonarlint/issuestore/a/4/a46601740fc27816ec9c0f2118b7d355d923c031
index 3f0dfbe..0cd2e4d 100644
--- a/.idea/sonarlint/issuestore/a/4/a46601740fc27816ec9c0f2118b7d355d923c031
+++ b/.idea/sonarlint/issuestore/a/4/a46601740fc27816ec9c0f2118b7d355d923c031
@@ -4,9 +4,9 @@ java:S2293
 F
 java:S1604‡"(Make this anonymous inner class a lambda(ÉãÃ®8ÅÿÒ÷Ý1
 U
-java:S3655•"7Call "Optional#isPresent()" before accessing the value.(˜ê’‘8åÃ¸ÏÞ1
-U
 java:S3655ç"7Call "Optional#isPresent()" before accessing the value.(Œ†«¼8æÃ¸ÏÞ1
+U
+java:S3655•"7Call "Optional#isPresent()" before accessing the value.(˜ê’‘8åÃ¸ÏÞ1
 F
 java:S1905Š"(Remove this unnecessary cast to "Users".(ÔÆÒ¢8¡Ä¸ÏÞ1
 Z
diff --git a/.idea/sonarlint/issuestore/a/6/a66542386621b0651ee5ab09619c82dd483ec0d2 b/.idea/sonarlint/issuestore/a/6/a66542386621b0651ee5ab09619c82dd483ec0d2
index 6a69959..dbd0409 100644
--- a/.idea/sonarlint/issuestore/a/6/a66542386621b0651ee5ab09619c82dd483ec0d2
+++ b/.idea/sonarlint/issuestore/a/6/a66542386621b0651ee5ab09619c82dd483ec0d2
@@ -1,28 +1,28 @@
 
-Y	java:S125 "<This block of commented-out lines of code should be removed.(�÷®È8‘­ƒ²€2
-^	java:S125Â"<This block of commented-out lines of code should be removed.(æï¥Æúÿÿÿÿ8¼ƒ„²€2
-^	java:S125Ó"<This block of commented-out lines of code should be removed.(ä½¿�üÿÿÿÿ8¨£…²€2
-^	java:S125å"<This block of commented-out lines of code should be removed.(§èÌÌüÿÿÿÿ8å÷†²€2
-^	java:S125…"<This block of commented-out lines of code should be removed.(±èòæþÿÿÿÿ8Ëë°³€2
+Y	java:S125­"<This block of commented-out lines of code should be removed.(�÷®È8ÿ™‹þ‚2
+^	java:S125Ï"<This block of commented-out lines of code should be removed.(æï¥Æúÿÿÿÿ8€š‹þ‚2
+^	java:S125à"<This block of commented-out lines of code should be removed.(ä½¿�üÿÿÿÿ8€š‹þ‚2
+^	java:S125ò"<This block of commented-out lines of code should be removed.(§èÌÌüÿÿÿÿ8€š‹þ‚2
+^	java:S125’"<This block of commented-out lines of code should be removed.(±èòæþÿÿÿÿ8€š‹þ‚2
 f
-java:S1128"DRemove this unused import 'com.haitongauto.models.ido.PortAreasIdo'.(ØÑ€æüÿÿÿÿ8Í¯å±€2
+java:S1128"DRemove this unused import 'com.haitongauto.models.ido.PortAreasIdo'.(ØÑ€æüÿÿÿÿ8ý£õü‚2
 i
 java:S1128
-"GRemove this unused import 'com.haitongauto.models.sysuser.OldSysTruck'.(¾í¦˜ÿÿÿÿÿ8¶åá±€2
+"GRemove this unused import 'com.haitongauto.models.sysuser.OldSysTruck'.(¾í¦˜ÿÿÿÿÿ8ý£õü‚2
 a
-java:S1128"DRemove this unused import 'com.haitongauto.models.sysuser.OldSysUT'.(ÂÀ°›8¶åá±€2
+java:S1128"DRemove this unused import 'com.haitongauto.models.sysuser.OldSysUT'.(ÂÀ°›8þ£õü‚2
 c
-java:S1128
"FRemove this unused import 'com.haitongauto.models.sysuser.OldSysUser'.(°Ìˆ×8¶åá±€2
+java:S1128
"FRemove this unused import 'com.haitongauto.models.sysuser.OldSysUser'.(°Ìˆ×8þ£õü‚2
 c
-java:S1128"FRemove this unused import 'com.haitongauto.models.dto.DataForMessage'.(à¸üü8Ìë°³€2
+java:S1128"FRemove this unused import 'com.haitongauto.models.dto.DataForMessage'.(à¸üü8þ£õü‚2
 `
-java:S1128"CRemove this unused import 'com.haitongauto.utils.minio.MinioUtils'.(ìòƒú8¿ƒ„²€2
+java:S1128"CRemove this unused import 'com.haitongauto.utils.minio.MinioUtils'.(ìòƒú8þ£õü‚2
 g
-java:S1128"ERemove this unused import 'io.minio.errors.InvalidEndpointException'.(Ìª–‘þÿÿÿÿ8¿ƒ„²€2
+java:S1128"ERemove this unused import 'io.minio.errors.InvalidEndpointException'.(Ìª–‘þÿÿÿÿ8þ£õü‚2
 c
-java:S1128"ARemove this unused import 'io.minio.errors.InvalidPortException'.(¯ä·×øÿÿÿÿ8¿ƒ„²€2
+java:S1128"ARemove this unused import 'io.minio.errors.InvalidPortException'.(¯ä·×øÿÿÿÿ8þ£õü‚2
 n
-java:S1128"LRemove this unused import 'org.springframework.web.multipart.MultipartFile'.(ôŸœžÿÿÿÿÿ8Àƒ„²€2
+java:S1128"LRemove this unused import 'org.springframework.web.multipart.MultipartFile'.(ôŸœžÿÿÿÿÿ8þ£õü‚2
 F
-java:S1128")Remove this unused import 'java.io.File'.(†Ð¥Å8˜­ƒ²€2
-q
secrets:S6695ì"KMake sure this WeChat key gets revoked, changed, and removed from the code.(×à©âüÿÿÿÿ8¬ËÖÎú1
\ No newline at end of file
+java:S1128")Remove this unused import 'java.io.File'.(†Ð¥Å8þ£õü‚2
+q
secrets:S6695ù"KMake sure this WeChat key gets revoked, changed, and removed from the code.(×à©âüÿÿÿÿ8˜š‹þ‚2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/7/a74b282271941960face489eaee741e6eec2357c b/.idea/sonarlint/issuestore/a/7/a74b282271941960face489eaee741e6eec2357c
new file mode 100644
index 0000000..3f8c53a
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/7/a74b282271941960face489eaee741e6eec2357c
@@ -0,0 +1,2 @@
+
+o	java:S100"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(µÚ— üÿÿÿÿ8ì¥Æ”…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/a/e/aea56443b73d82c2b502abd47a45929cc24eaa5a b/.idea/sonarlint/issuestore/a/e/aea56443b73d82c2b502abd47a45929cc24eaa5a
new file mode 100644
index 0000000..bd8d9ac
--- /dev/null
+++ b/.idea/sonarlint/issuestore/a/e/aea56443b73d82c2b502abd47a45929cc24eaa5a
@@ -0,0 +1,6 @@
+
+?
+java:S2386"Make this member "protected".(á¸Ïßüÿÿÿÿ8ŒÍþ¼…2
+X	java:S125$"<This block of commented-out lines of code should be removed.(à—º³8ÍÎþ¼…2
+X	java:S125F"<This block of commented-out lines of code should be removed.(úãö®8âÎþ¼…2
+]	java:S125Q"<This block of commented-out lines of code should be removed.(�½¹Õüÿÿÿÿ8åÎþ¼…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/4/b49ea71c732f3e9d21cf5262213d3d6554244d47 b/.idea/sonarlint/issuestore/b/4/b49ea71c732f3e9d21cf5262213d3d6554244d47
index abc06ec..490ff67 100644
--- a/.idea/sonarlint/issuestore/b/4/b49ea71c732f3e9d21cf5262213d3d6554244d47
+++ b/.idea/sonarlint/issuestore/b/4/b49ea71c732f3e9d21cf5262213d3d6554244d47
@@ -1,3 +1,9 @@
 
 R	java:S125‘"<This block of commented-out lines of code should be removed.(í”¬´
-^	java:S125È"<This block of commented-out lines of code should be removed.(¡ÇÑúüÿÿÿÿ8„«˜¬å1
\ No newline at end of file
+^	java:S125È"<This block of commented-out lines of code should be removed.(¡ÇÑúüÿÿÿÿ8„«˜¬å1
+I
+java:S1905ò"+Remove this unnecessary cast to "PortArea".(±�šš8ùÂÖÈ„2
+c
+java:S1128"ARemove this unused import 'com.haitongauto.utils.DateTimeHelper'.(š’ß™üÿÿÿÿ8‚ÃÖÈ„2
+R
+java:S1128"0Remove this unused import 'java.time.LocalTime'.(à®øÃùÿÿÿÿ8ƒÃÖÈ„2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/7/b7b28f9a93ada45aa8374a02e9293b127648bb17 b/.idea/sonarlint/issuestore/b/7/b7b28f9a93ada45aa8374a02e9293b127648bb17
new file mode 100644
index 0000000..cdf2067
--- /dev/null
+++ b/.idea/sonarlint/issuestore/b/7/b7b28f9a93ada45aa8374a02e9293b127648bb17
@@ -0,0 +1,2 @@
+
+g	java:S101"MRename this class name to match the regular expression '^[A-Z][a-zA-Z0-9]*$'.(šúËÊýÿÿÿÿ
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/7/b7d6d14d9ab2a0ae82109887abce5e44c933f7d1 b/.idea/sonarlint/issuestore/b/7/b7d6d14d9ab2a0ae82109887abce5e44c933f7d1
index ec12161..7e0dc70 100644
--- a/.idea/sonarlint/issuestore/b/7/b7d6d14d9ab2a0ae82109887abce5e44c933f7d1
+++ b/.idea/sonarlint/issuestore/b/7/b7d6d14d9ab2a0ae82109887abce5e44c933f7d1
@@ -1,34 +1,29 @@
 
-c	java:S112Ù"FDefine and throw a dedicated exception instead of using a generic one.(›¦ÿƒ8�¤šÎú1
 
-java:S2629Û"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(¤—Ó«ýÿÿÿÿ8¦¤šÎú1
+java:S2629Ü"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(¤—Ó«ýÿÿÿÿ8Ñæü�ˆ2
 z
-java:S2629Þ"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(áç¸ó8¦¤šÎú1
+java:S2629ß"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(áç¸ó8Òæü�ˆ2
 y
-java:S2629Õ"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(„ñê~8§¤šÎú1
-^	java:S125Ô"<This block of commented-out lines of code should be removed.(ŸŸó®þÿÿÿÿ8¢ÀšÎú1
-Y	java:S125Ö"<This block of commented-out lines of code should be removed.(Ç³¯ú8£ÀšÎú1
+java:S2629Ü"\Invoke method(s) only conditionally. Use the built-in formatting to construct this argument.(„ñê~8Óæü�ˆ2
+^	java:S125Õ"<This block of commented-out lines of code should be removed.(ŸŸó®þÿÿÿÿ8¸ûü�ˆ2
+Y	java:S125×"<This block of commented-out lines of code should be removed.(Ç³¯ú8¹ûü�ˆ2
 d
-java:S3457Û"AFormat specifiers should be used instead of string concatenation.(¤—Ó«ýÿÿÿÿ8£ÀšÎú1
+java:S3457Ü"AFormat specifiers should be used instead of string concatenation.(¤—Ó«ýÿÿÿÿ8¹ûü�ˆ2
 _
-java:S3457Þ"AFormat specifiers should be used instead of string concatenation.(áç¸ó8¤ÀšÎú1
+java:S3457ß"AFormat specifiers should be used instead of string concatenation.(áç¸ó8»ûü�ˆ2
 d
-java:S3457å"AFormat specifiers should be used instead of string concatenation.(­‹ßÛýÿÿÿÿ8¥ÀšÎú1
-^	java:S125Œ"<This block of commented-out lines of code should be removed.(ÔŠ©Ìÿÿÿÿÿ8¿ÀšÎú1
-^	java:S125¢"<This block of commented-out lines of code should be removed.(ðÍëÏþÿÿÿÿ8ÂÀšÎú1
-Y	java:S125³"<This block of commented-out lines of code should be removed.(¡¾§ë8ßÀšÎú1
+java:S3457æ"AFormat specifiers should be used instead of string concatenation.(­‹ßÛýÿÿÿÿ8¼ûü�ˆ2
+^	java:S125§"<This block of commented-out lines of code should be removed.(ðÍëÏþÿÿÿÿ8Úûü�ˆ2
 ^
-java:S3457Õ"AFormat specifiers should be used instead of string concatenation.(„ñê~8ãÀšÎú1
+java:S3457Ü"AFormat specifiers should be used instead of string concatenation.(„ñê~8€üü�ˆ2
 d
-java:S3457Ø"AFormat specifiers should be used instead of string concatenation.(£Â«—úÿÿÿÿ8äÀšÎú1
-X	java:S125Ü"<This block of commented-out lines of code should be removed.(é¤¶R8îÀšÎú1
-X	java:S125—"<This block of commented-out lines of code should be removed.(èø‹V8üÀšÎú1
-^	java:S125¢"<This block of commented-out lines of code should be removed.(ŸÒ‹æùÿÿÿÿ8þÀšÎú1
+java:S3457ß"AFormat specifiers should be used instead of string concatenation.(£Â«—úÿÿÿÿ8�üü�ˆ2
+X	java:S125”"<This block of commented-out lines of code should be removed.(èø‹V8”üü�ˆ2
 ]
-java:S1128";Remove this unused import 'com.alibaba.fastjson.JSONArray'.(ÿÀâ³ùÿÿÿÿ8ƒ»‹Çü1
+java:S1128";Remove this unused import 'com.alibaba.fastjson.JSONArray'.(ÿÀâ³ùÿÿÿÿ8„ÃÇþˆ2
 o
-java:S1128"MRemove this unused import 'com.haitongauto.rtosac.api.AppointmentController'.(—å‹úúÿÿÿÿ8„»‹Çü1
+java:S1128"MRemove this unused import 'com.haitongauto.rtosac.api.AppointmentController'.(—å‹úúÿÿÿÿ8…ÃÇþˆ2
 g
-java:S1128"JRemove this unused import 'com.haitongauto.rtosac.service.MessageService'.(¥“®´8„»‹Çü1
+java:S1128"JRemove this unused import 'com.haitongauto.rtosac.service.MessageService'.(¥“®´8…ÃÇþˆ2
 e
-java:S1128"CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8…»‹Çü1
\ No newline at end of file
+java:S1128"CRemove this unused import 'com.haitongauto.utils.HttpClientHelper'.(ý¹Ë‚ÿÿÿÿÿ8…ÃÇþˆ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/9/b9fe225e887d887154fb0c72e585ab632c0beb05 b/.idea/sonarlint/issuestore/b/9/b9fe225e887d887154fb0c72e585ab632c0beb05
index e69de29..c91e617 100644
--- a/.idea/sonarlint/issuestore/b/9/b9fe225e887d887154fb0c72e585ab632c0beb05
+++ b/.idea/sonarlint/issuestore/b/9/b9fe225e887d887154fb0c72e585ab632c0beb05
@@ -0,0 +1,3 @@
+
+R
+java:S1128"0Remove this unused import 'java.time.LocalDate'.(›‘¬èýÿÿÿÿ8¸á‡óƒ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/b/d/bdfbdec1be13a927db043a99eeaacdaaa750c59d b/.idea/sonarlint/issuestore/b/d/bdfbdec1be13a927db043a99eeaacdaaa750c59d
index 8a1737b..48d7619 100644
--- a/.idea/sonarlint/issuestore/b/d/bdfbdec1be13a927db043a99eeaacdaaa750c59d
+++ b/.idea/sonarlint/issuestore/b/d/bdfbdec1be13a927db043a99eeaacdaaa750c59d
@@ -1,4 +1,4 @@
 
-W	java:S125#"<This block of commented-out lines of code should be removed.(À‡Õs8¦Î·¨¿1
+W	java:S125#"<This block of commented-out lines of code should be removed.(À‡Õs8Š»º‡ˆ2
 _
-java:S1128"=Remove this unused import 'com.haitongauto.models.dto.Pages'.(õ¢òöùÿÿÿÿ8çî·¨¿1
\ No newline at end of file
+java:S1128"=Remove this unused import 'com.haitongauto.models.dto.Pages'.(õ¢òöùÿÿÿÿ8‹»º‡ˆ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/c/e/ceefe43016a49769ca0b29673527cfe3fcbf2d50 b/.idea/sonarlint/issuestore/c/e/ceefe43016a49769ca0b29673527cfe3fcbf2d50
index e69de29..e06c908 100644
--- a/.idea/sonarlint/issuestore/c/e/ceefe43016a49769ca0b29673527cfe3fcbf2d50
+++ b/.idea/sonarlint/issuestore/c/e/ceefe43016a49769ca0b29673527cfe3fcbf2d50
@@ -0,0 +1,3 @@
+
+T
+java:S1128"2Remove this unused import 'javax.xml.crypto.Data'.(¦¿çˆýÿÿÿÿ8„‰ÛÈ„2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/3/d3dd7a9002b7e1fcc6f240cec23c161c076f227b b/.idea/sonarlint/issuestore/d/3/d3dd7a9002b7e1fcc6f240cec23c161c076f227b
index 04e8516..cf03eb0 100644
--- a/.idea/sonarlint/issuestore/d/3/d3dd7a9002b7e1fcc6f240cec23c161c076f227b
+++ b/.idea/sonarlint/issuestore/d/3/d3dd7a9002b7e1fcc6f240cec23c161c076f227b
@@ -16,14 +16,8 @@ java:S3457R"AFormat specifiers should be used instead of string concatenation.(
 ]	java:S125}"<This block of commented-out lines of code should be removed.(¥öÔ°úÿÿÿÿ8³¡æÔî1
 D
 java:S1075È"&Remove this hard-coded path-delimiter.(�Òþ 8¸¡æÔî1
-X	java:S899Ì";Do something with the "boolean" value returned by "delete".(ºý‘�8¿¡æÔî1
-l
-java:S4042Ì"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(ºý‘�8¿¡æÔî1
 D
 java:S1075Ñ"&Remove this hard-coded path-delimiter.(òÛ¿˜8À¡æÔî1
-]	java:S899ß";Do something with the "boolean" value returned by "delete".(½±˜üùÿÿÿÿ8Ã¡æÔî1
-q
-java:S4042ß"NUse "java.nio.file.Files#delete" here for better messages on error conditions.(½±˜üùÿÿÿÿ8Ã¡æÔî1
 j
 java:S1128"HRemove this unused import 'com.haitongauto.mapper.base.PortAreasMapper'.(ú¹‘�þÿÿÿÿ8¨ŽñÓî1
 e
diff --git a/.idea/sonarlint/issuestore/d/b/db80f908a66f4457149cd9422102aaa883d18281 b/.idea/sonarlint/issuestore/d/b/db80f908a66f4457149cd9422102aaa883d18281
index 44a8ff9..4ae35bc 100644
--- a/.idea/sonarlint/issuestore/d/b/db80f908a66f4457149cd9422102aaa883d18281
+++ b/.idea/sonarlint/issuestore/d/b/db80f908a66f4457149cd9422102aaa883d18281
@@ -1,8 +1,12 @@
 
-o
-java:S2293C"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ã¬Ð˜
-f
-java:S1301j"KReplace this "switch" statement by "if" statements to increase readability.(ÕÙàßüÿÿÿÿ
+v
+java:S2293F"YReplace the type specification in this constructor call with the diamond operator ("<>").(Ã¬Ð˜8þ˜‚¼…2
+m
+java:S1301q"KReplace this "switch" statement by "if" statements to increase readability.(ÕÙàßüÿÿÿÿ8ÿ˜‚¼…2
 t	java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÏÚŽµýÿÿÿÿ
+V
+java:S1874;"9Remove this use of "StringEscapeUtils"; it is deprecated.(¦ é�8þš‚¼…2
+V
+java:S1874S"9Remove this use of "StringEscapeUtils"; it is deprecated.(¦ é�8“™‰¼…2
 H
-java:S1128"+Remove this unused import 'java.util.Date'.(¸…¼ü8³ÖŸ­ö1
\ No newline at end of file
+java:S1128"+Remove this unused import 'java.util.Date'.(¸…¼ü8‘ÖÂ½…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/d/d/dd8dbe607a1a830ee0d8b4dcba8a15d72431203c b/.idea/sonarlint/issuestore/d/d/dd8dbe607a1a830ee0d8b4dcba8a15d72431203c
index 83c3463..be469d7 100644
--- a/.idea/sonarlint/issuestore/d/d/dd8dbe607a1a830ee0d8b4dcba8a15d72431203c
+++ b/.idea/sonarlint/issuestore/d/d/dd8dbe607a1a830ee0d8b4dcba8a15d72431203c
@@ -1,10 +1,10 @@
 
 |
-java:S2293’"YReplace the type specification in this constructor call with the diamond operator ("<>").(ó¸ÇŸúÿÿÿÿ8Õ¼ˆ†õ1
-{	java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÏÚŽµýÿÿÿÿ8Ý¼ˆ†õ1
+java:S2293”"YReplace the type specification in this constructor call with the diamond operator ("<>").(ó¸ÇŸúÿÿÿÿ8�ïõ÷ƒ2
+{	java:S120"ZRename this package name to match the regular expression '^[a-z_]+(\.[a-z_][a-z0-9_]*)*$'.(ÏÚŽµýÿÿÿÿ8Àðõ÷ƒ2
 K
-java:S4274™"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8àÄˆ†õ1
+java:S4274œ"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8ñƒö÷ƒ2
 W
-java:S1128"5Remove this unused import 'com.bestvike.IComparison'.(®ÚÄñþÿÿÿÿ8ôÌ¬�õ1
+java:S1128"5Remove this unused import 'com.bestvike.IComparison'.(®ÚÄñþÿÿÿÿ8€…ö÷ƒ2
 R
-java:S1128"0Remove this unused import 'java.time.LocalDate'.(›‘¬èýÿÿÿÿ8ôÌ¬�õ1
\ No newline at end of file
+java:S1128"0Remove this unused import 'java.time.LocalDate'.(›‘¬èýÿÿÿÿ8�…ö÷ƒ2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/e/9/e9da29b40f64fc6632e1d502c09fc6eac01109a6 b/.idea/sonarlint/issuestore/e/9/e9da29b40f64fc6632e1d502c09fc6eac01109a6
index fd6d7e2..cd880ce 100644
--- a/.idea/sonarlint/issuestore/e/9/e9da29b40f64fc6632e1d502c09fc6eac01109a6
+++ b/.idea/sonarlint/issuestore/e/9/e9da29b40f64fc6632e1d502c09fc6eac01109a6
@@ -1,10 +1,10 @@
 
 h
-java:S1301˜"KReplace this "switch" statement by "if" statements to increase readability.(ôØ�%8�¶Î¨ð1
+java:S1301•"KReplace this "switch" statement by "if" statements to increase readability.(ôØ�%8ÉÄú»…2
 J
-java:S4274_"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8•·Î¨ð1
-o	java:S100s"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(éÎ�Ýøÿÿÿÿ8�·Î¨ð1
-Q
-java:S1128"4Remove this unused import 'java.text.ParsePosition'.(¸à«¤8èÛ•©ð1
-T
-java:S1128"7Remove this unused import 'java.text.SimpleDateFormat'.(ú¡ÙÛ8èÛ•©ð1
\ No newline at end of file
+java:S4274]"(Replace this assert with a proper check.(šÚÇÙÿÿÿÿÿ8ŽÅú»…2
+o	java:S100q"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(éÎ�Ýøÿÿÿÿ8‘Åú»…2
+\
+java:S1874¡"9Remove this use of "StringEscapeUtils"; it is deprecated.(öƒ‘Êüÿÿÿÿ8Œîú»…2
+^	java:S125Æ"<This block of commented-out lines of code should be removed.(—�žêþÿÿÿÿ8—Åú»…2
+^	java:S125á"<This block of commented-out lines of code should be removed.(ï ‰àÿÿÿÿÿ8˜Åú»…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/f/1/f125ca4fe9830e7c1c6c3b41d0db854f279159ea b/.idea/sonarlint/issuestore/f/1/f125ca4fe9830e7c1c6c3b41d0db854f279159ea
new file mode 100644
index 0000000..509e8b0
--- /dev/null
+++ b/.idea/sonarlint/issuestore/f/1/f125ca4fe9830e7c1c6c3b41d0db854f279159ea
@@ -0,0 +1,5 @@
+
+?
+java:S2386"Make this member "protected".(á¸Ïßüÿÿÿÿ8ìîÎ¹…2
+X	java:S125A"<This block of commented-out lines of code should be removed.(úãö®8…ïÎ¹…2
+]	java:S125M"<This block of commented-out lines of code should be removed.(�½¹Õüÿÿÿÿ8‡ïÎ¹…2
\ No newline at end of file
diff --git a/.idea/sonarlint/issuestore/index.pb b/.idea/sonarlint/issuestore/index.pb
index 8ec1f3c..0a5539c 100644
--- a/.idea/sonarlint/issuestore/index.pb
+++ b/.idea/sonarlint/issuestore/index.pb
@@ -506,4 +506,34 @@ Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckController.j
 ‚
 Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/UsersController.java,a\8\a8f14b3063fe6f65ce81aaad67342427ba595c78
 Œ
-\wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java,7\8\78aa76e42b5ad97c470991c86d33217b8d3b8219
\ No newline at end of file
+\wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java,7\8\78aa76e42b5ad97c470991c86d33217b8d3b8219
+�
+Qmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingDetailIdo.java,8\5\85592dc3f9f52de25b667fbf9b5339bbef9f21b3
+†
+Vmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingVehicleIdo_DTO.java,b\7\b7b28f9a93ada45aa8374a02e9293b127648bb17
+‚
+Rmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingVehicleIdo.java,2\0\2076e4994875e94b1f0ffd8fd1512c083119b117
+†
+Vwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/FeedbackControllerl.java,6\7\67f453cf6278d444c94a647f485c75f2bd5c19e3
+†
+Vwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/PortAreasController.java,5\6\560f24b8f45e670732a01c11923a32441901ae78
+Š
+Zwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/ServiceConfigController.java,2\9\29b8801d4ec84f7ca647af70d060b9e6f7bd1128
+s
+Cmodels/src/main/java/com/haitongauto/models/dto/open/TruckUser.java,9\8\980cef93c550ad2f41ad9f44dabd7929b7c4f799
+x
+Hmodels/src/main/java/com/haitongauto/models/pojo/NoviceIntroduction.java,0\3\0317a7778f8d8eeec9212515fad0dacf0d39096c
+s
+Cwx-applet/src/main/java/com/haitongauto/rtosac/PermInterceptor.java,f\1\f125ca4fe9830e7c1c6c3b41d0db854f279159ea
+|
+Lwx-applet/src/main/java/com/haitongauto/rtosac/InterceptorConfiguration.java,a\7\a74b282271941960face489eaee741e6eec2357c
+‚
+Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/InterceptorConfiguration.java,4\3\43b4a0830f39bfe746332030dc9739db6712aac2
+y
+Iwx-applet-admin/src/main/java/com/haitongauto/rtosam/PermInterceptor.java,a\e\aea56443b73d82c2b502abd47a45929cc24eaa5a
+€
+Pwx-applet-admin/src/main/java/com/haitongauto/rtosam/ApplicationAppletAdmin.java,1\4\14ef601e6353443e773fa7e7dbf78bae725701b6
+Š
+Zwx-applet-admin/src/main/java/com/haitongauto/rtosam/service/base/AnnouncementService.java,3\2\3295ba932c3ce2a83faa736a829107a085e5a386
+�
+`wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/base/NoviceIntroductionService.java,3\5\35a396681ad25cef593011cb6a017bd9cf45860c
\ No newline at end of file
diff --git a/.idea/sonarlint/securityhotspotstore/0/3/0317a7778f8d8eeec9212515fad0dacf0d39096c b/.idea/sonarlint/securityhotspotstore/0/3/0317a7778f8d8eeec9212515fad0dacf0d39096c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/1/4/14ef601e6353443e773fa7e7dbf78bae725701b6 b/.idea/sonarlint/securityhotspotstore/1/4/14ef601e6353443e773fa7e7dbf78bae725701b6
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/2/0/2076e4994875e94b1f0ffd8fd1512c083119b117 b/.idea/sonarlint/securityhotspotstore/2/0/2076e4994875e94b1f0ffd8fd1512c083119b117
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/2/9/29b8801d4ec84f7ca647af70d060b9e6f7bd1128 b/.idea/sonarlint/securityhotspotstore/2/9/29b8801d4ec84f7ca647af70d060b9e6f7bd1128
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/3/2/3295ba932c3ce2a83faa736a829107a085e5a386 b/.idea/sonarlint/securityhotspotstore/3/2/3295ba932c3ce2a83faa736a829107a085e5a386
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/3/5/35a396681ad25cef593011cb6a017bd9cf45860c b/.idea/sonarlint/securityhotspotstore/3/5/35a396681ad25cef593011cb6a017bd9cf45860c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/4/3/43b4a0830f39bfe746332030dc9739db6712aac2 b/.idea/sonarlint/securityhotspotstore/4/3/43b4a0830f39bfe746332030dc9739db6712aac2
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/5/6/560f24b8f45e670732a01c11923a32441901ae78 b/.idea/sonarlint/securityhotspotstore/5/6/560f24b8f45e670732a01c11923a32441901ae78
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/6/7/67f453cf6278d444c94a647f485c75f2bd5c19e3 b/.idea/sonarlint/securityhotspotstore/6/7/67f453cf6278d444c94a647f485c75f2bd5c19e3
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/8/5/85592dc3f9f52de25b667fbf9b5339bbef9f21b3 b/.idea/sonarlint/securityhotspotstore/8/5/85592dc3f9f52de25b667fbf9b5339bbef9f21b3
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/9/8/980cef93c550ad2f41ad9f44dabd7929b7c4f799 b/.idea/sonarlint/securityhotspotstore/9/8/980cef93c550ad2f41ad9f44dabd7929b7c4f799
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/a/7/a74b282271941960face489eaee741e6eec2357c b/.idea/sonarlint/securityhotspotstore/a/7/a74b282271941960face489eaee741e6eec2357c
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/a/e/aea56443b73d82c2b502abd47a45929cc24eaa5a b/.idea/sonarlint/securityhotspotstore/a/e/aea56443b73d82c2b502abd47a45929cc24eaa5a
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/b/7/b7b28f9a93ada45aa8374a02e9293b127648bb17 b/.idea/sonarlint/securityhotspotstore/b/7/b7b28f9a93ada45aa8374a02e9293b127648bb17
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/f/1/f125ca4fe9830e7c1c6c3b41d0db854f279159ea b/.idea/sonarlint/securityhotspotstore/f/1/f125ca4fe9830e7c1c6c3b41d0db854f279159ea
new file mode 100644
index 0000000..e69de29
diff --git a/.idea/sonarlint/securityhotspotstore/index.pb b/.idea/sonarlint/securityhotspotstore/index.pb
index a31f974..abc7ed0 100644
--- a/.idea/sonarlint/securityhotspotstore/index.pb
+++ b/.idea/sonarlint/securityhotspotstore/index.pb
@@ -496,4 +496,34 @@ Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckController.j
 ‚
 Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/UsersController.java,a\8\a8f14b3063fe6f65ce81aaad67342427ba595c78
 Œ
-\wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java,7\8\78aa76e42b5ad97c470991c86d33217b8d3b8219
\ No newline at end of file
+\wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java,7\8\78aa76e42b5ad97c470991c86d33217b8d3b8219
+�
+Qmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingDetailIdo.java,8\5\85592dc3f9f52de25b667fbf9b5339bbef9f21b3
+†
+Vmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingVehicleIdo_DTO.java,b\7\b7b28f9a93ada45aa8374a02e9293b127648bb17
+‚
+Rmodels/src/main/java/com/haitongauto/models/ido/receiving/ReceivingVehicleIdo.java,2\0\2076e4994875e94b1f0ffd8fd1512c083119b117
+†
+Vwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/FeedbackControllerl.java,6\7\67f453cf6278d444c94a647f485c75f2bd5c19e3
+†
+Vwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/PortAreasController.java,5\6\560f24b8f45e670732a01c11923a32441901ae78
+Š
+Zwx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/ServiceConfigController.java,2\9\29b8801d4ec84f7ca647af70d060b9e6f7bd1128
+s
+Cmodels/src/main/java/com/haitongauto/models/dto/open/TruckUser.java,9\8\980cef93c550ad2f41ad9f44dabd7929b7c4f799
+x
+Hmodels/src/main/java/com/haitongauto/models/pojo/NoviceIntroduction.java,0\3\0317a7778f8d8eeec9212515fad0dacf0d39096c
+s
+Cwx-applet/src/main/java/com/haitongauto/rtosac/PermInterceptor.java,f\1\f125ca4fe9830e7c1c6c3b41d0db854f279159ea
+|
+Lwx-applet/src/main/java/com/haitongauto/rtosac/InterceptorConfiguration.java,a\7\a74b282271941960face489eaee741e6eec2357c
+‚
+Rwx-applet-admin/src/main/java/com/haitongauto/rtosam/InterceptorConfiguration.java,4\3\43b4a0830f39bfe746332030dc9739db6712aac2
+y
+Iwx-applet-admin/src/main/java/com/haitongauto/rtosam/PermInterceptor.java,a\e\aea56443b73d82c2b502abd47a45929cc24eaa5a
+€
+Pwx-applet-admin/src/main/java/com/haitongauto/rtosam/ApplicationAppletAdmin.java,1\4\14ef601e6353443e773fa7e7dbf78bae725701b6
+Š
+Zwx-applet-admin/src/main/java/com/haitongauto/rtosam/service/base/AnnouncementService.java,3\2\3295ba932c3ce2a83faa736a829107a085e5a386
+�
+`wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/base/NoviceIntroductionService.java,3\5\35a396681ad25cef593011cb6a017bd9cf45860c
\ No newline at end of file
diff --git a/interfaces/src/main/java/com/haitongauto/interfaces/OrderApi.java b/interfaces/src/main/java/com/haitongauto/interfaces/OrderApi.java
index f32ded6..2bda880 100644
--- a/interfaces/src/main/java/com/haitongauto/interfaces/OrderApi.java
+++ b/interfaces/src/main/java/com/haitongauto/interfaces/OrderApi.java
@@ -80,7 +80,6 @@ public interface OrderApi {
 
     /**
      * æ”¶è½¦è¯¦æƒ…
-     *
      * @return è¿”å›žæ”¶è½¦è¯¦æƒ…
      */
     @GetMapping("/miniapp/vehicleClose/collectCar/detail/{id}")
diff --git a/interfaces/src/main/java/com/haitongauto/interfaces/YardOrderApi.java b/interfaces/src/main/java/com/haitongauto/interfaces/YardOrderApi.java
index 37d1566..82e2cbc 100644
--- a/interfaces/src/main/java/com/haitongauto/interfaces/YardOrderApi.java
+++ b/interfaces/src/main/java/com/haitongauto/interfaces/YardOrderApi.java
@@ -13,7 +13,6 @@ import java.util.List;
 public interface YardOrderApi {
     /**
      * éªŒè¯�è½¦è¾†æ˜¯å�¦åœ¨åœº
-     *
      * @param vins è½¦æž¶å�·
      * @return è¿”å›žç»“æžœ
      */
diff --git a/interfaces/src/main/java/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.java b/interfaces/src/main/java/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.java
index 18b8db3..fc9ad3f 100644
--- a/interfaces/src/main/java/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.java
+++ b/interfaces/src/main/java/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.java
@@ -35,7 +35,6 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
         List<DepartureVehicleIdo> mylist = null;
         //æŽ¥å�£æ•°æ�®è½¬Map
         CommonRes<DepartureVehicleIdoPar> map = orderApi.getDepartureVehicleList(printTicketTime, query, current, size);
-
         //åˆ¤æ–­æŽ¥å�£æ•°æ�®èŽ·å�–æ˜¯å�¦æˆ�åŠŸ
         String status = map.getStatus();
         DepartureVehicleIdo_DTO departureVehicleIdo_dto = new DepartureVehicleIdo_DTO();
@@ -51,8 +50,6 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
                 break;
             case "401":
                 //ç”¨æˆ·æ�ƒé™�è¿‡æœŸ
-                departureVehicleIdo_dto.setStatus(status);
-                break;
             default:
                 departureVehicleIdo_dto.setStatus(status);
                 break;
@@ -68,12 +65,9 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
      */
     @Override
     public DepartureDetailIdo_DTO getDepartureDetailForId(String id) {
-
         //åˆ›å»ºä¸€ä¸ªæ”¶è½¦è¯¦æƒ…æ•°æ�®çš„å®žä¾‹ï¼ˆåŸºæœ¬æ•°æ�®+æ˜Žç»†åˆ—è¡¨ï¼‰
         DepartureDetailIdo_DTO departureDetailIdo_dto = new DepartureDetailIdo_DTO();
         DepartureDetailIdo departureDetailIdo = null;
-
-        //æŽ¥å�£æ•°æ�®è½¬Map
         //æŽ¥å�£æ•°æ�®è½¬Map
         CommonRes<DepartureDetailIdo> map = orderApi.getDepartureDetailForId(id);
         String status = map.getStatus();
@@ -85,7 +79,6 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
             if (departureDetailIdo != null) {
                 departureDetailIdo_dto.setDepartureDetailIdo(departureDetailIdo);
             }
-
         }
         if ("401".equals(status)) {
             departureDetailIdo_dto.setStatus("401");
@@ -101,8 +94,6 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
      */
     @Override
     public boolean checkDepartureVehicle(String id) {
-
-
         if (id == null || id.isEmpty()) {
             return false;
         }
@@ -117,7 +108,6 @@ public class DepartureVehicleInterfaceImpl implements DepartureVehicleInterface
              "errorMsg": "", //æ“�ä½œå¤±è´¥åŽŸå› ï¼Œæˆ�åŠŸåˆ™ä¸º null
              "result": true  //æ“�ä½œç»“æžœ
              }**/
-
         }
         return result;
     }
diff --git a/interfaces/src/main/java/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.java b/interfaces/src/main/java/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.java
index ab46964..730c2f4 100644
--- a/interfaces/src/main/java/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.java
+++ b/interfaces/src/main/java/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.java
@@ -43,25 +43,18 @@ public class ReceivingVehicleInterfaceImpl implements ReceivingVehicleInterface
                     mylist = receivingVehicleIdoPar.getRecords();
                     receivingVehicleIdo_dto.setReceivingVehicleIdoList(mylist);
                 }
-
                 break;
             case "401":
                 //ç”¨æˆ·æ�ƒé™�è¿‡æœŸ
-                receivingVehicleIdo_dto.setStatus(status);
-                break;
             default:
                 receivingVehicleIdo_dto.setStatus(status);
-
                 break;
-
         }
-
         return receivingVehicleIdo_dto;
     }
 
     /**
      * èŽ·å�–ä¸€æ�¡æ”¶è½¦æ˜Žç»†
-     *
      * @param idï¼šæ”¶è½¦id
      * @return è¿”å›žä¸€æ�¡æ”¶è½¦æ˜Žç»†
      */
@@ -81,7 +74,6 @@ public class ReceivingVehicleInterfaceImpl implements ReceivingVehicleInterface
             if (receivingDetailIdo != null) {
                 receivingDetailIdo_dto.setReceivingDetailIdo(receivingDetailIdo);
             }
-
         }
         if ("401".equals(status)) {
             receivingDetailIdo_dto.setStatus("401");
@@ -91,7 +83,6 @@ public class ReceivingVehicleInterfaceImpl implements ReceivingVehicleInterface
 
     /**
      * å®Œæˆ�æ”¶è½¦æ ¸éªŒ
-     *
      * @param idï¼šæ”¶è½¦id
      * @return è¿”å›žå®Œæˆ�æ”¶è½¦æ ¸éªŒç»“æžœ
      */
@@ -106,12 +97,7 @@ public class ReceivingVehicleInterfaceImpl implements ReceivingVehicleInterface
         //åˆ¤æ–­æŽ¥å�£æ•°æ�®èŽ·å�–æ˜¯å�¦æˆ�åŠŸ
         if ("200".equals(res.getStatus())) {
             //æŽ¥å�£æ•°æ�®èŽ·å�–æˆ�åŠŸï¼Œå°†æŽ¥å�£çš„Mapçš„dataæ•°æ�®è½¬ä¸ºæŽ¥å�£å¯¹è±¡æ•°æ�®ï¼Œæœ€å�Žè¿”å›žæ ¸éªŒæ˜¯å�¦æˆ�åŠŸ true/false
-            /*{
-             "errorMsg": "", //æ“�ä½œå¤±è´¥åŽŸå› ï¼Œæˆ�åŠŸåˆ™ä¸º null
-             "result": true  //æ“�ä½œç»“æžœ
-             }**/
             result = res.getData().isResult();
-
         }
         return result;
     }
diff --git a/interfaces/target/classes/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.class b/interfaces/target/classes/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.class
index 70bde64..ba92961 100644
Binary files a/interfaces/target/classes/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.class and b/interfaces/target/classes/com/haitongauto/interfaces/impl/DepartureVehicleInterfaceImpl.class differ
diff --git a/interfaces/target/classes/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.class b/interfaces/target/classes/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.class
index 64f0b91..6f261e5 100644
Binary files a/interfaces/target/classes/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.class and b/interfaces/target/classes/com/haitongauto/interfaces/impl/ReceivingVehicleInterfaceImpl.class differ
diff --git a/interfaces/target/interfaces-1.0-SNAPSHOT.jar b/interfaces/target/interfaces-1.0-SNAPSHOT.jar
index 33f5e9c..29051d9 100644
Binary files a/interfaces/target/interfaces-1.0-SNAPSHOT.jar and b/interfaces/target/interfaces-1.0-SNAPSHOT.jar differ
diff --git a/interfaces/target/maven-archiver/pom.properties b/interfaces/target/maven-archiver/pom.properties
index 62ed568..ba6fb54 100644
--- a/interfaces/target/maven-archiver/pom.properties
+++ b/interfaces/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven
-#Thu May 30 17:32:39 CST 2024
+#Wed Jul 10 14:28:23 CST 2024
 version=1.0-SNAPSHOT
 groupId=org.example
 artifactId=interfaces
diff --git a/mapper/src/main/java/com/haitongauto/mapper/client/AppointmentExtendMapper.java b/mapper/src/main/java/com/haitongauto/mapper/client/AppointmentExtendMapper.java
index 126b3f0..5062c3d 100644
--- a/mapper/src/main/java/com/haitongauto/mapper/client/AppointmentExtendMapper.java
+++ b/mapper/src/main/java/com/haitongauto/mapper/client/AppointmentExtendMapper.java
@@ -55,6 +55,8 @@ public interface AppointmentExtendMapper {
      */
     Appointment getActiveAppointment(@Param("users_id") String users_id);
 
+    Appointment getActiveAppointmentNew(@Param("truck_number") String truck_number);
+
     Appointment getActiveAppointmentByTruckNumber(@Param("truck_number") String truck_number);
 
     /**
diff --git a/mapper/src/main/resources/mappers/base/MessageMapper.xml b/mapper/src/main/resources/mappers/base/MessageMapper.xml
index aec49b3..3a5bf81 100644
--- a/mapper/src/main/resources/mappers/base/MessageMapper.xml
+++ b/mapper/src/main/resources/mappers/base/MessageMapper.xml
@@ -124,7 +124,7 @@
         select *
         from applet_message
         where is_del=0 and is_read=0
-        truck_number IN
+        and truck_number IN
         <foreach item="truck_number" collection="list" open="(" separator="," close=")">
             #{truck_number}
         </foreach>
diff --git a/mapper/src/main/resources/mappers/client/AppointmentExtendMapper.xml b/mapper/src/main/resources/mappers/client/AppointmentExtendMapper.xml
index ae4bd23..dd9f30b 100644
--- a/mapper/src/main/resources/mappers/client/AppointmentExtendMapper.xml
+++ b/mapper/src/main/resources/mappers/client/AppointmentExtendMapper.xml
@@ -55,6 +55,18 @@
         order by create_time desc
         limit 1
     </select>
+    <select id="getActiveAppointmentNew" resultType="com.haitongauto.models.pojo.Appointment">
+        select *
+        from applet_appointment
+        where is_del=0
+        and (truck_number=#{truck_number} or id_code=#{truck_number})
+        and appointment_state &lt;&gt; 4
+        and appointment_state &lt;&gt; 9
+        and appointment_state &lt; 6
+        order by create_time desc
+        limit 1
+    </select>
+
     <select id="getActiveAppointmentByTruckNumber" resultType="com.haitongauto.models.pojo.Appointment">
         select *
         from applet_appointment
@@ -133,5 +145,4 @@
     </select>
 
 
-
 </mapper>
\ No newline at end of file
diff --git a/mapper/target/classes/com/haitongauto/mapper/client/AppointmentExtendMapper.class b/mapper/target/classes/com/haitongauto/mapper/client/AppointmentExtendMapper.class
index 20843c6..2a093e0 100644
Binary files a/mapper/target/classes/com/haitongauto/mapper/client/AppointmentExtendMapper.class and b/mapper/target/classes/com/haitongauto/mapper/client/AppointmentExtendMapper.class differ
diff --git a/mapper/target/classes/mappers/base/MessageMapper.xml b/mapper/target/classes/mappers/base/MessageMapper.xml
index aec49b3..3a5bf81 100644
--- a/mapper/target/classes/mappers/base/MessageMapper.xml
+++ b/mapper/target/classes/mappers/base/MessageMapper.xml
@@ -124,7 +124,7 @@
         select *
         from applet_message
         where is_del=0 and is_read=0
-        truck_number IN
+        and truck_number IN
         <foreach item="truck_number" collection="list" open="(" separator="," close=")">
             #{truck_number}
         </foreach>
diff --git a/mapper/target/classes/mappers/client/AppointmentExtendMapper.xml b/mapper/target/classes/mappers/client/AppointmentExtendMapper.xml
index ae4bd23..dd9f30b 100644
--- a/mapper/target/classes/mappers/client/AppointmentExtendMapper.xml
+++ b/mapper/target/classes/mappers/client/AppointmentExtendMapper.xml
@@ -55,6 +55,18 @@
         order by create_time desc
         limit 1
     </select>
+    <select id="getActiveAppointmentNew" resultType="com.haitongauto.models.pojo.Appointment">
+        select *
+        from applet_appointment
+        where is_del=0
+        and (truck_number=#{truck_number} or id_code=#{truck_number})
+        and appointment_state &lt;&gt; 4
+        and appointment_state &lt;&gt; 9
+        and appointment_state &lt; 6
+        order by create_time desc
+        limit 1
+    </select>
+
     <select id="getActiveAppointmentByTruckNumber" resultType="com.haitongauto.models.pojo.Appointment">
         select *
         from applet_appointment
@@ -133,5 +145,4 @@
     </select>
 
 
-
 </mapper>
\ No newline at end of file
diff --git a/mapper/target/mapper-1.0-SNAPSHOT.jar b/mapper/target/mapper-1.0-SNAPSHOT.jar
index ba7247c..0533f96 100644
Binary files a/mapper/target/mapper-1.0-SNAPSHOT.jar and b/mapper/target/mapper-1.0-SNAPSHOT.jar differ
diff --git a/mapper/target/maven-archiver/pom.properties b/mapper/target/maven-archiver/pom.properties
index ce41af5..91554be 100644
--- a/mapper/target/maven-archiver/pom.properties
+++ b/mapper/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven
-#Thu May 30 17:32:30 CST 2024
+#Wed Jul 10 14:28:19 CST 2024
 version=1.0-SNAPSHOT
 groupId=org.example
 artifactId=mapper
diff --git a/models/src/main/java/com/haitongauto/models/dto/open/TruckUser.java b/models/src/main/java/com/haitongauto/models/dto/open/TruckUser.java
new file mode 100644
index 0000000..bff610c
--- /dev/null
+++ b/models/src/main/java/com/haitongauto/models/dto/open/TruckUser.java
@@ -0,0 +1,40 @@
+package com.haitongauto.models.dto.open;
+
+import lombok.Data;
+
+@Data
+public class TruckUser {
+    /** æ�¿è½¦id */
+    private String id ;
+    /** å¾®ä¿¡openid */
+    private  String wx_openid;
+    /** ç”¨æˆ·id */
+    private String users_id ;
+    /** ç”¨æˆ·å§“å�� */
+    private String users_name ;
+    /** èº«ä»½è¯� */
+    private String id_code ;
+    /** è½¦ç‰Œå�· */
+    private String truck_number ;
+    /** è¡Œé©¶è¯�ID */
+    private String driving_license_id ;
+    /** å�¸æœºç”µè¯� */
+    private String tel_number ;
+    /** è½¦å¤´è½¦æž¶å�· */
+    private String head_frame_number ;
+    /** è½¦è¾†è‡ªé‡� */
+    private Double vehicle_weight ;
+    /** è½¦æž¶é‡� */
+    private Double vehicle_frame_weight ;
+
+    /** è¡Œé©¶è¯�ï¼ˆæ‰«æ��ä»¶ï¼‰ */
+    private String driving_license ;
+    /** æ�¿è½¦çŠ¶æ€�ï¼ˆ1-é»˜è®¤ï¼Œ0-å…¶ä»–ï¼Œ4-æ‹‰é»‘ï¼‰ */
+    private Integer truck_state ;
+    /** åˆ›å»ºæ—¶é—´ */
+    private String create_time ;
+    /** æ›´æ–°æ—¶é—´ */
+    private String update_time ;
+    /** æ˜¯å�¦è½¯åˆ é™¤ */
+    private Integer is_del ;
+}
diff --git a/models/src/main/java/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.java b/models/src/main/java/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.java
index b818805..6a4d8ea 100644
--- a/models/src/main/java/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.java
+++ b/models/src/main/java/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.java
@@ -10,4 +10,7 @@ public class YardGoodsStateRespDTO {
     /*** åœ¨åœºçŠ¶æ€�: 1æ˜¯ 0å�¦*/
     private Integer inYardFlag;
 
+    /*** æ˜¯å�¦è°ƒæ‹¨: 1æ˜¯ 0å�¦*/
+    private String isAllocate;
+
 }
diff --git a/models/src/main/java/com/haitongauto/models/ido/login/UserInfoRes.java b/models/src/main/java/com/haitongauto/models/ido/login/UserInfoRes.java
index 3cbdc35..83ad19b 100644
--- a/models/src/main/java/com/haitongauto/models/ido/login/UserInfoRes.java
+++ b/models/src/main/java/com/haitongauto/models/ido/login/UserInfoRes.java
@@ -66,4 +66,6 @@ public class UserInfoRes implements Serializable {
      */
     private String openId;
 
+    private String mediaType;
+
 }
\ No newline at end of file
diff --git a/models/src/main/java/com/haitongauto/models/pojo/Message.java b/models/src/main/java/com/haitongauto/models/pojo/Message.java
index c78cda3..74e9cf7 100644
--- a/models/src/main/java/com/haitongauto/models/pojo/Message.java
+++ b/models/src/main/java/com/haitongauto/models/pojo/Message.java
@@ -1,20 +1,15 @@
 package com.haitongauto.models.pojo;
-
 import lombok.Data;
 
 @Data
 public class Message {
-
     /** id*/
     private String id;
+
     /** 1-æ”¶è½¦ 2-æ��è½¦*/
     private Integer type;
 
-
-
-    /**
-     * å°�ç¥¨id
-     */
+    /*** å°�ç¥¨id*/
     private String prc_id;
 
     /** */
@@ -25,12 +20,16 @@ public class Message {
 
     /** æ�¿è½¦å�·*/
     private String truck_number;
+
     /** 0-æœªè¯» 1-å·²è¯»*/
     private Integer is_read;
+
     /** åˆ›å»ºæ—¶é—´*/
     private String create_time;
+
     /** ä¿®æ”¹æ—¶é—´*/
     private String update_time;
+
     /** æ˜¯å�¦åˆ é™¤*/
     private Integer is_del;
 
diff --git a/models/target/classes/com/haitongauto/models/dto/open/TruckUser.class b/models/target/classes/com/haitongauto/models/dto/open/TruckUser.class
new file mode 100644
index 0000000..fe3e5d6
Binary files /dev/null and b/models/target/classes/com/haitongauto/models/dto/open/TruckUser.class differ
diff --git a/models/target/classes/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.class b/models/target/classes/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.class
index ea75afd..d0eb5a7 100644
Binary files a/models/target/classes/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.class and b/models/target/classes/com/haitongauto/models/dto/open/YardGoodsStateRespDTO.class differ
diff --git a/models/target/classes/com/haitongauto/models/forward/AppointOverState.class b/models/target/classes/com/haitongauto/models/forward/AppointOverState.class
index e00eb72..9bad722 100644
Binary files a/models/target/classes/com/haitongauto/models/forward/AppointOverState.class and b/models/target/classes/com/haitongauto/models/forward/AppointOverState.class differ
diff --git a/models/target/classes/com/haitongauto/models/ido/login/UserInfoRes.class b/models/target/classes/com/haitongauto/models/ido/login/UserInfoRes.class
index 30b2781..5891c08 100644
Binary files a/models/target/classes/com/haitongauto/models/ido/login/UserInfoRes.class and b/models/target/classes/com/haitongauto/models/ido/login/UserInfoRes.class differ
diff --git a/models/target/classes/com/haitongauto/models/pojo/Message.class b/models/target/classes/com/haitongauto/models/pojo/Message.class
index e4fc44e..7eb11d8 100644
Binary files a/models/target/classes/com/haitongauto/models/pojo/Message.class and b/models/target/classes/com/haitongauto/models/pojo/Message.class differ
diff --git a/models/target/maven-archiver/pom.properties b/models/target/maven-archiver/pom.properties
index 89bca0c..e665e4d 100644
--- a/models/target/maven-archiver/pom.properties
+++ b/models/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven
-#Thu May 30 17:32:06 CST 2024
+#Wed Jul 10 14:28:05 CST 2024
 version=1.0-SNAPSHOT
 groupId=org.example
 artifactId=models
diff --git a/models/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/models/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index c4870a7..f3a41d9 100644
--- a/models/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/models/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -11,6 +11,7 @@ com\haitongauto\models\dto\RecAndDepExcelDto.class
 com\haitongauto\models\valid\cus\CheckStatus.class
 com\haitongauto\models\dto\app\GateCarNumberRespDTO.class
 com\haitongauto\models\ido\PicturePathIdo.class
+com\haitongauto\models\dto\open\TruckUser.class
 com\haitongauto\models\open\TruckIdo.class
 com\haitongauto\models\ido\CommonRes.class
 com\haitongauto\models\forward\AppointForward.class
diff --git a/models/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/models/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index bdf956b..156419f 100644
--- a/models/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/models/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -71,6 +71,7 @@ F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\ido
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\ido\receiving\ReceivingVehicleIdo_DTO.java
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\sysuser\OldSysTruck.java
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\ido\departure\DepartureVehicleIdo.java
+F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\dto\open\TruckUser.java
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\ido\departure\DepVinIdo.java
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\forward\VinDetail.java
 F:\Codes\rtos\v4\mini-service-v4\models\src\main\java\com\haitongauto\models\forward\UserTruck.java
diff --git a/models/target/models-1.0-SNAPSHOT.jar b/models/target/models-1.0-SNAPSHOT.jar
index 778492d..c5701b8 100644
Binary files a/models/target/models-1.0-SNAPSHOT.jar and b/models/target/models-1.0-SNAPSHOT.jar differ
diff --git a/pom.xml b/pom.xml
index 505d1c9..2c21df7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,6 +79,7 @@
                 <version>2.9.2</version>
             </dependency>
 
+
         </dependencies>
     </dependencyManagement>
     <dependencies>
diff --git a/utils/src/main/java/com/haitongauto/utils/check/CheckHelper.java b/utils/src/main/java/com/haitongauto/utils/check/CheckHelper.java
index aa16e26..7e3141d 100644
--- a/utils/src/main/java/com/haitongauto/utils/check/CheckHelper.java
+++ b/utils/src/main/java/com/haitongauto/utils/check/CheckHelper.java
@@ -30,7 +30,6 @@ public class CheckHelper {
      * è¿”å›žéªŒè¯�ä¸�é€šè¿‡çš„vins
      */
     public static List<String> CheckVinContainEnOrDi(List<String> vinlist) {
-
         if (vinlist == null || vinlist.size() == 0) {
             return null;
         }
diff --git a/utils/target/maven-archiver/pom.properties b/utils/target/maven-archiver/pom.properties
index b6ac522..bcca5d1 100644
--- a/utils/target/maven-archiver/pom.properties
+++ b/utils/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
 #Generated by Maven
-#Thu May 30 17:32:21 CST 2024
+#Wed Jul 10 14:28:16 CST 2024
 version=1.0-SNAPSHOT
 groupId=org.example
 artifactId=utils
diff --git a/utils/target/utils-1.0-SNAPSHOT.jar b/utils/target/utils-1.0-SNAPSHOT.jar
index 4191702..fe21136 100644
Binary files a/utils/target/utils-1.0-SNAPSHOT.jar and b/utils/target/utils-1.0-SNAPSHOT.jar differ
diff --git a/wx-applet-admin/pom.xml b/wx-applet-admin/pom.xml
index 74c3a5d..42707f1 100644
--- a/wx-applet-admin/pom.xml
+++ b/wx-applet-admin/pom.xml
@@ -193,7 +193,16 @@
             <artifactId>Json-Gson</artifactId>
             <version>1.0</version>
         </dependency>
-
+        <dependency>
+            <groupId>org.owasp.encoder</groupId>
+            <artifactId>encoder</artifactId>
+            <version>1.2.3</version> <!-- æ›¿æ�¢ä¸ºæœ€æ–°ç‰ˆæœ¬ -->
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <version>1.9</version> <!-- æ›¿æ�¢ä¸ºå½“å‰�ç‰ˆæœ¬ -->
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/InterceptorConfiguration.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/InterceptorConfiguration.java
new file mode 100644
index 0000000..e005720
--- /dev/null
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/InterceptorConfiguration.java
@@ -0,0 +1,49 @@
+package com.haitongauto.rtosam;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.annotation.PostConstruct;
+
+/**
+ * æ‹¦æˆªå™¨çš„å±žæ€§é…�ç½®
+ *
+ */
+@Configuration
+@ConditionalOnClass(WebMvcConfigurer.class)
+public class InterceptorConfiguration implements WebMvcConfigurer {
+
+    @Autowired
+    private ObjectMapper objectMapper;
+
+    @PostConstruct
+    public void EnumObjectMapper() {
+        // è§£å†³enumä¸�åŒ¹é…�é—®é¢˜ é»˜è®¤å€¼ä¸ºfalse
+        objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
+    }
+
+    /**
+     * æ�ƒé™�éªŒè¯�è¿‡æ»¤å™¨
+     * @return
+     */
+    @Bean
+    public PermInterceptor permInterceptor() {
+        return new PermInterceptor();
+    }
+
+
+    @Override
+    @ConditionalOnBean(PermInterceptor.class)
+    public void addInterceptors(InterceptorRegistry registry) {
+        // æ‹¦æˆªå™¨
+        InterceptorRegistration registration = registry.addInterceptor(permInterceptor());
+    }
+}
\ No newline at end of file
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/PermInterceptor.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/PermInterceptor.java
new file mode 100644
index 0000000..48b7e43
--- /dev/null
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/PermInterceptor.java
@@ -0,0 +1,116 @@
+package com.haitongauto.rtosam;
+
+import com.haitongauto.interfaces.UsersApi;
+import com.haitongauto.models.ido.login.UserInfoRes;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * æ�ƒé™�è¿‡æ»¤å™¨
+ */
+public class PermInterceptor implements HandlerInterceptor {
+    public static final String[] SWAGGER_EXCLUDE_PATHS = {"/doc.html", "/swagger-resources/**", "/webjars/**", "/v2/**", "/favicon.ico", "/swagger-ui.htmL/**", "/health/ping"};
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        String uri = request.getRequestURI();
+        AntPathMatcher antPathMatcher = new AntPathMatcher();
+        for (String p : SWAGGER_EXCLUDE_PATHS) {
+            if (antPathMatcher.match(p, uri)) {
+                return true;
+            }
+        }
+        //åˆ¤æ–­æ˜¯å�¦ç™»å½•
+        String userId = "";
+        String username = "";
+        // å°�ç¨‹åº�mini-app, å®¢æˆ·å¹³å�°customer,appç«¯app,padç«¯pad,æµ·é€šå�Žå�°web
+        try {
+            BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
+            //è€�ç³»ç»Ÿå�Œæ­¥æ–°ç³»ç»Ÿ æ²¡æœ‰tokenï¼ˆç›´æŽ¥æ”¾è¿‡ï¼‰
+//            if (StringUtils.equalsAny(request.getRequestURI(), "/appointment/execTruckOrderNsFin")) {
+//                return true;
+//            }
+            UsersApi openApi = factory.getBean(UsersApi.class);
+            UserInfoRes info = openApi.getUserInfo().getData();
+            if (StringUtils.equalsIgnoreCase(info.getMediaType(), "customer") && StringUtils.equalsAny(request.getRequestURI()
+                    , "/admin/AnnouncementInfo"
+                    , "/admin/QueryOperateIntroductionBySort"
+                    , "/admin/AnnouncementListForCondition"
+            )) {
+                return true;
+            }
+
+            if (StringUtils.equalsIgnoreCase(info.getMediaType(), "app")
+                    || StringUtils.equalsIgnoreCase(info.getMediaType(), "pad")
+                    || StringUtils.equalsIgnoreCase(info.getMediaType(), "web")) {
+                return true;
+            } else if (StringUtils.equalsIgnoreCase(info.getMediaType(), "mini-app")) {
+                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+                response.getWriter().write("Access Forbidden");
+                return false;
+            } else if (StringUtils.equalsIgnoreCase(info.getMediaType(), "customer")) {
+                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+                response.getWriter().write("Access Forbidden");
+                return false;
+            } else {
+                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+                response.getWriter().write("Access Forbidden");
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+//            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+//            // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+//            response.getWriter().write("Access Forbidden");
+//            return false;
+        }
+        return true;
+
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
+        // UserContext.clear();
+    }
+
+
+    /**
+     * åˆ¤æ–­æ˜¯å�¦æœ‰æ�ƒé™�
+     * 1.ä»Žè¯·æ±‚å¤´ä¸­èŽ·å�–token
+     *
+     * 2.é€šè¿‡tokenä»Žredisä¸­èŽ·å�–å½“å‰�ç™»å½•å¯¹è±¡ï¼ˆobjectï¼‰
+     *
+     * 3.é€šè¿‡å¯¹è±¡æŸ¥è¯¢æ•°æ�®åº“æ˜¯å�¦å­˜åœ¨å½“å‰�å¯¹è±¡
+     *
+     * 4.èŽ·å�–ç™»å½•å¯¹è±¡çš„ç™»å½•å��    åˆ¤æ–­æ˜¯å�¦æ˜¯ï¼ˆadminæˆ–è€…æ€»ç»�ç�†ï¼‰è¿™ä¸¤ä¸ªè´¦å�·æ‹¥æœ‰æœ€é«˜æ�ƒé™�
+     *
+     * 5.åˆ¤æ–­æ˜¯å�¦è¢«æŽˆæ�ƒï¼Œï¼ˆèŽ·å�–ä¸´æ—¶æŽˆæ�ƒæ—¶è®¾ç½®çš„å¼€å§‹æ—¶é—´ï¼Œç»“æ�Ÿæ—¶é—´ï¼Œå½“å‰�æ—¶é—´ï¼‰ï¼Œ
+     *
+     * èŽ·å�–è¿™ä¸ªä¸‰ä¸ªæ—¶é—´çš„æ—¶é—´æˆ³ï¼Œåˆ¤æ–­å½“å‰�æ—¶é—´æ˜¯å�¦åœ¨å¼€å§‹æ—¶é—´å’Œç»“æ�Ÿæ—¶é—´ä¹‹é—´
+     *
+     * å¦‚æžœå¼€å§‹æ—¶é—´å’Œç»“æ�Ÿæ—¶é—´ä¸ºç©ºçš„è¯�è¡¨ç¤ºå½“å‰�ç™»å½•å¯¹è±¡æœªè¢«ä¸´æ—¶æŽˆæ�ƒï¼Œä¼šæ‰§è¡Œå�Žé�¢çš„ 4ï¼Œ5ï¼Œ6ï¼Œ
+     *
+     * å¦‚æžœæœ‰æ—¶é—´ï¼Œä½†æ˜¯å½“å‰�æ—¶é—´ä¸�åœ¨è¿™ä¸ªæ—¶é—´æ®µä¹Ÿä¼šæ‰§è¡Œ 4ï¼Œ5ï¼Œ6
+     *
+     * å¦‚æžœæœ‰æ—¶é—´ï¼Œå¹¶ä¸”å½“å‰�æ—¶é—´åœ¨è¿™ä¸ªæ—¶é—´æ®µä¹‹ä¸­ï¼Œå°±ä¼šç›´æŽ¥è¿”å›žtrue
+     *
+     * 6.ä»Žè¯·æ±‚å¤´ä¸­èŽ·å�–å½“å‰�æŽ¥å�£çš„åœ°å�€ï¼Œ
+     *
+     * 7.é€šè¿‡å½“å‰�ç™»å½•å¯¹è±¡çš„idæŸ¥è¯¢æ�ƒé™�
+     *
+     * 8.åˆ¤æ–­å½“å‰�ç™»å½•å¯¹è±¡çš„æ�ƒé™�ä¸­æ˜¯å�¦åŒ…å�«å½“å‰�æŽ¥å�£çš„åœ°å�€ï¼Œå¦‚æžœåŒ…å�«ï¼Œå…�è®¸å½“å‰�ç™»å½•å¯¹è±¡è®¿é—®ï¼Œå¦‚æžœä¸�åŒ…å�«ï¼Œåˆ™ä¸�å…�è®¸å½“å‰�ç™»å½•äººè®¿é—®
+     * â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”
+     * ç‰ˆæ�ƒå£°æ˜Žï¼šæœ¬æ–‡ä¸ºCSDNå�šä¸»ã€ŒåŽŸä½ æ˜¯é˜³å…‰(#`Oâ€²)ã€�çš„åŽŸåˆ›æ–‡ç« ï¼Œé�µå¾ªCC 4.0 BY-SAç‰ˆæ�ƒå��è®®ï¼Œè½¬è½½è¯·é™„ä¸ŠåŽŸæ–‡å‡ºå¤„é“¾æŽ¥å�Šæœ¬å£°æ˜Žã€‚
+     * åŽŸæ–‡é“¾æŽ¥ï¼šhttps://blog.csdn.net/weixin_58696998/article/details/124663181
+     * @param request
+     * @return
+     */
+}
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.java
index 779ee16..9b752db 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.java
@@ -7,15 +7,15 @@ import com.haitongauto.rtosam.service.admin.ResponseService;
 import com.haitongauto.rtosam.service.base.AnnouncementService;
 import com.haitongauto.models.dto.Pages;
 import com.github.pagehelper.PageInfo;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
+
 /**
  * å�Žå�°ç®¡ç�†æŽ¥å�£ï¼šå…¬å‘Šç®¡ç�†
  */
@@ -70,7 +70,6 @@ public class AnnouncementAdminController {
                     dateEnd = dates[1];
                 }
             }
-
         }
         //è§£æž�åˆ†é¡µå�‚æ•°
         Integer pageNum = (pages != null && pages.getPageNum() != null && pages.getPageNum() > 0) ? pages.getPageNum() : 1;
@@ -90,7 +89,6 @@ public class AnnouncementAdminController {
             announcementsDtoList = announcementAdminService.AnnouncementListConvert(myList);
 
         }
-
         //åˆ†é¡µæ•°æ�®æ·»åŠ åˆ°pages
         assert pages != null;
         pages.setPageCount(pageCount);
@@ -144,7 +142,6 @@ public class AnnouncementAdminController {
         Announcement announcements = announcementService.getById(announcement_id);
         AnnouncementsDto announcementsDto = new AnnouncementsDto();
         if (announcements != null) {
-
             announcementsDto.setId(announcements.getId());
             announcementsDto.setTitle(announcements.getTitle());
             announcementsDto.setSort(announcements.getSort());
@@ -159,7 +156,13 @@ public class AnnouncementAdminController {
                 }
             }
             announcementsDto.setAbstracts(announcements.getAbstracts());
-            announcementsDto.setAnnouncement(announcements.getAnnouncement());
+            String content = announcements.getAnnouncement();
+            if (content != null && !content.isEmpty()) {
+                String decodedHtml = StringEscapeUtils.unescapeHtml4(content);
+                announcementsDto.setAnnouncement(decodedHtml);
+            }
+
+
             announcementsDto.setAuthor(announcements.getAuthor());
             announcementsDto.setReading_volume(announcements.getReading_volume());
             if (announcements.getCreate_time() != null) {
@@ -189,6 +192,14 @@ public class AnnouncementAdminController {
      */
     @RequestMapping("/AnnouncementUpdate")
     public String announcementUpdate(Announcement announcement) {
+        String announcementStr = announcement.getAnnouncement();
+        if (announcementStr != null && !announcementStr.isEmpty()) {
+            //å¯¹å�‚æ•°å€¼è¿›è¡Œ XSS è¿‡æ»¤
+            //String encodedValue = ESAPI.encoder().encodeForHTML(announcementStr);
+            //String safeComment = Encode.forHtml(announcementStr);
+            //announcement.setAnnouncement(safeComment);
+
+        }
         announcement.setIs_del(0);
         Integer x = announcementService.update(announcement);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -209,6 +220,13 @@ public class AnnouncementAdminController {
      */
     @RequestMapping("/AnnouncementsInsert")
     public String announcementsInsert(Announcement announcement) {
+        String announcementStr = announcement.getAnnouncement();
+        if (announcementStr != null && !announcementStr.isEmpty()) {
+            //String safeComment = Encode.forHtml(announcementStr);
+            //announcement.setAnnouncement(safeComment);
+        }
+
+
         announcement.setIs_del(0);
         announcement.setReading_volume(0);
         String id = announcementService.insert(announcement);
@@ -251,4 +269,6 @@ public class AnnouncementAdminController {
         //è¿”å›ž
         return response.getResponseData(bl, data);
     }
+
+
 }
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AppointmentAdminController.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AppointmentAdminController.java
index 3a96ee4..9c1cecc 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AppointmentAdminController.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/AppointmentAdminController.java
@@ -219,68 +219,9 @@ public class AppointmentAdminController {
         return response.getResponseDataJavaJson(bl, data);
     }
 
-    //    /**
-    //     * è½¦è¾†é¢„çº¦å¯¼å‡º
-    //     *
-    //     * @param pam_id:æ¸¯åŒºid
-    //     * @param keywordsï¼šå…³é”®å­—ï¼ˆå§“å��ã€�æ‰‹æœºå�·ã€�æ�¿è½¦å�·ï¼‰
-    //     * @param start_dateï¼šæ—¶é—´èŒƒå›´å¼€å§‹
-    //     * @param end_dateï¼šæ—¶é—´èŒƒå›´ç»“æ�Ÿ
-    //     * @param enter_typeï¼šè¿›æ¸¯ç±»åž‹ï¼ˆ1-å¤–è´¸å‡ºå�£,2-å¤–è´¸è¿›å�£,2-æ•´è½¦ç‰©æµ�,3-ç‰¹ä¿�åŒºå‡ºå�£,4-ç‰¹ä¿�åŒºè¿›å�£,5-å†…è´¸å‡ºå�£,6-å†…è´¸è¿›å�£ï¼‰
-    //     * @param appointment_stateï¼šé¢„çº¦çŠ¶æ€�ï¼ˆ0-å·²å�–æ¶ˆï¼Œ1-å·²é¢„çº¦ï¼‰
-    //     * @param transport_typeï¼šè¿�è¾“æ–¹å¼�ï¼ˆ0-è‡ªå¼€/1-æ�¿è½¦è¿�ï¼‰
-    //     */
-    //    @RequestMapping("/AppointmentListExporty")
-    //    public void appointmentListExporty(String users_id, String ids, String pam_id, String keywords, String start_date, String end_date, String enter_type, Integer appointment_state, String transport_type, HttpServletResponse response) {
-    //        //è°ƒç”¨Serviceåˆ†é¡µæ–¹æ³•ï¼ŒèŽ·å�–åˆ†é¡µæ•°æ�®å¯¹è±¡ PageInfo
-    //        List<Appointment> myList = appointmentAdminService.AppointmentListExporty(users_id, pam_id, keywords, start_date, end_date, enter_type, appointment_state, transport_type);
-    //        if (ids != null && !ids.isEmpty()) {
-    //            List<String> idlist = Linq.of(ids.split(",")).toList();
-    //            myList = Linq.of(myList).where(o -> idlist.contains(o.getId())).toList();
-    //        }
-    //        //è½¬æ�¢ä¸ºåˆ—è¡¨æ˜¾ç¤ºæ•°æ�®
-    //        List<AppointmentQuery> AppointmentList = appointmentAdminService.AppointmentListConvert(myList);
-    //
-    //        //æ˜¨å¤©æ—¥æœŸæ–‡ä»¶å¤¹
-    //        String yesTodayStr = FormatDateTime.getYesTodayStr();
-    //        String yesTodayFilePath = "wx-applet-admin/src/main/resources/static/doc/exl/" + yesTodayStr + "/";
-    //        File yesTodayFolders = new File(yesTodayFilePath);
-    //        //å¦‚æžœå­˜åœ¨ï¼Œåˆ™åˆ é™¤æ˜¨å¤©æ—¥æœŸæ–‡ä»¶å¤¹
-    //        if (yesTodayFolders.exists()) {
-    //            boolean b = yesTodayFolders.delete();
-    //        }
-    //
-    //        //ä»Šæ—¥æ—¥æœŸæ–‡ä»¶å¤¹
-    //        String todayStrStr = FormatDateTime.getTodayStr();
-    //        String todayFilePath = "wx-applet-admin/src/main/resources/static/doc/exl/" + todayStrStr + "/";
-    //        File todayFolders = new File(todayFilePath);
-    //        //å¦‚æžœä¸�å­˜åœ¨ï¼Œåˆ›å»ºæ—¥æœŸæ–‡ä»¶å¤¹
-    //        if (!todayFolders.exists()) {
-    //            boolean b = todayFolders.mkdirs();
-    //        }
-    //
-    //        //è°ƒç”¨å¯¼å‡ºæ–¹æ³•
-    //        String fileName = ExcelGenerateHelper.outPutExcelReturnFileName(AppointmentList, AppointmentQuery.class, todayFilePath);
-    //        InputStream inputStream = FileDownloadUtil.fileToInputStream(fileName);
-    //
-    //
-    //        //å°†æ–‡ä»¶æµ�è¿”å›žå®¢æˆ·ç«¯
-    //        FileDownloadUtil.writeFile(response, inputStream);
-    //
-    //        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-    ////        Boolean bl = (myList != null) ? true : false;
-    ////        //åˆ›å»ºè¿”å›žæ•°æ�®data
-    ////        Map<String, Object> data = new HashMap<>();
-    ////        data.put("mes", "è¯·æ±‚æˆ�åŠŸï¼Œå¼€å§‹å¯¼å‡º...");
-    ////        //æ·»åŠ åˆ°è¿”å›žå¯¹è±¡
-    ////        String dataJson = response.getResponseDataJavaJson(bl, data);
-    ////        //è¿”å›ž
-    ////        return dataJson;
-    //    }
 
     /**
      * è½¦è¾†é¢„çº¦å¯¼å‡º
-     *
      * @param ids      é¢„çº¦ids
      * @param response response
      */
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OpenApiController.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OpenApiController.java
index bb9bbe9..9b20a25 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OpenApiController.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OpenApiController.java
@@ -9,6 +9,7 @@ import com.haitongauto.models.dto.Pages;
 import com.haitongauto.models.dto.app.CarOperationCountRespDTO;
 import com.haitongauto.models.dto.app.CarPalletTrafficInfoRespDTO;
 import com.haitongauto.models.dto.app.GateCarNumberRespDTO;
+import com.haitongauto.models.dto.open.TruckUser;
 import com.haitongauto.models.open.*;
 import com.haitongauto.models.ido.BasicDataIdo;
 import com.haitongauto.models.pojo.*;
@@ -62,7 +63,6 @@ public class OpenApiController {
         }
         AppointmentDetail appointmentDetail = new AppointmentDetail();
         appointmentDetail = openApiService.getAppointmentDetailByGoodVin(vin);
-
         Map<Object, Object> data = new HashMap<>();
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = appointmentDetail != null;
@@ -78,7 +78,6 @@ public class OpenApiController {
         } else {
             data.put("goodInfo", appointmentDetail);
         }
-
         //å°�è£…è¿”å›žæ•°æ�®
         return response.getResponseDataJavaJson(bl, data);
 
@@ -545,6 +544,7 @@ public class OpenApiController {
     }
 
     /**
+     * æ ¹æ�®æ�¡ä»¶æŸ¥è¯¢é¢„çº¦æ˜Žç»†
      * @param appointmentId é¢„çº¦id
      * @param shipId        shipId èˆ¹èˆ¶id
      * @param brandId       brandId å“�ç‰Œid
@@ -654,7 +654,6 @@ public class OpenApiController {
                 appointmentIdo.setGateCanalInTime(appointment.getGate_canal_in_time());
                 appointmentIdo.setGateCanalOutTime(appointment.getGate_canal_out_time());
                 List<AppointmentDetail> appointmentDetailList = openApiService.getAppointmentDetailListByAppointmentId(appointmentIdo.getId());
-
                 List<String> brandnameList = null;//å“�ç‰Œå��
                 List<String> brandidList = null;//å“�ç‰Œid
                 if (appointmentDetailList != null && appointmentDetailList.size() > 0) {
@@ -1268,4 +1267,35 @@ public class OpenApiController {
         return myResponse.toJSONString();
     }
 
+    /**
+     * æŸ¥è¯¢æ�¿è½¦ä¿¡æ�¯
+     * @param truckNumList
+     * @return
+     */
+    @PostMapping("/getTruckByTruckNos")
+    public String getTruckByTruckNos(@RequestBody List<String> truckNumList) {
+        Response<Object> myResponse = new Response();
+        String msg = "";
+        if (truckNumList == null || truckNumList.isEmpty()) {
+            msg = "è½¦ç‰Œå�·ä¸�èƒ½ä¸ºç©º";
+            myResponse.setCode(-200);
+            myResponse.setMsg("è½¦ç‰Œå�·ä¸�èƒ½ä¸ºç©º");
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            myResponse.toJSONString();
+        }
+        try {
+            List<TruckUser> list = openApiService.getTruckByTruckNos(truckNumList);
+            myResponse.setCode(200);
+            myResponse.setData(list);
+        } catch (Exception ex) {
+            myResponse.setCode(500);
+            myResponse.setMsg(ex.getMessage());
+        }
+        return myResponse.toJSONString();
+    }
+
+
 }
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.java
index f9e3c7b..fd857eb 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.java
@@ -8,6 +8,7 @@ import com.haitongauto.rtosam.service.base.NoviceIntroductionService;
 import com.haitongauto.rtosam.service.admin.NoviceIntroductionAdminService;
 import com.haitongauto.utils.FileDownloadUtil;
 import com.haitongauto.utils.FormatDateTime;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -43,7 +44,6 @@ public class OperateIntroductionAdminController {
     @RequestMapping("/OperateIntroductionEdit")
     public String operateIntroductionEdit(NoviceIntroduction noviceIntroduction) {
         String msg = "";
-        
         if (noviceIntroduction.getTitle() == null || noviceIntroduction.getTitle().isEmpty()) {
             msg = "æ ‡é¢˜ä¸�èƒ½ä¸ºç©º,è¯·å¡«å†™æ ‡é¢˜";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -62,21 +62,17 @@ public class OperateIntroductionAdminController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        
         Integer sort = noviceIntroduction.getSort();
-
-        if(sort==null){
-            sort=1;
+        if (sort == null) {
+            sort = 1;
         }
-
-        //
         NoviceIntroduction mynoviceIntroduction = noviceIntroductionAdminService.getNoviceIntroductionBySort(sort);
 
         Integer x = 0;
         noviceIntroduction.setIs_del(0);
         //System.out.print("Sort ======= "+mynoviceIntroduction.getSort()+"/"+sort);
 
-        if (mynoviceIntroduction != null ) {
+        if (mynoviceIntroduction != null) {
             noviceIntroduction.setId(mynoviceIntroduction.getId());
             x = noviceIntroductionService.update(noviceIntroduction);
         } else {
@@ -112,6 +108,15 @@ public class OperateIntroductionAdminController {
             return response.getResponseData(bl, data, msg);
         }
         List<NoviceIntroduction> noviceIntroductionList = noviceIntroductionService.getList();
+        if (noviceIntroductionList != null && noviceIntroductionList.size() > 0) {
+            Linq.of(noviceIntroductionList).forEach(p -> {
+                String content = p.getContent();
+                if (content != null && !content.isEmpty()) {
+                    String decodedHtml = StringEscapeUtils.unescapeHtml4(content);
+                    p.setContent(decodedHtml);
+                }
+            });
+        }
         NoviceIntroduction noviceIntroduction = Linq.of(noviceIntroductionList).firstOrDefault(p -> p.getSort() != null && p.getSort().equals(sort));
         int x = 0;
         if (noviceIntroduction != null) {
@@ -146,7 +151,9 @@ public class OperateIntroductionAdminController {
             return response.getResponseData(bl, data, msg);
         }
         NoviceIntroduction noviceIntroduction = noviceIntroductionAdminService.getNoviceIntroductionBySort(sort);
-        String htmlDom = (noviceIntroduction != null) ? noviceIntroduction.getContent() : null;
+        String htmlDom = (noviceIntroduction != null
+                && noviceIntroduction.getContent() != null
+                && !noviceIntroduction.getContent().isEmpty()) ? StringEscapeUtils.unescapeHtml4(noviceIntroduction.getContent()) : null;
 
         String sortName = "ç”Ÿäº§APPæ“�ä½œè¯´æ˜Ž";
         if (sort == 1) {
@@ -175,4 +182,5 @@ public class OperateIntroductionAdminController {
         //è¿”å›ž
         return response.getResponseDataJavaJson(bl, data);
     }
-}
+
+}
\ No newline at end of file
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java
index 77d8f3f..05983bc 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/api/base/TruckManagementController.java
@@ -70,7 +70,6 @@ public class TruckManagementController {
         Map<String,Object> data = new HashMap<>();
         data.put("result",x);
         //æ·»åŠ åˆ°è¿”å›žå¯¹è±¡
-        //è¿”å›ž
         return response.getResponseData(bl,data);
     }
 
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.java
index f81a469..3888f3f 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.java
@@ -8,6 +8,7 @@ import com.haitongauto.models.pojo.Announcement;
 import com.haitongauto.rtosam.service.admin.AnnouncementAdminService;
 import com.haitongauto.mapper.admin.AnnouncementAdminMapper;
 import com.haitongauto.utils.StringHelper;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,7 +33,6 @@ public class AnnouncementAdminServiceImpl implements AnnouncementAdminService {
 
     /**
      * æ ¹æ�®ç‰¹å®šæ�¡ä»¶æŸ¥è¯¢åŽ†å�²å…¬å‘Š
-     *
      * @param tilKeywordsï¼šæ ‡é¢˜å…³é”®å­—
      * @param dateStartï¼šæ—¥æœŸèŒƒå›´ä¹‹èµ·å§‹å�‘å¸ƒæ—¥æœŸ
      * @param dateEndï¼šæ—¥æœŸèŒƒå›´ä¹‹æˆªæ­¢å�‘å¸ƒæ—¥æœŸ
@@ -55,6 +55,10 @@ public class AnnouncementAdminServiceImpl implements AnnouncementAdminService {
         if (mylist != null && mylist.size() > 0) {
             for (Announcement item : mylist) {
                 String announcement = item.getAnnouncement();
+                if (announcement != null && !announcement.isEmpty()) {
+                    String decodedHtml = StringEscapeUtils.unescapeHtml4(announcement);
+                    item.setAnnouncement(decodedHtml);
+                }
                 String announcement_text = "";
                 if (announcement != null && !announcement.isEmpty()) {
                     announcement_text = StringHelper.getTxtByHtml(announcement);
@@ -62,7 +66,6 @@ public class AnnouncementAdminServiceImpl implements AnnouncementAdminService {
                 item.setAnnouncement_text(announcement_text);
             }
         }
-
         //å°�è£…åˆ†é¡µæ•°æ�®
         PageInfo<Announcement> pageInfo = new PageInfo<Announcement>(mylist);
         //è¿”å›ž
@@ -76,6 +79,10 @@ public class AnnouncementAdminServiceImpl implements AnnouncementAdminService {
         if (announcementList != null && announcementList.size() > 0) {
             for (Announcement item : announcementList) {
                 String announcement = item.getAnnouncement();
+                if (announcement != null && !announcement.isEmpty()) {
+                    String decodedHtml = StringEscapeUtils.unescapeHtml4(announcement);
+                    item.setAnnouncement(decodedHtml);
+                }
                 String announcement_text = "";
                 if (announcement != null && !announcement.isEmpty()) {
                     announcement_text = StringHelper.getTxtByHtml(announcement);
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.java
index e3ab625..d19f2d4 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.java
@@ -11,6 +11,7 @@ import com.haitongauto.mapper.base.*;
 import com.haitongauto.mapper.client.AppointmentExtendMapper;
 import com.haitongauto.models.dto.DicDto;
 import com.haitongauto.models.dto.Pages;
+import com.haitongauto.models.dto.open.TruckUser;
 import com.haitongauto.models.open.AppointmentCmd;
 import com.haitongauto.models.open.AppointmentDetailSort;
 import com.haitongauto.models.open.QueryCondition;
@@ -53,11 +54,12 @@ public class OpenApiServiceImpl implements OpenApiService {
 
     /**
      * é€šè¿‡æ�¿è½¦å�·æˆ–è€…çœ�ä»½è¯�å�·ï¼ŒèŽ·å¾—æ´»è·ƒï¼ˆæœ‰æ•ˆï¼‰é¢„çº¦ä¿¡æ�¯
+     *
      * @param truck_number
      * @return
      */
     @Override
-    public Appointment getActiveAppointmentByTruckNumber(String truck_number){
+    public Appointment getActiveAppointmentByTruckNumber(String truck_number) {
         return appointmentExtendMapper.getActiveAppointmentByTruckNumber(truck_number);
     }
 
@@ -158,20 +160,20 @@ public class OpenApiServiceImpl implements OpenApiService {
         List<Truck> truckList = truckMapper.getList();
         Truck truck = null;
         if (truckList != null && truckList.size() > 0) {
-            truck = Linq.of(truckList).firstOrDefault(p ->p.getTruck_number()!=null &&p.getTruck_number().equals(truck_number));
+            truck = Linq.of(truckList).firstOrDefault(p -> p.getTruck_number() != null && p.getTruck_number().equals(truck_number));
         }
         return truck;
     }
 
     @Override
     public Users getUsersByIdCode(String id_code) {
-        Users users=usersMapper.getByIdCode(id_code);
+        Users users = usersMapper.getByIdCode(id_code);
         return users;
     }
 
     @Override
     public Users getUsersById(String id) {
-        Users users=usersMapper.getById(id);
+        Users users = usersMapper.getById(id);
         return users;
     }
 
@@ -491,6 +493,7 @@ public class OpenApiServiceImpl implements OpenApiService {
     /**
      * æ�¿è½¦ç›‘æŽ§åˆ†ç±»åˆ—è¡¨
      * ç»“å�ˆé¢„çº¦æ˜Žç»†ä¿¡æ�¯ï¼Œæ�¡ä»¶æŸ¥è¯¢é¢„çº¦ä¿¡æ�¯
+     *
      * @param queryCondition æŸ¥è¯¢æ�¡ä»¶
      * @param pages          é¡µç �
      * @return è¿”å›žåˆ†é¡µæ•°æ�®
@@ -791,5 +794,45 @@ public class OpenApiServiceImpl implements OpenApiService {
         return res;
     }
 
+    @Override
+    public List<TruckUser> getTruckByTruckNos(List<String> TruckNoList) {
+        List<Truck> list = truckMapper.getList();
+        List<Users> usersList = usersMapper.getList();
+        List<Truck> res = null;
+        List<TruckUser> truckUserList = new ArrayList<>();
+        if (TruckNoList != null && TruckNoList.size() > 0) {
+            res = Linq.of(list).where(p -> TruckNoList.contains(p.getTruck_number())).toList();
+        }
+        if (res != null && res.size() > 0) {
+            for (Truck truck : res) {
+                TruckUser truckUser = new TruckUser();
+                Users users = Linq.of(usersList).firstOrDefault(p -> p.getId().equals(truck.getUsers_id()));
+                truckUser.setId(truck.getId());
+                truckUser.setWx_openid(truck.getWx_openid());
+                truckUser.setTruck_number(truck.getTruck_number());
+                truckUser.setUsers_id(truck.getUsers_id());
+                truckUser.setDriving_license_id(truck.getDriving_license_id());
+                truckUser.setDriving_license(truck.getDriving_license());
+                truckUser.setTel_number(truck.getTel_number());
+                truckUser.setHead_frame_number(truck.getHead_frame_number());
+                truckUser.setVehicle_weight(truck.getVehicle_weight());
+                truckUser.setVehicle_frame_weight(truck.getVehicle_frame_weight());
+                truckUser.setTruck_state(truck.getTruck_state());
+                truckUser.setCreate_time(truck.getCreate_time());
+                truckUser.setUpdate_time(truck.getUpdate_time());
+                truckUser.setIs_del(truck.getIs_del());
+                if (users != null) {
+                    truckUser.setUsers_name(users.getUsers_name());
+                    truckUser.setId_code(users.getId_code());
+                }
+                truckUserList.add(truckUser);
+            }
+
+        }
+
+
+        return truckUserList;
+    }
+
 
 }
diff --git a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/OpenApiService.java b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/OpenApiService.java
index ac194a1..59e1e5f 100644
--- a/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/OpenApiService.java
+++ b/wx-applet-admin/src/main/java/com/haitongauto/rtosam/service/admin/OpenApiService.java
@@ -2,6 +2,7 @@ package com.haitongauto.rtosam.service.admin;
 
 import com.github.pagehelper.PageInfo;
 import com.haitongauto.models.dto.Pages;
+import com.haitongauto.models.dto.open.TruckUser;
 import com.haitongauto.models.open.AppointmentCmd;
 import com.haitongauto.models.open.AppointmentDetailSort;
 import com.haitongauto.models.open.QueryCondition;
@@ -13,6 +14,7 @@ import java.util.List;
 public interface OpenApiService {
     /**
      * é€šè¿‡æ�¿è½¦å�·æˆ–è€…çœ�ä»½è¯�å�·ï¼ŒèŽ·å¾—æ´»è·ƒï¼ˆæœ‰æ•ˆï¼‰é¢„çº¦ä¿¡æ�¯
+     *
      * @param truck_number
      * @return
      */
@@ -85,6 +87,7 @@ public interface OpenApiService {
     Users getUsersByIdCode(String id_code);
 
     Users getUsersById(String id);
+
     /**
      * å·²é¢„çº¦è½¦è¾†æ•°
      *
@@ -270,12 +273,17 @@ public interface OpenApiService {
      * @param brandId       å“�ç‰Œ
      * @return æ�¿è½¦ç›‘æŽ§æ˜Žç»†
      */
-    PageInfo<AppointmentDetail> getAppointmentDetailsByConditionf(String appointmentId, String shipId, String brandId,Pages pages);
+    PageInfo<AppointmentDetail> getAppointmentDetailsByConditionf(String appointmentId, String shipId, String brandId, Pages pages);
 
 
     Truck getPalletTruckByTruckNo(String truckNum);
+
     Truck getPalletTruckByByUsersId(String usersId);
 
     Integer postAppointment(Appointment appointment);
 
+
+    List<TruckUser> getTruckByTruckNos(List<String> list);
+
+
 }
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/InterceptorConfiguration.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/InterceptorConfiguration.class
new file mode 100644
index 0000000..02b844f
Binary files /dev/null and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/InterceptorConfiguration.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/PermInterceptor.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/PermInterceptor.class
new file mode 100644
index 0000000..1349b1a
Binary files /dev/null and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/PermInterceptor.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.class
index 8ba8d5e..92cf518 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AnnouncementAdminController.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AppointmentAdminController.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AppointmentAdminController.class
index 752ef21..2420435 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AppointmentAdminController.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/AppointmentAdminController.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OpenApiController.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OpenApiController.class
index ede7050..b12e05c 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OpenApiController.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OpenApiController.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.class
index d27d615..db4a521 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/admin/OperateIntroductionAdminController.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/base/TruckManagementController.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/base/TruckManagementController.class
index 2d4ecfa..ad23ca8 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/base/TruckManagementController.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/api/base/TruckManagementController.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.class
index 8492dca..e5013af 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/AnnouncementAdminServiceImpl.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.class
index 5cae954..e12f27a 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/Impl/OpenApiServiceImpl.class differ
diff --git a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/OpenApiService.class b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/OpenApiService.class
index 149c76a..4dff9cf 100644
Binary files a/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/OpenApiService.class and b/wx-applet-admin/target/classes/com/haitongauto/rtosam/service/admin/OpenApiService.class differ
diff --git a/wx-applet-admin/target/com.haitongauto.rtosam.jar b/wx-applet-admin/target/com.haitongauto.rtosam.jar
index f9c6af9..ae7e4ff 100644
Binary files a/wx-applet-admin/target/com.haitongauto.rtosam.jar and b/wx-applet-admin/target/com.haitongauto.rtosam.jar differ
diff --git a/wx-applet-admin/target/com.haitongauto.rtosam.jar.original b/wx-applet-admin/target/com.haitongauto.rtosam.jar.original
index 9c85594..cd62699 100644
Binary files a/wx-applet-admin/target/com.haitongauto.rtosam.jar.original and b/wx-applet-admin/target/com.haitongauto.rtosam.jar.original differ
diff --git a/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 8e02cfc..969a83e 100644
--- a/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -11,6 +11,7 @@ com\haitongauto\rtosam\service\base\impl\TruckServiceImpl.class
 com\haitongauto\rtosam\service\base\impl\ReceivingDetailServiceImpl.class
 com\haitongauto\rtosam\service\base\UsersService.class
 com\haitongauto\rtosam\service\base\AnnouncementService.class
+com\haitongauto\rtosam\InterceptorConfiguration.class
 com\haitongauto\rtosam\api\admin\OperateIntroductionAdminController.class
 com\haitongauto\rtosam\api\HeathCheckController.class
 com\haitongauto\rtosam\service\base\LoginLogService.class
@@ -42,6 +43,7 @@ com\haitongauto\rtosam\ApplicationAppletAdmin.class
 com\haitongauto\rtosam\service\base\impl\ReceivingVehicleServiceImpl.class
 com\haitongauto\rtosam\api\admin\HomeController.class
 com\haitongauto\rtosam\service\base\impl\AnnouncementServiceImpl.class
+com\haitongauto\rtosam\PermInterceptor.class
 com\haitongauto\rtosam\api\admin\UsersAdminController.class
 com\haitongauto\rtosam\service\admin\Impl\PunchClockAdminServiceImpl.class
 com\haitongauto\rtosam\api\base\TruckManagementController.class
diff --git a/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 2832608..2843c22 100644
--- a/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/wx-applet-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -15,6 +15,7 @@ F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\r
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\api\admin\OperateIntroductionAdminController.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\api\base\AnnouncementsController.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\api\base\AppointmentController.java
+F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\PermInterceptor.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\admin\Impl\TableHeadServiceImpl.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\admin\AppointmentAdminService.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\base\impl\ReceivingVehicleServiceImpl.java
@@ -33,6 +34,7 @@ F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\r
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\api\HeathCheckController.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\base\AppointmentDetailService.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\base\TruckManagementService.java
+F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\InterceptorConfiguration.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\admin\UsersAdminService.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\base\ServiceConfigService.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet-admin\src\main\java\com\haitongauto\rtosam\service\admin\FeedbackAdminService.java
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/InterceptorConfiguration.java b/wx-applet/src/main/java/com/haitongauto/rtosac/InterceptorConfiguration.java
new file mode 100644
index 0000000..37f4eab
--- /dev/null
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/InterceptorConfiguration.java
@@ -0,0 +1,47 @@
+package com.haitongauto.rtosac;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import javax.annotation.PostConstruct;
+
+/**
+ * æ‹¦æˆªå™¨çš„å±žæ€§é…�ç½®
+ *
+ */
+@Configuration
+@ConditionalOnClass(WebMvcConfigurer.class)
+public class InterceptorConfiguration implements WebMvcConfigurer {
+
+    @Autowired
+    private ObjectMapper objectMapper;
+
+    @PostConstruct
+    public void EnumObjectMapper() {
+        // è§£å†³enumä¸�åŒ¹é…�é—®é¢˜ é»˜è®¤å€¼ä¸ºfalse
+        objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true);
+    }
+
+    /**
+     * æ�ƒé™�éªŒè¯�è¿‡æ»¤å™¨
+     * @return
+     */
+    @Bean
+    public PermInterceptor permInterceptor() {
+        return new PermInterceptor();
+    }
+
+
+    @Override
+    @ConditionalOnBean(PermInterceptor.class)
+    public void addInterceptors(InterceptorRegistry registry) {
+        // æ‹¦æˆªå™¨
+        InterceptorRegistration registration = registry.addInterceptor(permInterceptor());
+    }
+}
\ No newline at end of file
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/PermInterceptor.java b/wx-applet/src/main/java/com/haitongauto/rtosac/PermInterceptor.java
new file mode 100644
index 0000000..a12aca4
--- /dev/null
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/PermInterceptor.java
@@ -0,0 +1,112 @@
+package com.haitongauto.rtosac;
+
+import com.haitongauto.interfaces.UsersApi;
+import com.haitongauto.models.ido.login.UserInfoRes;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * æ�ƒé™�è¿‡æ»¤å™¨
+ */
+public class PermInterceptor implements HandlerInterceptor {
+    public static final String[] SWAGGER_EXCLUDE_PATHS = {"/doc.html", "/swagger-resources/**", "/webjars/**", "/v2/**", "/favicon.ico", "/swagger-ui.htmL/**", "/health/ping"};
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        String uri = request.getRequestURI();
+        AntPathMatcher antPathMatcher = new AntPathMatcher();
+        for (String p : SWAGGER_EXCLUDE_PATHS) {
+            if (antPathMatcher.match(p, uri)) {
+                return true;
+            }
+        }
+        //åˆ¤æ–­æ˜¯å�¦ç™»å½•
+        String userId = "";
+        String username = "";
+        try {
+            BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext());
+            //è€�ç³»ç»Ÿå�Œæ­¥æ–°ç³»ç»Ÿ æ²¡æœ‰tokenï¼ˆç›´æŽ¥æ”¾è¿‡ï¼‰
+            if (StringUtils.equalsAny(request.getRequestURI()
+                    , "/appointment/execTruckOrderNsFin"
+            )) {
+                return true;
+            }
+            UsersApi openApi = factory.getBean(UsersApi.class);
+            UserInfoRes info = openApi.getUserInfo().getData();
+            userId = info.getId();
+            username = info.getName();
+            String me = "mini-app,app,pad,web";
+            String mt = info.getMediaType();
+            if (me.contains(mt) && StringUtils.equalsAny(request.getRequestURI()
+                    , "/appointment/plateTruckScan"
+                    , "/appointment/cancelAppointmentUnPlan"
+                    , "/message/realMessage"
+                    , "/message/punchClockOverByPrint"
+                    , "/news/sendTruckThroughGateInfo"
+                    , "/news/sendTruckThroughGateInfoUnconventionality"
+            )) {
+                return true;
+            }
+
+            if (!StringUtils.equalsIgnoreCase(info.getMediaType(), "mini-app")) {
+                response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+                // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+                response.getWriter().write("Access Forbidden");
+                return false;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+//            response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+//            // å�¯ä»¥è®¾ç½®å“�åº”ä½“
+//            response.getWriter().write("Access Forbidden");
+//            return false;
+        }
+
+
+        return true;
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
+        // UserContext.clear();
+    }
+
+
+    /**
+     * åˆ¤æ–­æ˜¯å�¦æœ‰æ�ƒé™�
+     * 1.ä»Žè¯·æ±‚å¤´ä¸­èŽ·å�–token
+     *
+     * 2.é€šè¿‡tokenä»Žredisä¸­èŽ·å�–å½“å‰�ç™»å½•å¯¹è±¡ï¼ˆobjectï¼‰
+     *
+     * 3.é€šè¿‡å¯¹è±¡æŸ¥è¯¢æ•°æ�®åº“æ˜¯å�¦å­˜åœ¨å½“å‰�å¯¹è±¡
+     *
+     * 4.èŽ·å�–ç™»å½•å¯¹è±¡çš„ç™»å½•å��    åˆ¤æ–­æ˜¯å�¦æ˜¯ï¼ˆadminæˆ–è€…æ€»ç»�ç�†ï¼‰è¿™ä¸¤ä¸ªè´¦å�·æ‹¥æœ‰æœ€é«˜æ�ƒé™�
+     *
+     * 5.åˆ¤æ–­æ˜¯å�¦è¢«æŽˆæ�ƒï¼Œï¼ˆèŽ·å�–ä¸´æ—¶æŽˆæ�ƒæ—¶è®¾ç½®çš„å¼€å§‹æ—¶é—´ï¼Œç»“æ�Ÿæ—¶é—´ï¼Œå½“å‰�æ—¶é—´ï¼‰ï¼Œ
+     *
+     * èŽ·å�–è¿™ä¸ªä¸‰ä¸ªæ—¶é—´çš„æ—¶é—´æˆ³ï¼Œåˆ¤æ–­å½“å‰�æ—¶é—´æ˜¯å�¦åœ¨å¼€å§‹æ—¶é—´å’Œç»“æ�Ÿæ—¶é—´ä¹‹é—´
+     *
+     * å¦‚æžœå¼€å§‹æ—¶é—´å’Œç»“æ�Ÿæ—¶é—´ä¸ºç©ºçš„è¯�è¡¨ç¤ºå½“å‰�ç™»å½•å¯¹è±¡æœªè¢«ä¸´æ—¶æŽˆæ�ƒï¼Œä¼šæ‰§è¡Œå�Žé�¢çš„ 4ï¼Œ5ï¼Œ6ï¼Œ
+     *
+     * å¦‚æžœæœ‰æ—¶é—´ï¼Œä½†æ˜¯å½“å‰�æ—¶é—´ä¸�åœ¨è¿™ä¸ªæ—¶é—´æ®µä¹Ÿä¼šæ‰§è¡Œ 4ï¼Œ5ï¼Œ6
+     *
+     * å¦‚æžœæœ‰æ—¶é—´ï¼Œå¹¶ä¸”å½“å‰�æ—¶é—´åœ¨è¿™ä¸ªæ—¶é—´æ®µä¹‹ä¸­ï¼Œå°±ä¼šç›´æŽ¥è¿”å›žtrue
+     *
+     * 6.ä»Žè¯·æ±‚å¤´ä¸­èŽ·å�–å½“å‰�æŽ¥å�£çš„åœ°å�€ï¼Œ
+     *
+     * 7.é€šè¿‡å½“å‰�ç™»å½•å¯¹è±¡çš„idæŸ¥è¯¢æ�ƒé™�
+     *
+     * 8.åˆ¤æ–­å½“å‰�ç™»å½•å¯¹è±¡çš„æ�ƒé™�ä¸­æ˜¯å�¦åŒ…å�«å½“å‰�æŽ¥å�£çš„åœ°å�€ï¼Œå¦‚æžœåŒ…å�«ï¼Œå…�è®¸å½“å‰�ç™»å½•å¯¹è±¡è®¿é—®ï¼Œå¦‚æžœä¸�åŒ…å�«ï¼Œåˆ™ä¸�å…�è®¸å½“å‰�ç™»å½•äººè®¿é—®
+     * â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”â€”
+     * ç‰ˆæ�ƒå£°æ˜Žï¼šæœ¬æ–‡ä¸ºCSDNå�šä¸»ã€ŒåŽŸä½ æ˜¯é˜³å…‰(#`Oâ€²)ã€�çš„åŽŸåˆ›æ–‡ç« ï¼Œé�µå¾ªCC 4.0 BY-SAç‰ˆæ�ƒå��è®®ï¼Œè½¬è½½è¯·é™„ä¸ŠåŽŸæ–‡å‡ºå¤„é“¾æŽ¥å�Šæœ¬å£°æ˜Žã€‚
+     * åŽŸæ–‡é“¾æŽ¥ï¼šhttps://blog.csdn.net/weixin_58696998/article/details/124663181
+     * @param request
+     * @return
+     */
+}
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/AppointmentController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/AppointmentController.java
index c537e1d..fbfcd76 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/AppointmentController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/AppointmentController.java
@@ -18,6 +18,7 @@ import com.haitongauto.models.ido.BasicDataIdo;
 import com.haitongauto.models.ido.CommonRes;
 import com.haitongauto.models.ido.CustomerRes;
 import com.haitongauto.models.ido.ShipVoyIdo;
+import com.haitongauto.models.ido.login.UserInfoRes;
 import com.haitongauto.models.pojo.*;
 import com.haitongauto.models.valid.cus.ValidCusVin;
 import com.haitongauto.models.valid.cus.ValidRequest;
@@ -71,28 +72,44 @@ public class AppointmentController {
     PortAreaInterface portAreaInterface;
     @Resource
     CusOrderApi cusOrderApi;
-
     @Resource
     OrderApi orderApi;
     @Resource
     YardOrderApi yardOrderApi;
+    @Resource
+    private UsersApi usersApi;
 
     @Autowired
     EnterPortTypeInterfaceImpl enterPortTypeInterface;
     private static final Logger logger = LogManager.getLogger(AppointmentController.class);
     private static final Lock lock = new ReentrantLock();
 
-
     /**
      * (å�‘èµ·é¢„çº¦æ—¶)èŽ·å�–ç”¨æˆ·æ³¨å†Œçš„æ�¿è½¦ä¿¡æ�¯
+     * //@param users_id å�¸æœºid
      *
-     * @param users_id å�¸æœºid
      * @return è¿”å›žç”¨æˆ·æ³¨å†Œçš„æ�¿è½¦ä¿¡æ�¯
      */
     @RequestMapping("/getPalletTruckInfo")
-    public String getPalletTruckInfo(@RequestParam("users_id") String users_id) {
-        String msg;
-        if (users_id == null || users_id.isEmpty()) {
+    public String getPalletTruckInfo() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
+        String msg = "";
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -101,7 +118,7 @@ public class AppointmentController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        Truck truck = appointmentService.getPalletTruck(users_id);
+        Truck truck = appointmentService.getPalletTruck(userId);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = truck != null;
         Map<String, Object> data = new HashMap<>();
@@ -118,7 +135,7 @@ public class AppointmentController {
     @RequestMapping("/getPortAreaList")
     public String getPortAreaList() {
         List<PortArea> portAreaList = null;
-        String msg="";
+        String msg = "";
         try {
             portAreaList = portAreaInterface.getPortArea();
         } catch (Exception e) {
@@ -143,8 +160,8 @@ public class AppointmentController {
      */
     @RequestMapping("/getEnterPortTypesList")
     public String getEnterPortTypesList() {
-        List<EnterPortTypeDtol> enterPortTypesList =null;
-        String msg="";
+        List<EnterPortTypeDtol> enterPortTypesList = null;
+        String msg = "";
         try {
             enterPortTypesList = enterPortTypeInterface.getEnterPortTypeList();
         } catch (Exception e) {
@@ -244,7 +261,6 @@ public class AppointmentController {
 //        Debounce debounce = new Debounce(debounceInterface, 1000);
 //        // åœ¨éœ€è¦�è°ƒç”¨æŽ¥å�£çš„åœ°æ–¹è°ƒç”¨ debounce.debounce() æ–¹æ³•æ�¥å®žçŽ°é˜²æŠ–
 //        debounce.debounce();
-
         String msg = "";
         if (appointmentPostDto.getAppointment() == null) {
             msg = "é¢„çº¦ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º";
@@ -257,8 +273,24 @@ public class AppointmentController {
         }
         Appointment appointment = null;
         List<AppointmentDetail> appointmentDetailList = null;
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
         try {
             appointment = appointmentPostDto.getAppointment();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            String userId = userInfoRes.getId();
+            appointment.setUsers_id(userId);
             Integer appointment_type = appointment.getAppointment_type();
             //å¦‚æžœæ˜¯ç‰¹ä¿�åŒºé¢„çº¦ï¼Œæ¸¯åŒºåˆ™ç»‘å®šåˆ°ä¸´æ¸¯
             if (appointment_type != null && appointment_type.equals(2)) {
@@ -279,31 +311,113 @@ public class AppointmentController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
+        //ç”¨æˆ·idä¸�èƒ½ä¸ºç©º
+        if (appointment.getUsers_id() == null || appointment.getUsers_id().isEmpty()) {
+            msg = "ç”¨æˆ·idä¸�èƒ½ä¸ºç©º";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        //æµ·é€šç �å¤´é¢„çº¦,æ¸¯åŒºä¸�èƒ½ä¸ºç©º
+        if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
+            if (appointment.getPort_area_id() == null || appointment.getPort_area_id().isEmpty()) {
+                msg = "é¢„çº¦æ¸¯åŒºä¸�èƒ½ä¸ºç©º";
+                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                Boolean bl = false;
+                //åˆ›å»ºè¿”å›žæ•°æ�®
+                Map<String, Object> data = new HashMap<>();
+                //è¿”å›ž
+                return response.getResponseData(bl, data, msg);
+            }
+        }
+        //é¢„çº¦æ—¥æœŸéªŒè¯�
+        if (appointment.getApproach_date() == null || appointment.getApproach_date().isEmpty()) {
+            msg = "é¢„çº¦è¿›åœºæ—¥æœŸä¸�èƒ½ä¸ºç©º";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        //è‡ªå¼€é¢„çº¦éªŒè¯�èº«ä»½è¯�
+        if (appointment.getTransport_type() != null && "3".equals(appointment.getTransport_type())) {
+            String idCode = appointment.getId_code();
+            if (idCode == null || idCode.isEmpty()) {
+                msg = "è‡ªå¼€ï¼Œèº«ä»½è¯�å�·ç �ä¸�èƒ½ä¸ºç©º,è¯·æ­£ç¡®å¡«å†™èº«ä»½è¯�å�·";
+                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                Boolean bl = false;
+                //åˆ›å»ºè¿”å›žæ•°æ�®
+                Map<String, Object> data = new HashMap<>();
+                //è¿”å›ž
+                return response.getResponseData(bl, data, msg);
+            }
+            if (idCode.length() != 18) {
+                msg = "èº«ä»½è¯�å�·ç �å¿…é¡»18ä½�,è¯·æ­£ç¡®å¡«å†™èº«ä»½è¯�å�·";
+                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                Boolean bl = false;
+                //åˆ›å»ºè¿”å›žæ•°æ�®
+                Map<String, Object> data = new HashMap<>();
+                //å°�è£…æ•°æ�®
+                //è¿”å›ž
+                return response.getResponseData(bl, data, msg);
+            }
 
+        }
         //è¿›æ¸¯ç±»åž‹
         String enter_type = appointment.getEnter_type();
-
+        //è¿�è¾“æ–¹å¼�
+        String transport_type = appointment.getTransport_type();
+        //ç”¨æˆ·å­˜åœ¨æœ‰æ•ˆæœªå®Œæˆ�çš„é¢„çº¦ï¼Œä¸�å�¯ä»¥é¢„çº¦
+        Appointment myAppointment = null;
+        if ("2".equals(transport_type)) {
+            if (appointment.getTruck_number() != null && !appointment.getTruck_number().isEmpty()) {
+                myAppointment = appointmentService.getActiveAppointmentNew(appointment.getTruck_number());
+                if (myAppointment != null) {
+                    msg = "æ�¿è½¦" + appointment.getTruck_number() + " å­˜åœ¨æœªå®Œæˆ�æ�¿è½¦é¢„çº¦ï¼Œè¯·å®Œæˆ�æˆ–å�–æ¶ˆå�Žï¼Œå†�é¢„çº¦ã€‚";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        } else if ("3".equals(transport_type)) {
+            if (appointment.getId_code() != null && !appointment.getId_code().isEmpty()) {
+                myAppointment = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+                if (myAppointment != null) {
+                    msg = "èº«ä»½è¯�" + appointment.getId_code() + " å­˜åœ¨æœªå®Œæˆ�é¢„çº¦ï¼Œè¯·å®Œæˆ�æˆ–å�–æ¶ˆå�Žï¼Œå†�é¢„çº¦ã€‚";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        } else if ("1".equals(transport_type)) {
+            if (appointment.getId_code() != null && !appointment.getId_code().isEmpty()) {
+                myAppointment = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+                if (myAppointment != null) {
+                    msg = "èº«ä»½è¯�" + appointment.getId_code() + " å­˜åœ¨æœªå®Œæˆ�é¢„çº¦ï¼Œè¯·å®Œæˆ�æˆ–å�–æ¶ˆå�Žï¼Œå†�é¢„çº¦ã€‚";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        }
         if (true) {
             //ç‰¹ä¿�åŒºé¢„çº¦ï¼Œé¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º
             if (appointmentPostDto.getAppointmentDetailList() == null || appointmentPostDto.getAppointmentDetailList().size() == 0) {
                 //å¤–è´¸å‡ºå�£ï¼Œç¬¬ä¸‰æ­¥çš„èˆ¹å��ã€�æ¸¯å�£ã€�å“�ç‰Œå¿…å¡«ï¼Œè½¦æž¶å�·å�¯ä»¥ä¸�å¡«å†™ï¼Œå†…è´¸å‡ºå�£ç¬¬ä¸‰æ­¥éƒ½æ˜¯é�žå¿…å¡« (å¼ æ™“é›… éœ€æ±‚ä¿®æ”¹) ,æ³¨é‡Šä¸‹é�¢ä»£ç �
-                //if (enter_type != null) {
-                //    //éªŒè¯� å†…è´¸å‡ºå�£,å•†å“�è½¦é¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º
-                //    if ("NE".equals(enter_type)) {
-                //        //è´§ç‰©ç±»åž‹å•†å“�è½¦
-                //        if ("C".equals(goods_type)) {
-                //            msg = "å†…è´¸å‡ºå�£ï¼Œå•†å“�è½¦é¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©ºã€‚";
-                //            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                //            Boolean bl = false;
-                //            //åˆ›å»ºè¿”å›žæ•°æ�®
-                //            Map<String, Object> data = new HashMap<>();
-                //            //è¿”å›ž
-                //            return response.getResponseData(bl, data, msg);
-                //        }
-                //    }
-                //}
-
-                // é¢„çº¦ç±»åž‹(1-æ™®é€šç �å¤´é¢„çº¦ï¼Œ2-ç‰¹ä¿�åŒºé¢„çº¦) æ–°å¢žå­—æ®µ
+                //é¢„çº¦ç±»åž‹(1-æ™®é€šç �å¤´é¢„çº¦ï¼Œ2-ç‰¹ä¿�åŒºé¢„çº¦) æ–°å¢žå­—æ®µ
                 //éªŒè¯�ç‰¹ä¿�åŒºé¢„çº¦ï¼Œé¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º
                 Integer appointment_type = appointment.getAppointment_type();
                 if (appointment_type != null && appointment_type.equals(2)) {
@@ -391,7 +505,6 @@ public class AppointmentController {
                     //        //è¿”å›ž
                     //        return response.getResponseData(bl, data, msg);
                     //    }
-                    //
                     //}
 
                     //éªŒè¯�vinæ˜¯å�¦æ˜¯17ä½�
@@ -401,18 +514,21 @@ public class AppointmentController {
                         vinlist = Linq.of(appointmentDetailList).select(AppointmentDetail::getVin).toList();
                     }
                     if (vinlist != null && vinlist.size() > 0) {
-                        //éªŒè¯�vin 17 ä½�éªŒè¯�
-                        List<String> vinlistckl = CheckHelper.CheckVinLength(vinlist);
-                        if (vinlistckl != null && vinlistckl.size() > 0) {
-                            String myVins = String.join(",", vinlistckl);
-                            msg = "vin:" + myVins + "é•¿åº¦å°�äºŽ17ä½�ã€‚";
-                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                            Boolean bl = false;
-                            //åˆ›å»ºè¿”å›žæ•°æ�®
-                            Map<String, Object> data = new HashMap<>();
-                            //è¿”å›ž
-                            return response.getResponseData(bl, data, msg);
+                        //éªŒè¯�vin 17 ä½�éªŒè¯�ï¼ˆæŽ’é™¤ç‰¹ä¿�åŒºï¼Œç‰¹ä¿�åŒºé¢„çº¦vinå�ªæœ‰14ä½�ï¼Œå¦‚ LINM0000110001ï¼‰
+                        if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
+                            List<String> vinlistckl = CheckHelper.CheckVinLength(vinlist);
+                            if (vinlistckl != null && vinlistckl.size() > 0) {
+                                String myVins = String.join(",", vinlistckl);
+                                msg = "vin:" + myVins + "é•¿åº¦å°�äºŽ17ä½�ã€‚";
+                                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                                Boolean bl = false;
+                                //åˆ›å»ºè¿”å›žæ•°æ�®
+                                Map<String, Object> data = new HashMap<>();
+                                //è¿”å›ž
+                                return response.getResponseData(bl, data, msg);
+                            }
                         }
+
                         //éªŒè¯�vinå�ªèƒ½æ˜¯å­—æ¯�æˆ–æ•°æ�®ç»„æˆ�
                         List<String> vinlistckcon = CheckHelper.CheckVinContainEnOrDi(vinlist);
                         if (vinlistckcon != null && vinlistckcon.size() > 0) {
@@ -425,39 +541,10 @@ public class AppointmentController {
                             //è¿”å›ž
                             return response.getResponseData(bl, data, msg);
                         }
-                        //åˆ¤æ–­è½¦è¾†æ˜¯å�¦åœ¨åœº(å‡ºå�£ä¸šåŠ¡)
-                        if ("WE".equals(enter_type) || "NE".equals(enter_type)) {
-                            //ä»Žå“ªå�’æŽ¥å�£èŽ·å¾—vinçš„æ˜¯å�¦åœ¨åœºçš„ä¿¡æ�¯
-                            List<String> vinlist_isOn = Linq.of(vinlist).where(p -> p != null && !p.isEmpty()).toList();
-                            if (vinlist_isOn != null && vinlist_isOn.size() > 0) {
-                                CommonRes<List<YardGoodsStateRespDTO>> mycheckInYardFLag = yardOrderApi.checkInYardFLag(vinlist_isOn);
-                                List<YardGoodsStateRespDTO> yardGoodsStateRespDTOList = null;
-                                if (mycheckInYardFLag != null) {
-                                    yardGoodsStateRespDTOList = mycheckInYardFLag.getData();
-                                }
-                                List<String> vin_zc;//åœ¨åœºè½¦è¾†
-                                if (yardGoodsStateRespDTOList != null && yardGoodsStateRespDTOList.size() > 0) {
-                                    vin_zc = Linq.of(yardGoodsStateRespDTOList).where(p -> p.getInYardFlag().equals(1)).select(YardGoodsStateRespDTO::getVinCode).toList();
-                                } else {
-                                    vin_zc = null;
-                                }
-                                if (vin_zc != null && vin_zc.size() > 0) {
-                                    String myVinliststr = String.join(",", vin_zc);
-                                    msg = "è½¦æž¶å�·:" + myVinliststr + "çš„è½¦è¾†å·²åœ¨åœº,ä¸�å�¯é¢„çº¦è¿›åœºã€‚";
-                                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                                    Boolean bl = false;
-                                    //åˆ›å»ºè¿”å›žæ•°æ�®
-                                    Map<String, Object> data = new HashMap<>();
-                                    //è¿”å›ž
-                                    return response.getResponseData(bl, data, msg);
-                                }
-                            }
 
-                        }
-
-                        //éªŒè¯�vinæ˜¯å�¦è¢«é¢„çº¦è¿‡
+                        //éªŒè¯�vinæ˜¯å�¦è¢«åˆ«çš„æ�¿è½¦é¢„çº¦è¿‡
                         //æ ¹æ�® Vinåˆ—è¡¨æŸ¥è¯¢åŒ¹é…�çš„å•†å“�è½¦æ˜Žç»†ï¼Œå¹¶ç­›é€‰å‡ºä¸�å±žäºŽå·²å�–æ¶ˆå’Œå¼‚å¸¸çš„é¢„çº¦çš„å’Œé¢„çº¦å·²å®Œæˆ�çš„
-                        List<AppointmentDetail> mylist = appointmentService.getAppointmentDetailListByVinList(vinlist, appointment.getPort_area_id());
+                        List<AppointmentDetail> mylist = appointmentService.getAppointmentDetailListByVinList(vinlist, appointment.getId());
                         //å�–Vinçš„åˆ—è¡¨
                         List<String> myVinlist = null;
                         if (mylist != null && mylist.size() > 0) {
@@ -476,10 +563,41 @@ public class AppointmentController {
                                 return response.getResponseData(bl, data, msg);
                             }
                         }
+
+                        //åˆ¤æ–­è½¦è¾†æ˜¯å�¦åœ¨åœº(å‡ºå�£ä¸šåŠ¡)
+                        if ("WE".equals(enter_type) || "NE".equals(enter_type)) {
+                            //ä»Žå“ªå�’æŽ¥å�£èŽ·å¾—vinçš„æ˜¯å�¦åœ¨åœºçš„ä¿¡æ�¯
+                            List<String> vinlist_isOn = Linq.of(vinlist).where(p -> p != null && !p.isEmpty()).toList();
+                            if (vinlist_isOn != null && vinlist_isOn.size() > 0) {
+                                CommonRes<List<YardGoodsStateRespDTO>> mycheckInYardFLag = yardOrderApi.checkInYardFLag(vinlist_isOn);
+                                logger.info("æŽ¥æ”¶åˆ°å“ªå�’æŽ¥å�£è¿”å›žçš„åœ¨åœºéªŒè¯�æ•°æ�®ï¼š" + JSON.toJSONString(mycheckInYardFLag));
+                                List<YardGoodsStateRespDTO> yardGoodsStateRespDTOList = null;
+                                if (mycheckInYardFLag != null) {
+                                    yardGoodsStateRespDTOList = mycheckInYardFLag.getData();
+                                }
+                                List<String> vin_zc;//åœ¨åœºè½¦è¾†
+                                if (yardGoodsStateRespDTOList != null && yardGoodsStateRespDTOList.size() > 0) {
+                                    vin_zc = Linq.of(yardGoodsStateRespDTOList).where(p -> p.getInYardFlag().equals(1) && !"1".equals(p.getIsAllocate())).select(YardGoodsStateRespDTO::getVinCode).toList();
+                                } else {
+                                    vin_zc = null;
+                                }
+                                if (vin_zc != null && vin_zc.size() > 0) {
+                                    String myVinliststr = String.join(",", vin_zc);
+                                    msg = "è½¦æž¶å�·:" + myVinliststr + "çš„è½¦è¾†å·²åœ¨åœºä¸”æœªè°ƒæ‹¨,ä¸�å�¯é¢„çº¦è¿›åœºã€‚";
+                                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                                    Boolean bl = false;
+                                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                                    Map<String, Object> data = new HashMap<>();
+                                    //è¿”å›ž
+                                    return response.getResponseData(bl, data, msg);
+                                }
+                            }
+
+                        }
                     }
 
                     //ç‰¹ä¿�åŒºï¼ŒéªŒè¯�vinæ˜¯å�¦æ¿€æ´»
-                    if (false) {//ç‰¹ä¿�åŒºéªŒè¯�å…ˆå±�è”½è°ƒï¼Œè®©çŽ‹ç�›å…ˆæµ‹è¯•ï¼Œå�ŽæœŸéœ€è¦�æ‰“å¼€å†�è°ƒè¯•
+                    if (true) {//ç‰¹ä¿�åŒºéªŒè¯�å…ˆå±�è”½è°ƒï¼Œè®©çŽ‹ç�›å…ˆæµ‹è¯•ï¼Œå�ŽæœŸéœ€è¦�æ‰“å¼€å†�è°ƒè¯•
                         if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(2)) {
                             List<String> pushIds = new ArrayList<>();
                             List<String> chekvinlist = Linq.of(appointmentDetailList).select(AppointmentDetail::getVin).where(p -> p != null && !p.isEmpty()).toList();
@@ -544,21 +662,7 @@ public class AppointmentController {
 
                                                         } catch (Exception ex) {
                                                             logger.info("æŽ§åˆ¶å™¨è¯·æ±‚æ™ºäº‘æŽ¥å�£å›žå¤�1:" + JSON.toJSONString(ex.getMessage()));
-//                                                        String[] sssss = ex.getMessage().split("]: ");
-//                                                        String json = sssss[1].replace("[", "").replace("]", "");
-//                                                        ObjectMapper objectMapper = new ObjectMapper();
-//                                                        JsonNode jsonNode = null;
-//                                                        try {
-//                                                            jsonNode = objectMapper.readTree(json);
-//                                                        } catch (JsonProcessingException e) {
-//                                                            throw new RuntimeException(e);
-//                                                        }
-                                                            // èŽ·å�– "error" å±žæ€§çš„å€¼
-                                                            //String error_description = jsonNode.get("error_description").asText();
-                                                            // msg = "vin:" + String.join(",", vin) + error_description + "æ™ºäº‘è¯·æ±‚å¼‚å¸¸ï¼Œé¢„çº¦å¤±è´¥";
                                                             msg = "vin:" + String.join(",", vin) + "æ™ºäº‘è¯·æ±‚å¼‚å¸¸ï¼Œé¢„çº¦å¤±è´¥:  " + ex.getMessage();
-
-                                                            // msg = "vin:" + String.join(",", vin) + "æ™ºäº‘è¯·æ±‚å¼‚å¸¸ï¼Œé¢„çº¦å¤±è´¥";
                                                             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
                                                             Boolean bl = false;
                                                             //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -627,28 +731,125 @@ public class AppointmentController {
                 }
             }
         }
+        //é�žç‰¹ä¿�åŒºé¢„çº¦,é�žè‡ªå¼€  æ‰�è½¬å�‘åˆ°è€�ç³»ç»Ÿ(å¾…å¼€æ”¾)
+        //å•†å“�è½¦è‡ªå¼€ï¼Œæœ‰æ��ç¤º æ�¿è½¦å�·ä¸�èƒ½ä¸ºç©ºï¼› æ­¤å¤„å¢žåŠ é€»è¾‘ï¼Œå½“ä¸ºå•†å“�è½¦è‡ªå¼€çš„æ—¶å€™ï¼Œä¸�è°ƒç”¨è€�ç³»ç»ŸæŽ¥å�£ï¼Œå�³ä¸�å�Œæ­¥æ•°æ�®(çŽ‹æ–‡æ–‡)
+        if (true) {
+            if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
+                {
+                    //è¿�è¾“æ–¹å¼�å­—æ®µæ˜¯å­—ç¬¦ä¸²,å½“ä¸ºå•†å“�è½¦è‡ªå¼€çš„æ—¶å€™ï¼Œä¸�è°ƒç”¨è€�ç³»ç»ŸæŽ¥å�£ï¼Œå�³ä¸�å�Œæ­¥æ•°æ�®(çŽ‹æ–‡æ–‡)
+                    if (!"3".equals(appointment.getTransport_type()) && !"1".equals(appointment.getTransport_type())) {
+                        //æ•°æ�®è½¬å�‘åˆ°è€�ç³»ç»Ÿ
+                        //CompletableFuture<ForwardRes> future = forwardService.invokeApiAsyncForward(appointment, appointmentDetailList);
+                        ForwardRes res = appointmentService.invokeForwardApi(appointment, appointmentDetailList);
+                        if (res == null) {
+                            //msg = "é¢„çº¦è½¬å�‘è€�ç³»ç»Ÿå¤±è´¥é¢„çº¦ä¸�æˆ�åŠŸ";
+                            msg = "ç½‘ç»œå¼€å°�å·®äº†ï¼Œè¯·ç¨�å�Žå†�è¯•";
+                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                            Boolean bl = false;
+                            //åˆ›å»ºè¿”å›žæ•°æ�®
+                            Map<String, Object> data = new HashMap<>();
+                            //è¿”å›ž
+                            return response.getResponseData(bl, data, msg);
+                        }
+                        if (Objects.equals(res.getSuccess(), "0")) {
+                            //msg = "é¢„çº¦è½¬å�‘è€�ç³»ç»Ÿå¤±è´¥é¢„çº¦ä¸�æˆ�åŠŸï¼Œè€�ç³»ç»Ÿè¿”å›žä¿¡æ�¯ï¼š" + res.getErrmsg();
+                            msg = "ç½‘ç»œå¼€å°�å·®äº†ï¼Œè¯·ç¨�å�Žå†�è¯•";
+                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                            Boolean bl = false;
+                            //åˆ›å»ºè¿”å›žæ•°æ�®
+                            Map<String, Object> data = new HashMap<>();
+                            //è¿”å›ž
+                            return response.getResponseData(bl, data, msg);
+                        }
+                    }
+                }
+            }
+        }
+        Integer x = null;
+        //é˜²æŠ–å¤„ç�†ï¼ˆå‰�ç«¯æ‰‹æŠ–ï¼Œè¿žç»­ç‚¹å‡»2æ¬¡ä»¥ä¸Šæ��äº¤ï¼‰
+        lock.lock();
+        try {
+            Appointment appointment_cunzai = null;
+            if ("2".equals(transport_type)) {
+                if (appointment.getTruck_number() != null && !appointment.getTruck_number().isEmpty()) {
+                    appointment_cunzai = appointmentService.getActiveAppointmentNew(appointment.getTruck_number());
+                }
+            } else if ("3".equals(transport_type)) {
+                if (appointment.getId_code() != null && !appointment.getId_code().isEmpty()) {
+                    appointment_cunzai = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+                }
+            } else if ("1".equals(transport_type)) {
+                if (appointment.getId_code() != null && !appointment.getId_code().isEmpty()) {
+                    appointment_cunzai = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+                }
+            }
+            if (appointment_cunzai == null) {
+                //æ��äº¤ä¿�å­˜
+                x = appointmentService.postAppointment(appointment);
+                if (appointmentDetailList != null && appointmentDetailList.size() > 0) {
+                    int x1 = appointmentService.postAppointmentDetailList(appointment, appointmentDetailList);
+                }
+                //æ ¹æ�®é¢„çº¦ä¿¡æ�¯æ›´æ–°ï¼Œç”¨æˆ·å’Œè½¦è¾†
+                if (true) {
+                    appointmentService.updateUserAndTruckByAppointment(appointment);
+                }
+            }
+        } finally {
+            lock.unlock();
+        }
+        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+        Boolean bl = x > 0;
+        //åˆ›å»ºè¿”å›žæ•°æ�®
+        Map<String, Object> data = new HashMap<>();
+        data.put("result", x);
+        //è¿”å›ž
+        return response.getResponseData(bl, data, msg);
+    }
 
-        //ç”¨æˆ·å­˜åœ¨æœ‰æ•ˆæœªå®Œæˆ�çš„é¢„çº¦ï¼Œä¸�å�¯ä»¥é¢„çº¦
-        Appointment myAppointment = null;
-        if (appointment.getUsers_id() != null && !appointment.getUsers_id().isEmpty()) {
-            myAppointment = appointmentService.getActiveAppointment(appointment.getUsers_id());
-//            if (myAppointment != null) {
-//                Date dateNow = new Date();
-//                Date apprDate = null;
-//                if (myAppointment.getApproach_date() != null && !myAppointment.getApproach_date().isEmpty()) {
-//                    apprDate = FormatDateTime.getDateAddOne(FormatDateTime.strToDate(myAppointment.getApproach_date()));
-//                }
-//                if (myAppointment != null && apprDate != null && apprDate.compareTo(dateNow) >= 0) {
-//                    msg = "ç”¨æˆ·å­˜åœ¨æœªå®Œæˆ�é¢„çº¦ï¼Œä¸”é¢„çº¦æœŸé™�æœ‰æ•ˆçš„é¢„çº¦ï¼Œä¸�èƒ½å†�é¢„çº¦ã€‚";//åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-//                    Boolean bl = false;
-//                    //åˆ›å»ºè¿”å›žæ•°æ�®
-//                    Map<String, Object> data = new HashMap<>();
-//                    //è¿”å›ž
-//                    return response.getResponseData(bl, data, msg);
-//                }
-//            }
-            if (myAppointment != null) {
-                msg = "ç”¨æˆ·å­˜åœ¨æœªå®Œæˆ�é¢„çº¦ï¼Œè¯·å®Œæˆ�æˆ–å�–æ¶ˆå�Žï¼Œå†�é¢„çº¦ã€‚";
+    /**
+     * ä¿®æ”¹é¢„çº¦ä¿¡æ�¯
+     *
+     * @return è¿”å›žæ��äº¤ç»“æžœ
+     */
+    @PostMapping("/updateAppointment")
+    public String updateAppointment(@RequestBody AppointmentPostDto appointmentPostDto) {
+        String msg = "";
+        if (appointmentPostDto.getAppointment() == null) {
+            msg = "é¢„çº¦ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        Appointment appointment = null;
+        List<AppointmentDetail> appointmentDetailList = null;
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        try {
+            appointment = appointmentPostDto.getAppointment();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            String userId = userInfoRes.getId();
+            appointment.setUsers_id(userId);
+
+            Integer appointment_type = appointment.getAppointment_type();
+            String port_area_id = appointment.getPort_area_id();
+            //å¦‚æžœæ˜¯ç‰¹ä¿�åŒºé¢„çº¦ï¼Œæ¸¯åŒºåˆ™ç»‘å®šåˆ°ä¸´æ¸¯
+            if (appointment_type != null && appointment_type.equals(2)) {
+                //ç‰¹ä¿�åŒºé¢„çº¦ä¸�èƒ½ä¿®æ”¹ï¼Œå�ªèƒ½å�–æ¶ˆå�Žé‡�æ–°é¢„çº¦ï¼ˆçŽ‹æ­£ç�°ï¼‰
+                msg = "ç‰¹ä¿�åŒºé¢„çº¦ä¸�èƒ½ä¿®æ”¹ï¼Œå�ªèƒ½å�–æ¶ˆå�Žé‡�æ–°é¢„çº¦";
                 //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
                 Boolean bl = false;
                 //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -656,8 +857,24 @@ public class AppointmentController {
                 //è¿”å›ž
                 return response.getResponseData(bl, data, msg);
             }
+        } catch (Exception ex) {
+            msg = "èŽ·å�–é¢„çº¦å®žä½“å¤±è´¥ã€‚";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (appointment.getId() == null || appointment.getId().isEmpty()) {
+            msg = "ä¿®æ”¹é¢„çº¦ï¼Œé¢„çº¦idä¸�èƒ½ä¸ºç©º";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
         }
-        //ç”¨æˆ·idä¸�èƒ½ä¸ºç©º
         if (appointment.getUsers_id() == null || appointment.getUsers_id().isEmpty()) {
             msg = "ç”¨æˆ·idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -667,7 +884,6 @@ public class AppointmentController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        //æµ·é€šç �å¤´é¢„çº¦,æ¸¯åŒºä¸�èƒ½ä¸ºç©º
         if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
             if (appointment.getPort_area_id() == null || appointment.getPort_area_id().isEmpty()) {
                 msg = "é¢„çº¦æ¸¯åŒºä¸�èƒ½ä¸ºç©º";
@@ -679,7 +895,7 @@ public class AppointmentController {
                 return response.getResponseData(bl, data, msg);
             }
         }
-        //é¢„çº¦æ—¥æœŸéªŒè¯�
+        //é¢„çº¦æ—¥æœŸç©ºå€¼åˆ¤æ–­
         if (appointment.getApproach_date() == null || appointment.getApproach_date().isEmpty()) {
             msg = "é¢„çº¦è¿›åœºæ—¥æœŸä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -713,159 +929,57 @@ public class AppointmentController {
             }
 
         }
-
-        //é�žç‰¹ä¿�åŒºé¢„çº¦,é�žè‡ªå¼€  æ‰�è½¬å�‘åˆ°è€�ç³»ç»Ÿ(å¾…å¼€æ”¾)
-        //å•†å“�è½¦è‡ªå¼€ï¼Œæœ‰æ��ç¤º æ�¿è½¦å�·ä¸�èƒ½ä¸ºç©ºï¼› æ­¤å¤„å¢žåŠ é€»è¾‘ï¼Œå½“ä¸ºå•†å“�è½¦è‡ªå¼€çš„æ—¶å€™ï¼Œä¸�è°ƒç”¨è€�ç³»ç»ŸæŽ¥å�£ï¼Œå�³ä¸�å�Œæ­¥æ•°æ�®(çŽ‹æ–‡æ–‡)
-        if (true) {
-            if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
-                {
-                    //è¿�è¾“æ–¹å¼�å­—æ®µæ˜¯å­—ç¬¦ä¸²,å½“ä¸ºå•†å“�è½¦è‡ªå¼€çš„æ—¶å€™ï¼Œä¸�è°ƒç”¨è€�ç³»ç»ŸæŽ¥å�£ï¼Œå�³ä¸�å�Œæ­¥æ•°æ�®(çŽ‹æ–‡æ–‡)
-                    if (!"3".equals(appointment.getTransport_type())) {
-                        //æ•°æ�®è½¬å�‘åˆ°è€�ç³»ç»Ÿ
-                        //CompletableFuture<ForwardRes> future = forwardService.invokeApiAsyncForward(appointment, appointmentDetailList);
-                        ForwardRes res = appointmentService.invokeForwardApi(appointment, appointmentDetailList);
-                        if (res == null) {
-                            //msg = "é¢„çº¦è½¬å�‘è€�ç³»ç»Ÿå¤±è´¥é¢„çº¦ä¸�æˆ�åŠŸ";
-                            msg = "ç½‘ç»œå¼€å°�å·®äº†ï¼Œè¯·ç¨�å�Žå†�è¯•";
-                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                            Boolean bl = false;
-                            //åˆ›å»ºè¿”å›žæ•°æ�®
-                            Map<String, Object> data = new HashMap<>();
-                            //è¿”å›ž
-                            return response.getResponseData(bl, data, msg);
-                        }
-                        if (Objects.equals(res.getSuccess(), "0")) {
-                            //msg = "é¢„çº¦è½¬å�‘è€�ç³»ç»Ÿå¤±è´¥é¢„çº¦ä¸�æˆ�åŠŸï¼Œè€�ç³»ç»Ÿè¿”å›žä¿¡æ�¯ï¼š" + res.getErrmsg();
-                            msg = "ç½‘ç»œå¼€å°�å·®äº†ï¼Œè¯·ç¨�å�Žå†�è¯•";
-                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                            Boolean bl = false;
-                            //åˆ›å»ºè¿”å›žæ•°æ�®
-                            Map<String, Object> data = new HashMap<>();
-                            //è¿”å›ž
-                            return response.getResponseData(bl, data, msg);
-                        }
-                    }
-                }
-            }
-        }
-
-        Integer x = null;
-        //é˜²æŠ–å¤„ç�†ï¼ˆå‰�ç«¯æ‰‹æŠ–ï¼Œè¿žç»­ç‚¹å‡»2æ¬¡ä»¥ä¸Šæ��äº¤ï¼‰
-        lock.lock();
-        try {
-            Appointment appointment_cunzai = appointmentService.getActiveAppointment(appointment.getUsers_id());
-            if (appointment_cunzai == null) {
-                //æ��äº¤ä¿�å­˜
-                x = appointmentService.postAppointment(appointment);
-                if (appointmentDetailList != null && appointmentDetailList.size() > 0) {
-                    int x1 = appointmentService.postAppointmentDetailList(appointment, appointmentDetailList);
-                }
-                //æ ¹æ�®é¢„çº¦ä¿¡æ�¯æ›´æ–°ï¼Œç”¨æˆ·å’Œè½¦è¾†
-                if (true) {
-                    appointmentService.updateUserAndTruckByAppointment(appointment);
-                }
-            }
-        } finally {
-            lock.unlock();
-        }
-
-        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-        Boolean bl = x > 0;
-        //åˆ›å»ºè¿”å›žæ•°æ�®
-        Map<String, Object> data = new HashMap<>();
-        data.put("result", x);
-        //è¿”å›ž
-        return response.getResponseData(bl, data, msg);
-    }
-
-    /**
-     * ä¿®æ”¹é¢„çº¦ä¿¡æ�¯
-     *
-     * @return è¿”å›žæ��äº¤ç»“æžœ
-     */
-    @PostMapping("/updateAppointment")
-    public String updateAppointment(@RequestBody AppointmentPostDto appointmentPostDto) {
-        String msg = "";
-
-        if (appointmentPostDto.getAppointment() == null) {
-            msg = "é¢„çº¦ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º";
-            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-            Boolean bl = false;
-            //åˆ›å»ºè¿”å›žæ•°æ�®
-            Map<String, Object> data = new HashMap<>();
-            //è¿”å›ž
-            return response.getResponseData(bl, data, msg);
-        }
-        Appointment appointment = null;
-        List<AppointmentDetail> appointmentDetailList = null;
-        try {
-
-            appointment = appointmentPostDto.getAppointment();
-            Integer appointment_type = appointment.getAppointment_type();
-            String port_area_id = appointment.getPort_area_id();
-            //å¦‚æžœæ˜¯ç‰¹ä¿�åŒºé¢„çº¦ï¼Œæ¸¯åŒºåˆ™ç»‘å®šåˆ°ä¸´æ¸¯
-            if (appointment_type != null && appointment_type.equals(2)) {
-                //ç‰¹ä¿�åŒºé¢„çº¦ä¸�èƒ½ä¿®æ”¹ï¼Œå�ªèƒ½å�–æ¶ˆå�Žé‡�æ–°é¢„çº¦ï¼ˆçŽ‹æ­£ç�°ï¼‰
-                msg = "ç‰¹ä¿�åŒºé¢„çº¦ä¸�èƒ½ä¿®æ”¹ï¼Œå�ªèƒ½å�–æ¶ˆå�Žé‡�æ–°é¢„çº¦";
-                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                Boolean bl = false;
-                //åˆ›å»ºè¿”å›žæ•°æ�®
-                Map<String, Object> data = new HashMap<>();
-                //è¿”å›ž
-                return response.getResponseData(bl, data, msg);
-
-//                List<PortArea> portAreaList = portAreaInterface.getPortArea();
-//                if (portAreaList != null && portAreaList.size() > 0) {
-//                    PortArea portArea = Linq.of(portAreaList).firstOrDefault(o -> o.getPort_area_name().contains("ä¸´æ¸¯"));
-//                    if (portArea != null) {
-//                        appointment.setPort_area_id(portArea.getId());
-//                    }
-//                }
-            }
-        } catch (Exception ex) {
-            msg = "èŽ·å�–é¢„çº¦å®žä½“å¤±è´¥ã€‚";
-            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-            Boolean bl = false;
-            //åˆ›å»ºè¿”å›žæ•°æ�®
-            Map<String, Object> data = new HashMap<>();
-            //è¿”å›ž
-            return response.getResponseData(bl, data, msg);
-        }
-
-        Appointment myAppointment = null;
-        myAppointment = appointmentService.getActiveAppointment(appointment.getUsers_id());
-        if (myAppointment != null) {
-            if (myAppointment.getAppointment_state().equals(6) || myAppointment.getAppointment_state().equals(7)) {
-                msg = "è¯¥é¢„çº¦ä¿¡æ�¯å·²å®Œå·¥æ‰“å�¡ï¼Œä¸�èƒ½ä¿®æ”¹";
-                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                Boolean bl = false;
-                //åˆ›å»ºè¿”å›žæ•°æ�®
-                Map<String, Object> data = new HashMap<>();
-                //è¿”å›ž
-                return response.getResponseData(bl, data, msg);
-            }
-        }
-
+        //è¿›æ¸¯ç±»åž‹
         String enter_type = appointment.getEnter_type();
+        //è¿�è¾“æ–¹å¼�
+        String transport_type = appointment.getTransport_type();
+        Appointment myAppointment = null;
+        if ("2".equals(transport_type)) {
+            //æ�¿è½¦è¿�è¾“æ˜¯æ�¿è½¦å�·
+            myAppointment = appointmentService.getActiveAppointmentNew(appointment.getTruck_number());
+            if (myAppointment != null) {
+                if (myAppointment.getAppointment_state().equals(6) || myAppointment.getAppointment_state().equals(7)) {
+                    msg = "è¯¥é¢„çº¦ä¿¡æ�¯å·²å®Œå·¥æ‰“å�¡ï¼Œä¸�èƒ½ä¿®æ”¹";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        } else if ("3".equals(transport_type)) {
+            //è‡ªå¼€æ˜¯èº«ä»½è¯�å�·
+            myAppointment = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+            if (myAppointment != null) {
+                if (myAppointment.getAppointment_state().equals(6) || myAppointment.getAppointment_state().equals(7)) {
+                    msg = "è¯¥é¢„çº¦ä¿¡æ�¯å·²å®Œå·¥æ‰“å�¡ï¼Œä¸�èƒ½ä¿®æ”¹";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        } else if ("1".equals(transport_type)) {
+            //è‡ªå¼€æ˜¯èº«ä»½è¯�å�·
+            myAppointment = appointmentService.getActiveAppointmentNew(appointment.getId_code());
+            if (myAppointment != null) {
+                if (myAppointment.getAppointment_state().equals(6) || myAppointment.getAppointment_state().equals(7)) {
+                    msg = "è¯¥é¢„çº¦ä¿¡æ�¯å·²å®Œå·¥æ‰“å�¡ï¼Œä¸�èƒ½ä¿®æ”¹";
+                    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                    Boolean bl = false;
+                    //åˆ›å»ºè¿”å›žæ•°æ�®
+                    Map<String, Object> data = new HashMap<>();
+                    //è¿”å›ž
+                    return response.getResponseData(bl, data, msg);
+                }
+            }
+        }
         if (true) {
             if (appointmentPostDto.getAppointmentDetailList() == null) {
                 //å¤–è´¸å‡ºå�£ï¼Œç¬¬ä¸‰æ­¥çš„èˆ¹å��ã€�æ¸¯å�£ã€�å“�ç‰Œå¿…å¡«ï¼Œè½¦æž¶å�·å�¯ä»¥ä¸�å¡«å†™ï¼Œå†…è´¸å‡ºå�£ç¬¬ä¸‰æ­¥éƒ½æ˜¯é�žå¿…å¡« (å¼ æ™“é›… éœ€æ±‚ä¿®æ”¹) ,æ³¨é‡Šä¸‹é�¢ä»£ç �
-                //if (enter_type != null) {
-                //    //éªŒè¯� å†…è´¸å‡ºå�£,å•†å“�è½¦é¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º
-                //    if ("NE".equals(enter_type)) {
-                //        //è´§ç‰©ç±»åž‹å•†å“�è½¦
-                //        if ("C".equals(goods_type)) {
-                //            msg = "å†…è´¸å‡ºå�£ï¼Œå•†å“�è½¦é¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©ºã€‚";
-                //            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                //            Boolean bl = false;
-                //            //åˆ›å»ºè¿”å›žæ•°æ�®
-                //            Map<String, Object> data = new HashMap<>();
-                //            //è¿”å›ž
-                //            return response.getResponseData(bl, data, msg);
-                //        }
-                //    }
-                //}
-
                 // é¢„çº¦ç±»åž‹(1-æ™®é€šç �å¤´é¢„çº¦ï¼Œ2-ç‰¹ä¿�åŒºé¢„çº¦) æ–°å¢žå­—æ®µ
                 //éªŒè¯�ç‰¹ä¿�åŒºé¢„çº¦ï¼Œé¢„çº¦æ˜Žç»†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º
                 Integer appointment_type = appointment.getAppointment_type();
@@ -942,20 +1056,6 @@ public class AppointmentController {
                         return response.getResponseData(bl, data, msg);
                     }
                     //å†…è´¸å‡ºå�£çš„å“�ç‰Œä¸�èƒ½ä¸ºç©º(å•†å“�è½¦)(å¼ å°�é›… å†…è´¸å‡ºå�£ç¬¬ä¸‰æ­¥éƒ½æ˜¯é�žå¿…å¡«)
-                    //if ("NE".equals(enter_type) && "C".equals(goods_type)) {
-                    //    List<String> vinss = Linq.of(appointmentDetailList).where(p -> p.getBrand_id() == null || p.getBrand_id().isEmpty()).select(AppointmentDetail::getVin).distinct().toList();
-                    //    if (vinss != null && vinss.size() > 0) {
-                    //        String myVins = String.join(",", vinss);
-                    //        msg = "å†…è´¸å‡ºå�£ï¼Œvin:" + myVins + "é¢„çº¦æ˜Žç»†çš„å“�ç‰Œä¸�èƒ½ä¸ºç©ºã€‚";
-                    //        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                    //        Boolean bl = false;
-                    //        //åˆ›å»ºè¿”å›žæ•°æ�®
-                    //        Map<String, Object> data = new HashMap<>();
-                    //        //è¿”å›ž
-                    //        return response.getResponseData(bl, data, msg);
-                    //    }
-                    //
-                    //}
                     //éªŒè¯�vinæ˜¯å�¦æ˜¯17ä½�
                     vinlist = null;
                     if ("WE".equals(enter_type)) {
@@ -964,16 +1064,19 @@ public class AppointmentController {
                         vinlist = Linq.of(appointmentDetailList).select(AppointmentDetail::getVin).toList();
                     }
                     if (vinlist != null && vinlist.size() > 0) {
-                        List<String> vinlistckl = CheckHelper.CheckVinLength(vinlist);
-                        if (vinlistckl != null && vinlistckl.size() > 0) {
-                            String myVins = String.join(",", vinlistckl);
-                            msg = "vin:" + myVins + "é•¿åº¦å°�äºŽ17ä½�ã€‚";
-                            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                            Boolean bl = false;
-                            //åˆ›å»ºè¿”å›žæ•°æ�®
-                            Map<String, Object> data = new HashMap<>();
-                            //è¿”å›ž
-                            return response.getResponseData(bl, data, msg);
+                        //éªŒè¯�vin 17 ä½�éªŒè¯�ï¼ˆæŽ’é™¤ç‰¹ä¿�åŒºï¼Œç‰¹ä¿�åŒºé¢„çº¦vinå�ªæœ‰14ä½�ï¼Œå¦‚ LINM0000110001 çŽ‹æ­£ç�°ï¼‰
+                        if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
+                            List<String> vinlistckl = CheckHelper.CheckVinLength(vinlist);
+                            if (vinlistckl != null && vinlistckl.size() > 0) {
+                                String myVins = String.join(",", vinlistckl);
+                                msg = "vin:" + myVins + "é•¿åº¦å°�äºŽ17ä½�ã€‚";
+                                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                                Boolean bl = false;
+                                //åˆ›å»ºè¿”å›žæ•°æ�®
+                                Map<String, Object> data = new HashMap<>();
+                                //è¿”å›ž
+                                return response.getResponseData(bl, data, msg);
+                            }
                         }
                         //éªŒè¯�vinå�ªèƒ½æ˜¯å­—æ¯�æˆ–æ•°æ�®ç»„æˆ�
                         List<String> vinlistckcon = CheckHelper.CheckVinContainEnOrDi(vinlist);
@@ -988,6 +1091,28 @@ public class AppointmentController {
                             return response.getResponseData(bl, data, msg);
                         }
 
+                        //éªŒè¯�vinæ˜¯å�¦è¢«åˆ«çš„æ�¿è½¦é¢„çº¦è¿‡
+                        //æ ¹æ�® Vinåˆ—è¡¨æŸ¥è¯¢åŒ¹é…�çš„å•†å“�è½¦æ˜Žç»†ï¼Œå¹¶ç­›é€‰å‡ºä¸�å±žäºŽå·²å�–æ¶ˆå’Œå¼‚å¸¸çš„é¢„çº¦çš„å’Œé¢„çº¦å·²å®Œæˆ�çš„
+                        List<AppointmentDetail> mylist = appointmentService.getAppointmentDetailListByVinList(vinlist, appointment.getId());
+                        //å�–Vinçš„åˆ—è¡¨
+                        List<String> myVinlist = null;
+                        if (mylist != null && mylist.size() > 0) {
+                            for (AppointmentDetail detail : mylist) {
+                                Appointment appOin = appointmentService.getAppointmentById(detail.getAppointment_id());
+                                if (appOin != null) {
+                                    msg = "vin:" + detail.getVin() + "å·²ç»�è¢«" + appOin.getTruck_number() + "é¢„çº¦è¿‡ã€‚";
+                                } else {
+                                    msg = "vin:" + detail.getVin() + "å·²ç»�è¢«é¢„çº¦è¿‡ã€‚";
+                                }
+                                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+                                Boolean bl = false;
+                                //åˆ›å»ºè¿”å›žæ•°æ�®
+                                Map<String, Object> data = new HashMap<>();
+                                //è¿”å›ž
+                                return response.getResponseData(bl, data, msg);
+                            }
+                        }
+
                         //åˆ¤æ–­è½¦è¾†æ˜¯å�¦åœ¨åœº(å‡ºå�£ä¸šåŠ¡)
                         if ("WE".equals(enter_type) || "NE".equals(enter_type)) {
                             List<AppointmentDetail> myAppointmentDetail_dataBase = appointmentService.getAppointmentDetailListByAppointmentId(appointment.getId());
@@ -1003,12 +1128,13 @@ public class AppointmentController {
                             List<String> vin_zc_yuanlai = null;//åŽŸæ�¥åœ¨åœºè½¦è¾†
                             if (myVin_dataBase != null && myVin_dataBase.size() > 0) {
                                 CommonRes<List<YardGoodsStateRespDTO>> mycheckInYardFLag_yuanlai = yardOrderApi.checkInYardFLag(myVin_dataBase);
+                                logger.info("æŽ¥æ”¶åˆ°å“ªå�’æŽ¥å�£è¿”å›žçš„åœ¨åœºéªŒè¯�æ•°æ�®ï¼š" + JSON.toJSONString(mycheckInYardFLag_yuanlai));
                                 List<YardGoodsStateRespDTO> yardGoodsStateRespDTOList_yuanlai = null;
                                 if (mycheckInYardFLag_yuanlai != null) {
                                     yardGoodsStateRespDTOList_yuanlai = mycheckInYardFLag_yuanlai.getData();
                                 }
-
                                 if (yardGoodsStateRespDTOList_yuanlai != null && yardGoodsStateRespDTOList_yuanlai.size() > 0) {
+                                    //vin_zc_yuanlai = Linq.of(yardGoodsStateRespDTOList_yuanlai).where(p -> p.getInYardFlag().equals(1) && !"1".equals(p.getIsAllocate())).select(o -> o.getVinCode()).toList();
                                     vin_zc_yuanlai = Linq.of(yardGoodsStateRespDTOList_yuanlai).where(p -> p.getInYardFlag().equals(1)).select(o -> o.getVinCode()).toList();
                                 } else {
                                     vin_zc_yuanlai = new ArrayList<>();
@@ -1021,7 +1147,7 @@ public class AppointmentController {
                                 }
                                 for (String vi : vin_zc_yuanlai) {
                                     if (!vin_benci.contains(vi)) {
-                                        msg = "è½¦æž¶å�·:" + vi + "çš„è½¦è¾†å·²åœ¨åœº,ä¸�å�¯åˆ é™¤ã€‚";
+                                        msg = "è½¦æž¶å�·:" + vi + "çš„å·²è¢«è¯¥æ�¿è½¦æ”¶è½¦,å·²åœ¨åœº,ä¸�å�¯ä»Žé¢„çº¦ä¸­åˆ é™¤ã€‚";
                                         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
                                         Boolean bl = false;
                                         //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -1030,14 +1156,13 @@ public class AppointmentController {
                                         return response.getResponseData(bl, data, msg);
                                     }
                                 }
-
                             }
 
-
                             //2ä»Žå“ªå�’æŽ¥å�£èŽ·å¾—vinçš„æ˜¯å�¦åœ¨åœºçš„ä¿¡æ�¯
                             List<String> vinlist_isOn = Linq.of(vinlist).where(p -> p != null && !p.isEmpty()).toList();
                             if (vinlist_isOn != null && vinlist_isOn.size() > 0) {
                                 CommonRes<List<YardGoodsStateRespDTO>> mycheckInYardFLag = yardOrderApi.checkInYardFLag(vinlist_isOn);
+                                logger.info("æŽ¥æ”¶åˆ°å“ªå�’æŽ¥å�£è¿”å›žçš„åœ¨åœºéªŒè¯�æ•°æ�®ï¼š" + JSON.toJSONString(mycheckInYardFLag));
                                 List<YardGoodsStateRespDTO> yardGoodsStateRespDTOList = null;
                                 if (mycheckInYardFLag != null) {
                                     yardGoodsStateRespDTOList = mycheckInYardFLag.getData();
@@ -1045,20 +1170,11 @@ public class AppointmentController {
                                 List<String> vin_zc;//åœ¨åœºè½¦è¾†
                                 List<String> vin_wzc = null;//æœªåœ¨åœºè½¦è¾†
                                 if (yardGoodsStateRespDTOList != null && yardGoodsStateRespDTOList.size() > 0) {
-                                    vin_zc = Linq.of(yardGoodsStateRespDTOList).where(p -> p.getInYardFlag().equals(1)).select(o -> o.getVinCode()).toList();
+                                    vin_zc = Linq.of(yardGoodsStateRespDTOList).where(p -> p.getInYardFlag().equals(1) && !"1".equals(p.getIsAllocate())).select(YardGoodsStateRespDTO::getVinCode).toList();
                                 } else {
                                     vin_zc = null;
                                 }
                                 if (vin_zc != null && vin_zc.size() > 0) {
-                                    //List<AppointmentDetail> myAppointmentDetail_dataBase = appointmentService.getAppointmentDetailListByAppointmentId(appointment.getId());
-//                                    List<String> myVin_dataBase = new ArrayList();
-//                                    if (myAppointmentDetail_dataBase != null && myAppointmentDetail_dataBase.size() > 0) {
-//                                        for (AppointmentDetail item : myAppointmentDetail_dataBase) {
-//                                            if (item.getVin() != null && !item.getVin().isEmpty()) {
-//                                                myVin_dataBase.add(item.getVin());
-//                                            }
-//                                        }
-//                                    }
                                     //åˆ«çš„é¢„çº¦å·²åœ¨åœºçš„
                                     List<String> vin_zc_biedeyuyue = Linq.of(vin_zc).where(p -> !myVin_dataBase.contains(p)).toList();
                                     if (vin_zc_biedeyuyue != null && vin_zc_biedeyuyue.size() > 0) {
@@ -1110,26 +1226,6 @@ public class AppointmentController {
                                 }
                             }
                         }
-
-                        //éªŒè¯�vinæ˜¯å�¦è¢«é¢„çº¦è¿‡
-                        //æ ¹æ�® Vinåˆ—è¡¨æŸ¥è¯¢åŒ¹é…�çš„å•†å“�è½¦æ˜Žç»†ï¼Œå¹¶ç­›é€‰å‡ºä¸�å±žäºŽå·²å�–æ¶ˆå’Œå¼‚å¸¸çš„é¢„çº¦çš„å’Œé¢„çº¦å·²å®Œæˆ�çš„
-                        //List<AppointmentDetail> mylist = appointmentService.getAppointmentDetailListByVinList(vinlist, appointment.getPort_area_id());
-                        ////å�–Vinçš„åˆ—è¡¨
-                        //List<String> myVinlist = null;
-                        //if (mylist != null && mylist.size() > 0) {
-                        //    myVinlist = Linq.of(mylist).select(AppointmentDetail::getVin).toList();
-                        //}
-                        //if (myVinlist != null && myVinlist.size() > 0) {
-                        //    String myVinliststr = String.join(",", myVinlist);
-                        //    msg = "vin:" + myVinliststr + "å·²ç»�è¢«é¢„çº¦è¿‡ã€‚";
-                        //    //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                        //    Boolean bl = false;
-                        //    //åˆ›å»ºè¿”å›žæ•°æ�®
-                        //    Map<String, Object> data = new HashMap<>();
-                        //    //è¿”å›ž
-                        //    return response.getResponseData(bl, data, msg);
-                        //}
-
                     }
                     //ç‰¹ä¿�åŒºï¼ŒéªŒè¯�vinæ˜¯å�¦æ¿€æ´»
                     if (false) {
@@ -1157,7 +1253,6 @@ public class AppointmentController {
                             List<String> chekvinlist = Linq.of(appointmentDetailList).select(AppointmentDetail::getVin).where(p -> p != null && !p.isEmpty()).toList();
                             if (chekvinlist != null && chekvinlist.size() > 0) {
                                 //List<ValidCusVin> validCusVin = appointmentService.validCusVin(chekvinlist);
-
                                 List<ValidCusVin> validCusVin;
                                 try {
                                     validCusVin = appointmentService.validCusVin(chekvinlist);
@@ -1285,72 +1380,6 @@ public class AppointmentController {
                 }
             }
         }
-
-        if (appointment.getId() == null || appointment.getId().isEmpty()) {
-            msg = "ä¿®æ”¹é¢„çº¦ï¼Œé¢„çº¦idä¸�èƒ½ä¸ºç©º";
-            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-            Boolean bl = false;
-            //åˆ›å»ºè¿”å›žæ•°æ�®
-            Map<String, Object> data = new HashMap<>();
-            //è¿”å›ž
-            return response.getResponseData(bl, data, msg);
-        }
-        if (appointment.getUsers_id() == null || appointment.getUsers_id().isEmpty()) {
-            msg = "ç”¨æˆ·idä¸�èƒ½ä¸ºç©º";
-            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-            Boolean bl = false;
-            //åˆ›å»ºè¿”å›žæ•°æ�®
-            Map<String, Object> data = new HashMap<>();
-            //è¿”å›ž
-            return response.getResponseData(bl, data, msg);
-        }
-        if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
-            if (appointment.getPort_area_id() == null || appointment.getPort_area_id().isEmpty()) {
-                msg = "é¢„çº¦æ¸¯åŒºä¸�èƒ½ä¸ºç©º";
-                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                Boolean bl = false;
-                //åˆ›å»ºè¿”å›žæ•°æ�®
-                Map<String, Object> data = new HashMap<>();
-                //è¿”å›ž
-                return response.getResponseData(bl, data, msg);
-            }
-        }
-
-        //é¢„çº¦æ—¥æœŸç©ºå€¼åˆ¤æ–­
-        if (appointment.getApproach_date() == null || appointment.getApproach_date().isEmpty()) {
-            msg = "é¢„çº¦è¿›åœºæ—¥æœŸä¸�èƒ½ä¸ºç©º";
-            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-            Boolean bl = false;
-            //åˆ›å»ºè¿”å›žæ•°æ�®
-            Map<String, Object> data = new HashMap<>();
-            //è¿”å›ž
-            return response.getResponseData(bl, data, msg);
-        }
-        //è‡ªå¼€é¢„çº¦éªŒè¯�èº«ä»½è¯�
-        if (appointment.getTransport_type() != null && "3".equals(appointment.getTransport_type())) {
-            String idCode = appointment.getId_code();
-            if (idCode == null || idCode.isEmpty()) {
-                msg = "è‡ªå¼€ï¼Œèº«ä»½è¯�å�·ç �ä¸�èƒ½ä¸ºç©º,è¯·æ­£ç¡®å¡«å†™èº«ä»½è¯�å�·";
-                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                Boolean bl = false;
-                //åˆ›å»ºè¿”å›žæ•°æ�®
-                Map<String, Object> data = new HashMap<>();
-                //è¿”å›ž
-                return response.getResponseData(bl, data, msg);
-            }
-            if (idCode.length() != 18) {
-                msg = "èº«ä»½è¯�å�·ç �å¿…é¡»18ä½�,è¯·æ­£ç¡®å¡«å†™èº«ä»½è¯�å�·";
-                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-                Boolean bl = false;
-                //åˆ›å»ºè¿”å›žæ•°æ�®
-                Map<String, Object> data = new HashMap<>();
-                //å°�è£…æ•°æ�®
-                //è¿”å›ž
-                return response.getResponseData(bl, data, msg);
-            }
-
-        }
-
         //é�žç‰¹ä¿�åŒºé¢„çº¦æ‰�è½¬å�‘åˆ°è€�ç³»ç»Ÿ(å¾…å¼€æ”¾)å�ªæœ‰è½¬å�‘æˆ�åŠŸï¼Œæ‰�èƒ½ä¿®æ”¹é¢„çº¦
         if (true) {
             if (appointment.getAppointment_type() != null && appointment.getAppointment_type().equals(1)) {
@@ -1381,13 +1410,9 @@ public class AppointmentController {
                             return response.getResponseData(bl, data, msg);
                         }
                     }
-
                 }
-
             }
         }
-
-
         Integer x = null;
         //æ��äº¤ä¿�å­˜
         x = appointmentService.updateAppointment(appointment);
@@ -1397,8 +1422,6 @@ public class AppointmentController {
             //ä¿®æ”¹çš„æ—¶å€™ï¼Œæ²¡æœ‰å¡«vin,åˆ™è¦�æ¸…é™¤åŽŸæ�¥çš„vin
             int x2 = appointmentService.deleteAppointmentDetailByAppointmentId(appointment.getId());
         }
-
-
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = x > 0;
         //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -1410,14 +1433,30 @@ public class AppointmentController {
 
     /**
      * æŸ¥è¯¢æŒ‡å®šç”¨æˆ·æ˜¯å�¦å­˜åœ¨å·²é¢„çº¦ä½†æœªå®Œæˆ�é¢„çº¦ä¿¡æ�¯
+     * //@param users_id å�¸æœºid
      *
-     * @param users_id å�¸æœºid
      * @return è¿”å›žæŸ¥è¯¢ç»“æžœ
      */
     @RequestMapping("getActiveAppointment")
-    public String getActiveAppointment(@RequestParam("users_id") String users_id) {
+    public String getActiveAppointment() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -1429,32 +1468,18 @@ public class AppointmentController {
         }
 
         //èŽ·å�–è¯¥ç”¨æˆ·çš„å…¨éƒ¨é¢„çº¦æ•°æ�®
-        Appointment appointment = appointmentService.getActiveAppointment(users_id);
-//        Date dateNow = new Date();
-//        if (appointment != null && !appointment.getUsers_id().isEmpty()) {
-//            Date apprDate = null;
-//            if (appointment.getApproach_date() != null && !appointment.getApproach_date().isEmpty()) {
-//                apprDate = FormatDateTime.getDateAddOne(FormatDateTime.strToDate(appointment.getApproach_date()));
-//            }
-//            assert apprDate != null;
-//            if (!(apprDate.compareTo(dateNow) >= 0)) {
-//                //å°†æ”¹é¢„çº¦è®¾ç½®æœªå¼‚å¸¸(ä¸�éœ€è¦�è®¾ç½®è¿‡æœŸå¼‚å¸¸ å¾…è®¨è®º)
-//                //appointment.setAppointment_state(9);
-//                int res = appointmentService.updateAppointment(appointment);
-//                msg = "ç”¨æˆ·å­˜åœ¨æœªæ‰“å�¡å®Œæˆ�é¢„çº¦ï¼Œä½†å·²ç»�è¶…æ—¶ï¼Œå�¯ä»¥å†�é¢„çº¦ã€‚";
-//                //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-//                Boolean bl = false;
-//                //åˆ›å»ºè¿”å›žæ•°æ�®
-//                Map<String, Object> data = new HashMap<>();
-//                //è¿”å›ž
-//                return response.getResponseData(bl, data, msg);
-//            }
-//        }
-
         String portAreaName = "";
-
+        String truckNumber = null;
+        Appointment appointment = null;
+        Truck truck = appointmentService.getPalletTruck(userId);
+        if (truck != null) {
+            truckNumber = truck.getTruck_number();
+            if (truckNumber != null && !truckNumber.isEmpty()) {
+                appointment = appointmentService.getActiveAppointmentNew(truckNumber);
+            }
+        }
         if (appointment == null) {
-            msg = "ä¸�å­˜åœ¨ç”¨æˆ·Id" + users_id + "æœªå®Œæˆ�çš„é¢„çº¦";
+            msg = "ç”¨æˆ·Id" + userId + "ï¼Œ æ�¿è½¦å�·" + truckNumber + "ä¸�å­˜åœ¨æœªå®Œæˆ�çš„é¢„çº¦";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -1509,7 +1534,6 @@ public class AppointmentController {
         return response.getResponseData(bl, data);
     }
 
-
     /**
      * æŸ¥è¯¢æŒ‡å®šæ�¿è½¦å�·æ˜¯å�¦å­˜åœ¨æ´»è·ƒé¢„çº¦ä¿¡æ�¯ï¼ˆçŽ‹æ­£ç‚Žç‰¹ä¿�åŒºæ–°æŽ¥å�£ï¼‰
      *
@@ -1560,7 +1584,6 @@ public class AppointmentController {
 
     }
 
-
     /**
      * å�–æ¶ˆé¢„çº¦
      *
@@ -1662,7 +1685,6 @@ public class AppointmentController {
         return response.getResponseData(bl, data);
     }
 
-
     /**
      * æ— è®¡åˆ’æ”¶è½¦å�–æ¶ˆé¢„çº¦(appç«¯æ— è®¡åˆ’æ”¶è½¦ä½¿ç”¨)
      *
@@ -2262,6 +2284,7 @@ public class AppointmentController {
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
+            logger.info("æ•´è½¦ç‰©æµ�å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
@@ -2274,15 +2297,27 @@ public class AppointmentController {
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
+            logger.info("æ•´è½¦ç‰©æµ�å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
+        Integer appointment_state = myAppointment.getAppointment_state();
+        if (appointment_state != null && appointment_state.equals(4)) {
+            msg = "é¢„çº¦id" + appointment_id + "çš„é¢„çº¦ï¼Œå·²è¢«å�–æ¶ˆï¼Œä¸�èƒ½å®Œå·¥æ‰“å�¡ï¼�";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            logger.info("æ•´è½¦ç‰©æµ�å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
+            return response.getResponseData(bl, data, msg);
+        }
         if (myPunchClock == null) {
             msg = "ä¸�å­˜é¢„çº¦Idä¸º" + appointment_id + "çš„æ‰“å�¡è®°å½•ä¿¡æ�¯";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
+            logger.info("æ•´è½¦ç‰©æµ�å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
@@ -2426,4 +2461,19 @@ public class AppointmentController {
         return JSON.toJSONString(forwardRes);
     }
 
+    /**
+     * èŽ·å¾—è…¾è®¯ mapKey(çŽ‹ç�›éœ€è¦�)
+     *
+     * @return
+     */
+    @PostMapping("/getMK")
+    public String getMK() {
+        String mapKey = "FUFBZ-KBIWW-P63RR-RR4W3-BNV4H-T6BGX";
+        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+        Boolean bl = true;
+        //å°�è£…æ•°æ�®
+        return response.getResponseData(bl, mapKey);
+    }
+
+
 }
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/HomeController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/HomeController.java
index bdde5af..efa8f38 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/HomeController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/HomeController.java
@@ -167,8 +167,11 @@ public class HomeController {
      */
     @PostMapping("/truckBanding")
     public String truckBanding(@RequestBody Truck truck) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
+        String msg = "";
         if (truck == null || truck.getTruck_number().isEmpty()) {
-            String msg = "ç”¨æˆ·è½¦è¾†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º";
+            msg = "ç”¨æˆ·è½¦è¾†ä¿¡æ�¯ä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -176,6 +179,22 @@ public class HomeController {
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+            truck.setUsers_id(userId);
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+
         String truck_id = truck.getId();
         Truck myTruck = null;
         String openid = "";
@@ -191,17 +210,14 @@ public class HomeController {
             }
         } else {
             //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
-            CommonRes<UserInfoRes> userInfoResCommonRes = usersApi.getUserInfo();
             UserInfoRes userInfoRes = userInfoResCommonRes.getData();
             openid = userInfoRes.getOpenId();
             truck.setWx_openid(openid);
             truck.setUsers_id(userInfoRes.getId());
         }
-
         if (myTruck != null) {
             truck_id = myTruck.getId();
         }
-
         //æ›´æ–°åˆ°æ•°æ�®åº“
         if (truck_id != null && !truck_id.isEmpty()) {
             Integer x = homeService.updateTruck(truck);
@@ -210,12 +226,10 @@ public class HomeController {
             truck_id = homeService.insertTruck(truck);
             truck.setId(truck_id);
         }
-
         Boolean bl = truck_id != null && !truck_id.isEmpty();
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Map<String, Object> data = new HashMap<>();
         data.put("truck", truck);
-
         //è¿”å›ž
         return response.getResponseData(bl, data);
     }
@@ -253,7 +267,6 @@ public class HomeController {
 
     /**
      * æ ¹æ�®å…¬å‘ŠidèŽ·å¾—å…¬å‘Š
-     *
      * @param announcement_id å…¬å‘Šid
      * @return è¿”å›žå…¬å‘Šä¿¡æ�¯
      */
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/MessageController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/MessageController.java
index c87a37f..7275ccb 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/MessageController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/MessageController.java
@@ -1,9 +1,11 @@
 package com.haitongauto.rtosac.api;
+
 import com.bestvike.linq.Linq;
 import com.github.pagehelper.PageInfo;
 import com.haitongauto.models.dto.Pages;
 import com.haitongauto.models.pojo.Appointment;
 import com.haitongauto.models.pojo.Message;
+import com.haitongauto.rtosac.service.AppointmentService;
 import com.haitongauto.rtosac.service.MessageService;
 import com.haitongauto.rtosac.service.Response;
 import com.haitongauto.rtosac.service.impl.AppointmentServiceImpl;
@@ -11,6 +13,7 @@ import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import java.util.*;
 
 @RestController
@@ -19,6 +22,9 @@ public class MessageController {
     @Autowired
     MessageService messageService;
 
+    @Autowired
+    AppointmentService appointmentService;
+
     @Autowired
     Response response;
 
@@ -62,7 +68,10 @@ public class MessageController {
         int noReadSize = 0;
         if (pageNum <= pageCount) {
             myList = pagesInfo.getList();//å½“å‰�é¡µçš„åˆ—è¡¨æ•°æ�®
-            noReadSize = Linq.of(myList).where(p -> p.getIs_read().equals(0)).count();
+            if (myList != null && myList.size() > 0) {
+                noReadSize = Linq.of(myList).where(p -> p.getIs_read().equals(0)).count();
+            }
+
             pages.setUnReadSize(noReadSize);
         }
         //åˆ†é¡µæ•°æ�®æ·»åŠ åˆ°pages
@@ -172,25 +181,36 @@ public class MessageController {
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
             data.put("result", bl);
-            String message = msg;
-            data.put("message", message);
+            data.put("message", msg);
             logger.info("é€šè¿‡æ‰“å�°å°�ç¥¨çŽ¯èŠ‚å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        Appointment appointment = messageService.punchClockOverByPrint(appointmentId);
-        if (appointment == null) {
+        Appointment myappointment = appointmentService.getAppointmentById(appointmentId);
+        if (myappointment == null) {
             msg = "é¢„çº¦id" + appointmentId + "çš„é¢„çº¦ï¼Œä¸�å­˜åœ¨ï¼�";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
             data.put("result", bl);
-            String message = msg;
-            data.put("message", message);
+            data.put("message", msg);
             logger.info("é€šè¿‡æ‰“å�°å°�ç¥¨çŽ¯èŠ‚å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
             return response.getResponseData(bl, data, msg);
         }
+        Integer appointment_state = myappointment.getAppointment_state();
+        if (appointment_state != null && appointment_state.equals(4)) {
+            msg = "é¢„çº¦id" + appointmentId + "çš„é¢„çº¦ï¼Œå·²è¢«å�–æ¶ˆï¼Œä¸�èƒ½å®Œå·¥æ‰“å�¡ï¼�";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            data.put("result", bl);
+            data.put("message", msg);
+            logger.info("é€šè¿‡æ‰“å�°å°�ç¥¨çŽ¯èŠ‚å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼š" + msg);
+            return response.getResponseData(bl, data, msg);
+        }
+        Appointment appointment = messageService.punchClockOverByPrint(appointmentId);
         logger.info("é€šè¿‡æ‰“å�°å°�ç¥¨çŽ¯èŠ‚å®Œæˆ�å®Œå·¥æ‰“å�¡ï¼šé¢„çº¦id" + appointmentId + "çš„é¢„çº¦å®Œæˆ�æ‰“å�¡æˆ�åŠŸ");
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = true;
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/MineController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/MineController.java
index fcd832b..5d74bd6 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/MineController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/MineController.java
@@ -4,10 +4,13 @@ import com.alibaba.fastjson.JSONObject;
 import com.bestvike.linq.Linq;
 import com.github.pagehelper.PageInfo;
 import com.haitongauto.interfaces.OrderApi;
+import com.haitongauto.interfaces.UsersApi;
 import com.haitongauto.models.dto.CurrentDayPunchClockDto;
 import com.haitongauto.models.dto.Pages;
 import com.haitongauto.models.forward.ForwardRes;
 import com.haitongauto.models.forward.UserTruck;
+import com.haitongauto.models.ido.CommonRes;
+import com.haitongauto.models.ido.login.UserInfoRes;
 import com.haitongauto.models.ido.login.UsersIdo;
 import com.haitongauto.models.pojo.*;
 import com.haitongauto.rtosac.service.*;
@@ -44,47 +47,81 @@ public class MineController {
     @Resource
     OrderApi orderApi;
 
+    @Resource
+    private UsersApi usersApi;
+
     private static final Lock lock = new ReentrantLock();
 
     /**
      * èŽ·å�–ä¸ªäººèµ„æ–™
      *
-     * @param users_id:å�¸æœºç”¨æˆ·id
+     * //@param users_id:å�¸æœºç”¨æˆ·id
      * @return è¿”å›žå®Œæ•´çš„ä¸ªäººä¿¡æ�¯
      */
     @RequestMapping("/getUsersInfo")
-    public String getUsersInfo(@RequestParam("users_id") String users_id) {
+    //public String getUsersInfo(@RequestParam("users_id") String users_id)
+    public String getUsersInfo() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
-            //å°�è£…æ•°æ�®
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        Users myusers = mineService.getUsersById(users_id);
+        Users myusers = mineService.getUsersById(userId);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = myusers != null;
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Map<String, Object> data = new HashMap<>();
         data.put("Users", myusers);
         //å°�è£…æ•°æ�®
-        //è¿”å›ž
         return response.getResponseDataJavaJson(bl, data);
     }
 
     /**
      * ä¸ªäººèµ„æ–™ä¿®æ”¹
-     *
      * @param usersï¼šä¿®æ”¹å�Žçš„ä¸ªäººä¿¡æ�¯
      * @return æ˜¯å�¦ä¿®æ”¹æˆ�åŠŸ
      */
     @PostMapping("/postUsersInfo")
     public String postUsersInfo(@RequestBody Users users) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+            users.setId(userId);
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
         if (users.getTel_number() == null || users.getTel_number().isEmpty()) {
             msg = "æ‰‹æœºå�·ä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -95,28 +132,7 @@ public class MineController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-//        if (users.getId_code() == null || users.getId_code().isEmpty()) {
-//            msg = "èº«ä»½è¯�å�·ç �ä¸�èƒ½ä¸ºç©º";
-//            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-//            Boolean bl = false;
-//            //åˆ›å»ºè¿”å›žæ•°æ�®
-//            Map<String, Object> data = new HashMap<>();
-//            //å°�è£…æ•°æ�®
-//            //è¿”å›ž
-//            return response.getResponseData(bl, data, msg);
-//        }
-//        if (users.getId_code().length() != 18) {
-//            msg = "èº«ä»½è¯�å�·ç �å¿…é¡»18ä½�";
-//            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
-//            Boolean bl = false;
-//            //åˆ›å»ºè¿”å›žæ•°æ�®
-//            Map<String, Object> data = new HashMap<>();
-//            //å°�è£…æ•°æ�®
-//            //è¿”å›ž
-//            return response.getResponseData(bl, data, msg);
-//        }
-
-        String usersId = users.getId();
+        String usersId = userId;
         if (usersId != null && !usersId.isEmpty()) {
             //æœ‰é¢„çº¦çš„æ—¶å€™ä¸�èƒ½åˆ é™¤è½¦è¾†  æˆ–è€…ä¿®æ”¹ä¸ªäººä¿¡æ�¯(çŽ‹ç�›)
             Appointment myAppointment = appointmentService.getActiveAppointment(usersId);
@@ -127,7 +143,6 @@ public class MineController {
                 //åˆ›å»ºè¿”å›žæ•°æ�®
                 Map<String, Object> data = new HashMap<>();
                 //å°�è£…æ•°æ�®
-                //è¿”å›ž
                 return response.getResponseData(bl, data, msg);
             }
         }
@@ -156,37 +171,41 @@ public class MineController {
         // CommonRes<Boolean> res = orderApi.updateUser(usersIdo);
         // String res = orderApi.updateUser(usersIdo);
         // System.out.print(res);
-        //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+        // åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = x != null;
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Map<String, Object> data = new HashMap<>();
         data.put("result", x);
         //å°�è£…æ•°æ�®
-        //è¿”å›ž
         return response.getResponseData(bl, data);
     }
 
     /**
      * èŽ·å�–æˆ‘çš„æ�¿è½¦ä¿¡æ�¯ pallet_truck
      *
-     * @param users_idï¼šå�¸æœºç”¨æˆ·id
      * @return è¿”å›žæˆ‘çš„æ�¿è½¦ä¿¡æ�¯ pallet_truck
      */
     @RequestMapping("/getMyPalletTruck")
-    public String getMyPalletTruck(@RequestParam("users_id") String users_id) {
+    public String getMyPalletTruck() {
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
-            msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
-            //å°�è£…æ•°æ�®
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
         //èŽ·å�–æˆ‘çš„æ�¿è½¦ä¿¡æ�¯ï¼ˆå�«è¢«åˆ—å…¥é»‘å��å�•çš„æœ€æ–°ä¿¡æ�¯ï¼‰
-        List<Truck> myPalletTruckList = mineService.getMyPalletTruck(users_id);
+        List<Truck> myPalletTruckList = mineService.getMyPalletTruck(userId);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = myPalletTruckList != null;
         //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -205,9 +224,26 @@ public class MineController {
      */
     @PostMapping("/postMyPalletTruck")
     public String postMyPalletTruck(@RequestBody Truck truck) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
+        String msg = "";
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+            truck.setUsers_id(userId);
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
         String users_id = truck.getUsers_id();
         String truck_number = truck.getTruck_number();
-        String msg = "";
         if (users_id == null || users_id.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -271,14 +307,28 @@ public class MineController {
     /**
      * åˆ é™¤æˆ‘çš„æ�¿è½¦ä¿¡æ�¯
      *
-     * @param users_idï¼šç”¨æˆ·Id
      * @return è¿”å›žæ˜¯å�¦åˆ é™¤æˆ�åŠŸ
      */
     @RequestMapping("/delMyPalletTruck")
-    //public String delMyPalletTruck(@RequestParam("palletTruck_id") String palletTruck_id) {
-    public String delMyPalletTruck(@RequestParam("users_id") String users_id) {
+    public String delMyPalletTruck() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -289,8 +339,8 @@ public class MineController {
             return response.getResponseData(bl, data, msg);
         }
         //æœ‰é¢„çº¦çš„æ—¶å€™ä¸�èƒ½åˆ é™¤è½¦è¾†  æˆ–è€…ä¿®æ”¹ä¸ªäººä¿¡æ�¯(çŽ‹ç�›)
-        if (users_id != null && !users_id.isEmpty()) {
-            Appointment myAppointment = appointmentService.getActiveAppointment(users_id);
+        if (userId != null && !userId.isEmpty()) {
+            Appointment myAppointment = appointmentService.getActiveAppointment(userId);
             if (myAppointment != null) {
                 msg = "ç”¨æˆ·å½“å‰�å­˜åœ¨æœ‰æ•ˆé¢„çº¦ï¼Œä¸�èƒ½åˆ é™¤æ�¿è½¦ä¿¡æ�¯";
                 //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
@@ -302,7 +352,7 @@ public class MineController {
                 return response.getResponseData(bl, data, msg);
             }
         }
-        Integer x = mineService.deleteTruckByUsersId(users_id);
+        Integer x = mineService.deleteTruckByUsersId(userId);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = x != null;
         //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -316,13 +366,28 @@ public class MineController {
     /**
      * æˆ‘çš„è½¦è¾†é»‘å��å�•ä¿¡æ�¯ truck_managementï¼ˆè¯¥æŽ¥å�£ä»…ç”¨äºŽè®¿é—®å“ªå�’çš„æŽ¥å�£ï¼‰
      *
-     * @param users_idï¼šå�¸æœºç”¨æˆ·id
      * @return è¿”å›žæˆ‘çš„è½¦è¾†é»‘å��å�•åˆ—è¡¨
      */
     @RequestMapping("/getMyTruckManagement")
-    public String getMyTruckManagement(@RequestParam("users_id") String users_id) {
+    public String getMyTruckManagement() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -332,7 +397,7 @@ public class MineController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        List<TruckManagement> myTruckManagementList = mineService.getMyTruckManagement(users_id);
+        List<TruckManagement> myTruckManagementList = mineService.getMyTruckManagement(userId);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = myTruckManagementList != null;
         //åˆ›å»ºè¿”å›žæ•°æ�®
@@ -351,6 +416,24 @@ public class MineController {
      */
     @RequestMapping("/postFeedback")
     public String postFeedback(Feedback feedback) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
+        String msg = "";
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+            feedback.setUsers_id(userId);
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
         Integer x = mineService.postFeedback(feedback);
         //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
         Boolean bl = x != null && x > 0;
@@ -365,13 +448,28 @@ public class MineController {
     /**
      * æˆ‘çš„é¢„çº¦ä¿¡æ�¯åˆ—è¡¨
      *
-     * @param users_idï¼šå�¸æœºç”¨æˆ·id
      * @return æˆ‘çš„é¢„çº¦ä¿¡æ�¯åˆ—è¡¨
      */
     @RequestMapping("/getMyAppointmentList")
-    public String getMyAppointment(@RequestParam("users_id") String users_id) {
+    public String getMyAppointment() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -381,7 +479,7 @@ public class MineController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        List<Appointment> myAppointmentList = mineService.getMyAppointmentList(users_id);
+        List<Appointment> myAppointmentList = mineService.getMyAppointmentList(userId);
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Integer code = (myAppointmentList != null) ? 200 : 0;
         String message = (myAppointmentList != null) ? "request success" : "request fail";
@@ -397,24 +495,39 @@ public class MineController {
 
     /**
      * æˆ‘çš„é¢„çº¦ä¿¡æ�¯æŒ‰æ—¥æœŸæŸ¥è¯¢åˆ†é¡µåˆ—è¡¨
+     * <p>
+     * //@param users_id      å�¸æœºid
      *
-     * @param users_id      å�¸æœºid
      * @param approach_date é¢„çº¦è¿›åœºæ—¶é—´
      * @param pages         é¡µç­¾å®žä½“
      * @return è¿”å›žæˆ‘çš„é¢„çº¦ä¿¡æ�¯åˆ†é¡µæ•°æ�®
      */
     @RequestMapping("/getMyAppointmentListByDateForPage")
-    public String getMyAppointmentListByDate(@RequestParam("users_id") String users_id,
-                                             @RequestParam("approach_date") String approach_date, Pages pages) {
+    public String getMyAppointmentListByDate(@RequestParam("approach_date") String approach_date, Pages pages) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
             //å°�è£…æ•°æ�®
-            //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
         //è§£æž�åˆ†é¡µå�‚æ•°
@@ -422,7 +535,7 @@ public class MineController {
         Integer pageSize = (pages != null && pages.getPageSize() != null && pages.getPageSize() > 0) ? pages.getPageSize() : 10;
 
         //è°ƒç”¨Serviceåˆ†é¡µæ–¹æ³•ï¼ŒèŽ·å�–åˆ†é¡µæ•°æ�®å¯¹è±¡ PageInfo
-        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListByDateForPage(users_id, approach_date, pageNum, pageSize);
+        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListByDateForPage(userId, approach_date, pageNum, pageSize);
         //è¯»å�–åˆ†é¡µç»“æžœ
         int pageCount = pagesInfo.getPages();   //æ€»é¡µæ•°
         long recordTotal = pagesInfo.getTotal();   //è®°å½•æ€»æ•°
@@ -442,18 +555,34 @@ public class MineController {
 
     /**
      * æ¨¡ç³ŠæŸ¥è¯¢æˆ‘çš„é¢„çº¦ä¿¡æ�¯ï¼Œå¹¶æŒ‰æ¯�é¡µ10æ�¡æ•°æ�®åˆ†é¡µæ˜¾ç¤º(ä½œåºŸ)
+     * <p>
+     * //@param users_idï¼šå�¸æœºç”¨æˆ·id
      *
-     * @param users_idï¼šå�¸æœºç”¨æˆ·id
      * @param keywordsï¼šæŸ¥è¯¢å…³é”®å­—
      * @param approach_dateï¼šæŸ¥è¯¢æ—¥æœŸ
      * @return æ¨¡ç³ŠæŸ¥è¯¢ç»“æžœ getAppointmentDetailListForKeyWords
      */
     @RequestMapping("/getMyAppointmentListForPage_old")
-    public String getMyAppointmentListForPage_old(@RequestParam("users_id") String users_id,
-                                                  @RequestParam("keywords") String keywords,
+    public String getMyAppointmentListForPage_old(@RequestParam("keywords") String keywords,
                                                   @RequestParam("approach_date") String approach_date, Pages pages) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -467,7 +596,7 @@ public class MineController {
         Integer pageNum = (pages != null && pages.getPageNum() != null && pages.getPageNum() > 0) ? pages.getPageNum() : 1;
         Integer pageSize = (pages != null && pages.getPageSize() != null && pages.getPageSize() > 0) ? pages.getPageSize() : 10;
         //è°ƒç”¨Serviceåˆ†é¡µæ–¹æ³•ï¼ŒèŽ·å�–åˆ†é¡µæ•°æ�®å¯¹è±¡ PageInfo
-        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListForPage(users_id, keywords, approach_date, pageNum, pageSize);
+        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListForPage(userId, keywords, approach_date, pageNum, pageSize);
         //è¯»å�–åˆ†é¡µç»“æžœ
         int pageCount = pagesInfo.getPages();   //æ€»é¡µæ•°
         long recordTotal = pagesInfo.getTotal();   //è®°å½•æ€»æ•°
@@ -486,11 +615,26 @@ public class MineController {
     }
 
     @RequestMapping("/getMyAppointmentListForPage")
-    public String getMyAppointmentListForPage(@RequestParam("users_id") String users_id,
-                                              @RequestParam("keywords") String keywords,
+    public String getMyAppointmentListForPage(@RequestParam("keywords") String keywords,
                                               @RequestParam("approach_date") String approach_date, Pages pages) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -504,7 +648,7 @@ public class MineController {
         Integer pageNum = (pages != null && pages.getPageNum() != null && pages.getPageNum() > 0) ? pages.getPageNum() : 1;
         Integer pageSize = (pages != null && pages.getPageSize() != null && pages.getPageSize() > 0) ? pages.getPageSize() : 10;
         //è°ƒç”¨Serviceåˆ†é¡µæ–¹æ³•ï¼ŒèŽ·å�–åˆ†é¡µæ•°æ�®å¯¹è±¡ PageInfo
-        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListForPageNew(users_id, keywords, approach_date, pageNum, pageSize);
+        PageInfo<Appointment> pagesInfo = mineService.getMyAppointmentListForPageNew(userId, keywords, approach_date, pageNum, pageSize);
         //è¯»å�–åˆ†é¡µç»“æžœ
         int pageCount = pagesInfo.getPages();   //æ€»é¡µæ•°
         long recordTotal = pagesInfo.getTotal();   //è®°å½•æ€»æ•°
@@ -548,14 +692,29 @@ public class MineController {
      * æˆ‘çš„æ‰“å�¡è®°å½•ï¼ˆæŸ¥è¯¢æŒ‡å®šæ—¥æœŸï¼Œé»˜è®¤å½“å¤©ï¼‰
      *
      * @param my_date  æŒ‡å®šæ—¥æœŸ
-     * @param users_id å�¸æœºid
+     * //@param users_id å�¸æœºid
      * @return è¿”å›žæˆ‘çš„æ‰“å�¡è®°å½•
      */
     @RequestMapping("/getPunchClockForDate")
-    public String getPunchClockForDate(@RequestParam("my_date") String my_date,
-                                       @RequestParam("users_id") String users_id) {
+    public String getPunchClockForDate(@RequestParam("my_date") String my_date) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -567,7 +726,7 @@ public class MineController {
         }
         LocalDate myDate = DateTimeHelper.DateStrToLocalDate(my_date); //LocalDate.parse(my_date);
         //ä¿®æ”¹è¿”å›žï¼Œæœªå®Œå·¥æ‰“å�¡ï¼Œ
-        List<PunchClock> mylist = punchClockService.getPunchClockForDate(my_date, users_id);
+        List<PunchClock> mylist = punchClockService.getPunchClockForDate(my_date, userId);
         CurrentDayPunchClockDto currentDayPunchClockDto = new CurrentDayPunchClockDto();
         //æ€»å·¥æ—¶
         long totalWorkingSeconds = 0;
@@ -618,15 +777,29 @@ public class MineController {
      *
      * @param year     å¹´
      * @param month    æœˆ
-     * @param users_id å�¸æœºid
+     * //@param users_id å�¸æœºid
      * @return è¿”å›žæˆ‘çš„æ‰“å�¡è®°å½•
      */
     @RequestMapping("/getPunchClockForYM")
-    public String getPunchClockForYM(@RequestParam("year") Integer year,
-                                     @RequestParam("month") Integer month,
-                                     @RequestParam("users_id") String users_id) {
+    public String getPunchClockForYM(@RequestParam("year") Integer year, @RequestParam("month") Integer month) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -635,9 +808,8 @@ public class MineController {
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
-        List<PunchClock> mylist = punchClockService.getPunchClockForYM(year, month, users_id);
-        List<Appointment> myappointmentList = mineService.getMyAppointmentList(users_id);
-
+        List<PunchClock> mylist = punchClockService.getPunchClockForYM(year, month, userId);
+        List<Appointment> myappointmentList = mineService.getMyAppointmentList(userId);
         //æ‰¾åˆ°å¯¹åº”çš„é¢„çº¦è¿›æ¸¯æ—¶é—´ (çŽ‹ç�›éœ€è¦�)
         //æœªå®Œæˆ�çš„é¢„çº¦è¿›æ¸¯æ—¥æœŸ
         List<String> approachDateList_ww = new ArrayList<>();
@@ -697,14 +869,28 @@ public class MineController {
 
     /**
      * èŽ·å�–å½“å‰�æŽ’é˜Ÿå‰�é�¢è¿˜å‰©å¤šå°‘è½¦è¾†æœªè¿›æ¸¯
-     *
-     * @param users_id å�¸æœºid
      * @return è¿”å›žæˆ‘å‰�é�¢çš„æŽ’é˜Ÿå¾…è¿›æ¸¯çš„è½¦è¾†æ•°
      */
     @RequestMapping("/getNumberBeforeMe")
-    public String getNumberBeforeMe(@RequestParam("users_id") String users_id) {
+    public String getNumberBeforeMe() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -715,15 +901,14 @@ public class MineController {
             return response.getResponseData(bl, data, msg);
         }
         //-1-é¦–å…ˆæŸ¥æ‰¾æˆ‘çš„å½“å‰�é¢„çº¦
-        Appointment myAppointment = mineService.getMyAppointment(users_id);
+        Appointment myAppointment = mineService.getMyAppointment(userId);
         if (myAppointment == null) {
-            msg = "ä¸�å­˜åœ¨ç”¨æˆ·Id" + users_id + "çš„é¢„çº¦";
+            msg = "ä¸�å­˜åœ¨ç”¨æˆ·Id" + userId + "çš„é¢„çº¦";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
             //å°�è£…æ•°æ�®
-            //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
         //-2-è¯»å�–é¢„çº¦å…³é”®æ•°æ�®
@@ -744,7 +929,6 @@ public class MineController {
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Map<String, Object> data = new HashMap<>();
         data.put("number_before_me", x);
-        //å°�è£…æ•°æ�®
         //è¿”å›ž
         return response.getResponseData(bl, data);
     }
@@ -752,31 +936,45 @@ public class MineController {
     /**
      * èŽ·å�–æˆ‘çš„æŽ’é˜Ÿå�·
      *
-     * @param users_id ç”¨æˆ·id
+     * //@param users_id ç”¨æˆ·id
      * @return èŽ·å�–æˆ‘çš„æŽ’é˜Ÿå�·
      */
     @RequestMapping("/getNumberForMe")
-    public String getNumberForMe(@RequestParam("users_id") String users_id) {
+    public String getNumberForMe() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
-            //å°�è£…æ•°æ�®
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
         //-1-é¦–å…ˆæŸ¥æ‰¾æˆ‘çš„å½“å‰�é¢„çº¦
-        Appointment myAppointment = mineService.getMyAppointment(users_id);
+        Appointment myAppointment = mineService.getMyAppointment(userId);
         if (myAppointment == null) {
-            msg = "ä¸�å­˜åœ¨ç”¨æˆ·Id" + users_id + "çš„é¢„çº¦";
+            msg = "ä¸�å­˜åœ¨ç”¨æˆ·Id" + userId + "çš„é¢„çº¦";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
-            //å°�è£…æ•°æ�®
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
@@ -789,7 +987,6 @@ public class MineController {
         //åˆ›å»ºè¿”å›žæ•°æ�®
         Map<String, Object> data = new HashMap<>();
         data.put("queueNumber", queueNumber);
-        //å°�è£…æ•°æ�®
         //è¿”å›ž
         return response.getResponseData(bl, data);
     }
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/PunchClockController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/PunchClockController.java
index e487354..7796420 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/PunchClockController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/PunchClockController.java
@@ -1,7 +1,10 @@
 package com.haitongauto.rtosac.api;
 
 import com.bestvike.linq.Linq;
+import com.haitongauto.interfaces.UsersApi;
 import com.haitongauto.models.dto.CurrentDayPunchClockDto;
+import com.haitongauto.models.ido.CommonRes;
+import com.haitongauto.models.ido.login.UserInfoRes;
 import com.haitongauto.models.pojo.*;
 import com.haitongauto.rtosac.service.*;
 import com.haitongauto.utils.DateTimeHelper;
@@ -12,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -31,19 +35,38 @@ public class PunchClockController {
     @Autowired
     MineService mineService;
 
+    @Resource
+    private UsersApi usersApi;
+
     @Autowired
     Response response;
 
     /**
      * æ£€æŸ¥æ˜¯å�¦æœ‰æœªå®Œæˆ�é¢„çº¦
      *
-     * @param users_id ç”¨æˆ·id
+     * //@param users_id ç”¨æˆ·id
      * @return è¿”å›žå®Œæˆ�é¢„çº¦
      */
     @RequestMapping("/getIincompleteAppointment")
-    public String getIincompleteAppointment(@RequestParam("users_id") String users_id) {
+    public String getIincompleteAppointment() {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -53,7 +76,7 @@ public class PunchClockController {
             return response.getResponseData(bl, data, msg);
         }
         //èŽ·å�–æœªå®Œæˆ�é¢„çº¦
-        Appointment appointment = punchClockService.getIincompleteAppointment(users_id);
+        Appointment appointment = punchClockService.getIincompleteAppointment(userId);
         String appointment_id = (appointment != null) ? appointment.getId() : null;
         //èŽ·å�–è¯¥é¢„çº¦çš„æ‰“å�¡ä¿¡æ�¯
         PunchClock mypunchClock = (appointment_id != null) ? punchClockService.getPunchClockForAppintementId(appointment_id) : null;
@@ -92,20 +115,35 @@ public class PunchClockController {
     /**
      * ç­¾åˆ°æ‰“å�¡æ��äº¤
      *
-     * @param users_id       ç”¨æˆ·id
+     * //@param users_id       ç”¨æˆ·id
      * @param appointment_id é¢„çº¦id
      * @param port_area_id   æ¸¯åŒºid
      * @param punch_poi      å��æ ‡
      * @return è¿”å›žæ��äº¤ç»“æžœ
      */
     @RequestMapping("/postPunchClockStart")
-    public String postPunchClockStart(@RequestParam("users_id") String users_id,
-                                      @RequestParam("appointment_id") String appointment_id,
+    public String postPunchClockStart(@RequestParam("appointment_id") String appointment_id,
                                       @RequestParam("port_area_id") String port_area_id,
                                       @RequestParam("punch_poi") String punch_poi,
                                       @RequestParam("punch_address") String punch_address) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -157,7 +195,7 @@ public class PunchClockController {
         }
 
         //å†™å…¥æ‰“å�¡æ•°æ�®
-        PunchClock punchClock = punchClockService.postPunchClockStart(users_id, appointment_id, port_area_id, punch_poi, punch_address);
+        PunchClock punchClock = punchClockService.postPunchClockStart(userId, appointment_id, port_area_id, punch_poi, punch_address);
         String punch_clock_id = "";
         String queue_number = "";
         String punch_date_time = "";
@@ -210,7 +248,9 @@ public class PunchClockController {
      * @return è¿”å›žå®Œæˆ�æ‰“å�¡æ��äº¤æ‰§è¡Œç»“æžœ
      */
     @RequestMapping("/postPunchClockOver")
-    public String postPunchClockOver(@RequestParam("appointment_id") String appointment_id, @RequestParam("punch_clock_id") String punch_clock_id, @RequestParam("punch_address") String punch_address) {
+    public String postPunchClockOver(@RequestParam("appointment_id") String appointment_id,
+                                     @RequestParam("punch_clock_id") String punch_clock_id,
+                                     @RequestParam("punch_address") String punch_address) {
         //æ‰“å�¡ä¿¡æ�¯æ›´æ–°åˆ°æ•°æ�®åº“
         String msg = "";
         if (appointment_id == null || appointment_id.isEmpty()) {
@@ -288,7 +328,6 @@ public class PunchClockController {
 
     /**
      * æ ¹æ�®é¢„çº¦IdèŽ·å�–æ‰“å�¡è®°å½•çŠ¶æ€�
-     *
      * @param appointment_id é¢„çº¦id
      * @return è¿”å›žæ‰“å�¡è®°å½•
      */
@@ -302,7 +341,6 @@ public class PunchClockController {
             //åˆ›å»ºè¿”å›žæ•°æ�®
             Map<String, Object> data = new HashMap<>();
             //å°�è£…æ•°æ�®
-            //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
         //èŽ·å�–æŒ‡å®šé¢„çº¦çš„æ‰“å�¡è®°å½•
@@ -335,13 +373,40 @@ public class PunchClockController {
      * æˆ‘çš„æ‰“å�¡è®°å½•ï¼ˆæŸ¥è¯¢æŒ‡å®šæ—¥æœŸï¼Œé»˜è®¤å½“å¤©ï¼‰
      *
      * @param my_date  æŒ‡å®šæ—¥æœŸ
-     * @param users_id å�¸æœºid
+     * //@param users_id å�¸æœºid
      * @return è¿”å›žæˆ‘çš„æ‰“å�¡è®°å½•
      */
     @RequestMapping("/getPunchClockForDate")
-    public String getPunchClockForDate(@RequestParam("my_date") String my_date, @RequestParam("users_id") String users_id) {
+    public String getPunchClockForDate(@RequestParam("my_date") String my_date) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+
+        if (my_date == null || my_date.isEmpty()) {
+            msg = "æŒ‡å®šæ—¥æœŸä¸�èƒ½ä¸ºç©º";
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //å°�è£…æ•°æ�®
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -351,8 +416,8 @@ public class PunchClockController {
             //è¿”å›ž
             return response.getResponseData(bl, data, msg);
         }
-        LocalDate myDate = DateTimeHelper.DateStrToLocalDate(my_date); //LocalDate.parse(my_date);
-        List<PunchClock> mylist = punchClockService.getPunchClockForDate(my_date, users_id);
+        LocalDate myDate = DateTimeHelper.DateStrToLocalDate(my_date);
+        List<PunchClock> mylist = punchClockService.getPunchClockForDate(my_date, userId);
         CurrentDayPunchClockDto currentDayPunchClockDto = new CurrentDayPunchClockDto();
         //æ€»å·¥æ—¶
         long totalWorkingSeconds = 0;//ç§’
@@ -397,7 +462,6 @@ public class PunchClockController {
             //å°�æ—¶æ•°æ�®ä¿�ç•™å››ä½�å°�æ•°
             totalWorkingHours = Math.round(totalWorkingHours * 10000) / 10000.0;
         }
-
         currentDayPunchClockDto.setPunchClockList(mylist);
         currentDayPunchClockDto.setTotalPunchClockCount(totalPunchClockCount);
         currentDayPunchClockDto.setTotalWorkingHours(totalWorkingHours);
@@ -407,7 +471,6 @@ public class PunchClockController {
         Map<String, Object> data = new HashMap<>();
         data.put("CurrentDayPunchClock", currentDayPunchClockDto);
         //å°�è£…æ•°æ�®
-        //è¿”å›ž
         return response.getResponseDataJavaJson(bl, data);
 
     }
@@ -418,15 +481,30 @@ public class PunchClockController {
      *
      * @param year     å¹´
      * @param month    æœˆ
-     * @param users_id å�¸æœºid
+     * //@param users_id å�¸æœºid
      * @return è¿”å›žæˆ‘çš„æ‰“å�¡è®°å½•
      */
     @RequestMapping("/getPunchClockForYM")
     public String getPunchClockForYM(@RequestParam("year") Integer year,
-                                     @RequestParam("month") Integer month,
-                                     @RequestParam("users_id") String users_id) {
+                                     @RequestParam("month") Integer month) {
+        CommonRes<UserInfoRes> userInfoResCommonRes;
+        String userId;
         String msg = "";
-        if (users_id == null || users_id.isEmpty()) {
+        try {
+            //è¯·æ±‚å“ªå�’æŽ¥å�£èŽ·å¾—ç”¨æˆ·ä¿¡æ�¯
+            userInfoResCommonRes = usersApi.getUserInfo();
+            UserInfoRes userInfoRes = userInfoResCommonRes.getData();
+            userId = userInfoRes.getId();
+        } catch (Exception ex) {
+            msg = "ä»Žrtoså�Žå�°ï¼ŒèŽ·å¾—ç”¨æˆ·ä¿¡æ�¯å¼‚å¸¸ï¼Œ" + ex.getMessage();
+            //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
+            Boolean bl = false;
+            //åˆ›å»ºè¿”å›žæ•°æ�®
+            Map<String, Object> data = new HashMap<>();
+            //è¿”å›ž
+            return response.getResponseData(bl, data, msg);
+        }
+        if (userId == null || userId.isEmpty()) {
             msg = "ç”¨æˆ·Idä¸�èƒ½ä¸ºç©º";
             //åˆ¤æ–­è¯·æ±‚æ˜¯å�¦æˆ�åŠŸ
             Boolean bl = false;
@@ -435,9 +513,8 @@ public class PunchClockController {
             //å°�è£…æ•°æ�®
             return response.getResponseData(bl, data, msg);
         }
-        List<PunchClock> mylist = punchClockService.getPunchClockForYM(year, month, users_id);
-        List<Appointment> myappointmentList = mineService.getMyAppointmentList(users_id);
-
+        List<PunchClock> mylist = punchClockService.getPunchClockForYM(year, month, userId);
+        List<Appointment> myappointmentList = mineService.getMyAppointmentList(userId);
         //æ‰¾åˆ°å¯¹åº”çš„é¢„çº¦è¿›æ¸¯æ—¶é—´ (çŽ‹ç�›éœ€è¦�)
         //æœªå®Œæˆ�çš„é¢„çº¦è¿›æ¸¯æ—¥æœŸ
         List<String> approachDateList_ww = new ArrayList<>();
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/api/VehicleController.java b/wx-applet/src/main/java/com/haitongauto/rtosac/api/VehicleController.java
index 4ade97c..dfb4428 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/api/VehicleController.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/api/VehicleController.java
@@ -1,5 +1,7 @@
 package com.haitongauto.rtosac.api;
+
 import com.haitongauto.interfaces.OrderApi;
+import com.haitongauto.interfaces.UsersApi;
 import com.haitongauto.models.ido.CheckRes;
 import com.haitongauto.models.ido.CommonRes;
 import com.haitongauto.models.ido.departure.DepartureDetailIdo;
@@ -35,16 +37,21 @@ public class VehicleController {
     PunchClockService punchClockService;
     @Resource
     OrderApi orderApi;
-
+    @Resource
+    private UsersApi usersApi;
 
     /**
      * èŽ·å�–æ”¶è½¦å‡­è¯�çš„åˆ†é¡µæ•°æ�®(ä»ŽRtosè¯·æ±‚æ•°æ�®)
+     * <p>
+     * //@param users_id å½“å‰�é¡µç �
      *
-     * @param users_id å½“å‰�é¡µç �
      * @return è¿”å›žæ”¶è½¦å‡­è¯�çš„åˆ†é¡µæ•°æ�®
      */
     @GetMapping("/getVehicleReceivingList")
-    public String getVehicleReceivingList(@RequestParam("users_id") String users_id, @RequestParam("printTicketTime") String printTicketTime, @RequestParam("query") String query, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
+    public String getVehicleReceivingList(@RequestParam("printTicketTime") String printTicketTime,
+                                          @RequestParam("query") String query,
+                                          @RequestParam("pageNum") Integer pageNum,
+                                          @RequestParam("pageSize") Integer pageSize) {
         //è§£æž�åˆ†é¡µå�‚æ•°
         pageNum = (pageNum != null && pageNum > 0) ? pageNum : 1;
         pageSize = (pageSize != null && pageSize > 0) ? pageSize : 10;
@@ -138,7 +145,8 @@ public class VehicleController {
      * @return è¿”å›žæ”¶è½¦æ ¸å¯¹ç»“æžœ
      */
     @GetMapping("/vehicleReceivingOver")
-    public String vehicleReceivingOver(@RequestParam("vehicle_receiving_id") String vehicle_receiving_id, @RequestParam("ttiId") String ttiId) {
+    public String vehicleReceivingOver(@RequestParam("vehicle_receiving_id") String vehicle_receiving_id,
+                                       @RequestParam("ttiId") String ttiId) {
         String msg = null;
         if (vehicle_receiving_id == null || vehicle_receiving_id.isEmpty()) {
             msg = "æ”¶è½¦å‡­è¯�idä¸�èƒ½ä¸ºç©º";
@@ -200,11 +208,14 @@ public class VehicleController {
     /**
      * æ��è½¦å‡­è¯�åˆ†é¡µåˆ—è¡¨æ•°æ�®(ä»ŽRtosè¯·æ±‚æ•°æ�®)
      *
-     * @param users_id å½“å‰�é¡µç �
+     * //@param users_id å½“å‰�é¡µç �
      * @return åˆ†é¡µæ•°æ�®
      */
     @GetMapping("/getVehicleDepartureInfoList")
-    public String getVehicleDepartureInfoList(@RequestParam("users_id") String users_id, @RequestParam("printTicketTime") String printTicketTime, @RequestParam("query") String query, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
+    public String getVehicleDepartureInfoList(@RequestParam("printTicketTime") String printTicketTime,
+                                              @RequestParam("query") String query,
+                                              @RequestParam("pageNum") Integer pageNum,
+                                              @RequestParam("pageSize") Integer pageSize) {
         String msg = "";
         //è§£æž�åˆ†é¡µå�‚æ•°
         pageNum = (pageNum != null && pageNum > 0) ? pageNum : 1;
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/service/AppointmentService.java b/wx-applet/src/main/java/com/haitongauto/rtosac/service/AppointmentService.java
index 8e10d66..c0dfa5c 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/service/AppointmentService.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/service/AppointmentService.java
@@ -46,6 +46,13 @@ public interface AppointmentService {
      */
     Appointment getActiveAppointment(String users_id);
 
+    /**
+     * æŸ¥è¯¢æŒ‡å®šæ�¿è½¦æ˜¯å�¦å­˜åœ¨å·²é¢„çº¦ä½†æœªå®Œæˆ�é¢„çº¦ä¿¡æ�¯
+     * @param truck_number æ�¿è½¦å�·
+     * @return è¿”å›žæŸ¥è¯¢ç»“æžœ
+     */
+    Appointment getActiveAppointmentNew(String truck_number);
+
     Appointment getActiveAppointmentByTruckNumber(String truck_number);
 
     /**
@@ -111,7 +118,7 @@ public interface AppointmentService {
     List<String> getAppointmentDetailListByGoodVinList(List<String> vinlist);
 
     //æ ¹æ�® Vinåˆ—è¡¨æŸ¥è¯¢åŒ¹é…�çš„å•†å“�è½¦æ˜Žç»†ï¼Œå¹¶ç­›é€‰å‡ºä¸�å±žäºŽå·²å�–æ¶ˆå’Œå¼‚å¸¸çš„é¢„çº¦çš„
-    List<AppointmentDetail> getAppointmentDetailListByVinList(List<String> vinlist, String port_area_id);
+    List<AppointmentDetail> getAppointmentDetailListByVinList(List<String> vinlist, String appointmentId);
 
     Integer deleteAppointmentDetailByAppointmentId(String appointment_id);
 
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.java b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.java
index 073dd5e..e2eee7d 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.java
@@ -81,6 +81,7 @@ public class AppointmentServiceImpl implements AppointmentService {
 
 
     private static final Logger logger = LogManager.getLogger(AppointmentServiceImpl.class);
+
     @Override
     public ForwardRes invokeForwardApi(Appointment appointment, List<AppointmentDetail> appointmentDetailList) {
         if (appointment == null) {
@@ -216,7 +217,7 @@ public class AppointmentServiceImpl implements AppointmentService {
         //    myUrl = config.getUrl() + "execTruckOrder";
         //}
         try {
-            logger.info("é¢„çº¦ä¿¡æ�¯è½¬å�‘ï¼š"+ JSON.toJSONString(appointForward));
+            logger.info("é¢„çº¦ä¿¡æ�¯è½¬å�‘ï¼š" + JSON.toJSONString(appointForward));
             String post = OkHttpUtils.post(myUrl, OkHttpUtils.buildJsonRequestBody(JSON.toJSONString(appointForward)), null);
             JSONObject rst = JSONObject.parseObject(post);
             logger.info("é¢„çº¦ä¿¡æ�¯è½¬å�‘å›žå¤�:" + JSONObject.toJSONString(rst));
@@ -393,12 +394,16 @@ public class AppointmentServiceImpl implements AppointmentService {
      */
     @Override
     public Appointment getActiveAppointment(String users_id) {
-        // Users users = usersMapper.getById(users_id);
         return appointmentExtendMapper.getActiveAppointment(users_id);
     }
 
     @Override
-    public Appointment getActiveAppointmentByTruckNumber(String truck_number){
+    public Appointment getActiveAppointmentNew(String truck_number) {
+        return appointmentExtendMapper.getActiveAppointmentNew(truck_number);
+    }
+
+    @Override
+    public Appointment getActiveAppointmentByTruckNumber(String truck_number) {
         return appointmentExtendMapper.getActiveAppointmentByTruckNumber(truck_number);
     }
 
@@ -610,6 +615,7 @@ public class AppointmentServiceImpl implements AppointmentService {
 
     /**
      * ä¿®æ”¹é¢„çº¦æ�¿è½¦æ‰«æ��æ—¶é—´å�Šé¢„çº¦çŠ¶æ€�(é¢„çº¦çŠ¶æ€�è¿›å…¥æ”¶è½¦çŠ¶æ€�ï¼Œå°±ä¸�èƒ½å�–æ¶ˆï¼Œä½†å�¯ä»¥ä¿®æ”¹)
+     *
      * @param appointment_id é¢„çº¦id
      * @return è¿”å›žç»“æžœ
      */
@@ -645,7 +651,6 @@ public class AppointmentServiceImpl implements AppointmentService {
                 String queue_number = punchClock.getQueue_number();
                 String punch_address = punchClock.getPunch_address();
                 Integer punch_clock_type = punchClock.getPunch_clock_type();
-
                 if (start_time == null || start_time.isEmpty()) {
                     start_time = FormatDateTime.dateTimeToStr(now);
                     punchClock.setStart_time(start_time);
@@ -684,16 +689,18 @@ public class AppointmentServiceImpl implements AppointmentService {
      * @return vinlist
      */
     @Override
-    public List<AppointmentDetail> getAppointmentDetailListByVinList(List<String> vinlist, String port_area_id) {
+    public List<AppointmentDetail> getAppointmentDetailListByVinList(List<String> vinlist, String appointmentId) {
         //èŽ·å�–ä¸ŽvinListåŒ¹é…�çš„å•†å“�è½¦æ˜Žç»†
         List<AppointmentDetail> detailList = appointmentDetailMapper.getAppointmentDetailListByVinList(vinlist);
-        //èŽ·å¾—æŸ�ä¸€æ¸¯åŒºæœ‰æ•ˆé¢„çº¦idé›†å�ˆ
-        //List<String> mylist = appointmentMapper.getIdListNoInEn(port_area_id);
         //èŽ·å¾—æ‰€æœ‰æœ‰æ•ˆé¢„çº¦idé›†å�ˆ
         List<String> mylist = appointmentMapper.getIdListNoInEnNew();
-        List<AppointmentDetail> resdetailList=null;
+        List<AppointmentDetail> resdetailList = null;
         if (detailList != null && detailList.size() > 0) {
-            if(mylist!= null&& mylist.size()>0){
+            //æŽ’é™¤æŽ‰å½“å‰�é¢„çº¦è‡ªèº«çš„æ˜Žç»†
+            if (appointmentId != null && !appointmentId.isEmpty()) {
+                detailList = Linq.of(detailList).where(p -> !appointmentId.equals(p.getAppointment_id())).toList();
+            }
+            if (mylist != null && mylist.size() > 0) {
                 resdetailList = Linq.of(detailList).where(p -> mylist.contains(p.getAppointment_id())).toList();
             }
         }
@@ -718,24 +725,16 @@ public class AppointmentServiceImpl implements AppointmentService {
         }
         List<ValidCusVin> list = null;
         try {
-            ValidRequest validRequest=new ValidRequest();
+            ValidRequest validRequest = new ValidRequest();
             validRequest.setVins(vinList);
             com.haitongauto.models.res.Response<List<ValidCusVin>> myResponse = cusOrderApi.getCheckVinISValid(validRequest);
             list = myResponse.getData();
             logger.info("æ¿€æ´»éªŒè¯�å›žå¤�:" + JSON.toJSONString(list));
-        }catch (Exception e){
+        } catch (Exception e) {
             logger.info(e.getMessage());
             logger.info("æ¿€æ´»éªŒè¯�å›žå¤�:" + JSON.toJSONString(e.getMessage()));
             throw new RuntimeException("æ¿€æ´»éªŒè¯�å›žå¤�:" + e);
         }
-
-        // String result = cusOrderApi.getCheckVinISValid(vinList);
-        //if (result != null && !result.isEmpty()) {
-        //    myResponse = JSONObject.parseObject(result, Response.class);
-        //    if (myResponse != null) {
-        //        list = myResponse.getData();
-        //    }
-        //}
         return list;
     }
 
@@ -754,9 +753,7 @@ public class AppointmentServiceImpl implements AppointmentService {
         if (truckNum == null || truckNum.isEmpty()) {
             return null;
         }
-
         Truck truck = truckMapper.getPalletTruckByTruckNo(truckNum);
-
         //èŽ·å¾—æ‰€æœ‰è®°å½•çš„ä¼�ä¸šç¼–å�·ï¼ŒæŒ‰ä¼�ä¸šç¼–å�·åˆ†ç»„
         List<String> companyCodeList = Linq.of(validCusVinList).select(p -> p.getCompanyCode()).distinct().toList();
         if (companyCodeList != null && companyCodeList.size() > 0) {
@@ -799,11 +796,6 @@ public class AppointmentServiceImpl implements AppointmentService {
                 cargoInfoNaz.setEnterpriseInfo(enterpriseInfo);
                 cargoInfoNaz.setGoodsInfo(goodList);
                 cargoInfoNaz.setPushType("oneByOne");//çŽ‹æ­£ç�° å†™æ­»
-//                if (goodList.size() == 1) {
-//                    cargoInfoNaz.setPushType("oneByOne");
-//                } else if (goodList.size() > 1) {
-//                    cargoInfoNaz.setPushType("oneByMany");
-//                }
                 list.add(cargoInfoNaz);
             }
         }
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/HomeServiceImpl.java b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/HomeServiceImpl.java
index cc7b456..f72c940 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/HomeServiceImpl.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/HomeServiceImpl.java
@@ -341,8 +341,8 @@ public class HomeServiceImpl implements HomeService {
         String announcement_text = "";
         if (announcementStr != null && !announcementStr.isEmpty()) {
             announcement_text = StringHelper.getTxtByHtml(announcementStr);
+            announcement.setAnnouncement_text(announcement_text);
         }
-        announcement.setAnnouncement_text(announcement_text);
         return announcement;
     }
 
diff --git a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/MineServiceImpl.java b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/MineServiceImpl.java
index a29c3c0..f194899 100644
--- a/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/MineServiceImpl.java
+++ b/wx-applet/src/main/java/com/haitongauto/rtosac/service/impl/MineServiceImpl.java
@@ -3,7 +3,10 @@ package com.haitongauto.rtosac.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
+import com.haitongauto.interfaces.UsersApi;
 import com.haitongauto.mapper.base.*;
+import com.haitongauto.models.ido.CommonRes;
+import com.haitongauto.models.ido.login.UserInfoRes;
 import com.haitongauto.models.pojo.*;
 import com.haitongauto.rtosac.service.MineService;
 import com.haitongauto.mapper.client.OtherExtendMapper;
@@ -13,6 +16,7 @@ import com.haitongauto.utils.FormatDateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.util.*;
 
@@ -36,6 +40,8 @@ public class MineServiceImpl implements MineService {
     TruckExtendMapper truckExtendMapper;
     @Autowired
     AppointmentExtendMapper appointmentExtendMapper;
+    @Resource
+    private UsersApi usersApi;
 
     /**
      * ä¸ªäººèµ„æ–™ä¿®æ”¹
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/InterceptorConfiguration.class b/wx-applet/target/classes/com/haitongauto/rtosac/InterceptorConfiguration.class
new file mode 100644
index 0000000..5ed360b
Binary files /dev/null and b/wx-applet/target/classes/com/haitongauto/rtosac/InterceptorConfiguration.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/PermInterceptor.class b/wx-applet/target/classes/com/haitongauto/rtosac/PermInterceptor.class
new file mode 100644
index 0000000..f7e024a
Binary files /dev/null and b/wx-applet/target/classes/com/haitongauto/rtosac/PermInterceptor.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/AppointmentController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/AppointmentController.class
index 8b1639f..a5d4da9 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/AppointmentController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/AppointmentController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/HeathCheckController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/HeathCheckController.class
index e402a6e..898e697 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/HeathCheckController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/HeathCheckController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/HomeController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/HomeController.class
index a89daec..aee0a74 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/HomeController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/HomeController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/MessageController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/MessageController.class
index 53caf9b..55c2dcd 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/MessageController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/MessageController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/MineController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/MineController.class
index 8712836..a90b377 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/MineController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/MineController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/NewsController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/NewsController.class
index f6bfbef..e91152b 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/NewsController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/NewsController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/PunchClockController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/PunchClockController.class
index 057daec..2feb89c 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/PunchClockController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/PunchClockController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/api/VehicleController.class b/wx-applet/target/classes/com/haitongauto/rtosac/api/VehicleController.class
index 36a8ca3..d3db4ed 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/api/VehicleController.class and b/wx-applet/target/classes/com/haitongauto/rtosac/api/VehicleController.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/config/ConfigHelper.class b/wx-applet/target/classes/com/haitongauto/rtosac/config/ConfigHelper.class
index 8082956..b07651f 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/config/ConfigHelper.class and b/wx-applet/target/classes/com/haitongauto/rtosac/config/ConfigHelper.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/service/AppointmentService.class b/wx-applet/target/classes/com/haitongauto/rtosac/service/AppointmentService.class
index cfa9e2b..39d6337 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/service/AppointmentService.class and b/wx-applet/target/classes/com/haitongauto/rtosac/service/AppointmentService.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.class b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.class
index 0c35e18..afa2abb 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.class and b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/AppointmentServiceImpl.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/HomeServiceImpl.class b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/HomeServiceImpl.class
index c3f81e1..2a3c22e 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/HomeServiceImpl.class and b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/HomeServiceImpl.class differ
diff --git a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/MineServiceImpl.class b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/MineServiceImpl.class
index 1904b1f..df7a0f9 100644
Binary files a/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/MineServiceImpl.class and b/wx-applet/target/classes/com/haitongauto/rtosac/service/impl/MineServiceImpl.class differ
diff --git a/wx-applet/target/com.haitongauto.rtosac.jar b/wx-applet/target/com.haitongauto.rtosac.jar
index af7b61f..5f080f2 100644
Binary files a/wx-applet/target/com.haitongauto.rtosac.jar and b/wx-applet/target/com.haitongauto.rtosac.jar differ
diff --git a/wx-applet/target/com.haitongauto.rtosac.jar.original b/wx-applet/target/com.haitongauto.rtosac.jar.original
index 901d8e0..009980f 100644
Binary files a/wx-applet/target/com.haitongauto.rtosac.jar.original and b/wx-applet/target/com.haitongauto.rtosac.jar.original differ
diff --git a/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 2022171..15896ff 100644
--- a/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -14,6 +14,7 @@ com\haitongauto\rtosac\service\impl\NewsServiceImpl.class
 com\haitongauto\rtosac\service\NewsService.class
 com\haitongauto\rtosac\api\NewsController.class
 com\haitongauto\rtosac\SwaggerConfig.class
+com\haitongauto\rtosac\PermInterceptor.class
 com\haitongauto\rtosac\api\AppointmentController.class
 com\haitongauto\rtosac\service\ForwardService.class
 com\haitongauto\rtosac\service\impl\UsersServiceImpl.class
@@ -32,4 +33,5 @@ com\haitongauto\rtosac\service\PunchClockService.class
 com\haitongauto\rtosac\service\impl\ResponseImpl.class
 com\haitongauto\rtosac\service\impl\VehicleServiceImpl.class
 com\haitongauto\rtosac\service\UsersService.class
+com\haitongauto\rtosac\InterceptorConfiguration.class
 com\haitongauto\rtosac\service\impl\PunchClockServiceImpl.class
diff --git a/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 2d9e1be..059121d 100644
--- a/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/wx-applet/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -10,6 +10,8 @@ F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\config\ConfigHelper.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\service\PunchClockService.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\api\PunchClockController.java
+F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\PermInterceptor.java
+F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\InterceptorConfiguration.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\service\impl\MineServiceImpl.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\service\impl\VehicleServiceImpl.java
 F:\Codes\rtos\v4\mini-service-v4\wx-applet\src\main\java\com\haitongauto\rtosac\service\NewsService.java
