瀏覽代碼

1.2最终版(生成码不重复)

liuxinglong 7 年之前
父節點
當前提交
91d36dc65c
共有 41 個文件被更改,包括 690 次插入605 次删除
  1. 77 77
      .idea/sonarlint/issuestore/1/2/12673843a8d25728fa6498c4afe5545da7b92d91
  2. 8 8
      .idea/sonarlint/issuestore/1/2/126c795aaaa4514a9310a384c977b33ca2921ad8
  3. 6 7
      .idea/sonarlint/issuestore/1/a/1a41ca92836a975ce9a2d14a8048364b77f01045
  4. 3 2
      .idea/sonarlint/issuestore/1/d/1ddf276c69e765a10a7a4c22af6d481ddca64b03
  5. 15 9
      .idea/sonarlint/issuestore/2/8/28ab7cae577594b0b0f2d89420339ae0fd5feeb7
  6. 4 4
      .idea/sonarlint/issuestore/3/8/382ca23d8d34a5926c139b4719cf685f3482ae7c
  7. 6 6
      .idea/sonarlint/issuestore/3/f/3fb2c6300c06d424cd20d6aaa59c7468e917aec2
  8. 1 1
      .idea/sonarlint/issuestore/4/3/43b88a13b0dd73d1e683ec42479e2799a8074af7
  9. 2 2
      .idea/sonarlint/issuestore/4/5/45c365228acec60ff1951ec94508dfc81c6d01f4
  10. 3 7
      .idea/sonarlint/issuestore/6/5/655f0b636817439dcddd21df216cbafc8301054b
  11. 13 13
      .idea/sonarlint/issuestore/9/3/9386acd216a2d06a0765c557a20a966c0b247c7c
  12. 7 6
      .idea/sonarlint/issuestore/9/c/9c52b7c0ee59d7f181874ad5e513b52af041e83b
  13. 15 15
      .idea/sonarlint/issuestore/a/4/a4b72f2f8bd03912f4473efe0db25690cb00446f
  14. 3 3
      .idea/sonarlint/issuestore/a/e/ae603b87087f937289b8baa36142bcf6635d0ac9
  15. 7 6
      .idea/sonarlint/issuestore/b/0/b0fac8d6d7ead4e1c98dd97f3a289f028cd34032
  16. 3 3
      .idea/sonarlint/issuestore/c/0/c099daf5e5ff836227290784f6d1d47a9ec6d0d7
  17. 55 55
      .idea/sonarlint/issuestore/c/3/c31119428485a35a1366fae41e8bb396a9f1bfa9
  18. 3 3
      .idea/sonarlint/issuestore/c/5/c5394e590f0b754c3a0c215412c98d0ccb8d18b9
  19. 27 27
      .idea/sonarlint/issuestore/f/f/ff8d0749ce86a89be6ff0cec5162a3144f8798cb
  20. 3 1
      .idea/sonarlint/issuestore/index.pb
  21. 0 0
      exe.path_IS_UNDEFINED/logs/log_debug.log
  22. 18 0
      exe.path_IS_UNDEFINED/logs/log_error.log
  23. 32 0
      exe.path_IS_UNDEFINED/logs/log_info.log
  24. 50 0
      exe.path_IS_UNDEFINED/logs/log_run.log
  25. 6 6
      src/main/java/co/dc/aptiv/AptivApp.java
  26. 28 25
      src/main/java/co/dc/aptiv/ScanFrame.java
  27. 10 27
      src/main/java/co/dc/aptiv/mina/CollectorMinaHandler.java
  28. 3 3
      src/main/java/co/dc/aptiv/mina/ComMinaA.java
  29. 6 7
      src/main/java/co/dc/aptiv/mina/MinaAbstract.java
  30. 2 2
      src/main/java/co/dc/aptiv/mina/MinaAbstractHandler.java
  31. 5 3
      src/main/java/co/dc/aptiv/mina/PLCMinaHandler.java
  32. 1 49
      src/main/java/co/dc/aptiv/mina/TestMachineCollectorMina.java
  33. 33 7
      src/main/java/co/dc/aptiv/mina/TestMachineCollectorMinaHandler.java
  34. 14 0
      src/main/java/co/dc/aptiv/pojo/MaterielPojo.java
  35. 5 5
      src/main/java/co/dc/aptiv/service/BillDetailService.java
  36. 6 6
      src/main/java/co/dc/aptiv/service/BillService.java
  37. 10 10
      src/main/java/co/dc/aptiv/service/MaterielService.java
  38. 65 66
      src/main/java/co/dc/aptiv/service/QrCodeService.java
  39. 8 8
      src/main/java/co/dc/aptiv/service/UserService.java
  40. 4 4
      src/main/resources/config.properties
  41. 123 122
      src/main/resources/logback.xml

+ 77 - 77
.idea/sonarlint/issuestore/1/2/12673843a8d25728fa6498c4afe5545da7b92d91

@@ -1,81 +1,81 @@
 
-Tsquid:S1444:"1Make this "public static billService" field final(�š½æþÿÿÿÿ8Êž¿ÉÈ,
-Psquid:S1444C"-Make this "public static plcMina" field final(¨§Þ¾ÿÿÿÿÿ8Êž¿ÉÈ,
-zsquid:S001166"VRename this field "textField_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(€þ�‡þÿÿÿÿ8Êž¿ÉÈ,
-Vsquid:S1444>"3Make this "public static qrcodeService" field final(ºÜéÎúÿÿÿÿ8Êž¿ÉÈ,
+esquid:S3027Ç"FPut single-quotes around '=' to use the faster "indexOf(char)" method.(²Áº×8¢Æß‚Í,
+zsquid:S001166"VRename this field "textField_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(€þ�‡þÿÿÿÿ8¢Æß‚Í,
+Qsquid:S1444G"3Make this "public static collectorMina" field final(Ží¬”8¢Æß‚Í,
+Hsquid:S1444Z"*Make this "public static flag" field final(°Ð÷ð8¢Æß‚Í,
+Bsquid:S1148¹"#Use a logger to log this exception.(Ç’Çê8¢Æß‚Í,
+¥squid:S1186Ö"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(˜Â½€øÿÿÿÿ8¢Æß‚Í,
+Ž"squid:ClassVariableVisibilityCheck<"YMake configuration a static final constant or non-public and provide accessors if needed.(è±ßò8¢Æß‚Í,
+Qsquid:S1444^".Make this "public static billPojo" field final(¸‡åîþÿÿÿÿ8¢Æß‚Í,
+`squid:S1126´"AReplace this if-then-else statement by a single return statement.(ñ¬ÂØ8¢Æß‚Í,
+Gsquid:S1125Ì")Remove the literal "false" boolean value.(éüú!8¢Æß‚Í,
+Psquid:S1444C"-Make this "public static plcMina" field final(¨§Þ¾ÿÿÿÿÿ8¢Æß‚Í,
+Nsquid:S00108¿")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8¢Æß‚Í,
+hsquid:S1192­"IDefine a constant instead of duplicating this literal "lastname" 5 times.(¢ÙƒÙ8¢Æß‚Í,
+vsquid:S3776î"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(�·žòþÿÿÿÿ8¢Æß‚Í,
+‘"squid:ClassVariableVisibilityCheck8"WMake queryRunner a static final constant or non-public and provide accessors if needed.(¹õ…äþÿÿÿÿ8¢Æß‚Í,
+Œ"squid:ClassVariableVisibilityCheckb"RMake qrCode a static final constant or non-public and provide accessors if needed.(þ‹’ƒÿÿÿÿÿ8¢Æß‚Í,
+Lsquid:S1444n")Make this "public static ccu" field final(­óþòüÿÿÿÿ8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheckV"[Make nowMaterielPojo a static final constant or non-public and provide accessors if needed.(©„î�8¢Æß‚Í,
+Ž"squid:ClassVariableVisibilityCheckG"YMake collectorMina a static final constant or non-public and provide accessors if needed.(Ží¬”8¢Æß‚Í,
+´%squid:RedundantThrowsDeclarationCheck�"vRemove the declaration of thrown exception 'java.net.UnknownHostException', as it cannot be thrown from method's body.(ÂïÖ�øÿÿÿÿ8¢Æß‚Í,
+“"squid:ClassVariableVisibilityCheck>"YMake qrcodeService a static final constant or non-public and provide accessors if needed.(ºÜéÎúÿÿÿÿ8¢Æß‚Í,
+squid:S1192˜"[Define a constant instead of duplicating this literal "/co/dc/aptiv/img/close.png" 3 times.(®£Ž˜ùÿÿÿÿ8¢Æß‚Í,
+Tsquid:S14448"1Make this "public static queryRunner" field final(¹õ…äþÿÿÿÿ8¢Æß‚Í,
+Tsquid:S1444:"1Make this "public static billService" field final(�š½æþÿÿÿÿ8¢Æß‚Í,
+Rsquid:S1444K"/Make this "public static printMina" field final(ëâЛýÿÿÿÿ8¢Æß‚Í,
+isquid:CommentedOutCodeLinef"<This block of commented-out lines of code should be removed.(·¹¥Û8ÏÂï¦Í,
+vsquid:S00117Ç"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê’Ü”úÿÿÿÿ8¢Æß‚Í,
+ž"squid:ClassVariableVisibilityCheckO"dMake testMachineCollectorMina a static final constant or non-public and provide accessors if needed.(åÞéºúÿÿÿÿ8¢Æß‚Í,
+Msquid:S1125«")Remove the literal "false" boolean value.(·èÀßýÿÿÿÿ8¢Æß‚Í,
+usquid:S2159Ä"VRemove this call to "equals"; comparisons between unrelated types always return false.(Øø÷‰8¢Æß‚Í,
+Osquid:S1444b",Make this "public static qrCode" field final(þ‹’ƒÿÿÿÿÿ8¢Æß‚Í,
+`
+squid:S899•"BDo something with the "boolean" value returned by "createNewFile".(äÌÖ’8¢Æß‚Í,
 W
-squid:S106Ö"9Replace this use of System.out or System.err by a logger.(×ì÷Œ8Êž¿ÉÈ,
-`squid:S1126š"AReplace this if-then-else statement by a single return statement.(¿ÓÔ†8Êž¿ÉÈ,
-`squid:S1126´"AReplace this if-then-else statement by a single return statement.(ñ¬ÂØ8Êž¿ÉÈ,
-Osquid:S1444b",Make this "public static qrCode" field final(þ‹’ƒÿÿÿÿÿ8Êž¿ÉÈ,
-esquid:S3027Ç"FPut single-quotes around '=' to use the faster "indexOf(char)" method.(²Áº×8Êž¿ÉÈ,
-Zsquid:S1444;"7Make this "public static billDetailService" field final(‰Ížûùÿÿÿÿ8Êž¿ÉÈ,
-ž"squid:ClassVariableVisibilityCheckO"dMake testMachineCollectorMina a static final constant or non-public and provide accessors if needed.(åÞéºúÿÿÿÿ8Êž¿ÉÈ,
-\
-squid:S106Ø"9Replace this use of System.out or System.err by a logger.(úšˆáýÿÿÿÿ8Êž¿ÉÈ,
-jsquid:CommentedOutCodeLineÚ"<This block of commented-out lines of code should be removed.(ß‹§€8Êž¿ÉÈ,
-Ž"squid:ClassVariableVisibilityCheckG"YMake collectorMina a static final constant or non-public and provide accessors if needed.(Ží¬”8Êž¿ÉÈ,
-Qsquid:S1444<"3Make this "public static configuration" field final(è±ßò8Êž¿ÉÈ,
-Msquid:S1125µ")Remove the literal "false" boolean value.( ­ÿìüÿÿÿÿ8Êž¿ÉÈ,
-Nsquid:S00108¿")Either remove or fill this block of code.(±Ÿ—±ÿÿÿÿÿ8Êž¿ÉÈ,
-Msquid:S1125«")Remove the literal "false" boolean value.(·èÀßýÿÿÿÿ8Êž¿ÉÈ,
-Msquid:S1125Á")Remove the literal "false" boolean value.(ÄØƒ�ùÿÿÿÿ8Êž¿ÉÈ,
-‹"squid:ClassVariableVisibilityCheck9"WMake userService a static final constant or non-public and provide accessors if needed.(èºÔ8Êž¿ÉÈ,
-“"squid:ClassVariableVisibilityCheck>"YMake qrcodeService a static final constant or non-public and provide accessors if needed.(ºÜéÎúÿÿÿÿ8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheck?"VMake windowUtil a static final constant or non-public and provide accessors if needed.(³ÛëŽýÿÿÿÿ8Êž¿ÉÈ,
-hsquid:S1192­"IDefine a constant instead of duplicating this literal "lastname" 5 times.(¢ÙƒÙ8Êž¿ÉÈ,
-squid:S1192˜"[Define a constant instead of duplicating this literal "/co/dc/aptiv/img/close.png" 3 times.(®£Ž˜ùÿÿÿÿ8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheck="[Make materielService a static final constant or non-public and provide accessors if needed.(þ€ä—8Êž¿ÉÈ,
-‰"squid:ClassVariableVisibilityCheckn"OMake ccu a static final constant or non-public and provide accessors if needed.(­óþòüÿÿÿÿ8Êž¿ÉÈ,
-Zsquid:S2696Ë"6Make the enclosing method "static" or remove this set.(´¨àŒùÿÿÿÿ8Êž¿ÉÈ,
-Rsquid:S1444K"/Make this "public static printMina" field final(ëâЛýÿÿÿÿ8Êž¿ÉÈ,
+squid:S106Õ"9Replace this use of System.out or System.err by a logger.(º°ïã8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheckK"UMake printMina a static final constant or non-public and provide accessors if needed.(ëâЛýÿÿÿÿ8¢Æß‚Í,
+‰"squid:ClassVariableVisibilityCheckn"OMake ccu a static final constant or non-public and provide accessors if needed.(­óþòüÿÿÿÿ8¢Æß‚Í,
+‹"squid:ClassVariableVisibilityCheckQ"VMake loginToken a static final constant or non-public and provide accessors if needed.(šç�«8¢Æß‚Í,
+Nsquid:S14449"1Make this "public static userService" field final(èºÔ8¢Æß‚Í,
+Ssquid:S1444?"0Make this "public static windowUtil" field final(³ÛëŽýÿÿÿÿ8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheck?"VMake windowUtil a static final constant or non-public and provide accessors if needed.(³ÛëŽýÿÿÿÿ8¢Æß‚Í,
 W
-squid:S106×"9Replace this use of System.out or System.err by a logger.(¬·öý8Êž¿ÉÈ,
-Lsquid:S1444n")Make this "public static ccu" field final(­óþòüÿÿÿÿ8Êž¿ÉÈ,
-Ssquid:S1444V"5Make this "public static nowMaterielPojo" field final(©„î�8Êž¿ÉÈ,
-Msquid:S1444Z"*Make this "public static flag" field final(ÕȾëüÿÿÿÿ8Êž¿ÉÈ,
-Qsquid:S1444^".Make this "public static billPojo" field final(¸‡åîþÿÿÿÿ8Êž¿ÉÈ,
-Qsquid:S1444G"3Make this "public static collectorMina" field final(Ží¬”8Êž¿ÉÈ,
-asquid:S1444O">Make this "public static testMachineCollectorMina" field final(åÞéºúÿÿÿÿ8Êž¿ÉÈ,
-Ž"squid:ClassVariableVisibilityCheck^"TMake billPojo a static final constant or non-public and provide accessors if needed.(¸‡åîþÿÿÿÿ8Êž¿ÉÈ,
-`
-squid:S899•"BDo something with the "boolean" value returned by "createNewFile".(äÌÖ’8Êž¿ÉÈ,
-Ž"squid:ClassVariableVisibilityCheck<"YMake configuration a static final constant or non-public and provide accessors if needed.(è±ßò8Êž¿ÉÈ,
-esquid:S3027É"FPut single-quotes around '?' to use the faster "indexOf(char)" method.(ÚÒ÷Ö8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheckK"UMake printMina a static final constant or non-public and provide accessors if needed.(ëâЛýÿÿÿÿ8Êž¿ÉÈ,
-Nsquid:S14449"1Make this "public static userService" field final(èºÔ8Êž¿ÉÈ,
-Bsquid:S1148¹"#Use a logger to log this exception.(Ç’Çê8Êž¿ÉÈ,
-Ssquid:S1444?"0Make this "public static windowUtil" field final(³ÛëŽýÿÿÿÿ8Êž¿ÉÈ,
-isquid:CommentedOutCodeLinej"<This block of commented-out lines of code should be removed.(§¸ŸÖ8Ìþ¨ëÈ,
-Gsquid:S1125Ì")Remove the literal "false" boolean value.(éüú!8Êž¿ÉÈ,
-Zsquid:S2696ò"6Make the enclosing method "static" or remove this set.(´¨àŒùÿÿÿÿ8Êž¿ÉÈ,
-jsquid:CommentedOutCodeLineð"<This block of commented-out lines of code should be removed.(úàŽÑ8Êž¿ÉÈ,
-—"squid:ClassVariableVisibilityCheck;"]Make billDetailService a static final constant or non-public and provide accessors if needed.(‰Ížûùÿÿÿÿ8Êž¿ÉÈ,
-vsquid:S00117Ç"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê’Ü”úÿÿÿÿ8Êž¿ÉÈ,
-vsquid:S00117ì"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê’Ü”úÿÿÿÿ8Êž¿ÉÈ,
-Ssquid:S1444="5Make this "public static materielService" field final(þ€ä—8Êž¿ÉÈ,
-Œ"squid:ClassVariableVisibilityCheckb"RMake qrCode a static final constant or non-public and provide accessors if needed.(þ‹’ƒÿÿÿÿÿ8Êž¿ÉÈ,
-‘"squid:ClassVariableVisibilityCheck8"WMake queryRunner a static final constant or non-public and provide accessors if needed.(¹õ…äþÿÿÿÿ8Êž¿ÉÈ,
-osquid:CommentedOutCodeLineö"<This block of commented-out lines of code should be removed.(úèû¬úÿÿÿÿ8Êž¿ÉÈ,
-gsquid:HiddenFieldCheckÓ"8Rename "ccu" which hides the field declared at line 110.(€Ïàíøÿÿÿÿ8Êž¿ÉÈ,
-‘"squid:ClassVariableVisibilityCheck:"WMake billService a static final constant or non-public and provide accessors if needed.(�š½æþÿÿÿÿ8Êž¿ÉÈ,
-Psquid:S14440"-Make this "public static session" field final(íѽªûÿÿÿÿ8Êž¿ÉÈ,
-usquid:S2159é"VRemove this call to "equals"; comparisons between unrelated types always return false.(뿱Ì8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheck0"SMake session a static final constant or non-public and provide accessors if needed.(íѽªûÿÿÿÿ8Êž¿ÉÈ,
-‹"squid:ClassVariableVisibilityCheckQ"VMake loginToken a static final constant or non-public and provide accessors if needed.(šç�«8Êž¿ÉÈ,
-isquid:CommentedOutCodeLinef"<This block of commented-out lines of code should be removed.(�˜à¡8À ³ëÈ,
-usquid:S2159Ä"VRemove this call to "equals"; comparisons between unrelated types always return false.(Øø÷‰8Êž¿ÉÈ,
+squid:S106×"9Replace this use of System.out or System.err by a logger.(¬·öý8¢Æß‚Í,
+ squid:S1186Ù"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(��÷—8¢Æß‚Í,
+wsquid:S14504"ZRemove the "contentPane" field and declare it as a local variable in the relevant methods.(į�_8¢Æß‚Í,
 W
-squid:S106Õ"9Replace this use of System.out or System.err by a logger.(º°ïã8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheckV"[Make nowMaterielPojo a static final constant or non-public and provide accessors if needed.(©„î�8Êž¿ÉÈ,
-Š"squid:ClassVariableVisibilityCheckZ"PMake flag a static final constant or non-public and provide accessors if needed.(ÕȾëüÿÿÿÿ8Êž¿ÉÈ,
-�"squid:ClassVariableVisibilityCheckC"SMake plcMina a static final constant or non-public and provide accessors if needed.(¨§Þ¾ÿÿÿÿÿ8Êž¿ÉÈ,
-Nsquid:S1444Q"0Make this "public static loginToken" field final(šç�«8Êž¿ÉÈ,
-vsquid:S3776î"RRefactor this method to reduce its Cognitive Complexity from 18 to the 15 allowed.(�·žòþÿÿÿÿ8Êž¿ÉÈ,
-msquid:S2095—"NUse try-with-resources or close this "RandomAccessFile" in a "finally" clause.(¤ôކ8Êž¿ÉÈ,
-¥squid:S1186Ö"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(˜Â½€øÿÿÿÿ8Êž¿ÉÈ,
-´%squid:RedundantThrowsDeclarationCheck�"vRemove the declaration of thrown exception 'java.net.UnknownHostException', as it cannot be thrown from method's body.(ÂïÖ�øÿÿÿÿ8Êž¿ÉÈ,
-msquid:S00100Ò"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(‚›µJ8Êž¿ÉÈ,
-Tsquid:S14448"1Make this "public static queryRunner" field final(¹õ…äþÿÿÿÿ8Êž¿ÉÈ,
- squid:S1186Ù"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(��÷—8Êž¿ÉÈ,
-wsquid:S14504"ZRemove the "contentPane" field and declare it as a local variable in the relevant methods.(į�_8Êž¿ÉÈ,
+squid:S106Ö"9Replace this use of System.out or System.err by a logger.(×ì÷Œ8¢Æß‚Í,
+usquid:S2159é"VRemove this call to "equals"; comparisons between unrelated types always return false.(뿱Ì8¢Æß‚Í,
+Zsquid:S2696ò"6Make the enclosing method "static" or remove this set.(´¨àŒùÿÿÿÿ8¢Æß‚Í,
+Ssquid:S1444="5Make this "public static materielService" field final(þ€ä—8¢Æß‚Í,
+msquid:S2095—"NUse try-with-resources or close this "RandomAccessFile" in a "finally" clause.(¤ôކ8¢Æß‚Í,
+msquid:S00100Ò"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(‚›µJ8¢Æß‚Í,
+gsquid:HiddenFieldCheckÓ"8Rename "ccu" which hides the field declared at line 110.(€Ïàíøÿÿÿÿ8¢Æß‚Í,
+Ssquid:S1444V"5Make this "public static nowMaterielPojo" field final(©„î�8¢Æß‚Í,
+esquid:S3027É"FPut single-quotes around '?' to use the faster "indexOf(char)" method.(ÚÒ÷Ö8¢Æß‚Í,
+—"squid:ClassVariableVisibilityCheck;"]Make billDetailService a static final constant or non-public and provide accessors if needed.(‰Ížûùÿÿÿÿ8¢Æß‚Í,
+Nsquid:S1444Q"0Make this "public static loginToken" field final(šç�«8¢Æß‚Í,
+Msquid:S1125µ")Remove the literal "false" boolean value.( ­ÿìüÿÿÿÿ8¢Æß‚Í,
+Qsquid:S1444<"3Make this "public static configuration" field final(è±ßò8¢Æß‚Í,
+Vsquid:S1444>"3Make this "public static qrcodeService" field final(ºÜéÎúÿÿÿÿ8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheck0"SMake session a static final constant or non-public and provide accessors if needed.(íѽªûÿÿÿÿ8¢Æß‚Í,
+‹"squid:ClassVariableVisibilityCheck9"WMake userService a static final constant or non-public and provide accessors if needed.(èºÔ8¢Æß‚Í,
+\
+squid:S106Ø"9Replace this use of System.out or System.err by a logger.(úšˆáýÿÿÿÿ8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheckC"SMake plcMina a static final constant or non-public and provide accessors if needed.(¨§Þ¾ÿÿÿÿÿ8¢Æß‚Í,
+`squid:S1126š"AReplace this if-then-else statement by a single return statement.(¿ÓÔ†8¢Æß‚Í,
+jsquid:CommentedOutCodeLineÚ"<This block of commented-out lines of code should be removed.(ß‹§€8¢Æß‚Í,
+vsquid:S00117ì"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê’Ü”úÿÿÿÿ8¢Æß‚Í,
+Zsquid:S2696Ë"6Make the enclosing method "static" or remove this set.(´¨àŒùÿÿÿÿ8¢Æß‚Í,
+Msquid:S1125Á")Remove the literal "false" boolean value.(ÄØƒ�ùÿÿÿÿ8¢Æß‚Í,
+Ž"squid:ClassVariableVisibilityCheck^"TMake billPojo a static final constant or non-public and provide accessors if needed.(¸‡åîþÿÿÿÿ8¢Æß‚Í,
+Zsquid:S1444;"7Make this "public static billDetailService" field final(‰Ížûùÿÿÿÿ8¢Æß‚Í,
+asquid:S1444O">Make this "public static testMachineCollectorMina" field final(åÞéºúÿÿÿÿ8¢Æß‚Í,
+osquid:CommentedOutCodeLineö"<This block of commented-out lines of code should be removed.(úèû¬úÿÿÿÿ8¢Æß‚Í,
+nsquid:CommentedOutCodeLinej"<This block of commented-out lines of code should be removed.(±ûÖÊýÿÿÿÿ8ÏÂï¦Í,
+Psquid:S14440"-Make this "public static session" field final(íѽªûÿÿÿÿ8¢Æß‚Í,
+jsquid:CommentedOutCodeLineð"<This block of commented-out lines of code should be removed.(úàŽÑ8¢Æß‚Í,
+‘"squid:ClassVariableVisibilityCheck:"WMake billService a static final constant or non-public and provide accessors if needed.(�š½æþÿÿÿÿ8¢Æß‚Í,
+…"squid:ClassVariableVisibilityCheckZ"PMake flag a static final constant or non-public and provide accessors if needed.(°Ð÷ð8¢Æß‚Í,
+�"squid:ClassVariableVisibilityCheck="[Make materielService a static final constant or non-public and provide accessors if needed.(þ€ä—8¢Æß‚Í,

+ 8 - 8
.idea/sonarlint/issuestore/1/2/126c795aaaa4514a9310a384c977b33ca2921ad8

@@ -1,11 +1,11 @@
 
-Fsquid:S1444-"*Make this "public static flag" field final(ÕȾëüÿÿÿÿ
-nsquid:CommentedOutCodeLineU"<This block of commented-out lines of code should be removed.(Ä�ûéüÿÿÿÿ8ì�¤ëÈ,
-ƒ"squid:ClassVariableVisibilityCheck-"PMake flag a static final constant or non-public and provide accessors if needed.(ÕȾëüÿÿÿÿ
-†"squid:ClassVariableVisibilityCheck/"XMake waringStatus a static final constant or non-public and provide accessors if needed.(Á‡Š’
-Isquid:S1444/"2Make this "public static waringStatus" field final(Á‡Š’
-Ksquid:S1066T"/Merge this if statement with the enclosing one.(Á݆çýÿÿÿÿ
 Ssquid:S23877"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ
-4squid:S2386/"Make this member "protected".(Á‡Š’
 gsquid:CommentedOutCodeLineD"<This block of commented-out lines of code should be removed.(èúµÈûÿÿÿÿ
-˜squid:S1186]"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Ú¿û¤
+isquid:CommentedOutCodeLineU"<This block of commented-out lines of code should be removed.(ŒÌ½’8ŽÇó¦Í,
+Ksquid:S1066T"/Merge this if statement with the enclosing one.(Á݆çýÿÿÿÿ
+†"squid:ClassVariableVisibilityCheck/"XMake waringStatus a static final constant or non-public and provide accessors if needed.(Á‡Š’
+˜squid:S1186]"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Ú¿û¤
+4squid:S2386/"Make this member "protected".(Á‡Š’
+Isquid:S1444/"2Make this "public static waringStatus" field final(Á‡Š’
+ƒ"squid:ClassVariableVisibilityCheck-"PMake flag a static final constant or non-public and provide accessors if needed.(ÕȾëüÿÿÿÿ
+Fsquid:S1444-"*Make this "public static flag" field final(ÕȾëüÿÿÿÿ

+ 6 - 7
.idea/sonarlint/issuestore/1/a/1a41ca92836a975ce9a2d14a8048364b77f01045

@@ -1,8 +1,7 @@
 
-bsquid:S1155£">Use isEmpty() to check whether the collection is empty or not.(­öó‰üÿÿÿÿ8ô—œâÈ,
-Fsquid:S1148r"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8“�§ÊÈ,
-fsquid:S1854Y"CRemove this useless assignment to local variable "billDetailPojos".(¤·µñúÿÿÿÿ8“�§ÊÈ,
-isquid:S1192["LDefine a constant instead of duplicating this literal "updatedflag" 3 times.(ûòÁ8“�§ÊÈ,
-\squid:S1155]">Use isEmpty() to check whether the collection is empty or not.(ËÐÒ¤8“�§ÊÈ,
-Gsquid:S1148‘"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8ô—œâÈ,
-esquid:S1192³"FDefine a constant instead of duplicating this literal "index" 3 times.(²‹Ïå8ô—œâÈ,
+bsquid:S1155£">Use isEmpty() to check whether the collection is empty or not.(­öó‰üÿÿÿÿ8´ª›¨Ì,
+\squid:S1155]">Use isEmpty() to check whether the collection is empty or not.(ËÐÒ¤8´ª›¨Ì,
+Fsquid:S1148r"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8´ª›¨Ì,
+isquid:S1192["LDefine a constant instead of duplicating this literal "updatedflag" 3 times.(ûòÁ8´ª›¨Ì,
+esquid:S1192³"FDefine a constant instead of duplicating this literal "index" 3 times.(²‹Ïå8´ª›¨Ì,
+fsquid:S1854Y"CRemove this useless assignment to local variable "billDetailPojos".(¤·µñúÿÿÿÿ8´ª›¨Ì,

+ 3 - 2
.idea/sonarlint/issuestore/1/d/1ddf276c69e765a10a7a4c22af6d481ddca64b03

@@ -1,3 +1,4 @@
 
-Rsquid:S1068"/Remove this unused "billService" private field.(ªŠŽ•ùÿÿÿÿ8¼žæÖ¼,
-isquid:CommentedOutCodeLine,"<This block of commented-out lines of code should be removed.(Þ»þ�8¼žæÖ¼,
+Rsquid:S1068"/Remove this unused "billService" private field.(ªŠŽ•ùÿÿÿÿ8¼žæÖ¼,
+usquid:S3776*"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(�éͰøÿÿÿÿ8ºò÷­Ì,
+Ysquid:S26968"6Make the enclosing method "static" or remove this set.(”…�þýÿÿÿÿ8ºò÷­Ì,

+ 15 - 9
.idea/sonarlint/issuestore/2/8/28ab7cae577594b0b0f2d89420339ae0fd5feeb7

@@ -1,11 +1,17 @@
 
-Rsquid:S1066Y"/Merge this if statement with the enclosing one.(ªŠôåþÿÿÿÿ8ôÈ××¼,
-isquid:CommentedOutCodeLine@"<This block of commented-out lines of code should be removed.(ׯì£8׎²ëÈ,
-hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8¾µè¬Â,
-Esquid:S1068"'Remove this unused "log" private field.(ƒàç¤8¾µè¬Â,
-Ÿsquid:S1186Q"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Ú¿û¤8ôÈ××¼,
+hsquid:UselessImportCheck
+">Remove this unused import 'co.dc.aptiv.service.QrCodeService'.(”ø“a8«Ê�®Ì,
+Ksquid:S11859"(Remove this method to simply inherit it.(Ž·üÆþÿÿÿÿ8ôÈ××¼,
+asquid:UselessImportCheck"1Remove this unused import 'co.dc.aptiv.AptivApp'.(ˆÃƳþÿÿÿÿ8Û¶ú­Ì,
 Zsquid:S2387"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ8ôÈ××¼,
-Ysquid:S2696A"6Make the enclosing method "static" or remove this set.(”…�þýÿÿÿÿ8ôÈ××¼,
-Ksquid:S1125X"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ôÈ××¼,
-nsquid:CommentedOutCodeLineD"<This block of commented-out lines of code should be removed.(騻Úûÿÿÿÿ8׎²ëÈ,
-Ksquid:S1185b"(Remove this method to simply inherit it.(Ž·üÆþÿÿÿÿ8ôÈ××¼,
+hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8¾µè¬Â,
+Rsquid:S10661"/Merge this if statement with the enclosing one.(ªŠôåþÿÿÿÿ8ôÈ××¼,
+lsquid:UselessImportCheck"ARemove this unused import 'org.apache.mina.core.buffer.IoBuffer'.(ÓÐúÛ8Û¶ú­Ì,
+Ksquid:S11250"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ôÈ××¼,
+Esquid:S1068"'Remove this unused "log" private field.(ƒàç¤8Û¶ú­Ì,
+psquid:UselessImportCheck	"@Remove this unused import 'co.dc.aptiv.service.MaterielService'.(°­·“ýÿÿÿÿ8«Ê�®Ì,
+tsquid:UselessImportCheck"DRemove this unused import 'org.apache.mina.core.session.IdleStatus'.(åëãûùÿÿÿÿ8Õüõ­Ì,
+esquid:UselessImportCheck":Remove this unused import 'co.dc.aptiv.pojo.MaterielPojo'.(© —Š8Û¶ú­Ì,
+msquid:UselessImportCheck"CRemove this unused import 'org.apache.mina.core.session.IoSession'.(…¾�8Û¶ú­Ì,
+Msquid:S001081")Either remove or fill this block of code.(ªŠôåþÿÿÿÿ8ÉŸ’®Ì,
+]squid:UselessImportCheck"2Remove this unused import 'co.dc.aptiv.ScanFrame'.(•™©·8ÉŸ’®Ì,

+ 4 - 4
.idea/sonarlint/issuestore/3/8/382ca23d8d34a5926c139b4719cf685f3482ae7c

@@ -1,7 +1,7 @@
 
-Dsquid:S1125:"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ
-Ssquid:S2387"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ
-Ksquid:S1066;"/Merge this if statement with the enclosing one.(ªŠôåþÿÿÿÿ
+bsquid:CommentedOutCodeLine+"<This block of commented-out lines of code should be removed.(Ó™í”
 Csquid:S1068"'Remove this unused "log" private field.(ß”‰áøÿÿÿÿ
+Dsquid:S1125:"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ
 Fsquid:S00108;")Either remove or fill this block of code.(ªŠôåþÿÿÿÿ
-bsquid:CommentedOutCodeLine+"<This block of commented-out lines of code should be removed.(Ó™í”
+Ssquid:S2387"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ
+Ksquid:S1066;"/Merge this if statement with the enclosing one.(ªŠôåþÿÿÿÿ

+ 6 - 6
.idea/sonarlint/issuestore/3/f/3fb2c6300c06d424cd20d6aaa59c7468e917aec2

@@ -1,7 +1,7 @@
 
-Gsquid:S1148ž"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8Ëà´ÌÈ,
-[squid:S1155Ý">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ
-[squid:S1155»">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ
-osquid:S00117Ö"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(îÿ”®üÿÿÿÿ
-@squid:S1148ä"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ
-squid:S4165Ç"gRemove this useless assignment; "reBoolean" already holds the assigned value along all execution paths.(‚¿Ö‰
+†squid:S4165Ç"gRemove this useless assignment; "reBoolean" already holds the assigned value along all execution paths.(‚¿Ö‰8§³Í§Ì,
+Gsquid:S1148ž"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8§³Í§Ì,
+vsquid:S00117Ö"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(îÿ”®üÿÿÿÿ8§³Í§Ì,
+Gsquid:S1148ä"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8§³Í§Ì,
+bsquid:S1155Ý">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ8§³Í§Ì,
+bsquid:S1155»">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ8§³Í§Ì,

+ 1 - 1
.idea/sonarlint/issuestore/4/3/43b88a13b0dd73d1e683ec42479e2799a8074af7

@@ -1,2 +1,2 @@
 
-rsquid:S00115"ZRename this constant name to match the regular expression '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.(û†Ææ
+psquid:S00115"ZRename this constant name to match the regular expression '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$'.(û†Ææ

+ 2 - 2
.idea/sonarlint/issuestore/4/5/45c365228acec60ff1951ec94508dfc81c6d01f4

@@ -1,7 +1,7 @@
 
-Ksquid:S1066?"/Merge this if statement with the enclosing one.(‹ÎþÇøÿÿÿÿ
 ˜squid:S1186)"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Ä£»‹
 ˜squid:S1186-"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ÝÕŽõ
 ˜squid:S11861"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(�–ÿì
 ˜squid:S1186F"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ì½ÏÔ
-˜squid:S1186J"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ã—ò¯
+˜squid:S1186J"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ã—ò¯
+Ksquid:S1066?"/Merge this if statement with the enclosing one.(‹ÎþÇøÿÿÿÿ

+ 3 - 7
.idea/sonarlint/issuestore/6/5/655f0b636817439dcddd21df216cbafc8301054b

@@ -1,10 +1,6 @@
 
-Ysquid:S26969"6Make the enclosing method "static" or remove this set.(Å�Ž«ÿÿÿÿÿ8ƒŠÏ´Â,
+Ysquid:S2696:"6Make the enclosing method "static" or remove this set.(Å�Ž«ÿÿÿÿÿ8ƒŠÏ´Â,
 Ksquid:S1068"/Remove this unused "billService" private field.(ªŠŽ•ùÿÿÿÿ
+nsquid:CommentedOutCodeLineX"<This block of commented-out lines of code should be removed.(¦Ž®éûÿÿÿÿ8»‹È´Â,
 ]squid:UselessImportCheck"2Remove this unused import 'co.dc.aptiv.ScanFrame'.(•™©·8¸ÛœÂÂ,
-nsquid:CommentedOutCodeLineV"<This block of commented-out lines of code should be removed.(¦Ž®éûÿÿÿÿ8»‹È´Â,
-[
-squid:S106M"9Replace this use of System.out or System.err by a logger.(ùíøŽùÿÿÿÿ8¥²¶¶Â,
-hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8ÃåÄ´Â,
-V
-squid:S106I"9Replace this use of System.out or System.err by a logger.(ð©â¿8�»µ¶Â,
+hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8ÃåÄ´Â,

+ 13 - 13
.idea/sonarlint/issuestore/9/3/9386acd216a2d06a0765c557a20a966c0b247c7c

@@ -1,21 +1,21 @@
 
 Hsquid:S1125Á")Remove the literal "false" boolean value.(ß¿Æó8ŠÝå×¼,
-esquid:S2142Ë"FEither re-interrupt this method or rethrow the "InterruptedException".(ä ¹€8ŠÝå×¼,
-bsquid:S2276Ê"CReplace the call to "Thread.sleep(...)" with a call to "wait(...)".(á³ñ±8ŠÝå×¼,
-nsquid:CommentedOutCodeLineQ"<This block of commented-out lines of code should be removed.(ª£ŒŸþÿÿÿÿ8ŠÝå×¼,
-dsquid:S1126|"AReplace this if-then-else statement by a single return statement.(±Ö�£øÿÿÿÿ8ŠÝå×¼,
+esquid:S2184Ê"FCast one of the operands of this multiplication operation to a "long".(á³ñ±8ŠÝå×¼,
 Gsquid:S1125¦"(Remove the literal "true" boolean value.(üøÎ·8ŠÝå×¼,
 Hsquid:S1125¦")Remove the literal "false" boolean value.(üøÎ·8ŠÝå×¼,
-Msquid:S1125Œ")Remove the literal "false" boolean value.(”½éøýÿÿÿÿ8ŠÝå×¼,
-Ksquid:S1125["(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ŠÝå×¼,
-Gsquid:S1148Ì"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8ŠÝå×¼,
-`squid:S1126›"AReplace this if-then-else statement by a single return statement.(ãýØÌ8ŠÝå×¼,
-Gsquid:S1125k")Remove the literal "false" boolean value.(±‹óƒ8ŠÝå×¼,
-Xsquid:S1141m"5Extract this nested try block into a separate method.(¡»¢üùÿÿÿÿ8ŠÝå×¼,
-Ksquid:S1125E"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ŠÝå×¼,
-esquid:S2184Ê"FCast one of the operands of this multiplication operation to a "long".(á³ñ±8ŠÝå×¼,
+esquid:S2142Ë"FEither re-interrupt this method or rethrow the "InterruptedException".(ä ¹€8ŠÝå×¼,
 Ksquid:S1125j"(Remove the literal "true" boolean value.(¼’î¿ÿÿÿÿÿ8ŠÝå×¼,
+Ksquid:S1125["(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ŠÝå×¼,
 isquid:CommentedOutCodeLineW"<This block of commented-out lines of code should be removed.(Ÿ£�®8ŠÝå×¼,
+Xsquid:S1141m"5Extract this nested try block into a separate method.(¡»¢üùÿÿÿÿ8ŠÝå×¼,
+Gsquid:S1148Ì"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8ŠÝå×¼,
+nsquid:CommentedOutCodeLine9"<This block of commented-out lines of code should be removed.(ª£ŒŸþÿÿÿÿ8ŠÝå×¼,
 w
 squid:S135¿"YReduce the total number of break and continue statements in this loop to use at most one.(´ÿÕ™8ŠÝå×¼,
-nsquid:CommentedOutCodeLine9"<This block of commented-out lines of code should be removed.(ª£ŒŸþÿÿÿÿ8ŠÝå×¼,
+Ksquid:S1125E"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ8ŠÝå×¼,
+Gsquid:S1125k")Remove the literal "false" boolean value.(±‹óƒ8ŠÝå×¼,
+`squid:S1126š"AReplace this if-then-else statement by a single return statement.(ãýØÌ8ŠÝå×¼,
+bsquid:S2276Ê"CReplace the call to "Thread.sleep(...)" with a call to "wait(...)".(á³ñ±8ŠÝå×¼,
+nsquid:CommentedOutCodeLineQ"<This block of commented-out lines of code should be removed.(ª£ŒŸþÿÿÿÿ8ŠÝå×¼,
+dsquid:S1126|"AReplace this if-then-else statement by a single return statement.(±Ö�£øÿÿÿÿ8ŠÝå×¼,
+Msquid:S1125Œ")Remove the literal "false" boolean value.(”½éøýÿÿÿÿ8ŠÝå×¼,

+ 7 - 6
.idea/sonarlint/issuestore/9/c/9c52b7c0ee59d7f181874ad5e513b52af041e83b

@@ -1,7 +1,8 @@
 
-hsquid:CommentedOutCodeLinef"<This block of commented-out lines of code should be removed.(¨Òí$8ä§¥ëÈ,
-Tsquid:S2696S"6Make the enclosing method "static" or remove this set.(dz¾À8¬Ñ…ÉÈ,
-jsquid:CommentedOutCodeLineÀ"<This block of commented-out lines of code should be removed.(¨�”ö8ùß²ëÈ,
-isquid:CommentedOutCodeLineL"<This block of commented-out lines of code should be removed.(‘€�–8Õ¶¬ëÈ,
-nsquid:CommentedOutCodeLineN"<This block of commented-out lines of code should be removed.(—šˆÍúÿÿÿÿ8ÌýªëÈ,
-nsquid:CommentedOutCodeLines"<This block of commented-out lines of code should be removed.(ï�˜ëüÿÿÿÿ8;®ëÈ,
+nsquid:CommentedOutCodeLineP"<This block of commented-out lines of code should be removed.(˜È«§ûÿÿÿÿ8ö·ð¦Í,
+Tsquid:S2696W"6Make the enclosing method "static" or remove this set.(dz¾À8¢Æß‚Í,
+esquid:S1192X"GDefine a constant instead of duplicating this literal "qrCode" 3 times.(ØÚ³–8¢Æß‚Í,
+isquid:CommentedOutCodeLineq"<This block of commented-out lines of code should be removed.(£Ïþœ8«žó¦Í,
+nsquid:CommentedOutCodeLineR"<This block of commented-out lines of code should be removed.(îÎÅ�üÿÿÿÿ8ðˆð¦Í,
+jsquid:CommentedOutCodeLine„"<This block of commented-out lines of code should be removed.(¨�”ö8ã�ñ¦Í,
+isquid:CommentedOutCodeLine9"<This block of commented-out lines of code should be removed.(›Ø÷î8¢Æß‚Í,

+ 15 - 15
.idea/sonarlint/issuestore/a/4/a4b72f2f8bd03912f4473efe0db25690cb00446f

@@ -1,23 +1,23 @@
 
+^squid:S00112;"FDefine and throw a dedicated exception instead of using a generic one.(Ñ»ñË
 rsquid:S3008"VRename this field "DATE_FORMAT" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ɉãïüÿÿÿÿ
-tsquid:S3008"XRename this field "NUMBER_FORMAT" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÂöÅ’þÿÿÿÿ
->squid:S1068"'Remove this unused "log" private field.(ž�Ö‘
-gsquid:CommentedOutCodeLine"<This block of commented-out lines of code should be removed.(»¥œíùÿÿÿÿ
+`squid:CallToDeprecatedMethod‡"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
 gsquid:CommentedOutCodeLine#"<This block of commented-out lines of code should be removed.(¾Êµ²þÿÿÿÿ
-bsquid:CommentedOutCodeLine1"<This block of commented-out lines of code should be removed.(½îí�
-bsquid:CommentedOutCodeLine3"<This block of commented-out lines of code should be removed.(ÆÑ—ù
-gsquid:CommentedOutCodeLineL"<This block of commented-out lines of code should be removed.(ª”Á›øÿÿÿÿ
-gsquid:CommentedOutCodeLine["<This block of commented-out lines of code should be removed.(Ò€Ûúþÿÿÿÿ
 gsquid:CommentedOutCodeLinei"<This block of commented-out lines of code should be removed.(Ò€Ûúþÿÿÿÿ
-‡"squid:ClassVariableVisibilityCheck"TMake workbook a static final constant or non-public and provide accessors if needed.(ý �¾ûÿÿÿÿ
-€"squid:ClassVariableVisibilityCheck!"RMake sheet0 a static final constant or non-public and provide accessors if needed.(ù´’î
+fsquid:CallToDeprecatedMethodÏ"8Remove this use of "CellRangeAddress"; it is deprecated.(±ýÔÄøÿÿÿÿ
+gsquid:CommentedOutCodeLine"<This block of commented-out lines of code should be removed.(»¥œíùÿÿÿÿ
+bsquid:CommentedOutCodeLine3"<This block of commented-out lines of code should be removed.(ÆÑ—ù
 _squid:CallToDeprecatedMethodY"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
-_squid:CallToDeprecatedMethodh"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
+gsquid:CommentedOutCodeLine["<This block of commented-out lines of code should be removed.(Ò€Ûúþÿÿÿÿ
 _squid:CallToDeprecatedMethody"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
-`squid:CallToDeprecatedMethod‡"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
-`squid:CallToDeprecatedMethod’"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
-fsquid:CallToDeprecatedMethod¬"8Remove this use of "CellRangeAddress"; it is deprecated.(„‡ÕŒüÿÿÿÿ
+>squid:S1068"'Remove this unused "log" private field.(ž�Ö‘
+_squid:CallToDeprecatedMethodh"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
 fsquid:CallToDeprecatedMethod¬"8Remove this use of "CellRangeAddress"; it is deprecated.(„‡ÕŒüÿÿÿÿ
 fsquid:CallToDeprecatedMethodÏ"8Remove this use of "CellRangeAddress"; it is deprecated.(±ýÔÄøÿÿÿÿ
-fsquid:CallToDeprecatedMethodÏ"8Remove this use of "CellRangeAddress"; it is deprecated.(±ýÔÄøÿÿÿÿ
-^squid:S00112;"FDefine and throw a dedicated exception instead of using a generic one.(Ñ»ñË
+fsquid:CallToDeprecatedMethod¬"8Remove this use of "CellRangeAddress"; it is deprecated.(„‡ÕŒüÿÿÿÿ
+‡"squid:ClassVariableVisibilityCheck"TMake workbook a static final constant or non-public and provide accessors if needed.(ý �¾ûÿÿÿÿ
+bsquid:CommentedOutCodeLine1"<This block of commented-out lines of code should be removed.(½îí�
+tsquid:S3008"XRename this field "NUMBER_FORMAT" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÂöÅ’þÿÿÿÿ
+€"squid:ClassVariableVisibilityCheck!"RMake sheet0 a static final constant or non-public and provide accessors if needed.(ù´’î
+`squid:CallToDeprecatedMethod’"2Remove this use of "createCell"; it is deprecated.(ÔÞ´»ýÿÿÿÿ
+gsquid:CommentedOutCodeLineL"<This block of commented-out lines of code should be removed.(ª”Á›øÿÿÿÿ

+ 3 - 3
.idea/sonarlint/issuestore/a/e/ae603b87087f937289b8baa36142bcf6635d0ac9

@@ -1,7 +1,7 @@
 
 gsquid:CommentedOutCodeLine*"<This block of commented-out lines of code should be removed.(´ƒÆÁúÿÿÿÿ
-Dsquid:S11259"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ
+Fsquid:S00108:")Either remove or fill this block of code.(ªŠôåþÿÿÿÿ
 Ksquid:S1066:"/Merge this if statement with the enclosing one.(ªŠôåþÿÿÿÿ
+Dsquid:S11259"(Remove the literal "true" boolean value.(Ùû£¾ÿÿÿÿÿ
 >squid:S1068"'Remove this unused "log" private field.(ÙŒ†¾
-Ssquid:S2387"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ
-Fsquid:S00108:")Either remove or fill this block of code.(ªŠôåþÿÿÿÿ
+Ssquid:S2387"7"queryRunner" is the name of a field in "MinaAbstract".(‘í„Øøÿÿÿÿ

+ 7 - 6
.idea/sonarlint/issuestore/b/0/b0fac8d6d7ead4e1c98dd97f3a289f028cd34032

@@ -1,7 +1,8 @@
 
-nsquid:S001173"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(„Ííœûÿÿÿÿ
-hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8Àîæ·Ã,
-usquid:S3776+"RRefactor this method to reduce its Cognitive Complexity from 19 to the 15 allowed.(�éͰøÿÿÿÿ8‰�áèÈ,
-nsquid:CommentedOutCodeLine4"<This block of commented-out lines of code should be removed.(ƒ”‘®ÿÿÿÿÿ8½Ø§ëÈ,
-Ksquid:S1068"/Remove this unused "billService" private field.(ªŠŽ•ùÿÿÿÿ
-gsquid:CommentedOutCodeLineS"<This block of commented-out lines of code should be removed.(¦Ž®éûÿÿÿÿ
+hsquid:UselessImportCheck"=Remove this unused import 'co.dc.commons.utils.DateTimeUtil'.(úµ×À8õ¬ï§Ì,
+lsquid:UselessImportCheck"<Remove this unused import 'co.dc.aptiv.pojo.BillDetailPojo'.(ý¦¡‰þÿÿÿÿ8õ¬ï§Ì,
+nsquid:CommentedOutCodeLineB"<This block of commented-out lines of code should be removed.(¦Ž®éûÿÿÿÿ8‰¾ï§Ì,
+Rsquid:S1068"/Remove this unused "billService" private field.(ªŠŽ•ùÿÿÿÿ8õ¬ï§Ì,
+nsquid:CommentedOutCodeLine7"<This block of commented-out lines of code should be removed.(騻Úûÿÿÿÿ8ºôõ¦Í,
+nsquid:CommentedOutCodeLine4"<This block of commented-out lines of code should be removed.(áûç�úÿÿÿÿ8ºôõ¦Í,
+nsquid:CommentedOutCodeLine2"<This block of commented-out lines of code should be removed.(ŽéŠŽÿÿÿÿÿ8ÙÉõ¦Í,

+ 3 - 3
.idea/sonarlint/issuestore/c/0/c099daf5e5ff836227290784f6d1d47a9ec6d0d7

@@ -1,7 +1,7 @@
 
+Nsquid:S2387"2"queryRunner" is the name of a field in "BaseDao".(‘í„Øøÿÿÿÿ
 ksquid:S1192?"ODefine a constant instead of duplicating this literal "select * from " 4 times.(�º™îûÿÿÿÿ
 wsquid:S1488j"`Immediately return this expression instead of assigning it to the temporary variable "userPojo".(·²œ­
+=squid:S1172i"&Remove these unused method parameters.(ø˜¥Ì
 ^squid:S1126Ü"AReplace this if-then-else statement by a single return statement.(ˆ¤œñþÿÿÿÿ
-Nsquid:S2387"2"queryRunner" is the name of a field in "BaseDao".(‘í„Øøÿÿÿÿ
-@squid:S1148„"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ
-=squid:S1172i"&Remove these unused method parameters.(ø˜¥Ì
+@squid:S1148„"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ

+ 55 - 55
.idea/sonarlint/issuestore/c/3/c31119428485a35a1366fae41e8bb396a9f1bfa9

@@ -1,56 +1,56 @@
 
-jsquid:UselessImportCheck"@Remove this unused import 'javax.swing.table.TableCellRenderer'.(É¡“8ƒÿŠÏÈ,
-qsquid:MaximumInheritanceDepth$"<This class has 6 parents which is greater than 5 authorized.(ˆ˜ë¶ÿÿÿÿÿ8ƒÿŠÏÈ,
-tsquid:S00116L"PRename this field "jsp_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÇÕä¿ÿÿÿÿÿ8ƒÿŠÏÈ,
-Gsquid:S1125€"(Remove the literal "true" boolean value.(¾š¶¯8ƒÿŠÏÈ,
-gsquid:S1192Ù"HDefine a constant instead of duplicating this literal "</html>" 6 times.(Ó¸ˆ³8ƒÿŠÏÈ,
-asquid:UselessImportCheck"6Remove this unused import 'co.dc.aptiv.pojo.BillPojo'.(à·Þ£8ƒÿŠÏÈ,
-ssquid:S1450X"URemove the "timer2" field and declare it as a local variable in the relevant methods.(ôÙªö8ƒÿŠÏÈ,
-‹"squid:ClassVariableVisibilityCheck/"VMake comboBox_1 a static final constant or non-public and provide accessors if needed.(ƒîÛø8ƒÿŠÏÈ,
-wsquid:S00116I"XRename this field "CellsVector_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¤Ò½ 8ƒÿŠÏÈ,
-tsquid:S00116N"VRename this field "panel_style" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ú“ÿ\8ƒÿŠÏÈ,
-jsquid:CommentedOutCodeLineæ"<This block of commented-out lines of code should be removed.(åßø8ƒÿŠÏÈ,
-}squid:S00116O"YRename this field "label_content1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ïé•›øÿÿÿÿ8ƒÿŠÏÈ,
-vsquid:S00116U"RRename this field "label_3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ƾ€õùÿÿÿÿ8ƒÿŠÏÈ,
-‘"squid:ClassVariableVisibilityCheckT"WMake label_scan3 a static final constant or non-public and provide accessors if needed.(¦Œ÷Ïøÿÿÿÿ8ƒÿŠÏÈ,
-Œ"squid:ClassVariableVisibilityCheckj"RMake onLine a static final constant or non-public and provide accessors if needed.(öµ§Üúÿÿÿÿ8ƒÿŠÏÈ,
-usquid:S00116S"VRename this field "label_scan2" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ãÂçË8ƒÿŠÏÈ,
-Qsquid:S1068b"4Remove this unused "nowMaterielPojo2" private field.(§¼Š8ƒÿŠÏÈ,
-osquid:CommentedOutCodeLine™"<This block of commented-out lines of code should be removed.(ï�˜ëüÿÿÿÿ8¥´¯ëÈ,
-tsquid:S00116/"URename this field "comboBox_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ƒîÛø8ƒÿŠÏÈ,
-Gsquid:S1148ª"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8ƒÿŠÏÈ,
-usquid:S3776l"RRefactor this method to reduce its Cognitive Complexity from 34 to the 15 allowed.(¢þ­�þÿÿÿÿ8ƒÿŠÏÈ,
-vsquid:S00117¦"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(�™Å’úÿÿÿÿ8ƒÿŠÏÈ,
-qsquid:S00116V"RRename this field "label_4" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¢†£Ÿ8ƒÿŠÏÈ,
-„squid:S1192é"eDefine a constant instead of duplicating this literal "/co/dc/aptiv/img/start-btn-hover.png" 4 times.(¡ð“Ë8ƒÿŠÏÈ,
-isquid:CommentedOutCodeLineê"<This block of commented-out lines of code should be removed.(¨Âí$8ƒÿŠÏÈ,
-Usquid:S2696›"6Make the enclosing method "static" or remove this set.(èôÄÀ8ƒÿŠÏÈ,
-vsquid:S00117Ð"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(””؇ÿÿÿÿÿ8ƒÿŠÏÈ,
-Usquid:S2696–"6Make the enclosing method "static" or remove this set.(´³îÔ8ƒÿŠÏÈ,
-Usquid:S2696Ý"6Make the enclosing method "static" or remove this set.(È–Ò¢8ƒÿŠÏÈ,
-”"squid:ClassVariableVisibilityCheckf"ZMake billDetailPojo a static final constant or non-public and provide accessors if needed.(κËõüÿÿÿÿ8ƒÿŠÏÈ,
-Œ"squid:ClassVariableVisibilityCheckS"WMake label_scan2 a static final constant or non-public and provide accessors if needed.(ãÂçË8ƒÿŠÏÈ,
-ƒsquid:S1149I"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(¤Ò½ 8ƒÿŠÏÈ,
-Zsquid:S2696ß"6Make the enclosing method "static" or remove this set.(Å�Ž«ÿÿÿÿÿ8ƒÿŠÏÈ,
-jsquid:CommentedOutCodeLine¤"<This block of commented-out lines of code should be removed.(ñ­Ø’8ƒÿŠÏÈ,
-„squid:S1149¯"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(íÒ«�8ƒÿŠÏÈ,
-Zsquid:S2696ú"6Make the enclosing method "static" or remove this set.(ö‹â·ýÿÿÿÿ8ƒÿŠÏÈ,
-Gsquid:S1185�"(Remove this method to simply inherit it.(ÈÊ“À8ƒÿŠÏÈ,
-isquid:UnusedPrivateMethod‘"7Remove this unused private "createNewScanFrame" method.(€°óƒýÿÿÿÿ8ƒÿŠÏÈ,
-�"squid:ClassVariableVisibilityCheck?"UMake frameType a static final constant or non-public and provide accessors if needed.(¼“á¬ùÿÿÿÿ8ƒÿŠÏÈ,
-Gsquid:S1148¨"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8ƒÿŠÏÈ,
-zsquid:S00116R"VRename this field "label_scan1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(÷ùÚøýÿÿÿÿ8ƒÿŠÏÈ,
-bsquid:S1155½">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ8ƒÿŠÏÈ,
-nsquid:S00116K"ORename this field "jt_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ö�¦Ò8ƒÿŠÏÈ,
-xsquid:S00116P"YRename this field "label_content2" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(€»é¡8ƒÿŠÏÈ,
-Usquid:S2696€"6Make the enclosing method "static" or remove this set.(¾š¶¯8ƒÿŠÏÈ,
-‘"squid:ClassVariableVisibilityCheckR"WMake label_scan1 a static final constant or non-public and provide accessors if needed.(÷ùÚøýÿÿÿÿ8ƒÿŠÏÈ,
-ˆsquid:S1149J"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(»¿ƒ³ÿÿÿÿÿ8ƒÿŠÏÈ,
-zsquid:S00116T"VRename this field "label_scan3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¦Œ÷Ïøÿÿÿÿ8ƒÿŠÏÈ,
-Lsquid:S1948a"/Make "materielPojos" transient or serializable.(÷ùÈ8ƒÿŠÏÈ,
-xsquid:S00116Q"YRename this field "label_content3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÂçñÃ8ƒÿŠÏÈ,
-ssquid:S1450W"URemove the "timer1" field and declare it as a local variable in the relevant methods.(Ë­´à8ƒÿŠÏÈ,
-nsquid:S00100™"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(î篗8ƒÿŠÏÈ,
-|squid:S00116J"XRename this field "TitleVector_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(»¿ƒ³ÿÿÿÿÿ8ƒÿŠÏÈ,
-Zsquid:S2696ž"6Make the enclosing method "static" or remove this set.(»¶¶ˆúÿÿÿÿ8ƒÿŠÏÈ,
-vsquid:S00117œ"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ᶆÄýÿÿÿÿ8ƒÿŠÏÈ,
+|squid:S00116J"XRename this field "TitleVector_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(»¿ƒ³ÿÿÿÿÿ8£Æß‚Í,
+Œ"squid:ClassVariableVisibilityCheckS"WMake label_scan2 a static final constant or non-public and provide accessors if needed.(ãÂçË8£Æß‚Í,
+usquid:S3776l"RRefactor this method to reduce its Cognitive Complexity from 34 to the 15 allowed.(¢þ­�þÿÿÿÿ8£Æß‚Í,
+tsquid:S00116L"PRename this field "jsp_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÇÕä¿ÿÿÿÿÿ8£Æß‚Í,
+Gsquid:S1185�"(Remove this method to simply inherit it.(ÈÊ“À8£Æß‚Í,
+xsquid:S00116P"YRename this field "label_content2" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(€»é¡8£Æß‚Í,
+Usquid:S2696™"6Make the enclosing method "static" or remove this set.(èôÄÀ8£Æß‚Í,
+Usquid:S2696Ü"6Make the enclosing method "static" or remove this set.(È–Ò¢8£Æß‚Í,
+Œ"squid:ClassVariableVisibilityCheckj"RMake onLine a static final constant or non-public and provide accessors if needed.(öµ§Üúÿÿÿÿ8£Æß‚Í,
+vsquid:S00116U"RRename this field "label_3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ƾ€õùÿÿÿÿ8£Æß‚Í,
+isquid:CommentedOutCodeLineê"<This block of commented-out lines of code should be removed.(¨Âí$8£Æß‚Í,
+qsquid:MaximumInheritanceDepth$"<This class has 6 parents which is greater than 5 authorized.(ˆ˜ë¶ÿÿÿÿÿ8£Æß‚Í,
+jsquid:UselessImportCheck"@Remove this unused import 'javax.swing.table.TableCellRenderer'.(É¡“8£Æß‚Í,
+nsquid:S00116K"ORename this field "jt_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ö�¦Ò8£Æß‚Í,
+‘"squid:ClassVariableVisibilityCheckR"WMake label_scan1 a static final constant or non-public and provide accessors if needed.(÷ùÚøýÿÿÿÿ8£Æß‚Í,
+Gsquid:S1148¬"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8£Æß‚Í,
+‘"squid:ClassVariableVisibilityCheckT"WMake label_scan3 a static final constant or non-public and provide accessors if needed.(¦Œ÷Ïøÿÿÿÿ8£Æß‚Í,
+ƒsquid:S1149I"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(¤Ò½ 8£Æß‚Í,
+„squid:S1192é"eDefine a constant instead of duplicating this literal "/co/dc/aptiv/img/start-btn-hover.png" 4 times.(¡ð“Ë8£Æß‚Í,
+Usquid:S2696€"6Make the enclosing method "static" or remove this set.(¾š¶¯8£Æß‚Í,
+�"squid:ClassVariableVisibilityCheck?"UMake frameType a static final constant or non-public and provide accessors if needed.(¼“á¬ùÿÿÿÿ8£Æß‚Í,
+wsquid:S00116I"XRename this field "CellsVector_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¤Ò½ 8£Æß‚Í,
+qsquid:S00116V"RRename this field "label_4" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¢†£Ÿ8£Æß‚Í,
+gsquid:S1192Ö"HDefine a constant instead of duplicating this literal "</html>" 6 times.(Ó¸ˆ³8£Æß‚Í,
+}squid:S00116O"YRename this field "label_content1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ïé•›øÿÿÿÿ8£Æß‚Í,
+vsquid:S00117Ï"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(””؇ÿÿÿÿÿ8£Æß‚Í,
+vsquid:S00117¦"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(�™Å’úÿÿÿÿ8£Æß‚Í,
+jsquid:CommentedOutCodeLine—"<This block of commented-out lines of code should be removed.(¨�”ö8êÀò¦Í,
+nsquid:S00100˜"NRename this method name to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(î篗8£Æß‚Í,
+asquid:UselessImportCheck"6Remove this unused import 'co.dc.aptiv.pojo.BillPojo'.(à·Þ£8£Æß‚Í,
+Lsquid:S1948a"/Make "materielPojos" transient or serializable.(÷ùÈ8£Æß‚Í,
+Tsquid:S2696ú"6Make the enclosing method "static" or remove this set.(†–öS8£Æß‚Í,
+jsquid:CommentedOutCodeLineæ"<This block of commented-out lines of code should be removed.(åßø8£Æß‚Í,
+zsquid:S00116T"VRename this field "label_scan3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(¦Œ÷Ïøÿÿÿÿ8£Æß‚Í,
+xsquid:S00116Q"YRename this field "label_content3" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÂçñÃ8£Æß‚Í,
+zsquid:S00116R"VRename this field "label_scan1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(÷ùÚøýÿÿÿÿ8£Æß‚Í,
+Gsquid:S1125€"(Remove the literal "true" boolean value.(¾š¶¯8£Æß‚Í,
+jsquid:CommentedOutCodeLine£"<This block of commented-out lines of code should be removed.(ñ­Ø’8£Æß‚Í,
+ˆsquid:S1149J"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(»¿ƒ³ÿÿÿÿÿ8£Æß‚Í,
+isquid:UnusedPrivateMethod�"7Remove this unused private "createNewScanFrame" method.(€°óƒýÿÿÿÿ8£Æß‚Í,
+tsquid:S00116N"VRename this field "panel_style" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ú“ÿ\8£Æß‚Í,
+”"squid:ClassVariableVisibilityCheckf"ZMake billDetailPojo a static final constant or non-public and provide accessors if needed.(κËõüÿÿÿÿ8£Æß‚Í,
+Gsquid:S1148©"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8£Æß‚Í,
+ssquid:S1450W"URemove the "timer1" field and declare it as a local variable in the relevant methods.(Ë­´à8£Æß‚Í,
+ssquid:S1450X"URemove the "timer2" field and declare it as a local variable in the relevant methods.(ôÙªö8£Æß‚Í,
+Zsquid:S2696ß"6Make the enclosing method "static" or remove this set.(Å�Ž«ÿÿÿÿÿ8£Æß‚Í,
+‹"squid:ClassVariableVisibilityCheck/"VMake comboBox_1 a static final constant or non-public and provide accessors if needed.(ƒîÛø8£Æß‚Í,
+Zsquid:S2696œ"6Make the enclosing method "static" or remove this set.(»¶¶ˆúÿÿÿÿ8£Æß‚Í,
+tsquid:S00116/"URename this field "comboBox_1" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ƒîÛø8£Æß‚Í,
+vsquid:S00117›"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ᶆÄýÿÿÿÿ8£Æß‚Í,
+usquid:S00116S"VRename this field "label_scan2" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ãÂçË8£Æß‚Í,
+bsquid:S1155½">Use isEmpty() to check whether the collection is empty or not.(„ñÛ¯þÿÿÿÿ8£Æß‚Í,
+Qsquid:S1068b"4Remove this unused "nowMaterielPojo2" private field.(§¼Š8£Æß‚Í,
+Tsquid:S2696”"6Make the enclosing method "static" or remove this set.(¡²ü8£Æß‚Í,
+„squid:S1149­"eReplace the synchronized class "Vector" by an unsynchronized one such as "ArrayList" or "LinkedList".(íÒ«�8£Æß‚Í,

+ 3 - 3
.idea/sonarlint/issuestore/c/5/c5394e590f0b754c3a0c215412c98d0ccb8d18b9

@@ -1,9 +1,9 @@
 
-Jsquid:S1168ª"+Return an empty collection instead of null.(¥¹ï�8¬¶çÖ¼,
-~squid:S1488¥"`Immediately return this expression instead of assigning it to the temporary variable "listBill".(ä‹Òm8¬¶çÖ¼,
 Jsquid:S1168Š"+Return an empty collection instead of null.(¥¹ï�8¬¶çÖ¼,
 ‚squid:S1149?"_Replace the synchronized class "StringBuffer" by an unsynchronized one such as "StringBuilder".(êéѰüÿÿÿÿ8¬¶çÖ¼,
+~squid:S1488…"`Immediately return this expression instead of assigning it to the temporary variable "listBill".(ä‹Òm8¬¶çÖ¼,
+~squid:S1488¥"`Immediately return this expression instead of assigning it to the temporary variable "listBill".(ä‹Òm8¬¶çÖ¼,
 Gsquid:S1148ˆ"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8¬¶çÖ¼,
 Usquid:S2387$"2"queryRunner" is the name of a field in "BaseDao".(‘í„Øøÿÿÿÿ8¬¶çÖ¼,
-~squid:S1488…"`Immediately return this expression instead of assigning it to the temporary variable "listBill".(ä‹Òm8¬¶çÖ¼,
+Jsquid:S1168ª"+Return an empty collection instead of null.(¥¹ï�8¬¶çÖ¼,
 Gsquid:S1148¨"#Use a logger to log this exception.(€ÉÔ…ýÿÿÿÿ8¬¶çÖ¼,

+ 27 - 27
.idea/sonarlint/issuestore/f/f/ff8d0749ce86a89be6ff0cec5162a3144f8798cb

@@ -1,38 +1,38 @@
 
-Usquid:CallToDeprecatedMethod…",Remove this use of "show"; it is deprecated.(–çÏ�
-csquid:CommentedOutCodeLineŒ"<This block of commented-out lines of code should be removed.(öƒýÔ
-hsquid:S00117~"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê ¬W
-žsquid:S1186Ò"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Š¿˜¶ûÿÿÿÿ
-Xsquid:S1854Š"9Remove this useless assignment to local variable "typei".(ˆ€Øï8¦ë‰ËÈ,
-fsquid:S00116³"NRename this field "DPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(á”ôx
 asquid:S2583†"DChange this condition so that it does not always evaluate to "false"(ýü‡Ìûÿÿÿÿ
-™squid:S1186Û"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(£í´
-osquid:CommentedOutCodeLineš"<This block of commented-out lines of code should be removed.(ô�½Öúÿÿÿÿ8¦ë‰ËÈ,
-žsquid:S1186Ë"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(›ÐêÕûÿÿÿÿ
+˜squid:S1186ã"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ƆêC
+esquid:MaximumInheritanceDepth"<This class has 6 parents which is greater than 5 authorized.(ÞíÒÆ
 ™squid:S1186Ñ"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(£í´
+fsquid:S00116¿"NRename this field "DPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(á”ôx
+jsquid:S00117Â"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(нÖî
+Xsquid:S1854‘"9Remove this useless assignment to local variable "typei".(ÿ�’‘8¦ë‰ËÈ,
 lsquid:S00116´"NRename this field "CPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(£ Ü¦øÿÿÿÿ
-vsquid:S3776„"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(¼ Òþüÿÿÿÿ8¦ë‰ËÈ,
-˜squid:S1186Ù"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ƆêC
 osquid:CommentedOutCodeLine“"<This block of commented-out lines of code should be removed.(ô�½Öúÿÿÿÿ8¦ë‰ËÈ,
-isquid:S3776Q"RRefactor this method to reduce its Cognitive Complexity from 52 to the 15 allowed.(为£
-fsquid:S00116¿"NRename this field "DPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(á”ôx
+žsquid:S1186Ë"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(›ÐêÕûÿÿÿÿ
 žsquid:S1186Ü"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ô—�»ûÿÿÿÿ
-Isquid:S1481‘"*Remove this unused "typei" local variable.(ÿ�’‘8¦ë‰ËÈ,
-vsquid:S3776þ"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(¼ Òþüÿÿÿÿ8¦ë‰ËÈ,
-msquid:S00116Á"ORename this field "TYPE" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÑÏ­ïúÿÿÿÿ
+žsquid:S1186Ø"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Šá® þÿÿÿÿ
+jsquid:CommentedOutCodeLineš"<This block of commented-out lines of code should be removed.(»ÅÀ€8²�¸ÊÈ,
+Xsquid:S1854Š"9Remove this useless assignment to local variable "typei".(ˆ€Øï8¦ë‰ËÈ,
 csquid:CommentedOutCodeLine¢"<This block of commented-out lines of code should be removed.(ûìží
-Usquid:CallToDeprecatedMethodÓ",Remove this use of "show"; it is deprecated.(ڵô
 asquid:S2583Ô"DChange this condition so that it does not always evaluate to "false"(ýü‡Ìûÿÿÿÿ
-žsquid:S1186Ø"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Šá® þÿÿÿÿ
+vsquid:S3776„"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(¼ Òþüÿÿÿÿ8¦ë‰ËÈ,
+žsquid:S1186æ"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ô—�»ûÿÿÿÿ
+Usquid:CallToDeprecatedMethod…",Remove this use of "show"; it is deprecated.(–çÏ�
+Usquid:CallToDeprecatedMethodÓ",Remove this use of "show"; it is deprecated.(ڵô
+žsquid:S1186Î"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Šá® þÿÿÿÿ
+msquid:S00116µ"ORename this field "TYPE" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÑÏ­ïúÿÿÿÿ
+žsquid:S1186Ò"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Š¿˜¶ûÿÿÿÿ
+™squid:S1186Û"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(£í´
 Isquid:S1481Š"*Remove this unused "typei" local variable.(ˆ€Øï8¦ë‰ËÈ,
+fsquid:S00116³"NRename this field "DPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(á”ôx
+isquid:S3776Q"RRefactor this method to reduce its Cognitive Complexity from 52 to the 15 allowed.(为£
+Isquid:S1481‘"*Remove this unused "typei" local variable.(ÿ�’‘8¦ë‰ËÈ,
 žsquid:S1186È"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Š¿˜¶ûÿÿÿÿ
-jsquid:CommentedOutCodeLineš"<This block of commented-out lines of code should be removed.(»ÅÀ€8²�¸ÊÈ,
-žsquid:S1186Õ"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(›ÐêÕûÿÿÿÿ
-žsquid:S1186æ"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ô—�»ûÿÿÿÿ
+hsquid:S00117~"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ê ¬W
+˜squid:S1186Ù"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ƆêC
+csquid:CommentedOutCodeLineŒ"<This block of commented-out lines of code should be removed.(öƒýÔ
+msquid:S00116Á"ORename this field "TYPE" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÑÏ­ïúÿÿÿÿ
 lsquid:S00116À"NRename this field "CPN" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(£ Ü¦øÿÿÿÿ
-msquid:S00116µ"ORename this field "TYPE" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(ÑÏ­ïúÿÿÿÿ
-˜squid:S1186ã"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(ƆêC
-Xsquid:S1854‘"9Remove this useless assignment to local variable "typei".(ÿ�’‘8¦ë‰ËÈ,
-jsquid:S00117Â"QRename this local variable to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(нÖî
-žsquid:S1186Î"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(Šá® þÿÿÿÿ
-esquid:MaximumInheritanceDepth"<This class has 6 parents which is greater than 5 authorized.(ÞíÒÆ
+vsquid:S3776þ"RRefactor this method to reduce its Cognitive Complexity from 16 to the 15 allowed.(¼ Òþüÿÿÿÿ8¦ë‰ËÈ,
+osquid:CommentedOutCodeLineš"<This block of commented-out lines of code should be removed.(ô�½Öúÿÿÿÿ8¦ë‰ËÈ,
+žsquid:S1186Õ"€Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.(›ÐêÕûÿÿÿÿ

+ 3 - 1
.idea/sonarlint/issuestore/index.pb

@@ -168,4 +168,6 @@ N
 N
 src/main/resources/ehcache.xml,d\8\d89290b271cf44545b289c9b096c86fbeb520eb3
 _
-/src/main/java/co/dc/aptiv/LoadingGlassPane.java,5\e\5e4da37d3ca58b82db51c75bf8e3c05280cddd12
+/src/main/java/co/dc/aptiv/LoadingGlassPane.java,5\e\5e4da37d3ca58b82db51c75bf8e3c05280cddd12
+\
+,src/main/java/co/dc/aptiv/JWindowLoding.java,4\e\4eaecac3a216fa7cb274d9a630a201aeca71ac2c

+ 0 - 0
exe.path_IS_UNDEFINED/logs/log_debug.log


+ 18 - 0
exe.path_IS_UNDEFINED/logs/log_error.log

@@ -0,0 +1,18 @@
+ERROR [2018-07-25 15:34:27,321] co.dc.aptiv.mina.MinaAbstract:132 - (nio socket connector: managedSessionCount: 0) 建立连接失败 
+org.apache.mina.core.RuntimeIoException: Failed to get the session.
+	at org.apache.mina.core.future.DefaultConnectFuture.getSession(DefaultConnectFuture.java:58) ~[mina-core-2.0.9.jar:na]
+	at co.dc.aptiv.mina.MinaAbstract.createConn(MinaAbstract.java:123) [classes/:na]
+	at co.dc.aptiv.mina.MinaAbstract.startConnection(MinaAbstract.java:233) [classes/:na]
+	at co.dc.aptiv.AptivApp.main(AptivApp.java:180) [classes/:na]
+Caused by: java.net.NoRouteToHostException: No route to host: no further information
+	at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.8.0_112]
+	at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717) ~[na:1.8.0_112]
+	at org.apache.mina.transport.socket.nio.NioSocketConnector.finishConnect(NioSocketConnector.java:221) ~[mina-core-2.0.9.jar:na]
+	at org.apache.mina.transport.socket.nio.NioSocketConnector.finishConnect(NioSocketConnector.java:47) ~[mina-core-2.0.9.jar:na]
+	at org.apache.mina.core.polling.AbstractPollingIoConnector.processConnections(AbstractPollingIoConnector.java:459) ~[mina-core-2.0.9.jar:na]
+	at org.apache.mina.core.polling.AbstractPollingIoConnector.access$700(AbstractPollingIoConnector.java:65) ~[mina-core-2.0.9.jar:na]
+	at org.apache.mina.core.polling.AbstractPollingIoConnector$Connector.run(AbstractPollingIoConnector.java:527) ~[mina-core-2.0.9.jar:na]
+	at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) ~[mina-core-2.0.9.jar:na]
+	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[na:1.8.0_112]
+	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_112]
+	at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_112]

File diff suppressed because it is too large
+ 32 - 0
exe.path_IS_UNDEFINED/logs/log_info.log


File diff suppressed because it is too large
+ 50 - 0
exe.path_IS_UNDEFINED/logs/log_run.log


+ 6 - 6
src/main/java/co/dc/aptiv/AptivApp.java

@@ -85,9 +85,9 @@ public class AptivApp {
      */
     public static MaterielPojo nowMaterielPojo;
     /**
-     * 当前打印状态 0 停止 1 开始
+     * 当前打印状态 false 停止 true 开始
      */
-    public static int flag = 0;
+    public static boolean flag = false;
     /**
      * 单据Id
      */
@@ -99,11 +99,11 @@ public class AptivApp {
     /**
      * 激光机是否可打印
      */
-    /*public static boolean printStatus = true;*/
+//    public static boolean printStatus = true;
     /**
      * 采集器是否可采集
      */
-   /* public static boolean scanStatus = false;*/
+//    public static boolean scanStatus = false;
     /**
      * 字符转换工具类
      */
@@ -116,7 +116,7 @@ public class AptivApp {
         //检查文件锁--用于限制程序多开
         try {
             boolean runFlag = isRunning("德尔福激光工控V1.2.exe");
-            log.error("is running " + runFlag);
+            log.info("is running " + runFlag);
             if (runFlag) {
                 JOptionPane.showMessageDialog(null, "程序已打开,不可多开。", "提示", JOptionPane.ERROR_MESSAGE);
                 //退出程序
@@ -429,7 +429,7 @@ public class AptivApp {
             while ((line = bufferedReader.readLine()) != null) {
                 //判断是否存在
                 if (line.contains(processName)) {
-                    log.error("running info " + line);
+                    log.info("running info " + line);
                     i++;
                 }
             }

+ 28 - 25
src/main/java/co/dc/aptiv/ScanFrame.java

@@ -36,7 +36,7 @@ import java.util.regex.Pattern;
 public class ScanFrame extends JFrame {
 
     private static final int SINGLE_SELECTION = 0;
-
+    private Pattern pattern = Pattern.compile("[0-9]*");
     private static final Log log = LogFactory.getLog(ScanFrame.class);
     private JPanel contentPane;
     private UserPojo userPojo = new UserPojo();
@@ -114,7 +114,6 @@ public class ScanFrame extends JFrame {
         AptivApp.printMina.setScanFrame(this);
         AptivApp.collectorMina.setScanFrame(this);
         AptivApp.plcMina.setScanFrame(this);
-        AptivApp.testMachineCollectorMina.setScanFrame(this);
         glassPane.installAsGlassPane(this);
         setResizable(false);
         setUndecorated(true);
@@ -156,7 +155,7 @@ public class ScanFrame extends JFrame {
         JButton btnNew_Button = new ResetJButton("/co/dc/aptiv/img/return-normal.png", "/co/dc/aptiv/img/return-hover.png", "/co/dc/aptiv/img/return-hover.png");
         btnNew_Button.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent arg0) {
-                if (AptivApp.flag == 1) {
+                if (AptivApp.flag) {
                     JOptionPane.showMessageDialog(ScanFrame.this, "打印中,禁止返回。", "提示", JOptionPane.ERROR_MESSAGE);
                 } else {
                     if (onLine) {
@@ -219,6 +218,7 @@ public class ScanFrame extends JFrame {
                         comboBox_1.setBackground(Color.white);
                         index--;
                         AptivApp.nowMaterielPojo = materielPojos.get(index);
+                        log.info("选择物料:" + AptivApp.nowMaterielPojo.toString());
                     } else {
                         AptivApp.nowMaterielPojo = null;
                     }
@@ -237,7 +237,7 @@ public class ScanFrame extends JFrame {
         buttonteam.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent arg0) {
                 //判断按钮开关状态
-                if (AptivApp.flag == 0) {
+                if (!AptivApp.flag) {
                     //开始打印
                     startPrint();
                 } else {
@@ -257,7 +257,7 @@ public class ScanFrame extends JFrame {
             onlineButton.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent arg0) {
                     //判断当前是否在打印状态
-                    if (AptivApp.flag == 0) {
+                    if (!AptivApp.flag) {
                         //当前联机状态
                         if (onLine) {
                             //发送独立指令给测试机
@@ -279,8 +279,8 @@ public class ScanFrame extends JFrame {
             //测试重码按钮点击事件
             testCoincidentCode.addActionListener(new ActionListener() {
                 public void actionPerformed(ActionEvent arg0) {
-                    //判断按钮开关状态,只有打印了以后才能测试重码
-                    if (AptivApp.flag == 0) {
+                    //判断按钮开关状态,只有停止打印了以后才能测试重码
+                    if (!AptivApp.flag) {
                         AptivApp.collectorMina.sendByte(AptivApp.ccu.String2ASCII("S"));
                     } else {
                         JOptionPane.showMessageDialog(ScanFrame.this, "生产中,不能进行测试操作", "提示", JOptionPane.WARNING_MESSAGE);
@@ -443,10 +443,10 @@ public class ScanFrame extends JFrame {
         //加载物料
         materielPojos = AptivApp.materielService.listAll();
         if (materielPojos != null && materielPojos.size() > 0) {
-            this.comboBox_1.removeAllItems();
-            this.comboBox_1.addItem("点击选择物料。");
+            comboBox_1.removeAllItems();
+            comboBox_1.addItem("点击选择物料。");
             for (int i = 0; i < materielPojos.size(); i++) {
-                this.comboBox_1.addItem(materielPojos.get(i).getDpn());
+                comboBox_1.addItem(materielPojos.get(i).getDpn());
             }
         } else {
             this.comboBox_1.addItem("请到【物料管理】界面创建物料。");
@@ -501,9 +501,9 @@ public class ScanFrame extends JFrame {
         if (!onLine && AptivApp.nowMaterielPojo == null) {
             JOptionPane.showMessageDialog(ScanFrame.this, "请选择需要查询的物料。", "提示", JOptionPane.WARNING_MESSAGE);
         } else {
-            log.error("开始打印");
+            log.info("开始打印");
             comboBox_1.setEnabled(false);
-            AptivApp.flag = 1;
+            AptivApp.flag = true;
             //发送开始指令给PLC
             sendPLCCommand("S");
             //设置按钮
@@ -513,12 +513,10 @@ public class ScanFrame extends JFrame {
             //判断当前模式,非联机模式则自动发码
             if (!onLine) {
                 int codeFlag = AptivApp.qrcodeService.sendQrCode();
-                if (codeFlag > 1) {
+                if (codeFlag != 1) {
+                    log.info("发送码给激光机异常");
                     alertMsg(1, "生产码异常,请停止打印并联系管理员!");
                 }
-                if (codeFlag < 0) {
-                    //码发送失败
-                }
             }
         }
     }
@@ -531,11 +529,11 @@ public class ScanFrame extends JFrame {
         if (val == JOptionPane.YES_OPTION) {
             //清空激光机的数据
             AptivApp.qrcodeService.resetLaserMachine();
-            AptivApp.flag = 0;
+            AptivApp.flag = false;
             //发送停止指令给PLC
             sendPLCCommand("E");
-           /* AptivApp.printStatus = true;*/
-            /*AptivApp.scanStatus = false;*/
+//            AptivApp.printStatus = true;
+//            AptivApp.scanStatus = false;
             AptivApp.billPojo = null;
             this.CellsVector_1.clear();
             this.jt_1.updateUI();
@@ -547,7 +545,7 @@ public class ScanFrame extends JFrame {
             if (!onLine) {
                 comboBox_1.setEnabled(true);
             }
-            log.error("结束打印");
+            log.info("结束打印");
         }
     }
 
@@ -572,7 +570,6 @@ public class ScanFrame extends JFrame {
      * @return
      */
     public boolean isNumber(String str) {
-        Pattern pattern = Pattern.compile("[0-9]*");
         return pattern.matcher(str).matches();
     }
 
@@ -629,6 +626,7 @@ public class ScanFrame extends JFrame {
      * @param type
      */
     public void warning(String msg, int type) {
+        log.info("程序警告信息:警告类型=" + type + ",警告信息=" + msg);
         label_4.setIcon(new ImageIcon(ScanFrame.class.getResource(type == 0 ? "img/warn-yellow.png" : "img/warn-red.png")));
         label_4.setText("<html>&nbsp;" + msg + "</html>");
     }
@@ -638,10 +636,10 @@ public class ScanFrame extends JFrame {
      *
      * @param type
      */
-    private void setButton(int type) {
-        buttonteam.setnormal(type == 0 ? "/co/dc/aptiv/img/start-btn-on.png" : "/co/dc/aptiv/img/stop-btn-one.png");
-        buttonteam.setenter(type == 0 ? "/co/dc/aptiv/img/start-btn-hover.png" : "/co/dc/aptiv/img/stop-btn-one-h.png");
-        buttonteam.setpress(type == 0 ? "/co/dc/aptiv/img/start-btn-hover.png" : "/co/dc/aptiv/img/stop-btn-one-h.png");
+    private void setButton(boolean type) {
+        buttonteam.setnormal(type ? "/co/dc/aptiv/img/stop-btn-one.png" : "/co/dc/aptiv/img/start-btn-on.png");
+        buttonteam.setenter(type ? "/co/dc/aptiv/img/stop-btn-one-h.png" : "/co/dc/aptiv/img/start-btn-hover.png");
+        buttonteam.setpress(type ? "/co/dc/aptiv/img/stop-btn-one-h.png" : "/co/dc/aptiv/img/start-btn-hover.png");
     }
 
     /**
@@ -651,6 +649,7 @@ public class ScanFrame extends JFrame {
      * @param msg  信息
      */
     public void alertMsg(int type, String msg) {
+        log.info("程序提示信息:提示类型=" + type + ",提示信息=" + msg);
         JOptionPane.showMessageDialog(ScanFrame.this, msg, type == 0 ? "提示" : "警告", JOptionPane.WARNING_MESSAGE);
     }
 
@@ -676,9 +675,12 @@ public class ScanFrame extends JFrame {
             OutputStream os = new FileOutputStream(new File(System.getProperty("exe.path")));
             AptivApp.configuration.save(os);
             os.close();
+            log.info("保存修改后的配置文件");
         } catch (ConfigurationException e) {
+            log.error("配置文件保存异常" + e);
             e.printStackTrace();
         } catch (IOException e) {
+            log.error("保存配置文件IO异常" + e);
             e.printStackTrace();
         }
     }
@@ -690,6 +692,7 @@ public class ScanFrame extends JFrame {
      */
     private void sendPLCCommand(String command) {
         int status = AptivApp.plcMina.sendByte(AptivApp.ccu.String2ASCII(command));
+        log.info("发送指令给PLC,指令= " + command);
         if (status != 1) {
             JOptionPane.showMessageDialog(ScanFrame.this, status > 0 ? "测试机" + command + "指令发送超时" : "测试机" + command + "指令发送异常", "提示", JOptionPane.WARNING_MESSAGE);
         }

+ 10 - 27
src/main/java/co/dc/aptiv/mina/CollectorMinaHandler.java

@@ -42,36 +42,19 @@ public class CollectorMinaHandler extends MinaAbstractHandler {
     @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         String data = (String) message;
-        log.error("collector received [" + data + "]");
+        log.info("接收到采集器发来的信息[" + data + "]");
         if (data != null) {
             String str = replaceBlank(data).trim();
-            //采集器给的不是ERROR
-            if (!"ERROR".equals(str)) {
-                //检查重码
-                boolean RcFlag = AptivApp.qrcodeService.checkReCode(str);
-                /*if (RcFlag && AptivApp.scanStatus) {*/
-                if (RcFlag) {
+            //生产模式/点检模式
+            log.info("当前生产状态=" + AptivApp.flag);
+//            log.info("当前可扫描状态=" + AptivApp.scanStatus);
+            if (AptivApp.flag) {
+//                if (AptivApp.scanStatus) {
                     AptivApp.qrcodeService.receiveQrCode(str);
-                    AptivApp.collectorMina.getScanFrame().changeLight(AptivApp.collectorMina.getScanFrame().label_scan2, true);
-                }
-            }else{
-                BillDetailPojo bdp = new BillDetailPojo();
-                bdp.setId(-1);
-                bdp.setQrCode("采集器没有采集到码");
-                bdp.setState(0);
-                AptivApp.qrcodeService.getScanFrame().loadjtable1(bdp);
-                //更新单据统计数据
-                AptivApp.billService.updateBillStatistics(AptivApp.billPojo.getId(), bdp);
-                //打印状态且非联机模式,重新发码
-                if (AptivApp.flag == 1 && !AptivApp.qrcodeService.getScanFrame().onLine){
-                    int codeFlag = AptivApp.qrcodeService.sendQrCode();
-                    if (codeFlag > 1) {
-                        AptivApp.qrcodeService.getScanFrame().alertMsg(1, "生产码异常,请停止打印并联系管理员!");
-                    }
-                    if (codeFlag < 0) {
-                        //此处如果打印不成功
-                    }
-                }
+                    AptivApp.qrcodeService.getScanFrame().changeLight(AptivApp.qrcodeService.getScanFrame().label_scan2, true);
+//                }
+            } else {
+                AptivApp.qrcodeService.checkReCode(str);
             }
         }
     }

+ 3 - 3
src/main/java/co/dc/aptiv/mina/ComMinaA.java

@@ -82,8 +82,8 @@ public class ComMinaA extends MinaAbstract {
                 String s = Integer.toHexString(bytes[0]);
                 if (s != null) {
                     if ("ok".equals(AptivApp.ccu.HexString2String(bytes))) {
-                        /*AptivApp.scanStatus = true;*/
-                        log.error(DateTimeUtil.getDateTimeString() + " 激光机已成功接收码");
+//                        AptivApp.scanStatus = true;
+                        log.info(DateTimeUtil.getDateTimeString() + " 激光机已成功接收码" );
                         getScanFrame().changeLight(getScanFrame().label_scan1, true);
                     }
                 }
@@ -95,7 +95,7 @@ public class ComMinaA extends MinaAbstract {
 
         });
 
-        log.error("com232 mina 服务启动com[" + com + "] bot[" + bot + "]");
+        log.info("com232 mina 服务启动com[" + com + "] bot[" + bot + "]");
 
         SerialAddress address = new SerialAddress(com, bot, DataBits.DATABITS_8, StopBits.BITS_1, Parity.NONE, FlowControl.NONE);
 

+ 6 - 7
src/main/java/co/dc/aptiv/mina/MinaAbstract.java

@@ -61,7 +61,7 @@ public class MinaAbstract {
             // 添加处理器
             connector.setHandler(new MinaAbstractHandler(this, queryRunner));
 
-            log.error("com232 main服务启动ip[" + getIp() + "] port[" + getPort() + "]");
+            log.info("com232 main服务启动ip[" + getIp() + "] port[" + getPort() + "]");
 
             SerialAddress address = new SerialAddress(getIp(), getPort(), DataBits.DATABITS_8, StopBits.BITS_1, Parity.NONE, FlowControl.NONE);
 
@@ -86,7 +86,7 @@ public class MinaAbstract {
             connector.setHandler(new MinaAbstractHandler(this, queryRunner));
             // setIp(systemParamService.getVal("BoxIp"));
             // setPort(Integer.parseInt(systemParamService.getVal("BoxListen")));
-            log.error("tcp main服务启动ip[" + getIp() + "] port[" + getPort() + "]");
+            log.info("tcp main服务启动ip[" + getIp() + "] port[" + getPort() + "]");
             connector.setDefaultRemoteAddress(new InetSocketAddress(getIp(), getPort()));
             if (init == true) {
                 createConn();
@@ -101,7 +101,7 @@ public class MinaAbstract {
     public boolean createConn() {
         try {
             if (session != null) {
-                log.error("session.isClosing()>>>" + session.isClosing() + "   session.isConnected()>>>" + session.isConnected());
+                log.info("session.isClosing()>>>" + session.isClosing() + "   session.isConnected()>>>" + session.isConnected());
             }
             if (session == null || session.isClosing() == true
                     || session.isConnected() == false) {
@@ -189,13 +189,13 @@ public class MinaAbstract {
             return;
         }
         for (; ; ) {
-            log.error("网络断开,开始重连...");
+            log.info("网络断开,开始重连...");
             if (isOn() == false) {
                 break;
             }
             boolean isok = createConn();
             if (isok) {
-                log.error("重连成功");
+                log.info("重连成功");
                 break;
             }
             try {
@@ -235,9 +235,8 @@ public class MinaAbstract {
         stpe.scheduleWithFixedDelay(new Runnable() {
             public void run() {
                 try {
-                    log.error(getClass().getName() + " 开始自检连接状态 task start");
+                    log.info(getClass().getName() + " 开始自检连接状态 task start");
                     if (isOn()) {
-
                         reset();
                     }
                 } catch (Exception e) {

+ 2 - 2
src/main/java/co/dc/aptiv/mina/MinaAbstractHandler.java

@@ -34,7 +34,7 @@ public class MinaAbstractHandler extends IoHandlerAdapter {
      */
     @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
-        log.error("接收数据:" + message);
+        log.info("接收数据:" + message);
     }
 
     @Override
@@ -54,7 +54,7 @@ public class MinaAbstractHandler extends IoHandlerAdapter {
      */
     @Override
     public void sessionClosed(IoSession session) throws Exception {
-        log.error("sessionClosed ...");
+        log.info("sessionClosed ...");
     }
 
     @Override

+ 5 - 3
src/main/java/co/dc/aptiv/mina/PLCMinaHandler.java

@@ -39,11 +39,12 @@ public class PLCMinaHandler extends MinaAbstractHandler {
     @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
         String data = (String) message;
-        log.error("collector received [" + data + "]");
+        log.info("collector received [" + data + "]");
         if (data != null) {
             String str = replaceBlank(data).trim();
             //确认PLC联机信号
             if ("LOK".equals(str)) {
+                log.info("收到确认PLC联机信号");
                 AptivApp.plcMina.getScanFrame().onLine = true;
                 AptivApp.configuration.setProperty("onlineStatus", true);
                 //保存修改的配置文件
@@ -58,6 +59,7 @@ public class PLCMinaHandler extends MinaAbstractHandler {
             }
             //确认PLC独立信号
             if ("DOK".equals(str)) {
+                log.info("收到确认PLC独立信号");
                 AptivApp.plcMina.getScanFrame().onLine = false;
                 AptivApp.configuration.setProperty("onlineStatus", false);
                 //保存修改的配置文件
@@ -70,11 +72,11 @@ public class PLCMinaHandler extends MinaAbstractHandler {
             }
             //确认PLC激光开启信号
             if ("SOK".equals(str)) {
-                System.out.println("确认PLC激光开启信号");
+                log.info("收到确认PLC激光开启信号");
             }
             //确认PLC激光关闭信号
             if ("EOK".equals(str)) {
-                System.out.println("确认PLC激光关闭信号");
+               log.info("收到确认PLC激光关闭信号");
             }
         }
     }

+ 1 - 49
src/main/java/co/dc/aptiv/mina/TestMachineCollectorMina.java

@@ -30,14 +30,8 @@ public class TestMachineCollectorMina extends MinaAbstract {
     @Resource
     private QueryRunner queryRunner;
     @Resource
-    private QrCodeService qrCodeService;
-    @Resource
-    private MaterielService materielService;
-    @Resource
     private Configuration configuration;
 
-    private ScanFrame scanFrame;
-
     @Override
     public void init(boolean init) {
         // 创建连接客户端
@@ -46,48 +40,13 @@ public class TestMachineCollectorMina extends MinaAbstract {
         // 设置连接超时检查时间
         connector.setConnectTimeoutCheckInterval(30);
         // 添加处理器
-        connector.setHandler(new TestMachineCollectorMinaHandler(this, queryRunner) {
-            // 接收到信息后触发的方法
-            @Override
-            public void messageReceived(IoSession session, Object message) throws Exception {
-                IoBuffer in = (IoBuffer) message;
-                byte[] bytes = new byte[in.remaining()];
-                in.get(bytes, 0, in.remaining());
-                String s = Integer.toHexString(bytes[0]);
-                if (s != null) {
-                    String dpn = AptivApp.ccu.HexString2String(bytes);
-                    if (getScanFrame().onLine) {
-                        MaterielPojo materielPojo = materielService.findByDPN(dpn);
-                        //判断物料是否存在
-                        if (materielPojo != null) {
-                            //判断当前是否可打印模式
-//                            if (AptivApp.printStatus) {
-                                AptivApp.nowMaterielPojo = materielPojo;
-                                getScanFrame().setComboBox_1();
-                                qrCodeService.sendQrCode();
-//                            }
-                        } else {
-                            //弹出提示信息
-                            getScanFrame().alertMsg(1, "测试机发来的物料不存在,请检查测试机或物料!");
-                        }
-                        //给测试机回复收到物料号
-                        Thread.sleep(100);
-                        AptivApp.testMachineCollectorMina.sendByte(AptivApp.ccu.String2ASCII("ok"));
-                    }
-                }
-            }
-
-            @Override
-            public void sessionIdle(IoSession session, IdleStatus status) throws Exception {
-            }
-        });
+        connector.setHandler(new TestMachineCollectorMinaHandler(this, queryRunner));
 
         setIp(configuration.getString("testMachine.com"));
         setPort(configuration.getInt("testMachine.bot"));
         connector.setDefaultRemoteAddress(new SerialAddress(getIp(), getPort(), SerialAddress.DataBits.DATABITS_8, SerialAddress.StopBits.BITS_1, SerialAddress.Parity.NONE, SerialAddress.FlowControl.NONE));
         if (init == true) {
             if (createConn()) {
-                scanFrame = new ScanFrame();
 
             }
         }
@@ -99,11 +58,4 @@ public class TestMachineCollectorMina extends MinaAbstract {
         super.send(message);
     }
 
-    public ScanFrame getScanFrame() {
-        return scanFrame;
-    }
-
-    public void setScanFrame(ScanFrame scanFrame) {
-        this.scanFrame = scanFrame;
-    }
 }

+ 33 - 7
src/main/java/co/dc/aptiv/mina/TestMachineCollectorMinaHandler.java

@@ -1,9 +1,12 @@
 package co.dc.aptiv.mina;
 
+import co.dc.aptiv.AptivApp;
+import co.dc.aptiv.pojo.MaterielPojo;
 import co.dc.aptiv.service.BillService;
 import org.apache.commons.dbutils.QueryRunner;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.session.IoSession;
 
 import java.util.regex.Matcher;
@@ -37,14 +40,37 @@ public class TestMachineCollectorMinaHandler extends MinaAbstractHandler {
      */
     @Override
     public void messageReceived(IoSession session, Object message) throws Exception {
-        String data = (String) message;
-        log.error("Sendcollector received [" + data + "]");
-        if (data != null) {
-//			//说明是网址
-//			data = AptivApp.httpStr(data);
+        IoBuffer in = (IoBuffer) message;
+        byte[] bytes = new byte[in.remaining()];
+        in.get(bytes, 0, in.remaining());
+        String s = Integer.toHexString(bytes[0]);
+        if (s != null) {
+            String dpn = AptivApp.ccu.HexString2String(bytes);
+            if (AptivApp.qrcodeService.getScanFrame().onLine) {
+                MaterielPojo materielPojo = AptivApp.materielService.findByDPN(dpn);
+                //判断物料是否存在
+                if (materielPojo != null) {
+                    log.info("测试机发来的物料,DPN = " + dpn);
+                    //判断当前是否可打印模式
+//                    if (AptivApp.printStatus) {
+                        AptivApp.nowMaterielPojo = materielPojo;
+                        AptivApp.qrcodeService.getScanFrame().setComboBox_1();
+                        int codeFlag = AptivApp.qrcodeService.sendQrCode();
+                        if (codeFlag != 1) {
+                            log.info("发送码给激光机异常");
+                            AptivApp.qrcodeService.getScanFrame().alertMsg(1, "生产码异常,请停止打印并联系管理员!");
+                        }
+//                    }
+                } else {
+                    //弹出提示信息
+                    AptivApp.qrcodeService.getScanFrame().alertMsg(1, "测试机发来的物料不存在,请检查测试机或物料!");
+                    log.info("测试机发来的物料不存在,DPN = " + dpn);
+                }
+                //给测试机回复收到物料号
+                Thread.sleep(100);
+                AptivApp.testMachineCollectorMina.sendByte(AptivApp.ccu.String2ASCII("ok"));
+            }
         }
-
-
     }
 
     public static String replaceBlank(String str) {

+ 14 - 0
src/main/java/co/dc/aptiv/pojo/MaterielPojo.java

@@ -115,4 +115,18 @@ public class MaterielPojo extends CommonPojoAbstract implements Serializable {
     public void setType(String type) {
         this.type = type;
     }
+
+    @Override
+    public String toString() {
+        return "MaterielPojo{" +
+                "id=" + id +
+                ", dpn='" + dpn + '\'' +
+                ", cpn='" + cpn + '\'' +
+                ", type='" + type + '\'' +
+                ", maxNum=" + maxNum +
+                ", createTime='" + createTime + '\'' +
+                ", modifyTime='" + modifyTime + '\'' +
+                ", delFlag=" + delFlag +
+                '}';
+    }
 }

+ 5 - 5
src/main/java/co/dc/aptiv/service/BillDetailService.java

@@ -68,7 +68,7 @@ public class BillDetailService extends BaseDao<BillDetailPojo> {
      * @return
      */
     public List<BillDetailPojo> getinfoGoods(long pcbillid) {
-        log.error("根据pcbillid查询产品列表-long pcbillid=" + pcbillid);
+        log.info("根据pcbillid查询产品列表-long pcbillid=" + pcbillid);
         List<BillDetailPojo> billDetailPojos = new ArrayList<BillDetailPojo>();
         try {
             billDetailPojos = queryRunner.query("select * from " + getTableName() + " where pcbillid = " + pcbillid + " and delflag = 0 order by modifyTime desc",
@@ -85,7 +85,7 @@ public class BillDetailService extends BaseDao<BillDetailPojo> {
      * @return
      */
     public List<BillDetailPojo> getunupedGoods() {
-        log.error("查询所有为上传的产品列表");
+        log.info("查询所有为上传的产品列表");
         List<BillDetailPojo> billDetailPojos = new ArrayList<BillDetailPojo>();
         Map<String, Object> where = new HashMap<String, Object>();
         where.put("updatedflag", 0);
@@ -126,6 +126,7 @@ public class BillDetailService extends BaseDao<BillDetailPojo> {
      * @return
      */
     public BillDetailPojo addBillDetail(Long billId, Long materielId, String qrCode, String colledtionCode) {
+        log.info("保存码详情");
         BillDetailPojo billDetailPojo = new BillDetailPojo();
         try {
             billDetailPojo.setBillId(billId);
@@ -139,18 +140,17 @@ public class BillDetailService extends BaseDao<BillDetailPojo> {
             Long billDetailId = this.save(billDetailPojo);
             billDetailPojo.setId(billDetailId);
         } catch (Exception e) {
+            log.error("生产模式:二维码唯一索引生效" + e);
             billDetailPojo.setId(-1);
             billDetailPojo.setQrCode("正常生产捕获重码,请停止打印并联系管理员!" + billDetailPojo.getQrCode());
             billDetailPojo.setState(0);
-            e.printStackTrace();
-            AptivApp.collectorMina.send("R");
+            AptivApp.qrcodeService.sendErrorCommand("生产模式:二维码唯一索引生效!");
             javax.swing.SwingUtilities.invokeLater(new Runnable() {
                 public void run() {
                     getScanFrame().alertMsg(1, "正常生产捕获重码,请停止打印并联系管理员!");
                 }
             });
         }
-
         return billDetailPojo;
     }
 

+ 6 - 6
src/main/java/co/dc/aptiv/service/BillService.java

@@ -58,7 +58,7 @@ public class BillService extends BaseDao<BillPojo> {
      * @return
      */
     public List<BillPojo> listonlyPCbill(String starttime, String endtime) {
-        log.error("根据参数获取捡配单数据-String starttime=" + starttime + ", String endtime=" + endtime);
+        log.info("根据参数获取捡配单数据-String starttime=" + starttime + ", String endtime=" + endtime);
         List<BillPojo> billPojos = new ArrayList<BillPojo>();
         StringBuffer sql = new StringBuffer();
         sql.append("select * from ").append(getTableName()).append(" ");
@@ -86,7 +86,7 @@ public class BillService extends BaseDao<BillPojo> {
      * @return
      */
     public int delPCbill(long pcbillid) {
-        log.error("整单删除-long pcbillid=" + pcbillid);
+        log.info("整单删除-long pcbillid=" + pcbillid);
         int upint = 0;
         upint = del(pcbillid);
         //此处需要删除相关的详情表数据和物料表数据
@@ -105,7 +105,7 @@ public class BillService extends BaseDao<BillPojo> {
      * @return
      */
     public RetStatus<BillPojo> checkPCbill(long pcbillid) {
-        log.error("获取当前产品的所有数据-long pcbillid=" + pcbillid);
+        log.info("获取当前产品的所有数据-long pcbillid=" + pcbillid);
         RetStatus<BillPojo> ret = new RetStatus<BillPojo>(1, "");
         BillPojo billPojo;
         List<BillDetailPojo> goodinfos;
@@ -191,7 +191,7 @@ public class BillService extends BaseDao<BillPojo> {
         billPojo.setDelFlag(0);
         long billId = this.save(billPojo);
         billPojo.setId(billId);
-        log.error("创建单据 单据Id=" + billId);
+        log.info("创建单据 单据Id=" + billId);
         return billPojo;
     }
 
@@ -202,7 +202,7 @@ public class BillService extends BaseDao<BillPojo> {
      * @return
      */
     public int updateBill(BillPojo billPojo) {
-        log.error("更新单据 单据编号=" + billPojo.getBillCode());
+        log.info("更新单据 单据编号=" + billPojo.getBillCode());
         return this.update(billPojo);
     }
 
@@ -214,7 +214,7 @@ public class BillService extends BaseDao<BillPojo> {
      * @return
      */
     public int updateBillStatistics(long id, BillDetailPojo bdp) {
-        log.error("更新单据 id=" + id);
+        log.info("更新单据 id=" + id);
         BillPojo billPojo = this.findById(id);
         billPojo.setNumber(billPojo.getNumber() + 1);
         billPojo.setQualifiedNum(billPojo.getQualifiedNum() + (bdp.getState() == 1 ? 1 : 0));

+ 10 - 10
src/main/java/co/dc/aptiv/service/MaterielService.java

@@ -49,7 +49,7 @@ public class MaterielService {
      */
     public long saveMateriel(MaterielPojo materielPojo) {
         if (materielPojo != null) {
-            log.error("添加一个物料 dpn=" + materielPojo.getDpn() + " cpn=" + materielPojo.getCpn() + " type=" + materielPojo.getType());
+            log.info("添加一个物料 dpn=" + materielPojo.getDpn() + " cpn=" + materielPojo.getCpn() + " type=" + materielPojo.getType());
             return baseDao.save(materielPojo);
         } else {
             return 0;
@@ -63,7 +63,7 @@ public class MaterielService {
      * @return
      */
     public int deleteById(long id) {
-        log.error("删除一个物料  id=" + id);
+        log.info("删除一个物料  id=" + id);
         if (id != 0) {
             return baseDao.del(MaterielPojo.class, id);
         } else {
@@ -79,7 +79,7 @@ public class MaterielService {
      * @return
      */
     public int deleteByDpn(String dpn) {
-        log.error("删除一个物料 dpn=" + dpn);
+        log.info("根据dpn删除物料 dpn=" + dpn);
         if (!StringUtils.isEmpty(dpn)) {
             return baseDao.del(MaterielPojo.class, "dpn", dpn);
         } else {
@@ -94,7 +94,7 @@ public class MaterielService {
      * @return
      */
     public int updateMaterielpojoMaxNum(long id) {
-        log.error("更新物料序号 id=" + id);
+        log.info("更新物料序号 id=" + id);
         MaterielPojo materielPojo = AptivApp.materielService.findById(id);
         materielPojo.setMaxNum(materielPojo.getMaxNum() + 1);
         materielPojo.setModifyTime(DateTimeUtil.getDateTimeString());
@@ -108,7 +108,7 @@ public class MaterielService {
      * @return
      */
     public int updateMaterielpojo(MaterielPojo materielPojo) {
-        log.error("更新物料序号 物料名称=" + materielPojo.getDpn());
+        log.info("更新物料序号 物料名称=" + materielPojo.getDpn());
         return baseDao.update(materielPojo);
     }
 
@@ -150,7 +150,7 @@ public class MaterielService {
      */
     public MaterielPojo findByCPN(String dpn, String cpn) {
         try {
-            MaterielPojo materielPojo = baseDao.query("SELECT * FROM materiel WHERE delFlag = 1 AND dpn = ? OR cpn = ?", new BeanHandler<MaterielPojo>(MaterielPojo.class), dpn, cpn);
+            MaterielPojo materielPojo = baseDao.query("SELECT * FROM materiel WHERE delFlag = 1 AND dpn = ? OR cpn = ?", new BeanHandler<MaterielPojo>(MaterielPojo.class), dpn, cpn);
             if (materielPojo != null) {
                 return materielPojo;
             }
@@ -166,7 +166,7 @@ public class MaterielService {
      * @return
      */
     public List<MaterielPojo> listAll() {
-        log.error("查询所有物料数据。");
+        log.info("查询所有物料数据。");
         List<MaterielPojo> materielPojos = baseDao.listByParam(MaterielPojo.class, "1", "1", "id asc");
         if (materielPojos != null) {
             return materielPojos;
@@ -181,7 +181,7 @@ public class MaterielService {
      * @return
      */
     public boolean isExistByproductCode(String productCode, long skuId) {
-        log.error("查询是否有sku已经存在。");
+        log.info("查询是否有sku已经存在。");
         List<MaterielPojo> materielPojos = baseDao.listByParam(MaterielPojo.class, "productCode", productCode);
         boolean reBoolean = false;
         if (materielPojos != null && materielPojos.size() > 0) {
@@ -212,12 +212,12 @@ public class MaterielService {
      * @return
      */
     public int isExistByParam(String paramName, String paramValue, int MaxLength, long id) {
-        String sql = "SELECT * FROM materiel WHERE delFlag = 0 AND " + paramName + " = '" + paramValue + "'";
+        String sql = "SELECT * FROM materiel WHERE delFlag = 0 AND ? = ?";
         if (id > 0) {
             sql += " AND id != " + id;
         }
         try {
-            List<MaterielPojo> materielPojos = baseDao.query(sql, new BeanListHandler<MaterielPojo>(MaterielPojo.class));
+            List<MaterielPojo> materielPojos = baseDao.query(sql, new BeanListHandler<MaterielPojo>(MaterielPojo.class), paramName, paramValue);
             if (materielPojos != null && materielPojos.size() > 0) {
                 return 1;
             }

+ 65 - 66
src/main/java/co/dc/aptiv/service/QrCodeService.java

@@ -28,6 +28,7 @@ public class QrCodeService {
     private CommonBaseDao baseDao;
     private static final Log log = LogFactory.getLog(QrCodeService.class);
     protected String createDateTime = null;
+    boolean isReCode = false;
 
     /**
      * 根据物料Id生成二维码
@@ -43,6 +44,7 @@ public class QrCodeService {
         String lastDate = AptivApp.billDetailService.getLastDate(materielId);
         MaterielPojo materielPojo = AptivApp.materielService.findById(materielId);
         if (materielPojo == null) {
+            log.info("物料不存在,无法生成码");
             return null;
         }
         /*lastDate == null || (nowDate - lastDate > 0)  = 重置计数*/
@@ -52,11 +54,11 @@ public class QrCodeService {
             AptivApp.materielService.updateMaterielpojo(materielPojo);
         }
         //每天计数不能超过9999
-        if (materielPojo.getMaxNum() > 9999) {
+        /*if (materielPojo.getMaxNum() > 9999) {
             return null;
-        }
+        }*/
         String maxNum = materielPojo.getMaxNum() + "";
-        //最大序号进行补位
+        //最大序号不足4位进行补位
         StringBuilder sb = new StringBuilder();
         for (int i = 0; i < 4 - maxNum.length(); i++) {
             sb.append("0");
@@ -65,7 +67,9 @@ public class QrCodeService {
         //更新物料序号
         AptivApp.materielService.updateMaterielpojoMaxNum(materielId);
         //物料编号+生产日期+(补位+最大序号)
-        return materielPojo.getCpn() + " " + nowDate.replace("-", "").substring(2, 8) + maxNum;
+        String code = materielPojo.getCpn() + " " + nowDate.replace("-", "").substring(2, 8) + maxNum;
+        log.info("生成码 =" + code);
+        return code;
     }
 
 
@@ -73,19 +77,26 @@ public class QrCodeService {
      * 将码发送到激光机
      */
     public int sendQrCode() {
-        /*if (AptivApp.flag == 1 && AptivApp.printStatus) {*/
-        if (AptivApp.flag == 1) {
-            /*AptivApp.printStatus = false;*/
-            String code = generateQRCode(AptivApp.nowMaterielPojo.getId());
+//        if (AptivApp.flag && AptivApp.printStatus) {
+        if (AptivApp.flag) {
+//            AptivApp.printStatus = false;
+            String code = generateQRCode(AptivApp.nowMaterielPojo.getId()).trim();
             if (code == null) {
                 return 2;
             }
             AptivApp.qrCode = code;
-            getScanFrame().loadCode();
-            //获取码并发送到激光机
-            int status = AptivApp.printMina.sendByte(AptivApp.ccu.String2ASCII(AptivApp.nowMaterielPojo.getCpn() + AptivApp.nowMaterielPojo.getType() + AptivApp.qrCode));
-            if (status > 0) {
-                return status;
+            BillDetailPojo billDetailPojo = baseDao.findByParam(BillDetailPojo.class, "qrCode", AptivApp.qrCode);
+            //不是重码才发往激光机打印,是重码提示管理员
+            if (billDetailPojo == null) {
+                getScanFrame().loadCode();
+                //获取码并发送到激光机
+                int status = AptivApp.printMina.sendByte(AptivApp.ccu.String2ASCII(AptivApp.nowMaterielPojo.getCpn() + AptivApp.nowMaterielPojo.getType() + AptivApp.qrCode));
+                if (status > 0) {
+                    return status;
+                }
+            } else {
+                log.error("生产出重码 =" + AptivApp.qrCode);
+                getScanFrame().alertMsg(1, "生产出重码,请停止打印并联系管理员");
             }
         }
         return -1;
@@ -99,30 +110,34 @@ public class QrCodeService {
      */
     public void receiveQrCode(String str) {
         //设置扫描状态为不可扫描
-        /*AptivApp.scanStatus = false;*/
-        //保存详情
-        BillDetailPojo bdp = AptivApp.billDetailService.addBillDetail(AptivApp.billPojo.getId(), AptivApp.nowMaterielPojo.getId(), AptivApp.qrCode.trim(), str.trim());
-        //不合格返给采集器错误信号
-        if (!AptivApp.qrCode.trim().equals(str.trim())) {
-            AptivApp.collectorMina.send("R");
-            log.error("不合格的样品,发送错误指令给采集器,用来驱动气缸");
+//        AptivApp.scanStatus = false;
+        //采集器未采到码
+        if ("ERROR".equals(str)) {
+            log.info("生产模式:采集器未采集到码");
+        }
+        //检查重码
+        BillDetailPojo billDetailPojo = baseDao.findByParam(BillDetailPojo.class, "qrCode", str);
+        boolean reCodeORFailed = billDetailPojo != null || (AptivApp.qrCode != null && !AptivApp.qrCode.equals(str));
+        //重码或不合格返给采集器错误信号
+        if (reCodeORFailed) {
+            sendErrorCommand(billDetailPojo != null ? "生产模式:检测到重码!" : "生产模式:采集器采集到不合格的码");
         }
+        //保存详情
+        BillDetailPojo bdp = AptivApp.billDetailService.addBillDetail(AptivApp.billPojo.getId(), AptivApp.nowMaterielPojo.getId(), AptivApp.qrCode, str);
         getScanFrame().loadjtable1(bdp);
         //更新单据统计数据
         AptivApp.billService.updateBillStatistics(AptivApp.billPojo.getId(), bdp);
-        log.error("成功保存码" + str);
+        log.info("成功保存码" + str);
         //设置打印状态为可打印
-        /*AptivApp.printStatus = true;*/
+//        AptivApp.printStatus = true;
 
         //打印状态且非联机模式,重新发码
-        if (AptivApp.flag == 1 && !getScanFrame().onLine) {
+        if (AptivApp.flag && !getScanFrame().onLine) {
             int codeFlag = sendQrCode();
-            if (codeFlag > 1) {
+            if (codeFlag != 1) {
+                log.info("发送码给激光机异常");
                 getScanFrame().alertMsg(1, "生产码异常,请停止打印并联系管理员!");
             }
-            if (codeFlag < 0) {
-                //此处如果打印不成功
-            }
         }
 
     }
@@ -138,8 +153,9 @@ public class QrCodeService {
         try {
             String sql = "SELECT SUM(number),sum(qualifiedNum),sum(UnqualifiedNum) FROM bill WHERE createTime BETWEEN '" + date + " 00:00:00' AND '" + date + " 23:59:59';";
             map = baseDao.query(sql, new MapHandler());
+            log.info("统计当前日期打印总数" + map.toString());
         } catch (SQLException e) {
-            log.error(e);
+            log.error("统计当前日期打印总数异常:" + e);
         }
         return map;
     }
@@ -155,58 +171,41 @@ public class QrCodeService {
 
     /**
      * 检查重码
+     * 判断是不是我们产的码
+     * 不是我们产的码返给采集器错误信号
+     * 是我们生产的那肯定是重码
      *
      * @return
      */
-    public boolean checkReCode(String str) {
+    public void checkReCode(String str) {
         //采到的码去找当前订单详情
-        BillDetailPojo billDetailPojo = baseDao.findByParam(BillDetailPojo.class, "qrCode", str.trim());
-        //判断当前模式,0点检,1打印
-        if (AptivApp.flag == 0) {
-            /*
-                判断是不是我们产的码
-                不是我们产的码返给采集器错误信号
-                是我们生产的那肯定是重码
-            */
-            if (billDetailPojo == null) {
-                AptivApp.collectorMina.send("R");
-                getScanFrame().alertMsg(1, "检测到不是我们生产的码!");
-                return false;
-            } else {
-                AptivApp.collectorMina.send("R");
-                getScanFrame().alertMsg(1, "检测到重码!");
-                return false;
-            }
-        } else {
-            //当前订单详情不等于空,那就是有重码了
-            if (billDetailPojo != null) {
-                //重码时反给采集器错误信号
-                AptivApp.collectorMina.send("R");
-                billDetailPojo.setId(-1);
-                billDetailPojo.setQrCode("检测到重码" + billDetailPojo.getQrCode());
-                billDetailPojo.setState(0);
-                AptivApp.qrcodeService.getScanFrame().loadjtable1(billDetailPojo);
-                //更新单据统计数据
-                AptivApp.billService.updateBillStatistics(AptivApp.billPojo.getId(), billDetailPojo);
-                //设置打印状态为可打印
-//                AptivApp.printStatus = true;
-                if (!getScanFrame().onLine) {
-                    sendQrCode();
-                }
-                return false;
+        BillDetailPojo billDetailPojo = baseDao.findByParam(BillDetailPojo.class, "qrCode", str);
+        sendErrorCommand(billDetailPojo == null ? "点检模式:检测到不是程序生产的码!" : "点检模式:检测到重码!");
+        isReCode = billDetailPojo == null;
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            public void run() {
+                getScanFrame().alertMsg(1, isReCode ? "检测到不是程序生产的码!" : "检测到重码!");
             }
-        }
-        return true;
+        });
     }
 
 
     /**
      * 重置激光机的数据,以实现打印完就清空的效果
+     * 目前不理想,二空格仍然会被识别成二维码,需要优化方案
      */
     public void resetLaserMachine() {
-        //此处的33个空格是用来发送给激光机,用来清空激光机上打过的最后一条数据
+        //此处的33个空格是用来清空激光机上打过的最后一条数据
         AptivApp.printMina.sendByte(AptivApp.ccu.String2ASCII("                                 "));
+        log.info("清空激光机保留的最后一条数据");
     }
 
+    /**
+     * 重码时返给采集器错误信号
+     */
+    public void sendErrorCommand(String errorMsg) {
+        AptivApp.collectorMina.send("R");
+        log.info(errorMsg);
+    }
 
 }

+ 8 - 8
src/main/java/co/dc/aptiv/service/UserService.java

@@ -39,7 +39,7 @@ public class UserService extends BaseDao<UserPojo> {
 
 
     public boolean checkDb() {
-        log.error("检查数据库连接");
+        log.info("检查数据库连接");
         try {
             queryRunner.query("select count(*) from " + getTableName(), new ScalarHandler());
             return true;
@@ -57,7 +57,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public UserPojo checklogin(String loginname, String password) {
-        log.error("登陆操作-成功则返回且修改登录状态-String loginname=" + loginname + ",String password=" + password);
+        log.info("登陆操作-成功则返回且修改登录状态-String loginname=" + loginname);
         UserPojo userPojo = new UserPojo();
         try {
             userPojo = queryRunner.query("select * from " + getTableName() + " where loginname = ? and password = ? and delFlag = 0 limit 1", new BeanHandler<UserPojo>(UserPojo.class), loginname, password);
@@ -79,7 +79,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public UserPojo loginout(String password) {
-        log.error("退出操作-成功则返回且修改登录状态-String password=" + password);
+        log.info("退出操作-成功则返回且修改登录状态-String password=" + password);
         UserPojo userPojo = new UserPojo();
         try {
             userPojo = queryRunner.query("select * from " + getTableName() + " where loginstatus = 1 and password = ? limit 1", new BeanHandler<UserPojo>(UserPojo.class), password);
@@ -114,7 +114,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public List<UserPojo> getuserinfo(UserPojo userPojo, int datatype) {
-        log.error("获取权限内的所有用户的信息");
+        log.info("获取权限内的所有用户的信息");
         List<UserPojo> userPojos = new ArrayList<UserPojo>();
         if (datatype == 2) {
             try {
@@ -153,7 +153,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public int updaterole(UserPojo userPojo, long id, long roleid) {
-        log.error("修改权限-long id=" + id + ", long roleid=" + roleid);
+        log.info("修改权限-long id=" + id + ", long roleid=" + roleid);
         int upid = 0;
         try {
             if (userPojo.getId() == id) {
@@ -176,7 +176,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public int updatepass(long id, String prepass, String nowpass) {
-        log.error("修改密码-long id=" + id + ", String prepass=" + prepass + ", String nowpass=" + nowpass);
+        log.info("修改密码-long id=" + id + ", String prepass=" + prepass + ", String nowpass=" + nowpass);
         int upid = 0;
         try {
             upid = queryRunner.update("update " + getTableName() + " set password = ? where id = ? and password = ?", nowpass, id, prepass);
@@ -193,7 +193,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public int deluser(UserPojo userPojo, long id) {
-        log.error("删除用户-long id=" + id);
+        log.info("删除用户-long id=" + id);
         int upid = 0;
         try {
             if (userPojo.getId() == id) {
@@ -214,7 +214,7 @@ public class UserService extends BaseDao<UserPojo> {
      * @return
      */
     public boolean checkloginname(String loginname) {
-        log.error("检查用户名是否已经被使用-" + loginname);
+        log.info("检查用户名是否已经被使用-" + loginname);
         try {
             UserPojo uu = findByParam("loginname", loginname);
             if (uu != null && uu.getId() > 0) {

+ 4 - 4
src/main/resources/config.properties

@@ -8,15 +8,15 @@ dataSource.password=
 lastname=admin
 
 #PLC
-plc.ip=192.168.3.4
+plc.ip=192.168.2.197
 plc.port=3000
 
 #\u6FC0\u5149\u673A\u914D\u7F6E
-com=COM5
+com=COM2
 bot=9600
 
 #\u91C7\u96C6\u5668\u914D\u7F6E
-machine.ip=192.168.3.3
+machine.ip=192.168.2.197
 machine.port=51236
 
 #\u8054\u673A\u72B6\u6001
@@ -24,4 +24,4 @@ onlineStatus = false
 
 #\u6D4B\u8BD5\u673A\u914D\u7F6E
 testMachine.com=COM4
-testMachine.bot=57600
+testMachine.bot=57600

+ 123 - 122
src/main/resources/logback.xml

@@ -7,136 +7,137 @@
 	FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名 stdout将日志信息输出到控制上,为方便开发测试使用 -->
 <configuration>
 
-	<!-- 在Eclipse中运行,请到Eclipse的安装目录中找log文件,Tomcat下,请到Tomcat目录下找 -->
-	<property name="LOG_PATH" value="c:/runlogs/" />
+    <!-- 在Eclipse中运行,请到Eclipse的安装目录中找log文件,Tomcat下,请到Tomcat目录下找 -->
+    <property name="LOG_PATH" value="${exe.path}/logs/"/>
 
-	<!-- 日志记录器,日期滚动记录 -->
-	<appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<!-- 正在记录的日志文件的路径及文件名 -->
-		<file>${LOG_PATH}/log_error.log</file>
-		<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定, 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
-			<fileNamePattern>${LOG_PATH}/log-error-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始, 命名日志文件,例如log-error-2013-12-21.0.log -->
-			<timeBasedFileNamingAndTriggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-		<!-- 追加方式记录日志 -->
-		<append>true</append>
-		<!-- 日志文件的格式 -->
-		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-			<pattern>%-5p [%d] %C:%L - %m %n</pattern>
-			<charset>utf-8</charset>
-		</encoder>
-		<!-- 此日志文件只记录error级别的 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>error</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
-	</appender>
 
-	<appender name="FILERUN"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${LOG_PATH}/log_run.log</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${LOG_PATH}/log-warn-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-		<append>true</append>
-		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-			<pattern>%-5p [%d] %C:%L - %m %n</pattern>
-			<charset>utf-8</charset>
-		</encoder>
-		<!-- 此日志文件只记录warn级别,不记录大于warn级别的日志 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>INFO</level>
-		</filter>
-	</appender>
+    <!-- 日志记录器,日期滚动记录 -->
+    <appender name="FILEERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文件的路径及文件名 -->
+        <file>${LOG_PATH}/log_error.log</file>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定, 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
+            <fileNamePattern>${LOG_PATH}/log-error-%d{yyyy-MM-dd}.%i.log
+            </fileNamePattern>
+            <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始, 命名日志文件,例如log-error-2013-12-21.0.log -->
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <!-- 追加方式记录日志 -->
+        <append>true</append>
+        <!-- 日志文件的格式 -->
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%-5p [%d] %C:%L - %m %n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 此日志文件只记录error级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>error</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
-	<appender name="FILEINFO"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${LOG_PATH}/log_info.log</file>
+    <appender name="FILERUN"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_PATH}/log_run.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_PATH}/log-warn-%d{yyyy-MM-dd}.%i.log
+            </fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <append>true</append>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%-5p [%d] %C:%L - %m %n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 此日志文件只记录warn级别,不记录大于warn级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+        </filter>
+    </appender>
 
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${LOG_PATH}/log-info-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-		<append>true</append>
-		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-			<pattern>%-5p [%d] %C:%L - %m %n</pattern>
-			<charset>utf-8</charset>
-		</encoder>
-		<!-- 此日志文件只记录info级别,不记录大于info级别的日志 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>INFO</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
-	</appender>
+    <appender name="FILEINFO"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_PATH}/log_info.log</file>
 
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_PATH}/log-info-%d{yyyy-MM-dd}.%i.log
+            </fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <append>true</append>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%-5p [%d] %C:%L - %m %n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 此日志文件只记录info级别,不记录大于info级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
-	<appender name="FILEDEBUG"
-		class="ch.qos.logback.core.rolling.RollingFileAppender">
-		<file>${LOG_PATH}/log_debug.log</file>
-		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<fileNamePattern>${LOG_PATH}/log-debug-%d{yyyy-MM-dd}.%i.log
-			</fileNamePattern>
-			<timeBasedFileNamingAndTriggeringPolicy
-				class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-				<maxFileSize>100MB</maxFileSize>
-			</timeBasedFileNamingAndTriggeringPolicy>
-		</rollingPolicy>
-		<append>true</append>
-		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-			<pattern>%-5p [%d] %C:%L - %m %n</pattern>
-			<charset>utf-8</charset>
-		</encoder>
-		<!-- 此日志文件只记录debug级别,不记录大于debug级别的日志 -->
-		<filter class="ch.qos.logback.classic.filter.LevelFilter">
-			<level>DEBUG</level>
-			<onMatch>ACCEPT</onMatch>
-			<onMismatch>DENY</onMismatch>
-		</filter>
-	</appender>
 
-	<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-		<Target>System.out</Target>
-		<encoder>
-			<pattern>%-5p [%d] %C:%L - %m %n</pattern>
-			<charset>utf-8</charset>
-		</encoder>
-		<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
-		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-			<level>DEBUG</level>
-		</filter>
-	</appender>
-	<!-- 为单独的包配置日志级别,若root的级别大于此级别, 此处级别也会输出 应用场景:生产环境一般不会将日志级别设置为trace或debug,但是为详细的记录SQL语句的情况, 
-		可将hibernate的级别设置为debug,如此一来,日志文件中就会出现hibernate的debug级别日志, 而其它包则会按root的级别输出日志 
-		<logger name="org.hibernate.SQL" level="DEBUG" /> <logger name="org.hibernate.jdbc" 
-		level="DEBUG"/> <logger name="org.springframework" level="DEBUG"/> -->
+    <appender name="FILEDEBUG"
+              class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_PATH}/log_debug.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_PATH}/log-debug-%d{yyyy-MM-dd}.%i.log
+            </fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <append>true</append>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%-5p [%d] %C:%L - %m %n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 此日志文件只记录debug级别,不记录大于debug级别的日志 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
 
+    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
+        <Target>System.out</Target>
+        <encoder>
+            <pattern>%-5p [%d] %C:%L - %m %n</pattern>
+            <charset>utf-8</charset>
+        </encoder>
+        <!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>DEBUG</level>
+        </filter>
+    </appender>
+    <!-- 为单独的包配置日志级别,若root的级别大于此级别, 此处级别也会输出 应用场景:生产环境一般不会将日志级别设置为trace或debug,但是为详细的记录SQL语句的情况,
+        可将hibernate的级别设置为debug,如此一来,日志文件中就会出现hibernate的debug级别日志, 而其它包则会按root的级别输出日志
+        <logger name="org.hibernate.SQL" level="DEBUG" /> <logger name="org.hibernate.jdbc"
+        level="DEBUG"/> <logger name="org.springframework" level="DEBUG"/> -->
 
-	<!-- 生产环境,将此级别配置为适合的级别,以名日志文件太多或影响程序性能 -->
-	<root level="INFO">
-		<appender-ref ref="FILERUN" />
-		<appender-ref ref="FILEDEBUG" />
-		<appender-ref ref="FILEINFO" />
 
-		<appender-ref ref="FILEERROR" />
-		<!-- 生产环境将请stdout去掉 -->
-		<appender-ref ref="stdout" />
-	</root>
+    <!-- 生产环境,将此级别配置为适合的级别,以名日志文件太多或影响程序性能 -->
+    <root level="INFO">
+        <appender-ref ref="FILERUN"/>
+        <appender-ref ref="FILEDEBUG"/>
+        <appender-ref ref="FILEINFO"/>
+
+        <appender-ref ref="FILEERROR"/>
+        <!-- 生产环境将请stdout去掉 -->
+        <appender-ref ref="stdout"/>
+    </root>
 </configuration>