From 63fbfddabe08e353ad75e495c2ac8dc5203da88c Mon Sep 17 00:00:00 2001 From: Administrator <hbal> Date: 星期一, 17 四月 2023 17:13:32 +0800 Subject: [PATCH] 明晟、义瑞装车 --- JavaSource/com/mandi/fendan/util/Contants.java | 6 /dev/null | 66 ------------- JavaSource/com/mandi/fendan/mapper/Fd_XSTDMXMapper.java | 15 ++ JavaSource/com/mandi/webservice/service/IInvoiceService.java | 7 + JavaSource/com/mandi/webservice/service/impl/InvoiceService.java | 51 ++++++++++ JavaSource/com/mandi/webservice/service/IFdXSTDService.java | 12 ++ JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java | 101 +++++++++++++++++-- 7 files changed, 177 insertions(+), 81 deletions(-) diff --git a/JavaSource/com/mandi/fendan/mapper/Fd_XSTDMXMapper.java b/JavaSource/com/mandi/fendan/mapper/Fd_XSTDMXMapper.java index d5abf32..449409a 100644 --- a/JavaSource/com/mandi/fendan/mapper/Fd_XSTDMXMapper.java +++ b/JavaSource/com/mandi/fendan/mapper/Fd_XSTDMXMapper.java @@ -157,11 +157,24 @@ @Update("update fd_xstdmx set tdmx_ggxh=#{tdmx_ggxh} where tdmx_tdfl=#{tdmx_tdfl}") public int updateMXGG(Fd_XSTDMX mx); + //鏄庢櫉 LED 瑁呰溅 @Select({"select hw.name tdmx_hwmc,mx.* from fd_xstdmx mx " , " left join nc_hw hw on mx.tdmx_hwbh=hw.pkid and hw.state=1 " , - " join fd_bsheet on bsNo=tdmx_fdywbh and status='鍦ㄥ姙' where SdepartNo=#{sdepartNo} " + " join xs_taskmonitor xt on mx.tdmx_fdywbh = xt.businessNo ", + " join fd_bsheet on bsNo=tdmx_fdywbh and status='鍦ㄥ姙' " , + " where SdepartNo=#{sdepartNo} and xt.firstgbtime is not null and xt.lastgbtime is null and zcWc=0" }) public List<Map> getHwList(String sdepartNo); + // 涔夌憺LED鏄剧ず 搴忓彿 杞﹀彿 瑁呰溅鍖� 鐘舵�� + @Select({ + "select bs.numberplates,businessNo,zcWz,firstzxhtime," , + "case WHEN EXISTS ( SELECT * FROM bussinessitems WHERE bussinessNo = x.businessNo ) THEN '鍦ㄨ'" , + " when x.firstgbtime is not null then '寰呰' else '瀹屾垚' end zcStatus " , + " from xs_taskmonitor x" , + " join bussinesssheet bs on x.businessNo=bs.bussinessNo" , + " where sdepartNo=#{sdepartNo} and x.lastgbtime is null and zcWc=0" + }) + public List<Map> yRZcList(String sdepartNo); } diff --git a/JavaSource/com/mandi/fendan/util/Contants.java b/JavaSource/com/mandi/fendan/util/Contants.java index 48ba91e..1313f66 100644 --- a/JavaSource/com/mandi/fendan/util/Contants.java +++ b/JavaSource/com/mandi/fendan/util/Contants.java @@ -39,8 +39,10 @@ //鍒嗗崟绯荤粺鎺ㄩ�佷竴鍗¢�氭祴璇曞湴鍧� - public static String yktLocalAdd= "http://127.0.0.1:8085"; // "http://10.1.1.9:8088";//涓�鍗¢�氬缃戞祴璇曞湴鍧� - public final static String msLedServiceAddr= "http://192.168.200.211:8077/APPService.asmx"; // 鏄庢櫉ABC鍖篖ED + public static String yktLocalAdd = "http://127.0.0.1:8085"; // "http://10.1.1.9:8088";//涓�鍗¢�氬缃戞祴璇曞湴鍧� + public static String msLedServiceAddr = "http://192.168.200.211:8077/APPService.asmx"; // 鏄庢櫉ABC鍖篖ED + + public static String yr_zcLedUrl = "http://192.168.200.211:8077/APPService.asmx"; // 涔夌憺LED 瑁呰溅 webservice // public static String yktLocalAdd="http://125.46.81.106:8088";//涓�鍗¢�氬缃戞祴璇曞湴鍧� //鍒嗗崟鍥炲啓nc绯荤粺娴嬭瘯鍦板潃NCfdhx_url public static String NCfdhx_url = "http://10.0.13.20:9088/api/Domain/mtcesb/servlet/PubAPIServlet"; diff --git a/JavaSource/com/mandi/fendan/util/Contants_production.java b/JavaSource/com/mandi/fendan/util/Contants_production.java deleted file mode 100644 index c32ac99..0000000 --- a/JavaSource/com/mandi/fendan/util/Contants_production.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.mandi.fendan.util; - -// 姝e紡鐜 鍜屾祴璇曠幆澧冭娉ㄦ剰 -public class Contants_production { - - public static int XSTDlastSearchday = 120;// 閿�鍞彁鍗曞垎鍗曟煡璇㈡渶鍚庢椂闂� 120澶� - public static String cpxsBtNo = "businesstype00002";// 鎴愬搧閿�鍞笟鍔$被鍨嬬紪鍙� - - public static String kjSdepartNo = "04";//绉戞妧鍘傚尯 - public static String zzSdepartNo = "03";//閮戝窞鍘傚尯 - public static String msSdepartNo = "06";//鏄庢櫉鍘傚尯 - public static String yrSdepartNo = "08";//涔夌憺鍘傚尯 - - public static String nc_ywdy_ZZ = "102";//閮戝窞nc涓氬姟鍗曞厓缂栧彿 - public static String nc_ywdy_KJ = "103";//绉戞妧nc涓氬姟鍗曞厓缂栧彿 - public static String nc_ywdy_MS = "111";//鏄庢櫉nc涓氬姟鍗曞厓缂栧彿 - public static String nc_ywdy_YR = "114";//涔夌憺nc涓氬姟鍗曞厓缂栧彿 - public static String nc_ywdy_MT = "101";//鏄庢嘲nc涓氬姟鍗曞厓缂栧彿 - - public static int scale = 4;// 灏忔暟淇濈暀浣嶆暟 - //鍒嗗崟鎵撳嵃鍦板潃 - public static String GYPrintAdd = "/WebReport/ReportServer?reportlet=print%2Fprint_fd_ncxstd.cpt"; - public static String GJTDALLPrintAdd = "/WebReport/ReportServer?reportlet=print%2Fprint_fd_ncxstdall.cpt"; - //nc鍙戣揣鍗曟帹閫佸垎鍗曠郴缁焌ction鍊� - public static String NcactionCode_add = "1020"; - public static String NcactionCode_del = "1022"; - public static String NcactionCode_close = "1024"; // 鍏抽棴 - public static String NcactionCode_open = "1026"; - - // 鍒嗗崟绯荤粺鎺ㄩ�佷竴鍗¢�氱郴缁熷湴鍧� -// public static String yktLocalAdd = "http://10.0.12.11:8080";// 涓�鍗¢�氬唴缃戝湴鍧� -// 鍒嗗崟鍥炲啓nc绯荤粺 -// public static String NCfdhx_url = "http://10.0.12.17:9088/api/Domain/mtcesb/servlet/PubAPIServlet"; -// // NC鏁版嵁婧愬悕瀛� -// public static String NCds_name = "design"; -// public static String NCuser_code = "ykt"; -// public static String NCmethod_name = "WriteDetail"; -// public static String Ncgroup_code = "01"; -// public static String NcNosend = "";// 102 - - - //鍒嗗崟绯荤粺鎺ㄩ�佷竴鍗¢�氭祴璇曞湴鍧� -// public static String yktLocalAdd="http://10.0.12.9:8088";//涓�鍗¢�氬缃戞祴璇曞湴鍧� -// public static String yktLocalAdd="http://125.46.81.106:8088";//涓�鍗¢�氬缃戞祴璇曞湴鍧� - // 姝e紡 - public static String yktLocalAdd = "http://10.0.12.11:8080"; - - public final static String msLedServiceAddr= "http://10.22.11.151:8080/APPService.asmx"; // 鏄庢櫉ABC鍖篖ED webservice - //鍒嗗崟鍥炲啓nc绯荤粺娴嬭瘯鍦板潃 -// public static String NCfdhx_url = "http://10.0.13.20:9090/api/Domain/mtcesb/servlet/PubAPIServlet"; - // 姝e紡 - public static String NCfdhx_url = "http://10.0.12.17:9088/api/Domain/mtcesb/servlet/PubAPIServlet"; - -// 鑾峰彇涓�鍗¢�氱紪鍙�,鍒嗗崟琛ㄥご鎺ㄩ�佷竴鍗¢��,鍙栨秷鍒嗗崟鍒犻櫎涓�鍗¢�氫笟鍔″崟淇℃伅,涓氬姟鍗曞彂閫佺煭淇�, - public static String YKTgetPrefix_url = yktLocalAdd+"/ws/api/prefix"; - public static String YKTaddYwd_url = yktLocalAdd+"/ws/api/addywd"; - public static String YKTdelYwd_url = yktLocalAdd+"/ws/api/delywd"; - public static String YKTsendMsg_url = yktLocalAdd+"/ws/api/sendmsg"; - - public static String NCds_name = "design"; - public static String NCuser_code = "sc"; - public static String NCmethod_name = "WriteDetail"; - public static String Ncgroup_code = "01"; - public static String NcNosend = ""; - -} diff --git a/JavaSource/com/mandi/webservice/service/IFdXSTDService.java b/JavaSource/com/mandi/webservice/service/IFdXSTDService.java index fcb5d8d..ffe1f78 100644 --- a/JavaSource/com/mandi/webservice/service/IFdXSTDService.java +++ b/JavaSource/com/mandi/webservice/service/IFdXSTDService.java @@ -84,4 +84,16 @@ * @throws Exception */ public ObjectResult<Boolean> savewdControl(JsonArray dataArr)throws Exception; + + /** + * 鍙戦�佸埌鏄庢櫉LED ABC鍖� + * @param currPch + */ + public void sendToMsLed(String currPch); + + /** + * 鍙戦�佸埌涔夌憺 LED 鍖� + * @param currPch + */ + public void sendToYrLed(String currPch); } diff --git a/JavaSource/com/mandi/webservice/service/IInvoiceService.java b/JavaSource/com/mandi/webservice/service/IInvoiceService.java index c58c4c6..4df5435 100644 --- a/JavaSource/com/mandi/webservice/service/IInvoiceService.java +++ b/JavaSource/com/mandi/webservice/service/IInvoiceService.java @@ -79,4 +79,11 @@ @Produces(MediaType.APPLICATION_JSON) @Path("/savewdcontrol") public String savewdControl(@Context HttpServletRequest r,@RequestBody String jsonParam); + + // 鎺ユ敹涓�娆$О閲嶃�佷簩娆$О閲� data 涓�娆$О閲� firstWeighing secondWeighing + @POST + @Produces(MediaType.APPLICATION_JSON) + @Path("/currWeight") + public String receiveCurrWeight(@Context HttpServletRequest r,@RequestBody String jsonParam); + } diff --git a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java index 33e51ad..aea6a42 100644 --- a/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java +++ b/JavaSource/com/mandi/webservice/service/impl/FdXSTDService.java @@ -9,6 +9,7 @@ import com.mandi.basicconfig.persist.*; import com.mandi.common.JSONobj; 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; @@ -24,6 +25,7 @@ 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; @@ -61,6 +63,9 @@ private FdRepertoryNexusMapper reNxPer; private Logger log= Logger.getLogger(FileLoadImpl.class); + + public static Boolean refreshMsLedLock = false; + public static Boolean refreshYrLedLock = false; @Override @Transactional(rollbackFor=Exception.class) @@ -583,7 +588,43 @@ // 姝ゅ寮傛瑙﹀彂涓�涓嬫槑鏅熷彂杞� if("06".equals(fdb.getSdepartNo())) { final String cph = currPch; - ThreadPoolUtil.getInstance().execute(()->sendToMsLed(cph)); + ThreadPoolUtil.getInstance().execute(()->{ + try { + synchronized (FdXSTDService.refreshMsLedLock) { + if (FdXSTDService.refreshMsLedLock) { // 绯荤粺绻佸繖 + return ; + } + FdXSTDService.refreshMsLedLock = true; + } + sendToMsLed(cph); + } catch (Exception e) { + log.error(e); + } finally { + synchronized (FdXSTDService.refreshMsLedLock) { + FdXSTDService.refreshMsLedLock = false; + } + } + }); + } + if("08".equals(fdb.getSdepartNo())) { + final String cph = currPch; + ThreadPoolUtil.getInstance().execute(()->{ + 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; + } + } + }); } prr.setCode(0); prr.setErrmsg("瑁呰溅鎿嶄綔鎴愬姛锛�"); @@ -599,7 +640,9 @@ //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"); @@ -618,7 +661,8 @@ // 鍙湁3涓尯 String speakTxtFormatStr3 = "杞﹀彿%s锛�%s鍖鸿璐�%d浠跺凡鍏ㄩ儴鎵弿瀹屾垚锛岃鍙告満娓呯偣璐х墿鍚庡幓%s鍖�%s鍖鸿璐с��"; Map speakParam = new HashMap(1); - for (Map.Entry<String, List<Map>> entry : ywbhListMap.entrySet()) { // 閬嶅巻姣忎釜涓氬姟鍗曠殑 + for (Map.Entry<String, List<Map>> entry : ywbhListMap.entrySet()) { + // 閬嶅巻姣忎釜涓氬姟鍗曠殑 // 褰撳墠瑁呰溅A銆丅銆丆鍖� boolean currA = false,currB = false, currC = false; boolean hasZcwc = false; // 淇濊瘉宸茬粡瀹屾垚浜� @@ -670,14 +714,14 @@ } } } - if (!hasZcwc) continue; //娌℃湁瑁呰溅瀹屾垚鐨勪篃璺宠繃 - if (!(currA || currB || currC) && abcMap.get("A") + abcMap.get("B") + abcMap.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"))); + }*/ + 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"))); // 寮�濮嬪噯澶囪闊� int total = 0; if(currA && abcMap.get("A") == totalAbcMap.get("A")) { // 褰撳墠杞﹀湪A鍖鸿杞﹀畬鎴� @@ -748,18 +792,51 @@ } // 鍗曡締杞︾殑鍗曚釜涓氬姟鍗曠殑淇℃伅缁撴潫 } + if(StringUtils.isBlank(str2)) { + str2 = "鏃犺溅杈�"; + } Map paramMap = new HashMap(); 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); + 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){} } - String fillSpace(int str){ + + @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 { + 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); + } + + String fillWithZero(int str){ String s; if(str<10 && str>=0) s= "0" + str; else s=String.valueOf(str); diff --git a/JavaSource/com/mandi/webservice/service/impl/InvoiceService.java b/JavaSource/com/mandi/webservice/service/impl/InvoiceService.java index 2da633c..d3bede5 100644 --- a/JavaSource/com/mandi/webservice/service/impl/InvoiceService.java +++ b/JavaSource/com/mandi/webservice/service/impl/InvoiceService.java @@ -368,5 +368,56 @@ return str; } + @Override + public String receiveCurrWeight(HttpServletRequest r, String jsonParam) { // 鑾峰彇涓氬姟鍗曞彿 涓�娆$О閲� 浜屾绉伴噸 + JsonParser jp=new JsonParser(); + JsonObject jo=jp.parse(jsonParam).getAsJsonObject(); + String businessNo = JSONobj.getstring(jo, "businessNo"); + boolean firstWeighing = JSONobj.getbool(jo, "firstWeighing"); + boolean secondWeighing = JSONobj.getbool(jo, "secondWeighing"); + String sdepartNo = JSONobj.getstring(jo, "sdepartNo"); + if(StringUtils.isBlank(businessNo) || businessNo.indexOf("XS")!=0 || StringUtils.isBlank(sdepartNo) + ) { + return null; + } + // 鍒锋柊 + if(firstWeighing || secondWeighing) { // 绉伴噸闇�瑕佸埛鏂颁竴涓� + if ("06".equals(sdepartNo)) { // 鏄庢櫉 + synchronized (FdXSTDService.refreshMsLedLock) { + if (FdXSTDService.refreshMsLedLock) { // 绯荤粺绻佸繖 + return null; + } + } + try { + synchronized (FdXSTDService.refreshMsLedLock) { + FdXSTDService.refreshMsLedLock = true; + } + fdser.sendToMsLed(null); + } finally { + synchronized (FdXSTDService.refreshMsLedLock) { + FdXSTDService.refreshMsLedLock = false; + } + } + }else if ("08".equals(sdepartNo)) { // 涔夌憺 + synchronized (FdXSTDService.refreshYrLedLock) { + if (FdXSTDService.refreshYrLedLock) { // 绯荤粺绻佸繖 + return null; + } + } + try { + synchronized (FdXSTDService.refreshYrLedLock) { + FdXSTDService.refreshYrLedLock = true; + } + fdser.sendToYrLed(null); + }finally { + synchronized (FdXSTDService.refreshYrLedLock) { + FdXSTDService.refreshYrLedLock = false; + } + } + } + } + return null; + } + } -- Gitblit v1.9.3