From 301115d5e96b56cd093eee3fcff2d60a15184162 Mon Sep 17 00:00:00 2001
From: hjg <hjg@123.com>
Date: 星期一, 05 二月 2024 14:28:29 +0800
Subject: [PATCH] 明晟装车记录

---
 JavaSource/com/mandi/fendan/util/Contants.java                  |    5 +
 JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java            |   64 ++++++++++++++-------
 JavaSource/com/mandi/fendan/service/impl/ErpService.java        |    4 -
 JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java |   60 ++++++++++++++------
 4 files changed, 88 insertions(+), 45 deletions(-)

diff --git a/JavaSource/com/mandi/fendan/service/impl/ErpService.java b/JavaSource/com/mandi/fendan/service/impl/ErpService.java
index 8331c99..de552bc 100644
--- a/JavaSource/com/mandi/fendan/service/impl/ErpService.java
+++ b/JavaSource/com/mandi/fendan/service/impl/ErpService.java
@@ -380,7 +380,6 @@
 					mm.put("td_wfdsl", wt.getTd_wfdsl());
 					mm.put("td_wfdzl", BigDecimalfiter.addscal(0, wt.getTd_wfdzl(), Contants.scale));
 				} catch (Exception e) {
-					// TODO: handle exception
 				}
 				rl.add(mm);
 			}
@@ -507,7 +506,6 @@
 				// mm.put("td_wfdzl",BigDecimalfiter.addscal(0, wt.getTd_wfdzl(),
 				// Contants.scale));
 				// } catch (Exception e) {
-				// // TODO: handle exception
 				// }
 				rl.add(mm);
 			}
@@ -939,7 +937,7 @@
 
 		this.fdvcper.del(vehicleId, lg.getDepartno(), fb.getSdepartNo());
 
-		// 鍙戦�丯C绯荤粺鍒犻櫎鍒嗗崟淇℃伅
+		// 鍙戦�丯C绯荤粺鍒犻櫎鍒嗗崟淇℃伅 todo 鍙戦�乶c鏆傛椂鍙栨秷鎺夛紝姝e紡瑕佹仮澶�
 		if (tdl != null && tdl.size() > 0) {
 			Fileoperation.AppendContentToFile(Fileoperation.gettestFileName(),
 					"鍙栨秷閰嶈溅涓氬姟鍗�  璇锋眰鎻愬崟 ::" + Jacksonmethod.tojson(tdl, false));
diff --git a/JavaSource/com/mandi/fendan/util/Contants.java b/JavaSource/com/mandi/fendan/util/Contants.java
index 897fe38..0e73e2d 100644
--- a/JavaSource/com/mandi/fendan/util/Contants.java
+++ b/JavaSource/com/mandi/fendan/util/Contants.java
@@ -47,11 +47,12 @@
 
 	public static String  yr_scanCodeNoticeUrl = yktLocalAdd + "/routine/app/notice/scan.htm"; // 閫氱煡涔夌憺瑁呰溅鐨勬帴鍙�
 	public static String  yr_canDoScanUrl = yktLocalAdd + "/routine/app/notice/canDoScan.htm"; // 閫氱煡涔夌憺瑁呰溅鐨勬帴鍙�
+	public static String  ms_DoScanUrl = yktLocalAdd + "/routine/app/notice/msScan.htm"; // 閫氱煡鏄庢櫉瑁呰溅鐨勬帴鍙�
 
 	//鏈夊彲鑳藉彉鍔ㄧ殑鍙橀噺锛屽垏璁颁笉瑕佸啓鎴恌inal浜嗭紝鍚﹀垯甯搁噺鍊肩紪璇戝埌鏂囦欢閲岄潰浜嗭紱閬囧埌涓�涓猣inal鐨勯棶棰橈紝鏇挎崲閰嶇疆鏂囦欢鏃犳晥锛屽緢閮侀椃锛屽師鏉ユ槸杩欓噷瀵艰嚧鐨勯棶棰橈紱鑱槑鍙嶈鑱槑璇紱
 	public static String msLedServiceAddr= "http://10.22.12.104:8080/APPService.asmx"; // 鏄庢櫉瑁呰溅 ABC鍖篖ED webservice
-	public static String  yr_zcLedUrl = "http://10.4.12.97:8080/APPService.asmx"; // 涔夌憺LED 瑁呰溅 webservice
-	public static String  kj_zcLedUrl = "http://10.3.5.55:8088/APPService.asmx"; // 涔夌憺LED 瑁呰溅 webservice
+	public static String  yr_zcLedUrl = "http://10.4.12.187:8080/APPService.asmx"; // 涔夌憺LED 瑁呰溅 webservice
+	public static String  kj_zcLedUrl = "http://10.3.5.55:8088/APPService.asmx"; // 绉戞妧LED 瑁呰溅 webservice
 
 	//鍒嗗崟鍥炲啓nc绯荤粺娴嬭瘯鍦板潃
 //	public static String NCfdhx_url = "http://10.0.13.20:9090/api/Domain/mtcesb/servlet/PubAPIServlet";
diff --git a/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java b/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
index 43f01ff..4008200 100644
--- a/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
+++ b/JavaSource/com/mandi/fendan/util/ThreadPoolUtil.java
@@ -1,7 +1,7 @@
 package com.mandi.fendan.util;
 
 import javax.validation.constraints.NotNull;
-import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
@@ -27,25 +27,27 @@
     //瀛樻椿鏃堕棿
     private long keepAliveTime = 1;
     private TimeUnit unit = TimeUnit.HOURS;
-    private ThreadPoolExecutor executor;
+//    private ThreadPoolExecutor executor;
 
+    ScheduledThreadPoolExecutor executor;
     private ThreadPoolUtil() {
         //缁檆orePoolSize璧嬪�硷細褰撳墠璁惧鍙敤澶勭悊鍣ㄦ牳蹇冩暟*2 + 1,鑳藉璁ヽpu鐨勬晥鐜囧緱鍒版渶澶х▼搴︽墽琛岋紙鏈夌爺绌惰璇佺殑锛�
         corePoolSize = Runtime.getRuntime().availableProcessors() * 2 + 1;
         maxPoolSize = corePoolSize;
-        executor = new ThreadPoolExecutor(
-                //褰撴煇涓牳蹇冧换鍔℃墽琛屽畬姣曪紝浼氫緷娆′粠缂撳啿闃熷垪涓彇鍑虹瓑寰呬换鍔�
-                corePoolSize,
-                // 鐒跺悗new LinkedBlockingQueue(),鐒跺悗maximumPoolSize,浣嗘槸瀹冪殑鏁伴噺鏄寘鍚簡corePoolSize鐨�
-                maxPoolSize,
-                //琛ㄧず鐨勬槸maximumPoolSize褰撲腑绛夊緟浠诲姟鐨勫瓨娲绘椂闂�
-                keepAliveTime,
-                unit,
-                //缂撳啿闃熷垪锛岀敤浜庡瓨鏀剧瓑寰呬换鍔★紝Linked鐨勫厛杩涘厛鍑�
-                new LinkedBlockingQueue(),
-                new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
-                new ThreadPoolExecutor.AbortPolicy()
-        );
+//        executor = new ThreadPoolExecutor(
+//                //褰撴煇涓牳蹇冧换鍔℃墽琛屽畬姣曪紝浼氫緷娆′粠缂撳啿闃熷垪涓彇鍑虹瓑寰呬换鍔�
+//                corePoolSize,
+//                // 鐒跺悗new LinkedBlockingQueue(),鐒跺悗maximumPoolSize,浣嗘槸瀹冪殑鏁伴噺鏄寘鍚簡corePoolSize鐨�
+//                maxPoolSize,
+//                //琛ㄧず鐨勬槸maximumPoolSize褰撲腑绛夊緟浠诲姟鐨勫瓨娲绘椂闂�
+//                keepAliveTime,
+//                unit,
+//                //缂撳啿闃熷垪锛岀敤浜庡瓨鏀剧瓑寰呬换鍔★紝Linked鐨勫厛杩涘厛鍑�
+//                new LinkedBlockingQueue(),
+//                new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
+//                new ThreadPoolExecutor.AbortPolicy()
+//        );
+          executor =  new ScheduledThreadPoolExecutor(corePoolSize);
     }
 
     public static ThreadPoolUtil getInstance() {
@@ -65,18 +67,36 @@
      * @param runnable
      */
     public void execute(Runnable runnable) {
+        checkNull();
+        if (runnable != null) {
+            executor.execute(runnable);
+        }
+    }
+
+    void checkNull() {
         if (executor == null) {
-            executor = new ThreadPoolExecutor(
-                    corePoolSize,
-                    maxPoolSize,
-                    keepAliveTime,
-                    TimeUnit.SECONDS,
-                    new LinkedBlockingQueue(),
+//            executor = new ThreadPoolExecutor(
+//                    corePoolSize,
+//                    maxPoolSize,
+//                    keepAliveTime,
+//                    TimeUnit.SECONDS,
+//                    new LinkedBlockingQueue(),
+//                    new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
+//                    new ThreadPoolExecutor.AbortPolicy());
+            executor =  new ScheduledThreadPoolExecutor(corePoolSize,
                     new DefaultThreadFactory(Thread.NORM_PRIORITY, "thread-pool-"),
                     new ThreadPoolExecutor.AbortPolicy());
         }
+    }
+    /**
+     *
+     * @param runnable
+     * @param delay 寤惰繜鎵ц锛屽崟浣嶆绉�
+     */
+    public void execute(Runnable runnable,long delay) {
+        checkNull();
         if (runnable != null) {
-            executor.execute(runnable);
+            executor.schedule(runnable, delay, TimeUnit.MILLISECONDS);
         }
     }
 
diff --git a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
index ee76ae9..ec33ed7 100644
--- a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
+++ b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
@@ -437,10 +437,10 @@
 				return prr;
 			}
 		} catch (Exception e) {
-			// TODO: handle exception
 		}
 
 		String currPch="";// 褰撳墠鎵规鍙�
+		List<String> pchList = new ArrayList<>();
 		//绗竴娆℃坊鍔犺鍗歌褰曞彂閫佽杞︿俊鎭�
 		int sfzc=this.fbper.getbsitembyNo(fdb.getBsNo());
 		if(sfzc<=0) {
@@ -582,6 +582,7 @@
 			remp.put("tdmx_tdfl",tdmx.getTdmx_tdfl());
 			relist.add(remp);
 			currPch  = tdmx.getTdmx_pch();
+			pchList.add(tdmx.getTdmx_pch());
 		}
 
 		if(grossNum>0) {
@@ -607,12 +608,25 @@
 
 		 // 姝ゅ寮傛瑙﹀彂涓�涓嬫槑鏅熷彂杞�
 		if("06".equals(fdb.getSdepartNo())) {
-			final String cph = currPch;
+			final String pch = currPch;
 			final String finalVehicleId = vehicleId;
+			ThreadPoolUtil.getInstance().execute(()->{
+				Map paramMap = new HashMap();
+				paramMap.put("vehicleId", finalVehicleId);
+				paramMap.put("tdmxPchList", tdmxPchList);
+				String jsonStr = Jacksonmethod.tojson(paramMap, false);
+				JsonObject jsonObject = Wxhtmethod.postJsonStr(Contants.ms_DoScanUrl, jsonStr);
+				if (jsonObject.get("code").getAsInt() != 0) {
+					prr.setCode(1);
+					prr.setErrmsg(jsonObject.get("errmsg").getAsString());
+					// return prr;
+				}
+			});
+			// 寤惰繜1.5绉掓墽琛岋紝淇濊瘉鏁版嵁鎵ц瀹屼簡
 			ThreadPoolUtil.getInstance().execute(()->{
 				synchronized (FdXSTDService.refreshMsLedLock) {
 					if (FdXSTDService.refreshMsLedLock) { // 绯荤粺绻佸繖
-						log.info(finalVehicleId + "" + cph + "绯荤粺绻佸繖锛�");
+						log.info(finalVehicleId + "" + pch + "绯荤粺绻佸繖锛�");
 						return;
 					}
 				}
@@ -620,7 +634,7 @@
 					synchronized (FdXSTDService.refreshMsLedLock) {
 						FdXSTDService.refreshMsLedLock = true;
 					}
-					sendToMsLed(cph);
+					sendToMsLed(pch);
 				} catch (Exception e) {
 					log.error("鍑虹幇寮傚父锛�"+ e.getMessage(),e);
 				} finally {
@@ -628,7 +642,7 @@
 						FdXSTDService.refreshMsLedLock = false;
 					}
 				}
-			});
+			},1500);
 		}
 		if("08".equals(fdb.getSdepartNo())) {
 			final String cph = currPch;
@@ -680,13 +694,18 @@
 	}
 
 	/**
-	 *
+	 *  鎸埌涓�鍗¢��
 	 * @param currPch 褰撳墠鎵规鍙�
 	 */
 	public void sendToMsLed(String currPch){
 		//A鍖�  76-86 +  99-1
 		//B鍖�  14-33 +  99-2
 		//C鍖�  53-67 +  99-3
+		// 2024骞存敼
+		//A鍖�  73-88 +  99-1 +  40-45
+		//B鍖�  14-27 +  99-2 +  46-49
+		//C鍖�  50-65 +  99-3
+		//D鍖�  28-39 +	69-72	+ 89-98
 		log.info("LED-ABC褰撳墠鎵爜鎵规鍙凤細" + currPch);
 		List<Map> totalList =  tdmxper.getHwList("06"); // 鑾峰彇鏄庢櫉鎵�鏈夊湪鍔炰笟鍔″崟鐨勪俊鎭�
 		log.info("LED-ABC鑾峰彇淇℃伅鏉℃暟锛�" + totalList.size());
@@ -710,16 +729,18 @@
 		Map speakParam = new HashMap(1);
 		for (Map.Entry<String, List<Map>> entry : ywbhListMap.entrySet()) {
 			// 閬嶅巻姣忎釜涓氬姟鍗曠殑
-			// 褰撳墠瑁呰溅A銆丅銆丆鍖�
-			boolean currA = false,currB = false, currC = false;
+			// 褰撳墠瑁呰溅A銆丅銆丆鍖�; D鍖哄彧鍙備笌璁板綍锛屼笉鍙備笌LED鏄剧ず鍜岃瑷�鎾姤
+			boolean currA = false,currB = false, currC = false, currD = false;
 			boolean hasZcwc = false; // 淇濊瘉宸茬粡瀹屾垚浜�
 			String ywhb = entry.getKey();
 			List<Map> vehicleIdTotalList = entry.getValue();
-			Map<String, Integer> totalAbcMap = new HashMap(3); // 鎬昏淇℃伅
+			// 鎬昏淇℃伅
+			Map<String, Integer> totalAbcMap = new HashMap(3);
 			totalAbcMap.put("A", 0);
 			totalAbcMap.put("B", 0);
 			totalAbcMap.put("C", 0);
-			Map<String, Integer> abcMap = new HashMap(3); // 宸茶淇℃伅
+			/* 宸茶淇℃伅 */
+			Map<String, Integer> abcMap = new HashMap(3);
 			abcMap.put("A", 0);
 			abcMap.put("B", 0);
 			abcMap.put("C", 0);
@@ -732,32 +753,36 @@
 				String hh = hw.replaceAll("\\-.*","");
 				hh = hh.substring(hh.length()-2); // 鍙栨渶鍚庝袱浣�
 				int num = Integer.parseInt(hh);
-				if (num >= 76 && num <= 86 || hw.lastIndexOf("99-1") >= 0) { // A鍖�
+				if (num >= 73 && num <= 88 || hw.lastIndexOf("99-1") >= 0) { // A鍖�
 					totalAbcMap.put("A",totalAbcMap.get("A") + 1);
 					if (zcbz != null && zcbz == 1) { // 瑁呰溅瀹屾垚
 						abcMap.put("A", abcMap.get("A") + 1);
 						hasZcwc = true;
 					}
 					if(pch.equals(currPch)) {
-						currA = true; currB = false;currC =false;
+						currA = true; currB = false;currC =false;currD=false;
 					}
-				} else if (num >= 14 && num <= 33 || hw.lastIndexOf("99-2") >= 0) { // B鍖�
+				} else if (num >= 14 && num <= 27 || hw.lastIndexOf("99-2") >= 0) { // B鍖�
 					totalAbcMap.put("B", totalAbcMap.get("B") + 1);
 					if (zcbz != null && zcbz == 1) {
 						abcMap.put("B", abcMap.get("B") + 1);
 						hasZcwc = true;
 					}
 					if(pch.equals(currPch)) {
-						currA = false; currB = true;currC =false;
+						currA = false; currB = true;currC =false;currD=false;
 					}
-				} else if (num >= 53 && num <= 67 || hw.lastIndexOf("99-3") >= 0) { // C鍖�
+				} else if (num >= 50 && num <= 65 || hw.lastIndexOf("99-3") >= 0) { // C鍖�
 					totalAbcMap.put("C", totalAbcMap.get("C") + 1);
 					if (zcbz != null && zcbz == 1) {
 						abcMap.put("C", abcMap.get("C") + 1);
 						hasZcwc = true;
 					}
 					if(pch.equals(currPch)) {
-						currA = false; currB = false; currC =true;
+						currA = false; currB = false; currC =true; currD=false;
+					}
+				} else if(num>=28 && num<=39 ||	(num>=69 && num<=72) || (num>=89 && num<=98)) {
+					if(pch.equals(currPch)) {
+						currA = false; currB = false;currC =false;currD=true;
 					}
 				}
 			}
@@ -815,7 +840,7 @@
 	}
 
 	/**
-	 * 鍑嗗璇煶
+	 * 鍑嗗璇煶 锛屾尓鍒颁竴鍗¢��
 	 * @param cph 杞︾墝鍙�
 	 * @param total 褰撳墠鍖烘�绘暟
 	 * @param abcMap A銆丅銆丆涓簁ey鐨勫尯宸茶鏁扮洰
@@ -996,7 +1021,6 @@
 				return orr;
 			}
 		} catch (Exception e) {
-			// TODO: handle exception
 		}
 //		Fd_Bsheet nr=this.fbper.getbyVehicleId(vehicleId, Serviceenum.鍦ㄥ姙);
 //		if(nr==null){

--
Gitblit v1.9.3