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