From 975c04c0181b3da82a79cb04abe6a2f1799eb363 Mon Sep 17 00:00:00 2001 From: hjg <hjg@123.com> Date: 星期三, 22 十一月 2023 17:33:04 +0800 Subject: [PATCH] 科技LED、公司简称 --- JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java | 523 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 439 insertions(+), 84 deletions(-) diff --git a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java index 6e42ce0..ee76ae9 100644 --- a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java +++ b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java @@ -1,61 +1,37 @@ 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 javax.annotation.Resource; - -import com.mandi.fendan.util.ConvertTool; -import com.mandi.servlet.file.impl.FileLoadImpl; -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.FdRepertoryNexus; -import com.mandi.basicconfig.persist.Ncck; -import com.mandi.basicconfig.persist.Ncdepart; -import com.mandi.basicconfig.persist.Ncworker; -import com.mandi.basicconfig.persist.Ncywdy; +import com.mandi.basicconfig.persist.*; import com.mandi.common.JSONobj; -import com.mandi.common.Wxhtmethod; +import com.mandi.common.Jacksonmethod; import com.mandi.common.ParamFileter.BigDecimalfiter; +import com.mandi.common.SpringContext; +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.context.ApplicationContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; @Service public class FdXSTDService implements IFdXSTDService{ @@ -89,6 +65,9 @@ private Logger log= Logger.getLogger(FileLoadImpl.class); + public static Boolean refreshMsLedLock = false; + public static Boolean refreshYrLedLock = false; + public static Boolean refreshKjLedLock = false; @Override @Transactional(rollbackFor=Exception.class) public ObjectResult<Boolean> saveFd_xstd(String dataArr) throws Exception { @@ -408,35 +387,36 @@ prr.setCode(1); prr.setErrmsg("涓�鍗¢�氫笟鍔″崟鏈壘鍒帮紝璇风‘璁ゅ崟鍙锋槸鍚︽纭紒"); return prr; - }else{ - if(fdb.getStatus()!=Serviceenum.鍦ㄥ姙){ - prr.setCode(2); - prr.setErrmsg("涓�鍗¢�氫笟鍔″崟涓嶆槸鍦ㄥ姙鐘舵��,绯荤粺涓嶅仛澶勭悊锛�"); - return prr; - } - if(StringUtils.isBlank(cardID)){ - prr.setCode(1); - prr.setErrmsg("鍙傛暟锛氫竴鍗¢�氬崱鍙蜂负绌猴紒"); - return prr; - } - if(dataArr==null){ - prr.setCode(1); - prr.setErrmsg("鍙傛暟锛氭壒娆″彿涓虹┖锛�"); - return prr; - } - - Map<String, Object> mp=this.yktper.getcardinuse(cardID); - if(mp==null){ - throw new Exception("鍗″彿涓嶆纭湭鎵惧埌鍦ㄧ敤鍗★紒"); - } - vehicleId=mp.get("numberplates")==null?"":mp.get("numberplates").toString(); - if(!vehicleId.equals(fdb.getVehicleId())){ - prr.setCode(1); - prr.setErrmsg("鍙傛暟锛氬崱鍙峰叧鑱旂殑杞︾墝鍙峰拰涓氬姟鍗曞叧鑱旂殑杞︾墝鍙蜂笉涓�鑷�"); - return prr; - } - yktywdh=fdb.getBsNo(); } + + if (fdb.getStatus() != Serviceenum.鍦ㄥ姙) { + prr.setCode(2); + prr.setErrmsg("涓�鍗¢�氫笟鍔″崟涓嶆槸鍦ㄥ姙鐘舵��,绯荤粺涓嶅仛澶勭悊锛�"); + return prr; + } + if (StringUtils.isBlank(cardID)) { + prr.setCode(1); + prr.setErrmsg("鍙傛暟锛氫竴鍗¢�氬崱鍙蜂负绌猴紒"); + return prr; + } + if (dataArr == null) { + prr.setCode(1); + prr.setErrmsg("鍙傛暟锛氭壒娆″彿涓虹┖锛�"); + return prr; + } + + Map<String, Object> mp = this.yktper.getcardinuse(cardID); + if (mp == null) { + throw new Exception("鍗″彿涓嶆纭湭鎵惧埌鍦ㄧ敤鍗★紒"); + } + vehicleId = mp.get("numberplates") == null ? "" : mp.get("numberplates").toString(); + if (!vehicleId.equals(fdb.getVehicleId())) { + prr.setCode(1); + prr.setErrmsg("鍙傛暟锛氬崱鍙峰叧鑱旂殑杞︾墝鍙峰拰涓氬姟鍗曞叧鑱旂殑杞︾墝鍙蜂笉涓�鑷�"); + return prr; + } + + // yktywdh = fdb.getBsNo(); int wcnum=this.bsper.getweightDoc(vehicleId, fdb.getBsNo()); if(wcnum<=0){ @@ -460,21 +440,39 @@ // TODO: handle exception } - + String currPch="";// 褰撳墠鎵规鍙� //绗竴娆℃坊鍔犺鍗歌褰曞彂閫佽杞︿俊鎭� int sfzc=this.fbper.getbsitembyNo(fdb.getBsNo()); if(sfzc<=0) { //鍙戦�佸井淇″叕浼楀彿鎻愰啋淇℃伅 String url=Contants.yktLocalAdd+"/routine/sendZcMsg.htm"; - Map<String, String> mp=new HashMap<String, String>(); + Map<String, String> paramMp=new HashMap<String, String>(); mp.put("sdepartNo", fdb.getSdepartNo()); mp.put("vehicleId", vehicleId); mp.put("businessNo", fdb.getBsNo()); - Wxhtmethod.postJson(url, mp); + Wxhtmethod.postJson(url, paramMp); } - //鐜板満杩囧畬姣涢噸鍚庡嚭鐜版壂鐮佽杞︾殑锛屽繀椤婚噸鏂拌繃纾� + // 鐜板満杩囧畬姣涢噸鍚庡嚭鐜版壂鐮佽杞︾殑锛屽繀椤婚噸鏂拌繃纾� 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(); @@ -565,17 +563,10 @@ bsi.setRecompany(wx.getTdmx_shdw()); }else{ bsi.setRecompany( - /*xstd.getTd_ywdybh().equals(Contants.nc_ywdy_ZZ)?"閮戝窞鎶ュ叧": - xstd.getTd_ywdybh().equals(Contants.nc_ywdy_MT)?"娌冲崡鎶ュ叧": - xstd.getTd_ywdybh().equals(Contants.nc_ywdy_MS)?"鏄庢櫉鎶ュ叧": - "绉戞妧鎶ュ叧"*/ ConvertTool.covertToCustoms(xstd.getTd_ywdybh()) ); } bsi.setReID(""); - /*bsi.setDecompany(xstd.getTd_ywdybh().equals(Contants.nc_ywdy_ZZ)?"閮戝窞鏄庢嘲": - xstd.getTd_ywdybh().equals(Contants.nc_ywdy_MS)?"娌冲崡鏄庢櫉鏂版潗鏂�": - "鐪�娉扮鎶�");*/ bsi.setDecompany(ConvertTool.ncCovertToFactoryName(xstd.getTd_ywdybh())); bsi.setDeID(""); bsi.setFrombatch("ERP绯荤粺"); @@ -590,6 +581,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,16 +599,351 @@ // this.bsper.delvehicleQ(vehicleId); //鍒犻櫎杞﹁締鎺掗槦淇℃伅 String url=Contants.yktLocalAdd+"/search/vehicleQueue/delItem.htm"; - Map<String, String> mp=new HashMap<String, String>(); + Map<String, String> paramMp=new HashMap<String, String>(); mp.put("vehicleID", vehicleId); - Wxhtmethod.postJson(url, mp); + Wxhtmethod.postJson(url, paramMp); } } + // 姝ゅ寮傛瑙﹀彂涓�涓嬫槑鏅熷彂杞� + 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) { + FdXSTDService.refreshMsLedLock = true; + } + sendToMsLed(cph); + } catch (Exception e) { + log.error("鍑虹幇寮傚父锛�"+ e.getMessage(),e); + } finally { + synchronized (FdXSTDService.refreshMsLedLock) { + FdXSTDService.refreshMsLedLock = false; + } + } + }); + } + 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) { // 绯荤粺绻佸繖 + return ; + } + FdXSTDService.refreshYrLedLock = true; + } + sendToYrLed(cph); + } catch (Exception e) { + log.error(e); + } finally { + synchronized (FdXSTDService.refreshYrLedLock) { + FdXSTDService.refreshYrLedLock = false; + } + } + }); + } else if("04".equals(fdb.getSdepartNo())) { // 绉戞妧 + final String cph = currPch; + ThreadPoolUtil.getInstance().execute(()->{ + try { + synchronized (FdXSTDService.refreshKjLedLock) { + if (FdXSTDService.refreshKjLedLock) { // 绯荤粺绻佸繖 + return ; + } + FdXSTDService.refreshKjLedLock = true; + } + sendToKjLed(cph); + } catch (Exception e) { + log.error(e); + } finally { + synchronized (FdXSTDService.refreshKjLedLock) { + FdXSTDService.refreshKjLedLock = false; + } + } + }); + } prr.setCode(0); prr.setErrmsg("瑁呰溅鎿嶄綔鎴愬姛锛�"); prr.setList(relist); return prr; + } + + /** + * + * @param currPch 褰撳墠鎵规鍙� + */ + public void sendToMsLed(String currPch){ + //A鍖� 76-86 + 99-1 + //B鍖� 14-33 + 99-2 + //C鍖� 53-67 + 99-3 + log.info("LED-ABC褰撳墠鎵爜鎵规鍙凤細" + currPch); + List<Map> totalList = tdmxper.getHwList("06"); // 鑾峰彇鏄庢櫉鎵�鏈夊湪鍔炰笟鍔″崟鐨勪俊鎭� + log.info("LED-ABC鑾峰彇淇℃伅鏉℃暟锛�" + totalList.size()); + 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<>()); + } + ywbhListMap.get(ywdw).add(map); + } + String str1 = " 杞﹀彿 A鍖� B鍖� C鍖�" + "\r\n", str2=""; + //"(杞︾墝鍙�)\\-(A鍖哄凡瑁呰溅)/(A鍖烘�昏)\\-(B鍖哄凡瑁呰溅)/(B鍖烘�昏)\\-(C鍖哄凡瑁呰溅)/(C鍖烘�昏)\\r\\n"; + String formatStr = "%s %s/%s %s/%s %s/%s\r\n"; + // 鍙湁1涓尯 + + 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(); + List<Map> vehicleIdTotalList = entry.getValue(); + 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); // 宸茶淇℃伅 + abcMap.put("A", 0); + abcMap.put("B", 0); + abcMap.put("C", 0); + String cph = ""; // 杞︾墝鍙� + for (Map map : vehicleIdTotalList) { + String hw = (String) map.get("tdmx_hwmc"); + String pch = (String) map.get("tdmx_pch"); + 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); // 鍙栨渶鍚庝袱浣� + int num = Integer.parseInt(hh); + if (num >= 76 && num <= 86 || 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; + } + } else if (num >= 14 && num <= 33 || 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; + } + } else if (num >= 53 && num <= 67 || 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; + } + } + } + // 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; + }*/ + 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") && totalAbcMap.get("A")>0) { // 褰撳墠杞﹀湪A鍖鸿杞﹀畬鎴� + total = totalAbcMap.get("A"); + } + 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") && totalAbcMap.get("C")>0) {// 褰撳墠杞﹀湪C鍖鸿杞﹀畬鎴� + total = totalAbcMap.get("C"); + } + try { + String speakTxt = startToSpeak(cph,total,abcMap,totalAbcMap); + if(StringUtils.isNotBlank(speakTxt)) { + log.info("SpeakTxt:"+ speakTxt); + speakParam.put("SpeakTxt", speakTxt); + } + }catch (Exception e){ + log.error("鍑嗗璇煶鍑洪敊锛�" + e.getMessage(),e); + } + + // 鍑嗗璇煶缁撴潫 + // 鍗曡締杞︾殑鍗曚釜涓氬姟鍗曠殑淇℃伅缁撴潫 + } + if(StringUtils.isBlank(str2)) { + str2 = "鏃犺溅杈�"; + } + Map paramMap = new HashMap(); + paramMap.put("strTitle",str1); + paramMap.put("strContent",str2); + try { + log.info("LED-ABC webServiceAddrss:"+Contants.msLedServiceAddr+"st1::" +str1+";;;;;str2::"+str2); + String re = Wxhtmethod.post(Contants.msLedServiceAddr + "/SendLED",paramMap); + log.info("LED-ABC result:"+re); + // 璇煶鍙挱涓�鏉� + String re1 = Wxhtmethod.post(Contants.msLedServiceAddr + "/Speak",speakParam); + }catch (Exception e){} + + + } + + /** + * 鍑嗗璇煶 + * @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 strContent = ""; + String contentFormatStr = "%s %s %s %s\r\n"; + List<Map> list = tdmxper.yRZcList("08"); + int index = 1; + for (Map map : list) { + String numberplates = (String) map.get("numberplates"); // 杞︾墝鍙� + String zcWz = (String) map.get("zcWz"); // 瑁呰溅浣嶇疆 + if(StringUtils.isNotBlank(zcWz)){ + zcWz = zcWz.substring(0,4); + } else { // 绌烘槸6涓綅缃� + zcWz = " "; + } + String zcStatus = (String) map.get("zcStatus"); // 瑁呰溅浣嶇疆 鍦ㄥ姙/寰呭姙 + strContent += String.format(contentFormatStr, fillWithZero(index++), numberplates, zcWz, zcStatus); + } + Map paramMap = new HashMap(); + paramMap.put("strTitle",strTitle); + paramMap.put("strContent",strContent); + Wxhtmethod.post(Contants.yr_zcLedUrl + "/SendLED",paramMap); + log.info("yr_zcLedUrl: " + Contants.yr_zcLedUrl + ";title:" + strTitle + ",content:" + strContent); + } + @Override + public void sendToKjLed(String currPch) { + // 鐘舵�� 涓�纾呭悗锛屽緟瑁咃紱PDA鎵爜 鍦ㄨ锛� 浜屾杩囩鍚庢秷澶� + // 瑁呰溅鍖� 涓や釜姹夊瓧鍔犱袱涓嫳鏂囨垨鏁板瓧 + String strTitle="搴忓彿 杞﹀彿 瑁呰溅鍖� 鐘舵�乗r\n"; + String strContent = ""; + String contentFormatStr = "%s %s %s %s\r\n"; + List<Map> list = tdmxper.yRZcList("04"); + int index = 1; + for (Map map : list) { + String numberplates = (String) map.get("numberplates"); // 杞︾墝鍙� + String zcWz = (String) map.get("zcWz"); // 瑁呰溅浣嶇疆 + if(StringUtils.isNotBlank(zcWz)) { + zcWz = zcWz.substring(0,4); + } else { // 绌烘槸6涓綅缃� + zcWz = " "; + } + String zcStatus = (String) map.get("zcStatus"); // 瑁呰溅浣嶇疆 鍦ㄥ姙/寰呭姙 + strContent += String.format(contentFormatStr, fillWithZero(index++), numberplates, zcWz, zcStatus); + } + Map paramMap = new HashMap(); + paramMap.put("strTitle",strTitle); + paramMap.put("strContent",strContent); + String re = Wxhtmethod.post(Contants.kj_zcLedUrl + "/SendLED",paramMap); + log.info("鍥炲锛�" + re +";kj_zcLedUrl: " + Contants.kj_zcLedUrl + ";title:" + strTitle + ",content:" + strContent); + } + + String fillWithZero(int str){ + String s; + if(str<10 && str>=0) s= "0" + str; + else s=String.valueOf(str); + return s; } @Override @@ -698,6 +1025,10 @@ String tdmx_pch=jo.get("tdmx_pch").getAsString(); // Fd_XSTDMX tdmx=this.tdmxper.getbyPCH(tdmx_pch); Fd_XSTDMX tdmx=this.tdmxper.getbyPCHONE(tdmx_pch,vehicleId); + if(tdmx == null) { + String errMsg = "涓�鍗¢�氬嵏杞﹀け璐ワ紝璇锋煡鐪嬨��" + tdmx_pch +"銆戝嚭搴撳叧闂爣蹇楋紒"; + throw new Exception(errMsg); + } // if(tdmx.getTdmx_zcbz()!=1){ //// throw new Exception("鎵规鍙凤細"+tdmx_pch+" 宸茬粡鎻愪氦瑁呰溅锛屼笉鑳介噸澶嶆彁浜よ杞︼紒"); // continue; @@ -736,6 +1067,13 @@ return orr; } String vehicleId=mp.get("numberplates")==null?"":mp.get("numberplates").toString(); + + String type = (String)mp.get("type"); + String sdepartNo = null; + if(type.equals("澶栨潵杞﹁締鍗�")) { + sdepartNo = (String) mp.get("sdepartNo"); + } + List<Fd_Bsheet> fd_bList = this.fbper.getListbyVehicleId(vehicleId, Serviceenum.鍦ㄥ姙); if (fd_bList == null||fd_bList.isEmpty()) { orr.setCode(1); @@ -765,7 +1103,8 @@ return orr; } } - String businessNo = bsper.getBusinessNoByCardNo(cardID); + // 鏀规垚浣跨敤鍦ㄧ敤鍗$殑鍗″彿銆佽溅鐗屽彿鐮併�佸巶鍖烘潵纭鏄惁鏈夐攢鍞殑涓氬姟鍗� btid=3 businesstype00002 + String businessNo = bsper.getBusinessNoByCardNo(cardID,vehicleId,sdepartNo); if(StringUtils.isBlank(businessNo)) { orr.setCode(1); orr.setErrmsg("鏈壘鍒拌鍗$殑鍦ㄥ姙涓氬姟鍗曪紒"); @@ -774,6 +1113,7 @@ // List<Vehicle_XSTD> vxl=this.vhxper.getlistbyVehicleId(vehicleId); List<Vehicle_XSTD> vxl= this.vhxper.getlistbyVehicleIdandbsNoGp(vehicleId, businessNo); List<Map<String, Object>> datamp=new ArrayList<Map<String, Object>>(); + Map<String,Fd_XSTD> xstdMap = new HashMap(); // 缂撳瓨Fd_XSTD锛岄伩鍏嶅鏌� for (Vehicle_XSTD vx : vxl) { String tdbh=vx.getXstdNo(); Fd_XSTD td=this.tdper.getbyTDBH(tdbh); @@ -797,10 +1137,25 @@ tdm.put("td_tdbh", td.getTd_tdbh()); tdm.put("td_tdls", td.getTd_tdls()); tdm.put("td_jylx", td.getTd_jylx()); + Fd_XSTD fd_xstd = xstdMap.get(td.getTd_tdbh()); + if(xstdMap.get(td.getTd_tdbh())==null) { // 淇濊瘉鍚屼竴涓彁鍗曞彧鏌ヤ竴閬� + fd_xstd = tdper.getbyttdbh(td.getTd_tdbh()); + } + //澧炲姞瀹㈡埛鍚嶇О 澶囨敞 + if(StringUtils.isBlank(fd_xstd.getTd_fpbh())){ + Nckh nckh = zsjper.getNckhbyCode(fd_xstd.getTd_khbh());// 瀹㈡埛涓嶅瓨鍦ㄧ殑鐗规畩鎯呭喌鏄笉搴旇瀛樺湪鐨勶紝浠ラ槻涓囦竴锛屽姞鍒ょ┖銆� + tdm.put("td_khmc",nckh!=null?nckh.getName():""); + }else { + String name = ConvertTool.covertToCustoms(fd_xstd.getTd_ywdybh()); + tdm.put("td_khmc", name); + } + tdm.put("td_bz",fd_xstd.getTd_bz()); mm.put("td", tdm); mm.put("tdmx", tdmxl); datamp.add(mm); } + + rem.put("cph", vehicleId); rem.put("sjmc", fd_b.getDriver()); rem.put("dh", fd_b.getPhone()); -- Gitblit v1.9.3