From 4c64dca2491f0ae298ee160c1e8df22448a588ae Mon Sep 17 00:00:00 2001
From: Administrator <hbal>
Date: 星期六, 15 四月 2023 12:44:37 +0800
Subject: [PATCH] 明晟webservice

---
 JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java |  197 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 140 insertions(+), 57 deletions(-)

diff --git a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
index c12852f..33e51ad 100644
--- a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
+++ b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java
@@ -1,60 +1,34 @@
 package com.mandi.webservice.service.impl;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-
-import com.mandi.basicconfig.persist.*;
-import com.mandi.fendan.util.ConvertTool;
-import com.mandi.fendan.util.ThreadPoolUtil;
-import com.mandi.servlet.file.impl.FileLoadImpl;
-import javafx.concurrent.Task;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
 import com.mandi.basicconfig.mapper.FdRepertoryNexusMapper;
 import com.mandi.basicconfig.mapper.NczsjMapper;
+import com.mandi.basicconfig.persist.*;
 import com.mandi.common.JSONobj;
-import com.mandi.common.Wxhtmethod;
 import com.mandi.common.ParamFileter.BigDecimalfiter;
+import com.mandi.common.Wxhtmethod;
 import com.mandi.dao.common.ObjectResult;
 import com.mandi.dao.common.PageResult;
-import com.mandi.fendan.mapper.BsheetEcgbMapper;
-import com.mandi.fendan.mapper.BusinessMapper;
-import com.mandi.fendan.mapper.Fd_BsheetMapper;
-import com.mandi.fendan.mapper.Fd_CompanyMapper;
-import com.mandi.fendan.mapper.Fd_GbxstdMapper;
-import com.mandi.fendan.mapper.Fd_GbxstdmxMapper;
-import com.mandi.fendan.mapper.Fd_VehicleMapper;
-import com.mandi.fendan.mapper.Fd_XSTDMXMapper;
-import com.mandi.fendan.mapper.Fd_XSTDMapper;
-import com.mandi.fendan.mapper.Fd_YKTMapper;
-import com.mandi.fendan.mapper.VehicleXSTDMapper;
-import com.mandi.fendan.persist.BsheetEcgb;
-import com.mandi.fendan.persist.Fd_Bsheet;
-import com.mandi.fendan.persist.Fd_Company;
-import com.mandi.fendan.persist.Fd_Gbxstd;
-import com.mandi.fendan.persist.Fd_Gbxstdmx;
-import com.mandi.fendan.persist.Fd_XSTD;
-import com.mandi.fendan.persist.Fd_XSTDMX;
-import com.mandi.fendan.persist.Vehicle_XSTD;
+import com.mandi.fendan.mapper.*;
+import com.mandi.fendan.persist.*;
 import com.mandi.fendan.util.Contants;
+import com.mandi.fendan.util.ConvertTool;
+import com.mandi.fendan.util.ThreadPoolUtil;
 import com.mandi.fendan.util.persist.Serviceenum;
 import com.mandi.fendan.util.persist.WaitXSTDMX;
 import com.mandi.fendan.util.persist.Yktbsitem;
+import com.mandi.servlet.file.impl.FileLoadImpl;
 import com.mandi.webservice.service.IFdXSTDService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
 
 @Service
 public class FdXSTDService implements IFdXSTDService{
@@ -459,7 +433,7 @@
 			// TODO: handle exception
 		}
 
-
+		String currPch="";// 褰撳墠鎵规鍙�
 		//绗竴娆℃坊鍔犺鍗歌褰曞彂閫佽杞︿俊鎭�
 		int sfzc=this.fbper.getbsitembyNo(fdb.getBsNo());
 		if(sfzc<=0) {
@@ -582,6 +556,7 @@
 			remp.put("td_tdls",tdmx.getTdmx_tdls());
 			remp.put("tdmx_tdfl",tdmx.getTdmx_tdfl());
 			relist.add(remp);
+			currPch  = tdmx.getTdmx_pch();
 		}
 
 		if(grossNum>0) {
@@ -607,7 +582,8 @@
 
 		 // 姝ゅ寮傛瑙﹀彂涓�涓嬫槑鏅熷彂杞�
 		if("06".equals(fdb.getSdepartNo())) {
-			ThreadPoolUtil.getInstance().execute(()->sendToMsLed());
+			final String cph = currPch;
+			ThreadPoolUtil.getInstance().execute(()->sendToMsLed(cph));
 		}
 		prr.setCode(0);
 		prr.setErrmsg("瑁呰溅鎿嶄綔鎴愬姛锛�");
@@ -615,7 +591,11 @@
 		return prr;
 	}
 
-	public void sendToMsLed(){ // todo 鏄庡ぉ闇�瑕佹祴璇曚竴涓�
+	/**
+	 *
+	 * @param currPch 褰撳墠鎵规鍙�
+	 */
+	public void sendToMsLed(String currPch){
 		//A鍖�  76-86 +  99-1
 		//B鍖�  14-33 +  99-2
 		//C鍖�  53-67 +  99-3
@@ -628,12 +608,21 @@
 			}
 			ywbhListMap.get(ywdw).add(map);
 		}
-		String str1 = "杞﹀彿-A鍖�-B鍖�-C鍖�" + "\r\n", str2="";
+		String str1 = " 杞﹀彿  A鍖�  B鍖�  C鍖�" + "\r\n", str2="";
 		//"(杞︾墝鍙�)\\-(A鍖哄凡瑁呰溅)/(A鍖烘�昏)\\-(B鍖哄凡瑁呰溅)/(B鍖烘�昏)\\-(C鍖哄凡瑁呰溅)/(C鍖烘�昏)\\r\\n";
-		String formatStr = "%s-%d/%d- %d/%d-%d/%d\r\n";
+		String formatStr = "%s %s/%s %s/%s %s/%s\r\n";
+		// 鍙湁1涓尯
+		String speakTxtFormatStr1 = "杞﹀彿%s 锛岃璐�%d浠跺凡瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡敖蹇┒绂昏璐у尯銆�";
+		// 鍙湁2涓尯
+		String speakTxtFormatStr2 = "杞﹀彿%s锛�%s鍖鸿璐�%d浠跺凡鍏ㄩ儴鎵弿瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡幓%s鍖鸿璐с��";
+		// 鍙湁3涓尯
+		String speakTxtFormatStr3 = "杞﹀彿%s锛�%s鍖鸿璐�%d浠跺凡鍏ㄩ儴鎵弿瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡幓%s鍖�%s鍖鸿璐с��";
+		Map speakParam = new HashMap(1);
 		for (Map.Entry<String, List<Map>> entry : ywbhListMap.entrySet()) { // 閬嶅巻姣忎釜涓氬姟鍗曠殑
+			// 褰撳墠瑁呰溅A銆丅銆丆鍖�
+			boolean currA = false,currB = false, currC = false;
 			boolean hasZcwc = false; // 淇濊瘉宸茬粡瀹屾垚浜�
-			String ywhb = entry.getKey();
+			// String ywhb = entry.getKey();
 			List<Map> vehicleIdTotalList = entry.getValue();
 			Map<String, Integer> totalAbcMap = new HashMap(3); // 鎬昏淇℃伅
 			totalAbcMap.put("A", 0);
@@ -646,41 +635,135 @@
 			String cph = ""; // 杞︾墝鍙�
 			for (Map map : vehicleIdTotalList) {
 				String hw = (String) map.get("tdmx_hwmc");
-				if(!"".equals(cph))  cph = (String) map.get("tdmx_zccph");
+				String pch = (String) map.get("tdmx_pch");
+				if("".equals(cph))  cph = (String) map.get("tdmx_fdcph");
 				Integer zcbz = (Integer) map.get("tdmx_zcbz");
 				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鍖�
-					totalAbcMap.put("A", 1);
+					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;
+					}
 				} else if (num >= 14 && num <= 33 || hw.lastIndexOf("99-2") >= 0) { // B鍖�
-					totalAbcMap.put("B", 1);
+					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;
+					}
 				} else if (num >= 53 && num <= 67 || hw.lastIndexOf("99-3") >= 0) { // C鍖�
-					totalAbcMap.put("C", 1);
+					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;
+					}
 				}
 			}
-			if (!hasZcwc) continue;
-			str2 += String.format(formatStr, cph, abcMap.get("A"), totalAbcMap.get("A"),
-					abcMap.get("B"), totalAbcMap.get("B"),
-					abcMap.get("C"), totalAbcMap.get("C"));
+			if (!hasZcwc) continue; //娌℃湁瑁呰溅瀹屾垚鐨勪篃璺宠繃
+			if (!(currA || currB || currC) && abcMap.get("A") + abcMap.get("B") + abcMap.get("C") ==
+					totalAbcMap.get("A") + totalAbcMap.get("B") + totalAbcMap.get("C")) { // 闈炲綋鍓嶈溅鐗屽彿锛屽凡缁忚杞﹀畬鎴愪絾鏄湭鍑哄巶
+				continue;
+			}
+			str2 += String.format(formatStr, cph, fillSpace(abcMap.get("A")), fillSpace(totalAbcMap.get("A")),
+					fillSpace(abcMap.get("B")), fillSpace(totalAbcMap.get("B")),
+					fillSpace(abcMap.get("C")), fillSpace(totalAbcMap.get("C")));
+			// 寮�濮嬪噯澶囪闊�
+			int total = 0;
+			if(currA && abcMap.get("A") == totalAbcMap.get("A")) { // 褰撳墠杞﹀湪A鍖鸿杞﹀畬鎴�
+				total = totalAbcMap.get("A");
+			}
+			if(currB && abcMap.get("B") == totalAbcMap.get("B")) {// 褰撳墠杞﹀湪B鍖鸿杞﹀畬鎴�
+				total = totalAbcMap.get("B");
+			}
+			if(currC && abcMap.get("C") == totalAbcMap.get("C")) {// 褰撳墠杞﹀湪C鍖鸿杞﹀畬鎴�
+				total = totalAbcMap.get("C");
+			}
+			if(total > 0) { // 鎾斁璇煶锛岃绂诲紑鍖哄煙
+				speakParam.clear();
+				String speakTxt=null ;
+				if( (abcMap.get("A")>0  && totalAbcMap.get("B")==0 && totalAbcMap.get("C")==0) ||
+						(abcMap.get("B")>0  && totalAbcMap.get("A")==0 && totalAbcMap.get("C")==0)  ||
+						(abcMap.get("C")>0  && totalAbcMap.get("B")==0 && totalAbcMap.get("D")==0)
+				) { // 鍙湁涓�涓尯鍩熸湁璐х墿
+					speakTxt= String.format(speakTxtFormatStr1, cph, total);
+				}else  if(totalAbcMap.get("A")>0 && totalAbcMap.get("B")>0 &&
+						(totalAbcMap.get("C")==0 || totalAbcMap.get("C") == abcMap.get("C"))){ // AB閮芥湁璐� C鍖哄凡瀹屾垨鏃犺揣
+					if(totalAbcMap.get("C")>0 && abcMap.get("A")< totalAbcMap.get("A") && abcMap.get("B")< totalAbcMap.get("B")) { // C瑁呭畬AB鏈瀹�
+						speakTxt= String.format(speakTxtFormatStr3, cph,"C", total,"A","B");
+					} else if(abcMap.get("A")== totalAbcMap.get("A") && abcMap.get("B")< totalAbcMap.get("B")) { //A瀹孊鏈畬
+						speakTxt = String.format(speakTxtFormatStr2, cph, "A", total, "B");
+					}else if(abcMap.get("B")== totalAbcMap.get("B") && abcMap.get("A")< totalAbcMap.get("A")) {//B瀹孉鏈畬
+						speakTxt = String.format(speakTxtFormatStr2, cph, "B", total, "A");
+					}else { // 鍏ㄩ儴瑁呭畬
+						speakTxt= String.format(speakTxtFormatStr1, cph, total);
+					}
+				}else if(totalAbcMap.get("C")>0 && totalAbcMap.get("B")>0 &&
+						(totalAbcMap.get("A")==0 || totalAbcMap.get("A") == abcMap.get("A")) ){ //BC鏈夎揣 A鍖哄凡瀹屾垨鏃犺揣
+					if(totalAbcMap.get("A")>0 && abcMap.get("C")< totalAbcMap.get("C") && abcMap.get("B")< totalAbcMap.get("B")) {  // A瑁呭畬BC鏈瀹�
+						speakTxt= String.format(speakTxtFormatStr3, cph,"A", total,"B","C");
+					} else if(abcMap.get("C")== totalAbcMap.get("C") && abcMap.get("B")< totalAbcMap.get("B")) { // C瀹孊鏈瀹�
+						speakTxt = String.format(speakTxtFormatStr2, cph, "C", total, "B");
+					}else if(abcMap.get("B")== totalAbcMap.get("B") && abcMap.get("C")< totalAbcMap.get("C")) {// B瀹孋鏈瀹�
+						speakTxt = String.format(speakTxtFormatStr2, cph, "B", total, "C");
+					}else { // 鍏ㄩ儴瑁呭畬
+						speakTxt= String.format(speakTxtFormatStr1, cph, total);
+					}
+				}else  if (totalAbcMap.get("A")>0 && totalAbcMap.get("C")>0 &&
+						(totalAbcMap.get("B")==0 || totalAbcMap.get("B") == abcMap.get("B")) ) { //AC鏈夎揣
+					if(totalAbcMap.get("B")>0 && abcMap.get("A")< totalAbcMap.get("A") && abcMap.get("C")< totalAbcMap.get("C")) {
+						speakTxt= String.format(speakTxtFormatStr3, cph,"B", total,"A","C");
+					} else if(abcMap.get("A")== totalAbcMap.get("A") && abcMap.get("C")< totalAbcMap.get("C")) { // A瑁呭畬C鏈瀹�
+						speakTxt = String.format(speakTxtFormatStr2, cph, "A", total, "C");
+					}else if(abcMap.get("C")== totalAbcMap.get("C") && abcMap.get("A")< totalAbcMap.get("A")) {// C瑁呭畬A鏈瀹�
+						speakTxt = String.format(speakTxtFormatStr2, cph, "C", total, "A");
+					}else { // 鍏ㄩ儴瑁呭畬
+						speakTxt= String.format(speakTxtFormatStr1, cph, total);
+					}
+				}else if(totalAbcMap.get("A")>0 && totalAbcMap.get("B")>0 && totalAbcMap.get("C")>0) { // 3鍖洪兘鏈夎揣鐗╋紝涓斿彧鏈変竴涓彇瑁呭畬浜�
+					if(abcMap.get("A")>0 && abcMap.get("B")<totalAbcMap.get("B") && abcMap.get("C")<totalAbcMap.get("C")) {
+						speakTxt= String.format(speakTxtFormatStr3, cph,"A", total,"B","C");
+					} else if(abcMap.get("B")>0 && abcMap.get("C")==0 && abcMap.get("A")==0) {
+						speakTxt= String.format(speakTxtFormatStr3, cph,"B", total,"A","C");
+					} else if(abcMap.get("C")>0 && abcMap.get("A")==0 && abcMap.get("B")==0) {
+						speakTxt= String.format(speakTxtFormatStr3, cph,"C", total,"A","B");
+					} else { // 鍏ㄩ儴瑁呭畬
+						speakTxt= String.format(speakTxtFormatStr1, cph, total);
+					}
+				} else {
+					speakTxt= String.format(speakTxtFormatStr1, cph, total);
+				}
+				speakParam.put("SpeakTxt", speakTxt);
+				log.info("SpeakTxt:"+ speakTxt);
+			}
 			// 鍗曡締杞︾殑鍗曚釜涓氬姟鍗曠殑淇℃伅缁撴潫
 		}
 		Map paramMap = new HashMap();
-		paramMap.put("str1",str1);
-		paramMap.put("str2",str2);
-		Wxhtmethod.post("192.168.112.21/api/xxx",paramMap);
+		paramMap.put("strTitle",str1);
+		paramMap.put("strContent",str2);
+		try {
+		  String re = Wxhtmethod.post(Contants.msLedServiceAddr + "/SendLED",paramMap);
+		  // 璇煶鍙挱涓�鏉�
+		  String re1 = Wxhtmethod.post(Contants.msLedServiceAddr + "/Speak",speakParam);
+		}catch (Exception e){}
+
+
+	}
+	String fillSpace(int str){
+		String s;
+		if(str<10 && str>=0) s= "0" + str;
+		else s=String.valueOf(str);
+		return s;
 	}
 
 	@Override

--
Gitblit v1.9.3