From f6c2f15c37aef4675dda01fb5ec17cde4e141c3f Mon Sep 17 00:00:00 2001 From: hjg <hjg@123.com> Date: 星期六, 14 十月 2023 20:21:09 +0800 Subject: [PATCH] 暂时注销掉了,明天打开 --- JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java | 205 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 132 insertions(+), 73 deletions(-) diff --git a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java index aea6a42..ab42c4e 100644 --- a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java +++ b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java @@ -8,6 +8,7 @@ import com.mandi.basicconfig.mapper.NczsjMapper; import com.mandi.basicconfig.persist.*; import com.mandi.common.JSONobj; +import com.mandi.common.Jacksonmethod; import com.mandi.common.ParamFileter.BigDecimalfiter; import com.mandi.common.SpringContext; import com.mandi.common.Wxhtmethod; @@ -414,6 +415,7 @@ prr.setErrmsg("鍙傛暟锛氬崱鍙峰叧鑱旂殑杞︾墝鍙峰拰涓氬姟鍗曞叧鑱旂殑杞︾墝鍙蜂笉涓�鑷�"); return prr; } + // yktywdh = fdb.getBsNo(); int wcnum=this.bsper.getweightDoc(vehicleId, fdb.getBsNo()); @@ -452,7 +454,25 @@ } // 鐜板満杩囧畬姣涢噸鍚庡嚭鐜版壂鐮佽杞︾殑锛屽繀椤婚噸鏂拌繃纾� int grossNum=this.bsper.getgrosstDoc(vehicleId, fdb.getBsNo()); - + List tdmxPchList = new ArrayList(); + for (JsonElement je : dataArr) { + JsonObject jo=je.getAsJsonObject(); + String tdmx_pch = jo.get("tdmx_pch").getAsString(); + tdmxPchList.add(tdmx_pch); + } + /*if("08".equals(fdb.getSdepartNo())) { // 鍙槸涔夌憺鍘傚尯鏈夋晥 + // 妫�鏌ユ槸鍚﹀綋鍓嶅尯鍩熷凡缁忔帓闃� + Map paramMap = new HashMap(); + paramMap.put("vehicleId", vehicleId); + paramMap.put("tdmxPchList", tdmxPchList); + String jsonStr = Jacksonmethod.tojson(paramMap, false); + JsonObject jsonObject = Wxhtmethod.postJsonStr(Contants.yr_canDoScanUrl, jsonStr); + if (jsonObject.get("code").getAsInt() != 0) { + prr.setCode(1); + prr.setErrmsg(jsonObject.get("errmsg").getAsString()); + return prr; + } + }*/ for (JsonElement je : dataArr) { JsonObject jo=je.getAsJsonObject(); String tdmx_pch = jo.get("tdmx_pch").getAsString(); @@ -588,17 +608,21 @@ // 姝ゅ寮傛瑙﹀彂涓�涓嬫槑鏅熷彂杞� if("06".equals(fdb.getSdepartNo())) { final String cph = currPch; + final String finalVehicleId = vehicleId; ThreadPoolUtil.getInstance().execute(()->{ + synchronized (FdXSTDService.refreshMsLedLock) { + if (FdXSTDService.refreshMsLedLock) { // 绯荤粺绻佸繖 + log.info(finalVehicleId + "" + cph + "绯荤粺绻佸繖锛�"); + return; + } + } try { synchronized (FdXSTDService.refreshMsLedLock) { - if (FdXSTDService.refreshMsLedLock) { // 绯荤粺绻佸繖 - return ; - } FdXSTDService.refreshMsLedLock = true; } sendToMsLed(cph); } catch (Exception e) { - log.error(e); + log.error("鍑虹幇寮傚父锛�"+ e.getMessage(),e); } finally { synchronized (FdXSTDService.refreshMsLedLock) { FdXSTDService.refreshMsLedLock = false; @@ -609,6 +633,11 @@ if("08".equals(fdb.getSdepartNo())) { final String cph = currPch; ThreadPoolUtil.getInstance().execute(()->{ + + Map scanCodeParamMap = new HashMap(); + scanCodeParamMap.put("pch",cph); + Wxhtmethod.post(Contants.yr_scanCodeNoticeUrl, scanCodeParamMap); + try { synchronized (FdXSTDService.refreshYrLedLock) { if (FdXSTDService.refreshYrLedLock) { // 绯荤粺绻佸繖 @@ -646,6 +675,10 @@ Map<String,List<Map>> ywbhListMap = new HashMap<>(); for (Map map : totalList) { String ywdw = (String) map.get("tdmx_fdywbh"); + if(ywdw == null) { + log.info("鍑虹幇涓氬姟鍗曞彿涓簄ull鐨勬儏鍐碉細" + Jacksonmethod.tojson(map,false)); + continue; + } if(ywbhListMap.get(ywdw) == null) { ywbhListMap.put(ywdw, new ArrayList<>()); } @@ -655,18 +688,14 @@ //"(杞︾墝鍙�)\\-(A鍖哄凡瑁呰溅)/(A鍖烘�昏)\\-(B鍖哄凡瑁呰溅)/(B鍖烘�昏)\\-(C鍖哄凡瑁呰溅)/(C鍖烘�昏)\\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); @@ -680,7 +709,7 @@ for (Map map : vehicleIdTotalList) { String hw = (String) map.get("tdmx_hwmc"); String pch = (String) map.get("tdmx_pch"); - if("".equals(cph)) cph = (String) map.get("tdmx_fdcph"); + if(StringUtils.isBlank(cph)) cph = (String) map.get("tdmx_fdcph"); Integer zcbz = (Integer) map.get("tdmx_zcbz"); String hh = hw.replaceAll("\\-.*",""); hh = hh.substring(hh.length()-2); // 鍙栨渶鍚庝袱浣� @@ -719,77 +748,35 @@ totalAbcMap.get("A") + totalAbcMap.get("B") + totalAbcMap.get("C")) { // 闈炲綋鍓嶈溅鐗屽彿锛屽凡缁忚杞﹀畬鎴愪絾鏄湭鍑哄巶 continue; }*/ + if(totalAbcMap.get("B")==0 && totalAbcMap.get("C")==0 && totalAbcMap.get("A")==0) { + continue; + } str2 += String.format(formatStr, cph, fillWithZero(abcMap.get("A")), fillWithZero(totalAbcMap.get("A")), fillWithZero(abcMap.get("B")), fillWithZero(totalAbcMap.get("B")), fillWithZero(abcMap.get("C")), fillWithZero(totalAbcMap.get("C"))); + log.info(ywhb + "鎶曞睆鍑嗗瀹屾垚锛屽紑濮嬪噯澶囪闊炽��"); // 寮�濮嬪噯澶囪闊� int total = 0; - if(currA && abcMap.get("A") == totalAbcMap.get("A")) { // 褰撳墠杞﹀湪A鍖鸿杞﹀畬鎴� + if(currA && abcMap.get("A") == totalAbcMap.get("A") && totalAbcMap.get("A")>0) { // 褰撳墠杞﹀湪A鍖鸿杞﹀畬鎴� total = totalAbcMap.get("A"); } - if(currB && abcMap.get("B") == totalAbcMap.get("B")) {// 褰撳墠杞﹀湪B鍖鸿杞﹀畬鎴� + if(currB && abcMap.get("B") == totalAbcMap.get("B") && totalAbcMap.get("B")>0) {// 褰撳墠杞﹀湪B鍖鸿杞﹀畬鎴� total = totalAbcMap.get("B"); } - if(currC && abcMap.get("C") == totalAbcMap.get("C")) {// 褰撳墠杞﹀湪C鍖鸿杞﹀畬鎴� + if(currC && abcMap.get("C") == totalAbcMap.get("C") && totalAbcMap.get("C")>0) {// 褰撳墠杞﹀湪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); + try { + String speakTxt = startToSpeak(cph,total,abcMap,totalAbcMap); + if(StringUtils.isNotBlank(speakTxt)) { + log.info("SpeakTxt:"+ speakTxt); + speakParam.put("SpeakTxt", speakTxt); } - speakParam.put("SpeakTxt", speakTxt); - log.info("SpeakTxt:"+ speakTxt); + }catch (Exception e){ + log.error("鍑嗗璇煶鍑洪敊锛�" + e.getMessage(),e); } + + // 鍑嗗璇煶缁撴潫 // 鍗曡締杞︾殑鍗曚釜涓氬姟鍗曠殑淇℃伅缁撴潫 } if(StringUtils.isBlank(str2)) { @@ -809,11 +796,83 @@ } + /** + * 鍑嗗璇煶 + * @param cph 杞︾墝鍙� + * @param total 褰撳墠鍖烘�绘暟 + * @param abcMap A銆丅銆丆涓簁ey鐨勫尯宸茶鏁扮洰 + * @param totalAbcMap A銆丅銆丆涓簁ey鐨勫尯鎬绘暟 + * @return + */ + String startToSpeak(String cph, int total,Map<String,Integer> abcMap,Map<String,Integer> totalAbcMap) { + String speakTxt=null ; + if(total > 0) { // 鎾斁璇煶锛岃绂诲紑鍖哄煙 + String speakTxtFormatStr1 = "杞﹀彿%s 锛岃璐�%d浠跺凡瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡敖蹇┒绂昏璐у尯銆�"; + // 鍙湁2涓尯 + String speakTxtFormatStr2 = "杞﹀彿%s锛�%s鍖鸿璐�%d浠跺凡鍏ㄩ儴鎵弿瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡幓%s鍖鸿璐с��"; + // 鍙湁3涓尯 + String speakTxtFormatStr3 = "杞﹀彿%s锛�%s鍖鸿璐�%d浠跺凡鍏ㄩ儴鎵弿瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡幓%s鍖�%s鍖鸿璐с��"; + + 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); + } + } + return speakTxt; + } + @Override public void sendToYrLed(String currPch) { // 鐘舵�� 涓�纾呭悗锛屽緟瑁咃紱PDA鎵爜 鍦ㄨ锛� 浜屾杩囩鍚庢秷澶� // 瑁呰溅鍖� 涓や釜姹夊瓧鍔犱袱涓嫳鏂囨垨鏁板瓧 - String strTitle="搴忓彿 杞﹀彿 瑁呰溅鍖� 鐘舵�乗r\n"; + String strTitle="搴忓彿 杞﹀彿 瑁呰溅鍖� 鐘舵�乗r\n"; String strContent = ""; String contentFormatStr = "%s %s %s %s\r\n"; List<Map> list = tdmxper.yRZcList("08"); @@ -823,8 +882,8 @@ String zcWz = (String) map.get("zcWz"); // 瑁呰溅浣嶇疆 if(StringUtils.isNotBlank(zcWz)){ zcWz = zcWz.substring(0,4); - } else { - zcWz = " "; + } else { // 绌烘槸6涓綅缃� + zcWz = " "; } String zcStatus = (String) map.get("zcStatus"); // 瑁呰溅浣嶇疆 鍦ㄥ姙/寰呭姙 strContent += String.format(contentFormatStr, fillWithZero(index++), numberplates, zcWz, zcStatus); -- Gitblit v1.9.3