From 37aa7be80ace2be43bc7cd57bc2e6284dc86d674 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Tue, 12 Jul 2022 09:56:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wcs/hd/logPath_IS_UNDEFINED/2022-07-04.0.log | 0 wcs/hd/logPath_IS_UNDEFINED/2022-07-07.0.log | 0 .../HailiangPackerStationDeviceDriver.java | 8 +- .../modules/quartz/task/AutoCleanUpLogs.java | 15 ++- wcs/qd/src/assets/acs/三通一体机.png | Bin 0 -> 1951 bytes wcs/qd/src/assets/acs/储料仓.png | Bin 0 -> 2413 bytes wcs/qd/src/assets/acs/刻字机.png | Bin 0 -> 1038 bytes wcs/qd/src/assets/acs/包装机1.png | Bin 0 -> 692 bytes wcs/qd/src/assets/acs/包装机2.png | Bin 0 -> 1210 bytes wcs/qd/src/assets/acs/包装机3.png | Bin 0 -> 1276 bytes wcs/qd/src/assets/acs/包装机4.png | Bin 0 -> 1388 bytes wcs/qd/src/assets/acs/推弯成型1.png | Bin 0 -> 1022 bytes wcs/qd/src/assets/acs/推弯成型2.png | Bin 0 -> 1123 bytes wcs/qd/src/assets/acs/推弯成型3.png | Bin 0 -> 1262 bytes wcs/qd/src/assets/acs/清洗机1.png | Bin 0 -> 1309 bytes wcs/qd/src/assets/acs/清洗机2.png | Bin 0 -> 1608 bytes wcs/qd/src/assets/acs/清洗机3.png | Bin 0 -> 1446 bytes wcs/qd/src/assets/acs/清洗机4.png | Bin 0 -> 680 bytes wcs/qd/src/assets/acs/清洗机5.png | Bin 0 -> 1301 bytes wcs/qd/src/assets/acs/盘管下料1.png | Bin 0 -> 1162 bytes wcs/qd/src/assets/acs/盘管下料2.png | Bin 0 -> 683 bytes wcs/qd/src/assets/acs/盘管下料3.png | Bin 0 -> 1203 bytes wcs/qd/src/assets/acs/直管下料1.png | Bin 0 -> 529 bytes wcs/qd/src/assets/acs/直管下料2.png | Bin 0 -> 673 bytes wcs/qd/src/assets/acs/直管下料3.png | Bin 0 -> 1203 bytes wcs/qd/src/views/acs/stage/editor/index.vue | 91 +++++++++++------- 26 files changed, 74 insertions(+), 40 deletions(-) create mode 100644 wcs/hd/logPath_IS_UNDEFINED/2022-07-04.0.log create mode 100644 wcs/hd/logPath_IS_UNDEFINED/2022-07-07.0.log create mode 100644 wcs/qd/src/assets/acs/三通一体机.png create mode 100644 wcs/qd/src/assets/acs/储料仓.png create mode 100644 wcs/qd/src/assets/acs/刻字机.png create mode 100644 wcs/qd/src/assets/acs/包装机1.png create mode 100644 wcs/qd/src/assets/acs/包装机2.png create mode 100644 wcs/qd/src/assets/acs/包装机3.png create mode 100644 wcs/qd/src/assets/acs/包装机4.png create mode 100644 wcs/qd/src/assets/acs/推弯成型1.png create mode 100644 wcs/qd/src/assets/acs/推弯成型2.png create mode 100644 wcs/qd/src/assets/acs/推弯成型3.png create mode 100644 wcs/qd/src/assets/acs/清洗机1.png create mode 100644 wcs/qd/src/assets/acs/清洗机2.png create mode 100644 wcs/qd/src/assets/acs/清洗机3.png create mode 100644 wcs/qd/src/assets/acs/清洗机4.png create mode 100644 wcs/qd/src/assets/acs/清洗机5.png create mode 100644 wcs/qd/src/assets/acs/盘管下料1.png create mode 100644 wcs/qd/src/assets/acs/盘管下料2.png create mode 100644 wcs/qd/src/assets/acs/盘管下料3.png create mode 100644 wcs/qd/src/assets/acs/直管下料1.png create mode 100644 wcs/qd/src/assets/acs/直管下料2.png create mode 100644 wcs/qd/src/assets/acs/直管下料3.png diff --git a/wcs/hd/logPath_IS_UNDEFINED/2022-07-04.0.log b/wcs/hd/logPath_IS_UNDEFINED/2022-07-04.0.log new file mode 100644 index 00000000..e69de29b diff --git a/wcs/hd/logPath_IS_UNDEFINED/2022-07-07.0.log b/wcs/hd/logPath_IS_UNDEFINED/2022-07-07.0.log new file mode 100644 index 00000000..e69de29b diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java index 9949577e..92f9f289 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java @@ -311,8 +311,6 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceLogToacs(this.device_code, "", "", device_code + ":,move:" + move + ",mode:" + mode + ",requireSucess:" + requireSucess + "开始申请请求取走空料斗任务"); apply_take_empty_task(); } - logServer.deviceLogToacs(this.device_code, "", "", "lack_req:" + lack_req + "move:" + move + "req_task_empty:" + req_task_empty); - } else { logServer.deviceLogToacs(this.device_code, "", "", "是否请求成功:requireSucess:" + requireSucess); } @@ -541,7 +539,8 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "未找到对应设备工单"); throw new BadRequestException(this.device_code + ":关联设备" + link_device + "未找到对应设备工单"); } - if (order.getIs_needmove().equals("0")) { + + if (StrUtil.isNotEmpty(order.getIs_needmove()) && order.getIs_needmove().equals("0")) { logServer.deviceLogToacs(this.device_code, "", "", device_code + ":关联设备" + link_device + "工单,不需要agv搬运"); return false; } @@ -562,8 +561,9 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i if (num != 0) { continue; } - String material = hailiangEngravingCacheDeviceDriver.getMaterial(); + String material = route_link_device.getMaterial_type(); if (StrUtil.isEmpty(material)) { + logServer.deviceLogToacs(this.device_code, "", "", hailiangEngravingCacheDeviceDriver.getDevice_code() + ":缓存位物料为空"); continue; } if (material.equals(cpbh)) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java index aabf37ea..aca823fd 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java @@ -28,9 +28,19 @@ public class AutoCleanUpLogs { public void run() throws Exception { try { + Date now = DateUtil.parse(DateUtil.now()); + DateTime bzdate = DateUtil.offsetDay(now, -5); + String formatbz = DateUtil.formatDateTime(bzdate); + Query bzquery = new Query().addCriteria(Criteria.where("create_time").lte(formatbz)); + System.out.println("BZ01设备日志开始清除---------------------"); + mongoTemplate.remove(bzquery,"BZ01"); + System.out.println("BZ01设备日志清除成功---------------------"); + + System.out.println("BZ02设备日志开始清除---------------------"); + mongoTemplate.remove(bzquery,"BZ02"); + System.out.println("BZ02设备日志清除成功---------------------"); WQLObject wo = WQLObject.getWQLObject("acs_device"); JSONArray array = wo.query("1=1","device_code").getResultJSONArray(0); - Date now = DateUtil.parse(DateUtil.now()); DateTime dateTime = DateUtil.offsetDay(now, -15); String formatDateTime = DateUtil.formatDateTime(dateTime); Query query = new Query().addCriteria(Criteria.where("create_time").lte(formatDateTime)); @@ -38,6 +48,9 @@ public class AutoCleanUpLogs { for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); String device_code = jsonObject.getString("device_code"); + if (device_code.equals("BZ01") || device_code.equals("BZ02")){ + continue; + } mongoTemplate.remove(query,device_code); System.out.println(device_code+"设备日志清除成功---------------------"); } diff --git a/wcs/qd/src/assets/acs/三通一体机.png b/wcs/qd/src/assets/acs/三通一体机.png new file mode 100644 index 0000000000000000000000000000000000000000..d21399b50d5b9a6628c174d9cf287a44119aa43f GIT binary patch literal 1951 zcmV;Q2VnS#P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91A^-pY00MfUQ~&@62}wjjR9Fe!S4oUqR~0?K{!mj_ zS69zA!4sCt={QkP2S)}eK~_Q_lBH}=7Fn_nmv+9o~B%_#Ywd{N>8# z&3Z3X$7iYWky0qCOSw1NX*A4*VsQ|0?=NO>`sm{Es6DMTE?(U!pWD1WaoltINEs%_ z_NGYV`W5WkzYp!khtNv<6y{UMS8(z2oBplJ71j2+NR2-!g`~c^a2UqG^;F0BtKY0* zb+L$o;bE)kQz2uVCDHCRswgb)!?(ZjRlN1r_wac?7No3udF|cUUjm?M(4E$E}nYqLDV}PT)%lI9uoX+zZthDRl5Ba74ar3qGz+v zREW4p7v?6-kNfO?ACI3niem>?@b+KcgSGfTJmz>ldK7dovN=B0HJQ>X=TZ~?^=y7B zj_3QB%@}x^*7)<^KSj?fC3wa4n$bsbu9)bL8?x9`A4b74aCkl!_eYg>Pn_(-GEKa; z{wiu!nX#LGd-WMS{Mh%%371p~kn*!i3vYgS3twL^e>D5i(`(hxB9CZ?vD`_5-YPC(qyN6@ zER{Tb>)Cgw;tG@FdpNd`OIXQp=|fA`6^NdaF&|QjLLnX6$i0ed^$J?IZ{x}0CcESP zO0g`rYuJ$OW`w5U3QK$@Fk89JU@Tg4sdryuIPetyxj;Vkt~uePvMT1?-I5C71*FG$Q266&E#?8<_-Ik zAN_>UmZYg?yBo%dD|ZsAs`DDqx!Z+5lY-;!&axzI5V{Lg;=tk}vbnrcBAd;jS*=Z6 z#famRP+qv|+V&^NFE7CNT(nyO`?Nbu5`mG%T`{GlxF3a&$pgaFCMq)3B66xq_Uvr` z6S?_WRJN|7eBu<+nOPLM(!EfTSBZlQ3!IaoRdTA#nY+BApr$I~^1#`?aghPrf?H{0 zz5F#iy7uKK_M$+G1v>>$2>=8<6h0j69CVSM-ZzuWYlWcj3#;YD26we;zqzOi}!rI!;od!uLD<#*1V z8`+XXwvPkPJ`^h<6;bSi3m3{tAkFJ@X%fJmERjk|eH0`u@v*YPdBMV{7*AbVWZ}0wfRSeNXW3DR-WU6ZOZX@Dh84Ni5R8Vf9ncZFw9v`GF zr9^P$A1*|!*Q!StBftuE$QKD=){JzHR3nC9UNDfN-(}?*cUkMm5xA`;20K;w173_6 zD=Aur7b#8&zvE*0oFCT(G0{*W3}uXo3WS|BR#2mPxiM+j>Z&>n zeV3OVxfd$q-T>OrHNg`Y%VpGNq)Y@P+^Y002ovPDHLkV1lhmt5N^} literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/储料仓.png b/wcs/qd/src/assets/acs/储料仓.png new file mode 100644 index 0000000000000000000000000000000000000000..9ebef5bb10a5ce0737a10b1a85f7e726c4dc3adc GIT binary patch literal 2413 zcmV-z36l1SP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91A^-pY00MfUQ~&@7*GWV{R9Fe^R@-kJR~i4!b!T^H zFZO!lIC0!KG$b@h)8-~ZqY@+t3Pf!KDwPnT5>?eoApQcRP>C0K;Dra82U5gK)kIWn z1tpjeC-Nc68+xk5>to8Td3 znX-^%LCmhn5SxSB*qHKhc~;&>OqX7VGnu?i9R#Llx8RAV@0rg zXmcJ>8x;t8?~!nV!Xy06TnaY|5OBUCHH2jDN5a7q*$OUnbc~{aA+&K$FJOf(@Y{Nk zZxT1S?_5xVFjZLSQHuV~uitnwlgn=@rtP)GYUvFV316id)#MN4Ov|c)D0Yh9TG^8@Q=waN1WO z>qzN3u5=`3=n2=%LJLc$L98!}!jlKj*>hPl?~#Vo z@$*U%X_E5W=1t@nu|dKdiBh;mFgK)y-%T5s)C{~d z(7PI%jVioUsP#E5%50*h72#MWw4jA;qx)gh)+65Wthw&|p*bMB@(DvQ4u^3M(Mz6G zbsNKG2Q$8gXZuOg+aazH$n$+2OmtchhK@ICSxmK3`Z$QOv6JB7ab}Sw3r@6uMy!= zHNu2&(QgTS(P}~J7S`q>+zNC=x`8xh{ifQ3HpyygA&RClLdW0ZH5iXp!LoDM(f$CZ z`*&hES3slK8|wO529!;CL^Xp}KjloLkA>j(w<0uYy=w?OM2n|m6JKy*-12BBvt(~k zpzIhpTnX`7%_T^QO(_q>l#MN+4-X**9f_^w^VlD3#rx(;gp{$;uVSM&f|eM>@P&UN zTPdfdteA5^)Wtw=@Q0h8hBahqork`bZDGA5FjRDKb+(DJYvbjXj=i}Khy`!fGnn8$ zWk-iZzeu9EGREpuj3u#;9QmgSM@l!R1-{N8#ZaSE+eoytif>I zNHvTvpqpn%_Fl6;5 ziLcZ(oJu{6H0#OH)OI}Md zWn7HN41N&|L1+^9>66&w{}t!$?*q0QzwfU|JQC}y2`bQuXACl*#Qmsa;EHGRIw5H( z@JFQvmgg+k6AirS|t_^9^zd;!bytUc-$zXODKhsxa| zQ_f~qw23ETN?-R4TnugGTQWiXX3Is~R+QElK8e?=4)*{zd>uJE#s>^hgPe)!XkF)b zj5&#(Uac}dj>oD^f8bKAEoBv2rfD-AF+lgb{HA<0d*52->YN{7(8-VK6WG?PhPCd6J$r{>EoDB9WaycfaCh&H=l(FO_Evs?< z1TFTtVVzOO-g1OlUgx8p4qhMlN}k^=S_+LYz(47ca2|{z{#;q0fMY+Ee>%oeyGXl} zzA7|6Ejx^UdW=HoTGf1l@mUk%SmJC{L^N4X?v#-roe*`<;I{=c<`@YsXs^a%txAC6 znrg{2O-f!C`AdLAGW^+>wr~H52!s~VvWOowA$!bkRmox{gn;Cl8mEQYBluyXu7n64 z`xt@dm~Fac#fD|Zn#s{r!6t$TFD#<}&XNj?g08v>hU!VEI3{xD-_^VV-R*Pca)OO_ zbFx>tUiDypRO!%NJF&{gnnH@Nd^R;Lv!00000NkvXXu0mjfpG9%4 literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/刻字机.png b/wcs/qd/src/assets/acs/刻字机.png new file mode 100644 index 0000000000000000000000000000000000000000..2efb8a9b0305ab34cb587afcea2e9db31af86ffc GIT binary patch literal 1038 zcmV+p1o8WcP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91BA^2R1ONa40RR91A^-pY00MfUQ~&@2cu7P-R9Fe^RxxthKny%`oUt{D z3l}M*K2DX|56E}?9DgSdaGfgtLP}>wmP8)23t*2FrSq^%W`r3LxVr_g2OLjK=^~d3 z{3jJ?$n)p#?XXK`rj&=2TG-SS+0+zFuddp(?Xr(KO=v9p||7=V4vtqpArEU06`NyYHC4Z~NfPa~2+MDPJNIZ(Tll`_sl zn|eAy8h|sv)D)r{Jmgiv*lPXZMBvtkC&RHT9u@%yR0Bzcaqk}s~m2jLEi4p1H#Ggs1QV~vS4W{ulGKM~R(482CA?YRJ z6+s0S;=P54t;0R0^n^wfG^i;{;~Ej(0mp%-d-8yKHb{|yuO;A`F!W*E?@v$nZJXD9 zmo|vJLA%y~ZLqYqG3KHocoTd>%J+^Ywi#P_g48Ccah`DBy#0Co)$RA`u-hfm`_LTk z_UX&RLvkYK5KJr%Y>#6**Bi;ev`M-Ur5W@+H?9fLzVb19Dtx+&K$PUfdnPmD(1{H^z!ZUM^(jU;84y`ba)*R51 zE;MmQgn{*%(QZ&yY8M%7?7PvJqaadvX z>J0--E;P%a=vcBh0(cd~E8d1Qb68qK zl4Mm%5O(;KKgTKsUx+i3OKW^utT0kFCW*MJiWHJFvK|Mx_*~Gqri}jo6?M zr~e&(3k&Z@1nYr!$1#B3MiHxNZw;zWR|+pL`ywmEkbxzLOw7k73C|BC`&VgBjB zX#B4c(#N%@5g}B6dU`$8^Alpga!wU7f+V4mSmGd0tV&yB5c5XldN`!J#t-8h&!fO9 z#E~%jWBVc9wTFP>%g2261;jYCJ>E@P_Nf@bF6vT&f4>5M0pL3v_JY%EzW@LL07*qo IM6N<$g5MIwJOBUy literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/包装机1.png b/wcs/qd/src/assets/acs/包装机1.png new file mode 100644 index 0000000000000000000000000000000000000000..7cb6a8986d1dc3f728c460e2186990e4c8be2be8 GIT binary patch literal 692 zcmeAS@N?(olHy`uVBq!ia0vp^N+8U^1|+TAxeoy;#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz07TEL88gA_7VEervYa-J@ZArYKU zr|;Kyc9c2rzIuIaF0UGogaEU!;zkKqoiH(Hb!M@)W9J>48tWZ8T$G#ynhk!KO7fbl zWbs@qnsh)(>7so3^L3Zpe!a`Q|5VEN&ZY1BzVChiz4*TT_jL^-?&lvk8T+c~i%yT8 zme{T0&!~E4>hi3(tWye=k>v|QOcbIHXA3vXzWcP(ZT8Nd9T`fW>>U^`a2{*37ychF zHzk`T`IN@Stu=`f2D|oJ)Mc%nXu6PRQmXn_E)G|Qhb!MMz39u3U?gijbDtFBjiyt- z+U7pp$h%yC$xoic`QhA`_jcUvD?T~Z(ZEoqbzg$QP9E#I;e8#!?mNG1E%Vh&-}LiB z&3ERdTcV^n5{~V@{z!basW9qZh_=RpZJo@`bOUCrB+gvk&y5j9~*5n$yZ#5K= zeh{qv=l;>fJWsy;EA%}v)p63J6xB;x(*GO{tZ95aH?-nR;_fR;rtW9B`K)`%%!!Lr PKqm literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/包装机2.png b/wcs/qd/src/assets/acs/包装机2.png new file mode 100644 index 0000000000000000000000000000000000000000..5eef3e0cecc6b15d5158e81198d3e46aec9397b6 GIT binary patch literal 1210 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�LsO zM7b_0QA8Jsl7<2)zl5G&gG513!*4*MqDC|bC{iJzfCPvn7k@49?e3g?V-qI`=_qar z?|OFU&D%HQy%X8kMuCk28wEBBtWAMr9htvAf9R6zLL_ZP+EiRKllkM<11|YG$Yryi zk`|{RSA$$GZMi*4V=d&;;+LeeAChL3w9OWXx&Mb;l9eD9rxA-uy*Ye2g zx|Jr93&9Ks!G7pxGmZqroI|-taMU7>;`u%53uj_zUDM|VJo372rEbt~G*uxcb5JA@ z2!Menl?^sHO!Vsz_6IfTBZ~U?u5)srSstETrR4mU?qQX&WbI)z8AqBW{NF_z9-i=fzs?j|*||YyLp$U&Y&g`$F!`xpoJz z$MXKu8=2jG0OeX_9`eZfg>-T%==f-ru)C~sc71OfKjmk^%a83Q{*{!xEl3WBvOGYp zV?1cF*b`mWFg;B%4cF?0^v!YtSyqxN^(OuLm?b4bp%_%sxfV zt^@Q-v5#j|UN2wvGQ5^YepX&c6*r9%y3ENdA;ItR@@j~4`e<4ojx=*P6}qk)&_(YX z9{K5_LJ)s=VHPZSdryUn%1zaEYP*d$Jn}^uiIKt-*wlLO7+0G1@uIjsF8cFD)gxz> zGi3<9qKJgiImfG*ZNfjqM;=fPW&Kw+m3#8=t3)C>J-J0+-8_7=CpYm{d9yrT31$f! sL(eHUn|%OgH%z=wa9`;P&DDea4X*qWTj8hifdBvi07*qoM6N<$f|(7%y8r+H literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/推弯成型2.png b/wcs/qd/src/assets/acs/推弯成型2.png new file mode 100644 index 0000000000000000000000000000000000000000..c57183de043ea035798d2bfe43db4a3e6c9ea87d GIT binary patch literal 1123 zcmV-p1f2VcP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?n%}GQ-R9Fe^S37SMF%X`8WG_+x z5#_q1L@5!XqyY(uUqa2lp-WE#1%CjEiWW!{2_#ZP5hxT%L~_aP!_4RL-1@w?50rzX zV4|$O_B_7%#`gLmx(0dk@xbhTKedq!8H)H1EkyfhQ#%Z`8O~<1Z+f zN?7W1eJ$XsK2&c0TEH1|gP9wMjs7ziF0q08;bt?p^mFd#&SMiLmqan|$tosOj%fV+ zedM!O4P10f2bYXaDbCIqT*2T{s-|l`F54frS84fQh&cO2@#uu&B&VueVK7Z71BqKc zxG0%2uqhFPPZbj3{bl1t)}kh_&Qv6f-984D6VVnbtK-^PN%)Rw3K zbDT`+z;(q;i;A6FBuK-t;DX@;EdU%CR#9g#(LUNm0>7A1|L7N`Fjp`sRytxbI5u%* z5$*aJG82LglUW2t$E;V5V?psCDz-@cm?@OCD!{0Th#_)?NGpMGtrqEHuI5esM3i%- zAXzG7T``5ZSy?ns7rtpJsPw6sv}I@K8O&_H;te6jHFNDTc|*t=fJwM>!ZPamLo1?; zI2Jfb^>KFig{JRbQgU%j<>mugfA)gU!k7w1XZT#q-BF_YXd!+~E-MzjgwpcWt<}~^ zK2$}w?KglWirGec`_n7h8pHH12mD5RUq8_3-XmrX;CQ#r?oIOv+F+;{i`}iZH{cOw z8Jfr%l%IK)U)$MhrHs=?cDD(_a?;xKmGwj*46az0@P z!)^)0?C_ahPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?oSV=@dR9FekR!xf(M;Ly)yLM(^ z7qh`p#H>eMFN(S#i=YTm$t{QciCl8^;K_>wa?ahG7ySc{ka+O02swm6Rz&dQAQ%zW zot@p@{wklhy5E|f>h7J{83$6!Y*p9$QBOV3TixZ|d;G5^O{Vd{!=FsZn0xUcGcE$` zSnP#c(VabUgnqiPQg0k}t$k9D{(4<&_!^Txo;x{H8h@tfF~P#`7`I0Ae8K72;LR0W z_J0OgPdaVW z&HrwTd8+>1PDl8ZRF*V$|LHbbnp5 zoIxv>)q||MkTs2t7DA0i!Td$Y^HxDxbG;%*9Y;7Fm5}j_ZzpGUnd=iaFi@|BO%3 zPvW2Omk4i}N|73mrda-BQ;Xn-ac2BD-qsSmNBg_uozoh*?ey1SZqV&59 zw0!Fqywn583Fc7jO|l9K2B@>_ZtwDC@_hg9&5ezxY*T!qL{?dB*u$e#j~a}cGUGZe zwZ*?5(Ah3eEW`aZy?C`jozqvqeuhusu;$#&$>tf{t>@3LGkax_=Cqd9IdJGQE6%4D z@rmBepBO*~Hycwb00%86V(y2lSM@u*tRLcqoPSX1&k^P-2f{sm#sMHoY%-+XGvCuU z|2zVanAFh~in?b|Yp7eu>H!=x!%dj7r`^ml{*-PY=e30eQvE)i;7y?&%p9vH0NGo{ z!{ch^-YlM{?xiku^d5cmyA-v*#fp5uGV-yoyyrMYU1M-P81!I3J$zBZqRtF+n68Vd z&Y6OPZxL+53{amwv{r`Ti<;zm4zTbf2cq}vna2RjO?}?oL((a492)d5CMz?+*})T5p%j7#8L=G+<^i*__QKZPZ5E_0RiPB@s$Zw$`-bdN3(U^?z^ zyKf$wdqQw|P2{Imw6i%57>I8}JXRlUZzI0Jen4h6n+a07*qoM6N<$f)*f64gdfE literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/清洗机1.png b/wcs/qd/src/assets/acs/清洗机1.png new file mode 100644 index 0000000000000000000000000000000000000000..6f85780a8ff3012d8e33ca9b529db4bb2bc4d161 GIT binary patch literal 1309 zcmV+&1>*XNP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?ohesmWw! zHYU1>LD8tF81^E9Ui9G6lL#v;f`7vw;N7dZw?%LM1wq)WH$jN_35#D@lL?#2qGM%OevdFd-5SXe05G@GI z>I90qF-D}FjgxhyZoKo>t49R$>&c{AlZnN}MJwcb@fI|!B`6z-%@v9k`Y7Y%R`V^X zQlIsT^KEHL(W#V>dMY|*DkO4SV~2|P&ZrLJt7lduGU*~~*wr$n|;4#(r2v-9F$Eg$b#bHZ#|!{=a5N@kiet_OX* zzI~ENd1G(yxxf2s(j9=Sk^+BFr$h}jpEq?5H>u~j*>!1G8%r63& z)Y;D5%Z{&~ZoP1OicLDQU5{<9V>^7|aanvtsYK%Uh{sTuKR-y{Tg%g1aL2kY09v*| z=qJbo^LnE{Z=P-pg!JH=#D&Am4mcZ;mqxS`(&7k+_msvYukixt8k$pP3pqAJH{0Vr z>K&DebgIQ;U~gdx7WLgdhttJl=*V<-muAekdIMcl z&1qJD3$Zfnz>DBqsRq{s5ZC>VwP0Tij2#L$khgVF3L8=~#UOGpzHFWa*WAc10EQNU zu&etb9Dwr?Dzf2tGGSLlOgvn4lGd7Qn2iV~p3M@X5XnYYn6U*HHVG@S-fWBe2!{QX zK}V?hVVGse)M@ea`>pb=O9- z%dOqryO2-EzkA^>i$D&AzyQ$k{X_@8f>pYm1Z*vPf_&55(B=r3Qq=rs- T#&bz?00000NkvXXu0mjffh}yf literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/清洗机2.png b/wcs/qd/src/assets/acs/清洗机2.png new file mode 100644 index 0000000000000000000000000000000000000000..1bca582c66f1778c9a5108693a4cd8c17ad999bc GIT binary patch literal 1608 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 AU;qFB literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/清洗机4.png b/wcs/qd/src/assets/acs/清洗机4.png new file mode 100644 index 0000000000000000000000000000000000000000..f44b4bf96630f29a40768c049981eb2fb3aadc77 GIT binary patch literal 680 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic-!3HGnN^5+IfWVg?501&j>LK$;OGwtxvPtG<94&Q<~`{C36n1_J|=kf)1d zNCfBG5MOT@M}f5y&#mwj31ohjB%q{G@s+)!{fRzzlQ{p!MQt8>mMkB+OGHb>Z{D2C z|2njMt?k~&uX6QcxudV%4P76%U$0FgDnvm`K(vFa$G7pxmwo$fx4p|Z@jEBKX;qOY zXZ4W}Nu2H$t@#_e&I{Q!=Wi15-#B~o#bZea5Bog)dTmjo{>3>zH*RNJud5poIgRO+ zP}aHimzeJ!j(WegJUOe(UnQyN@1iNYj_(#btEY2q>FVObA9glbj@OcQuoO0#|8GrZ zbv!ctsl1I(az*y6*XRDnm8*Pz^`wEXzi-9uw_f+2UGtBMi+vu!El{KrbSvrLm%hJg z)9dSaAJ@ijE-!q#_?6?KFGas~X3X~6?Hf65qG6j})b}mLWj^+1`z~Jkqf^Ab=Z;6u zlUqICqd)Akve`SmXsX)1`8KOn3XhxkdZuS+nQk%qJF{rs%DA{4LUYZ3^JparNAi5l zu9*3Vm7%mmEcyTcwF2+ aDvM`?9n;Jx=3uPm2*^|jc`UgGyA-cx(`OjLb+UgU$F zQQXOj*2AYi%~AUq8lqXxQ&7EM?sdxh`@GApM4pH>d1}mVUS;{^jq{V4E9&$v7`zc< znz2U1BJ;qxiCgkssLfekz4b`B-WD-AF)i^!Gs1pnnlI$M$=||RT-oc-R`m7q!i{VB zr>?NzzwyDKH~zi&Bk#yR-CQoLiPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?oe@R3^R9Fe^R!eUiRTTc_;Tb!V zrb%6s7sRNcNTHP?p>A5bfwEx3f?t7zSW>Z}QW0xb-LV1z60M4mSOM(ePJbWbJ-o4O=T)H1n6f72P$Xp&)_eqGg1zdjRG!WLK zPxF!RnEOrrt5S$tM*?nUW(Fl)fFZ0_e3%_W=*s4>zPf;^$;lW`42$?AO!Ope1dxDM zYH9A~Q(G+l1BzOhvKdA_BM*=0+IN!!-`-nZS=n}x zmNlGo3vso29)ACms+ID{NEtZ$FV$Kpt|C=g|7LWs`%PtG)4%jM&_pOKHxRvcCCJ;g zYTov|r#CC^z?M_(@dR?8{9+wDtu&nu#V@E z?SBS^jR%;UosDe%ZqGztb(|qx&?wnEnP{{!jISSRV+kSYF5;hH9f1sa+;9-veKH#& z^^mR%x`h2eP__O9Mb$vXinUx%-B+{eGX(lGlH4f}LSTG+Vp$LU4|Lb_QQ6+au^uXM zCW!qfL?!)r&&V5tq5TLXJ@glWrIvq*2rCQm+{I*wfgROaYiOGtM|Y8{jKMTb_@RQE zzb#*1zjN~=z2>YJrrClyZ;Q0NwxLU;5(_46b^jTz&cQ*V-(WAx87K0O% z6N35?gET&{hya#lQP@>TpTbfX-KRumVNiSmP1BH08^~)WJYtCF`9!fO^a5wLxET16 zw1zVw4(iU())(xnDZ|8^=z>Pu6iS=WQ@X|rl^)4n%m7a)x0`Ah?Vb@%2J1&alDuqPi`rSwS0<@P=m*Qi)u!5AT{P^>SZ@r`ox);n7 zy_7dB3Ne==wg?ST>_?&6fsWKVp<{3y(tzk=lc*>NSaOKHHr|h}?1ixH3gDFPv%T&T z1Mzj(x}3wrb4j?kA02`~Mq#BH&bcV+Olu?jt-ki75#*yv-+!fr`8l@N*UQdr&LkGv zleYgS0wgkqnWl@|Qo_)pd^9QV440lDkfx%joqm;0en8>RbP+T^4H(OTbtq`dio z5b9~y^Imk^;9S+0FT8!}%$Wl@Y%gjv&}N{`K%0R!18oNW-wgZ(qBc|b6&)du00000 LNkvXXu0mjfCFNd3 literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/盘管下料1.png b/wcs/qd/src/assets/acs/盘管下料1.png new file mode 100644 index 0000000000000000000000000000000000000000..10320952b9452606ffd112b50cafc55ee0e43e1b GIT binary patch literal 1162 zcmV;51aPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?n^hrcPR9Fe^SW8b7K@hI)nO$6V zSzM7vL?wb8G)Bc}qHyxcQ7_0{jdw4eJ$UhM)Vp}m8~y|}#`r*@Q3M5n1eAySV%eFV zv1(x3>6w9yyM44ayWL&W_0_litSL77_`|sCy2B8VQ<);1&*tHXvj|yH02e<+GYjAN z0eJB{3-61WfW^+udaxK{&)Ai*3D*zXW>nyM#|(5Yy#l+i>VG8bX0{C$I?loUUs+5`TUPu{+r`r$$iVHK!b87TdXYqGH>UCkskxN&9OYmC7NH$4gq)TxF zNEeihl~+`{up~KGSc(I$;W&X^i#wQf0TBUPU09M_UL*r90fcSA>Jm=3OC%kyPP(8J z9Mx7AmRxhw?tbWipFzJMs#W+kzqQWrCJ8+!#f;mo=yhSqk()4%;*5o-jJy)5orpO& zqVHIrLQWT!B=<4V4^tvXR1`t7dSSr)##Ubc=eaAAF zYUWDWI2Idc3L-XU?q2F~?9!v=mfWD(6uvX5zqMI`jpEvKZlp(hZ$70%E>arB3X!XM z`F#80FfPK8L{n;r8D>z;l}Di=xnCr zFT^`AF?f`e9JtqZ71oTsfoA}XV$l)D{Vz9H3QuAZBQ6X&(;UbqN*cu?Uh;-GZhe7% zW6g6KWqCEkENi% z8wr<_>QSN#OaA5A#9`P6>cS?raU$XGc%Os)_rK}Fk|X!l?gpM}`Rl<~+bt3{(B=)= z`b8I(B=^4B0gLVU?uj{&*n)i*&}IT{{h|v?k|Xd3YbU@u6qDd~B8P0ELqs8{ cI~E)N1K6PTTwC)wj{pDw07*qoM6N<$f`DZQ6#xJL literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/盘管下料2.png b/wcs/qd/src/assets/acs/盘管下料2.png new file mode 100644 index 0000000000000000000000000000000000000000..08b33f3c5834199d4944d09098e0445d6ce62226 GIT binary patch literal 683 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic-!3HGnN^5+IfWVg?501&j>LK$;OGwtxvPtG<94&Q<~`{C36n1_J|=sHcl# zNCfBG>3jVS8webKd&HMXr6E9DMeR!CLY)=X($Y3e(%F&~JZZZ&8GdBAD;Xhi>e^Cn zZssHht=45fH*Azu3R>BzpH(nDZt1bFvG3~s&VRh?$0qYFw@X+5H~SRLW7zW3JEnDM za-rz5Pp20wGM{&=c+Ko%)2fXY9-C9OsBOh;iJubn@9lf-qYr;C47|0f=EskO?`MiU zi(PzE{hVEXBrf4uqm^LPE8w>@P-SYtWrMJm(C6Qrx%{RbaQz^CU}iB>vqYTtp;nVh zhN4fQRQw=&mxW*w>dRAW-l zPR`XO9wrL1f~~Trf8Cze?Q!X?_1hkeN$1Y)*8iINNH^&5se>;p=JcA`Mts=wEA_eA zwVeVEm#?4a5hzf$}~ljsWxi* zg)lwo5X-x{qA?C;F7Iw%zpGaFqT_7I!{mx(rIm+G7oU6R_xX6w-%m1@mW4y z=Kt5kH*t-@r%lrr2-F;2)TqXHdhTCf9mD+ zb2`-$ESzG#J!*N@AmqQ(;b3Gj(@(|8N7F8xE?mDXoJ%LRQNF2W@|OjB*JXebil?ie J%Q~loCIAvb9n1g# literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/盘管下料3.png b/wcs/qd/src/assets/acs/盘管下料3.png new file mode 100644 index 0000000000000000000000000000000000000000..44555b1e93fb56c1d01f138f55ebd113e03fc8c9 GIT binary patch literal 1203 zcmV;k1WfyhP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?o9Z5t%R9FeUSWSo&M-+ZtRXshk z?#!$v#+4;1UWApPAc+zPLez`o8rYL~N%R)IOHLj|6i-2N2r3FWmSyh?dhq(T5Gqds#jI7zWVA_)x76?H`|FROEJad;E!`o z4n8h%UY^h!-CIImnV)-d^zq*>rX2{#5g3@M<$4??I$I5o_8j<_R@GR!x=hMCQM{xU zv|HKHpwV$_;>_{4eMyq&P1ttgS_@T zq-u3?q$~`JBTd?0A=g945t0>fJfBc5CU1}gNFn;bfjS2=>4L%$k{xiFkq{UYLak$t zz?>r?7eQvtW(Y^)d4SG76C2PgJzN7DOB$?zW9!Y%X2}#qk!e33Wd)qbx3!34eT}b| z5ztuym!L45)UaEk(h9g#$?$21_b8HW1sto)AB3X%vYI(WJK*?*D#KACGhc+I15x$* zmf$lMSz(Tqm@;C@Ft5N0I7b#A`a#sB3owUg2OKkJXm#e$Y%#Y%PlQG025n|h{??f* zPCvMoZ2bu6tT4yc5t|;@!PwWeSOGVZ$&IiGYv9%`yG)R5soAx|!>xdGrI{MWW_sl? zIQ79~lk?K_*VBje^~H0vxjjKka8T-vI(hIBf*>IMa+!LNUHIxe)zuDof0$ZpilUG$ zu%Ity*HDKP3&@L2g?{}N)fVBvr*T|{v`H!Y^w1}C_m6ut`QBD)O>Cz5g+)4iclP&#VYhqZlaf$C?*e{RE)9dA2#`(}d4gxTZ$oD@~o5oY6U?t`|21i$F zhr&1@5oKG+#~G+N$`mOic-!3HGnN^5+IfWVg?501&j>LK$;OGwtxvPtG<94&Q<~`{C36n22feGr;B4q z1ZQ%B1nXi&11YA(iVlSw25!3h|9rAPTyNOryJ!<*PfyS72nRl9BfCHU&lfNz+9?|| zAGVKP@I$ZdKhJT&M*?C2{eG)Nvd(4|*IG u%w|eRNNiu!_E;m|gvHG{0ZO#Fa4<0Re->E(m9fSi6dj(felF{r5}E+uD8lss literal 0 HcmV?d00001 diff --git a/wcs/qd/src/assets/acs/直管下料2.png b/wcs/qd/src/assets/acs/直管下料2.png new file mode 100644 index 0000000000000000000000000000000000000000..e99f90c34668b0d965c1e7caa0b3015f377ffa06 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^>Oic-!3HGnN^5+IfWVg?501&j>LK$;OGwtxvPtG<94&Q<~`{C36n1_J{Vx2KC^ zNCfBG@V$PA4FvY7klVjt2zoB*E-CZS#i4F>i zQynhw_l$vb$gVv*!7ZW2Na2WX#{bdu@3c6bW*L9#lu^o0d!qc~UNx89?dI(XaW_`g96NdN+s?NW|0-^s zV(8n*@z{lP4VQtGdcu=S8ckkBk1awEtSW9dbY(w%LiGpdixaE|G>$%>^dxDPse|Jl zuXg2ia~fm9J@qs{nsgiaYN)sKD4kp?HPu_PZmNpqsSl+MH7}eZPL*#8Iu$rUhMPI; z<%BB}-gJ1px%KV-Hk*FWeYMZEl_xz(-u&$8KF&S9QZbe?)_&(2OXb<;P2KA6uH|XF<9VRQV&DGNI@(48WplrjGEMrSvPQ1R<7Jj&``c?$Qcb7ZLjB5} zIpRF>9C9k!WiL&h{qoT94=1zqcElUbo^vO%vAk-Ag}_0vw~g|4e%1e8hCjHwK>2i= zfufs#gh+;D;m*%Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91C!hlW1ONa40RR91A^-pY0QS^P*Z=?o9Z5t%R9FeUSWSo&M-+ZtRXshk z?#!$v#+4;1UWApPAc+zPLez`o8rYL~N%R)IOHLj|6i-2N2r3FWmSyh?dhq(T5Gqds#jI7zWVA_)x76?H`|FROEJad;E!`o z4n8h%UY^h!-CIImnV)-d^zq*>rX2{#5g3@M<$4??I$I5o_8j<_R@GR!x=hMCQM{xU zv|HKHpwV$_;>_{4eMyq&P1ttgS_@T zq-u3?q$~`JBTd?0A=g945t0>fJfBc5CU1}gNFn;bfjS2=>4L%$k{xiFkq{UYLak$t zz?>r?7eQvtW(Y^)d4SG76C2PgJzN7DOB$?zW9!Y%X2}#qk!e33Wd)qbx3!34eT}b| z5ztuym!L45)UaEk(h9g#$?$21_b8HW1sto)AB3X%vYI(WJK*?*D#KACGhc+I15x$* zmf$lMSz(Tqm@;C@Ft5N0I7b#A`a#sB3owUg2OKkJXm#e$Y%#Y%PlQG025n|h{??f* zPCvMoZ2bu6tT4yc5t|;@!PwWeSOGVZ$&IiGYv9%`yG)R5soAx|!>xdGrI{MWW_sl? zIQ79~lk?K_*VBje^~H0vxjjKka8T-vI(hIBf*>IMa+!LNUHIxe)zuDof0$ZpilUG$ zu%Ity*HDKP3&@L2g?{}N)fVBvr*T|{v`H!Y^w1}C_m6ut`QBD)O>Cz5g+)4iclP&#VYhqZlaf$C?*e{RE)9dA2#`(}d4gxTZ$oD@~o5oY6U?t`|21i$F zhr&1@5oKG+#~G+N$`m Date: Tue, 12 Jul 2022 11:33:02 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/quartz/task/AutoCleanUpLogs.java | 34 +++------------- .../nl/modules/quartz/task/CleanUpThread.java | 40 +++++++++++++++++++ 2 files changed, 46 insertions(+), 28 deletions(-) create mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java index aca823fd..c86b0492 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/AutoCleanUpLogs.java @@ -1,18 +1,14 @@ package org.nl.modules.quartz.task; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.wql.core.bean.WQLObject; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; -import java.util.Date; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** @@ -24,35 +20,17 @@ import java.util.Date; @RequiredArgsConstructor public class AutoCleanUpLogs { - private final MongoTemplate mongoTemplate; + private ExecutorService threadPool = Executors.newCachedThreadPool(); public void run() throws Exception { try { - Date now = DateUtil.parse(DateUtil.now()); - DateTime bzdate = DateUtil.offsetDay(now, -5); - String formatbz = DateUtil.formatDateTime(bzdate); - Query bzquery = new Query().addCriteria(Criteria.where("create_time").lte(formatbz)); - System.out.println("BZ01设备日志开始清除---------------------"); - mongoTemplate.remove(bzquery,"BZ01"); - System.out.println("BZ01设备日志清除成功---------------------"); - - System.out.println("BZ02设备日志开始清除---------------------"); - mongoTemplate.remove(bzquery,"BZ02"); - System.out.println("BZ02设备日志清除成功---------------------"); WQLObject wo = WQLObject.getWQLObject("acs_device"); - JSONArray array = wo.query("1=1","device_code").getResultJSONArray(0); - DateTime dateTime = DateUtil.offsetDay(now, -15); - String formatDateTime = DateUtil.formatDateTime(dateTime); - Query query = new Query().addCriteria(Criteria.where("create_time").lte(formatDateTime)); - if (array.size() > 0){ + JSONArray array = wo.query("1=1", "device_code").getResultJSONArray(0); + if (array.size() > 0) { for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); String device_code = jsonObject.getString("device_code"); - if (device_code.equals("BZ01") || device_code.equals("BZ02")){ - continue; - } - mongoTemplate.remove(query,device_code); - System.out.println(device_code+"设备日志清除成功---------------------"); + threadPool.execute(new CleanUpThread(device_code)); } } } catch (Exception e) { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java new file mode 100644 index 00000000..4994a5f4 --- /dev/null +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/quartz/task/CleanUpThread.java @@ -0,0 +1,40 @@ +package org.nl.modules.quartz.task; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import org.nl.utils.SpringContextHolder; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; + +import java.util.Date; + +/** + * @author: geng by + * @createDate: 2022/7/12 + */ +public class CleanUpThread extends Thread{ + + private String deviceCode; + + public CleanUpThread(String deviceCode){ + this.deviceCode = deviceCode; + } + + @Override + public void run() { + MongoTemplate mongoTemplate = SpringContextHolder.getBean(MongoTemplate.class); + Date now = DateUtil.parse(DateUtil.now()); + DateTime bzdate; + if (deviceCode.equals("BZ01") || deviceCode.equals("BZ02")){ + bzdate = DateUtil.offsetDay(now, -3); + } else { + bzdate = DateUtil.offsetDay(now, -15); + } + String formatbz = DateUtil.formatDateTime(bzdate); + Query bzquery = new Query().addCriteria(Criteria.where("create_time").lte(formatbz)); + System.out.println(deviceCode+"设备日志开始清除---------------------"); + mongoTemplate.remove(bzquery, deviceCode); + System.out.println(deviceCode+"设备日志清除成功---------------------"); + } +} From cb429eaa3b249c000ce3bfeb1e5af6740f60f22d Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Tue, 12 Jul 2022 21:21:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/acs/common/AbstractDriverService.java | 23 ++++ .../common/HailiangPackerStationDevice.java | 9 +- .../org/nl/acs/common/IDriverService.java | 10 ++ .../acs/ext/wms/rest/WmsToAcsController.java | 7 + .../acs/ext/wms/service/WmsToAcsService.java | 8 ++ .../wms/service/impl/WmsToAcsServiceImpl.java | 77 +++++++---- .../org/nl/acs/opc/DeviceExtraManageDto.java | 1 + .../org/nl/modules/log/MongoDBAppender.java | 52 -------- .../nl/modules/log/MongoDBAppenderBase.java | 120 +++++------------- .../src/main/resources/log/AcsToErp.xml | 5 +- .../src/main/resources/log/AcsToWms.xml | 5 +- .../resources/log/AgvFeedbackServiceImpl.xml | 5 +- .../main/resources/log/AgvLeaveServlet.xml | 5 +- .../src/main/resources/log/AutoCreateInst.xml | 5 +- .../log/NDCSocketConnectionAutoRun.xml | 5 +- .../main/resources/log/QueryAgvTaskStatus.xml | 5 +- .../resources/log/QueryXZAgvTaskStatus.xml | 5 +- .../src/main/resources/log/WmsToAcs.xml | 5 +- .../src/main/resources/logback-spring.xml | 9 +- 19 files changed, 157 insertions(+), 204 deletions(-) delete mode 100644 wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java index 95a1c4f2..25ececae 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/AbstractDriverService.java @@ -18,6 +18,29 @@ public class AbstractDriverService implements IDriverService{ return null; } + @Override + public Integer getDbValue(Device device,String dbName) { + return null; + } + + + public Integer getDbValue(T t,String dbName){ + Integer dbValue = 0; + try { + Class tClass = t.getClass(); + Method methodDb = tClass.getMethod("get"+dbName); + dbValue = (Integer) methodDb.invoke(t); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + return dbValue; + } + + public JSONObject getCommonDeviceInfo(T t){ JSONObject map = new JSONObject(); try { diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/HailiangPackerStationDevice.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/HailiangPackerStationDevice.java index 5c8b32bb..0e162423 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/HailiangPackerStationDevice.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/HailiangPackerStationDevice.java @@ -11,9 +11,10 @@ import org.springframework.stereotype.Service; */ @Service("hailiang_packer_station") public class HailiangPackerStationDevice extends AbstractDriverService { + HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; @Override public JSONObject getDeviceInfo(Device device) { - HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); + hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); JSONObject jo = super.getCommonDeviceInfo(hailiangPackerStationDeviceDriver); jo.put("material_type",device.getMaterial_type()); jo.put("lack_req", StageActorUtil.getIsOrNo(hailiangPackerStationDeviceDriver.getLack_req())); @@ -26,4 +27,10 @@ public class HailiangPackerStationDevice extends AbstractDriverService { jo.put("driver_type",device.getDeviceDriverDefination().getDriverCode()); return jo; } + + @Override + public Integer getDbValue(Device device,String dbName){ + hailiangPackerStationDeviceDriver = (HailiangPackerStationDeviceDriver) device.getDeviceDriver(); + return super.getDbValue(hailiangPackerStationDeviceDriver,dbName); + } } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/IDriverService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/IDriverService.java index ee1a1ca7..ba7a36bc 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/IDriverService.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/common/IDriverService.java @@ -5,5 +5,15 @@ import org.nl.acs.opc.Device; public interface IDriverService { + /** + * 获取设备监控信息 + * @param device + * @return + */ JSONObject getDeviceInfo(Device device); + + /** + * 获取db值 + */ + Integer getDbValue(Device device,String dbName); } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 72ee3f85..d45d192b 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -84,4 +84,11 @@ public class WmsToAcsController { return new ResponseEntity<>(wmstoacsService.orderStatusUpdate(whereJson), HttpStatus.OK); } + @PostMapping("/queryDeviceDBValue") + @Log("查询设备DB值") + @ApiOperation("查询设备DB值") + public ResponseEntity queryDeviceDBValue(@RequestBody String whereJson){ + return new ResponseEntity<>(wmstoacsService.queryDeviceDBValue(whereJson), HttpStatus.OK); + } + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java index 2b60b2c9..4c001b2d 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/WmsToAcsService.java @@ -68,4 +68,12 @@ public interface WmsToAcsService { * @return */ Map orderStatusUpdate(String whereJson); + + /** + * 查询设备DB值 + * @param whereJson + * @return + */ + Map queryDeviceDBValue(String whereJson); + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 5495b0a3..1b4236ed 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -1,18 +1,16 @@ package org.nl.acs.ext.wms.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.acs.common.IDriverService; import org.nl.acs.config.AcsConfig; import org.nl.acs.config.server.AcsConfigService; import org.nl.acs.device.service.DeviceService; -import org.nl.acs.device_driver.DeviceDriver; -import org.nl.acs.device_driver.DeviceDriverDefination; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_engraving_machine.HailiangEngravingMachineDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_packer_station.HailiangPackerStationDeviceDriver; import org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_device.HailiangSpecialDeviceDriver; @@ -28,10 +26,10 @@ import org.nl.acs.instruction.service.InstructionService; import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.opc.Device; import org.nl.acs.opc.DeviceAppService; +import org.nl.acs.opc.DeviceExtraManageDto; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.exception.BadRequestException; @@ -39,13 +37,12 @@ import org.nl.exception.WDKException; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SpringContextHolder; import org.nl.wql.core.bean.WQLObject; +import org.springframework.context.ApplicationContext; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.unit.DataUnit; import java.math.BigDecimal; -import java.util.Date; import java.util.List; import java.util.Map; @@ -54,13 +51,13 @@ import java.util.Map; @Slf4j public class WmsToAcsServiceImpl implements WmsToAcsService { - + private final ApplicationContext applicationContext; private final InstructionService InstructionService; - private final TaskService TaskService; - private final DeviceService DeviceService; - private final DeviceAppService DeviceAppService; - private final RouteLineService RouteLineService; + private final TaskService taskService; + private final DeviceService deviceService; + private final DeviceAppService deviceAppService; + private final RouteLineService routeLineService; private final ProduceshiftorderService produceshiftorderService; @Override @@ -128,12 +125,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { // if (ObjectUtil.isEmpty(list)) { // throw new WDKException("路由不通!"); // } - TaskDto taskDto = TaskService.findByCodeFromCache(task_code); + TaskDto taskDto = taskService.findByCodeFromCache(task_code); if (taskDto != null) { throw new WDKException("不能存在相同的任务号!"); } if (!StrUtil.isEmpty(vehicle_code)) { - TaskDto vehicle_dto = TaskService.findByContainer(vehicle_code); + TaskDto vehicle_dto = taskService.findByContainer(vehicle_code); if (vehicle_dto != null) { throw new WDKException("已存在该载具号的任务!"); } @@ -161,7 +158,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { TaskDto task_dto = jo.toJavaObject(TaskDto.class); try { - TaskService.create(task_dto); + taskService.create(task_dto); } catch (Exception e) { e.printStackTrace(); JSONObject json = new JSONObject(); @@ -216,11 +213,11 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { } String cancelTaskCheck = acsConfigService.findConfigFromCache().get(AcsConfig.CANCELTASKCHECK); if (StrUtil.equals(cancelTaskCheck, "1")) { - TaskService.cancel(task_uuid); + taskService.cancel(task_uuid); } else if (StrUtil.equals(cancelTaskCheck, "0")) { Instruction inst = instructionService.findByTaskcode(task_code); if (inst == null) { - TaskService.cancel(task_uuid); + taskService.cancel(task_uuid); } else { throw new RuntimeException("指令正在执行中,操作失败!"); } @@ -247,7 +244,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { JSONObject jo = new JSONObject(); jo.put("device_code", device_code); jo.put("hasGoodStatus", has_goods); - DeviceService.changeDeviceStatus(jo); + deviceService.changeDeviceStatus(jo); } JSONObject resultJson = new JSONObject(); @@ -263,7 +260,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String device_code = form.getString("device_code"); String type = form.getString("type"); - Device device = DeviceAppService.findDeviceByCode(device_code); + Device device = deviceAppService.findDeviceByCode(device_code); JSONObject resultJson = new JSONObject(); resultJson.put("status", HttpStatus.OK); @@ -282,7 +279,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String device_code = data.getString("device_code"); String code = data.getString("code"); String value = data.getString("value"); - Device device = DeviceAppService.findDeviceByCode(device_code); + Device device = deviceAppService.findDeviceByCode(device_code); if (ObjectUtil.isEmpty(device)) { throw new Exception("未找到对应设备:" + device_code); } @@ -317,7 +314,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { StandardAutodoorDeviceDriver standardAutodoorDeviceDriver; if (datas.size() == 0) { - List list = DeviceService.findCacheDevice(); + List list = deviceService.findCacheDevice(); for (int i = 0, j = list.size(); i < j; i++) { Device device = list.get(i); JSONObject obj = new JSONObject(); @@ -446,7 +443,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { JSONObject jo = new JSONObject(); JSONObject data = datas.getJSONObject(i); String device_code = data.getString("device_code"); - Device device = DeviceAppService.findDeviceByCode(device_code); + Device device = deviceAppService.findDeviceByCode(device_code); if (ObjectUtil.isEmpty(device)) { throw new Exception("未找到对应设备:" + device_code); } @@ -650,7 +647,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String type = jsonObject.getString("type"); JSONObject json = wo.query("ext_order_id = '" + ext_order_id + "'").uniqueResult(0); ProduceshiftorderDto obj = JSONObject.toJavaObject(json, ProduceshiftorderDto.class); - Device device = DeviceAppService.findDeviceByCode(obj.getDevice_code()); + Device device = deviceAppService.findDeviceByCode(obj.getDevice_code()); HailiangSpecialDeviceDriver hailiangSpecialDeviceDriver; HailiangPackerStationDeviceDriver hailiangPackerStationDeviceDriver; HailiangEngravingMachineDeviceDriver hailiangEngravingMachineDeviceDriver; @@ -711,4 +708,40 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return resultJson; } + @Override + public Map queryDeviceDBValue(String whereJson) { + JSONArray datas = JSONArray.parseArray(whereJson); + log.info("orderStatusUpdate--------------:输入参数" + datas.toString()); + JSONObject map = new JSONObject(); + if (datas.size() > 0){ + for (int i = 0; i < datas.size(); i++) { + JSONObject jsonObject = datas.getJSONObject(i); + String device_code = jsonObject.getString("device_code"); + String dbName = jsonObject.getString("DB"); + Device device = deviceAppService.findDeviceByCode(device_code); + List extra = device.getExtra(); + for (int j = 0; j < extra.size(); j++) { + DeviceExtraManageDto deviceExtraManageDto = extra.get(j); + String deviceCode = deviceExtraManageDto.getDevice_code(); + String extra_name = deviceExtraManageDto.getExtra_name(); + if (deviceCode.equals(device_code) && extra_name.equals(dbName)){ + String extra_code = deviceExtraManageDto.getExtra_code(); + String[] split = extra_code.split("\\."); + extra_code = split[split.length - 1]; + extra_code = extra_code.substring(0,1).toUpperCase()+extra_code.substring(1); + IDriverService driverService = applicationContext.getBean(device.getDeviceDriverDefination().getDriverCode(), IDriverService.class); + Integer dbValue = driverService.getDbValue(device, extra_code); + map.put(dbName,dbValue); + break; + } + } + } + } + JSONObject resultJson = new JSONObject(); + resultJson.put("status", HttpStatus.OK); + resultJson.put("message", "操作成功"); + resultJson.put("data", map); + return resultJson; + } + } diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExtraManageDto.java b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExtraManageDto.java index d9f0b6cb..8589dd72 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExtraManageDto.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/acs/opc/DeviceExtraManageDto.java @@ -11,6 +11,7 @@ public class DeviceExtraManageDto { private String device_driver; private String extra_code; + private String extra_name; private Object extra_value; private String description; diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java deleted file mode 100644 index 6af3945f..00000000 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppender.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.nl.modules.log; - -import ch.qos.logback.classic.spi.ILoggingEvent; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import org.bson.Document; -import org.slf4j.Marker; - -import java.net.InetAddress; -import java.net.UnknownHostException; - -/** - * https://www.cnblogs.com/lzghyh/p/14913230.html - * https://juejin.cn/post/6844903488896385037 - * https://cloud.tencent.com/developer/article/1384035 - * https://www.freesion.com/article/229560377/ - */ -public class MongoDBAppender extends MongoDBAppenderBase { - public MongoDBAppender() { - super("loggingEvents"); - } - - @Override - protected Document toMongoDocument(ILoggingEvent eventObject) { - - final Document doc = new Document(); - doc.append("date", DateUtil.now()); - doc.append("source", source); - try { - doc.append("ip", InetAddress.getLocalHost().getHostAddress()); - } catch (UnknownHostException e) { - e.printStackTrace(); - } - - Marker marker = eventObject.getMarker(); - if (!ObjectUtil.isEmpty(marker)) { - doc.append("marker", marker.getName()); - }else { - doc.append("marker", "default"); - } - - doc.append("level", eventObject.getLevel().toString()); - doc.append("logger", eventObject.getLoggerName()); - doc.append("thread", eventObject.getThreadName()); - doc.append("message", eventObject.getFormattedMessage()); - if (eventObject.getMDCPropertyMap() != null && !eventObject.getMDCPropertyMap().isEmpty()) - doc.append("mdc", eventObject.getMDCPropertyMap()); - // ... - return doc; - } - -} diff --git a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java index 4abc90fe..886a6b31 100644 --- a/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java +++ b/wcs/hd/nladmin-system/src/main/java/org/nl/modules/log/MongoDBAppenderBase.java @@ -2,108 +2,58 @@ package org.nl.modules.log; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.UnsynchronizedAppenderBase; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import com.mongodb.MongoClient; -import com.mongodb.MongoClientOptions; -import com.mongodb.MongoCredential; -import com.mongodb.ServerAddress; +import com.mongodb.*; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import lombok.Data; import org.bson.Document; +import org.nl.utils.SpringContextHolder; import org.slf4j.Marker; +import org.springframework.data.mongodb.core.MongoTemplate; +import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Collections; /** - * MongoDBAppender适配类 + * https://www.cnblogs.com/lzghyh/p/14913230.html + * https://juejin.cn/post/6844903488896385037 + * https://cloud.tencent.com/developer/article/1384035 + * https://www.freesion.com/article/229560377/ + *

+ * https://cloud.tencent.com/developer/article/1384035 */ @Data -public abstract class MongoDBAppenderBase extends UnsynchronizedAppenderBase { - private MongoClient mongo; - MongoDatabase db; - private MongoCollection eventsCollection; - - private String host = "192.168.46.225"; // 地址 - private int port = 27017; // 端口号 - private String dbName = "db"; // 库名 - private String collectionName; // 集合名 - private String username; // 用户名 - private String password; // 密码 - protected String source; - - private int connectionsPerHost = 10; // 空闲线程池中最大链接数 - private int threadsAllowedToBlockForConnectionMultiplier = 5; //一个线程等待链接可用的最大等待毫秒数 - private int maxWaitTime = 1000 * 60 * 2; // 最长等待时间 - private int connectTimeout; - private int socketTimeout; - private int wtimeout; - - MongoDBAppenderBase(String collectionName) { - this.collectionName = collectionName; - } +public class MongoDBAppenderBase extends UnsynchronizedAppenderBase { @Override - public void start() { - try { - connectToMongoDB(); - super.start(); - } catch (UnknownHostException e) { - addError("Error connecting to MongoDB server: " + host + ":" + port, - e); + protected void append(ILoggingEvent eventObject) { + + MongoTemplate mongoTemplate = SpringContextHolder.getBean(MongoTemplate.class); + + if (mongoTemplate != null) { + final BasicDBObject doc = new BasicDBObject(); + Marker marker = eventObject.getMarker(); + if (!ObjectUtil.isEmpty(marker)) { + doc.append("marker", marker.getName()); + } else { + doc.append("marker", "default"); + } + try { + doc.append("ip", InetAddress.getLocalHost().getHostAddress()); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + + doc.append("level", eventObject.getLevel().toString()); + doc.append("logger", eventObject.getLoggerName()); + doc.append("thread", eventObject.getThreadName()); + doc.append("message", eventObject.getFormattedMessage()); + mongoTemplate.insert(doc, "log"); } } - private void connectToMongoDB() throws UnknownHostException { - // 用户名 数据库 密码 - if (username != null && password != null) { - - MongoCredential credential = MongoCredential.createCredential( - username, dbName, password.toCharArray()); - ServerAddress serverAddress = new ServerAddress(host, port); - mongo = new MongoClient(serverAddress, Collections.singletonList(credential), buildOptions()); - } else { - mongo = new MongoClient(new ServerAddress(host, port), buildOptions()); - } - - db = mongo.getDatabase(dbName); - eventsCollection = db.getCollection(collectionName); - - } - - private MongoClientOptions buildOptions() { - final MongoClientOptions.Builder options = new MongoClientOptions.Builder(); - options.connectionsPerHost(connectionsPerHost); - options.threadsAllowedToBlockForConnectionMultiplier(threadsAllowedToBlockForConnectionMultiplier); - options.maxWaitTime(maxWaitTime); - options.connectTimeout(connectTimeout); - options.socketTimeout(socketTimeout); - options.maxWaitTime(wtimeout); - return options.build(); - } - - protected abstract Document toMongoDocument(E event); - - @Override - protected void append(E eventObject) { - if (eventObject instanceof ILoggingEvent) { - ILoggingEvent evt = (ILoggingEvent) eventObject; - Marker marker = evt.getMarker(); - if (ObjectUtil.isEmpty(marker)) - marker = LogMarkerTypeEnum.getMarker(LogMarkerTypeEnum.DEFAULT); - eventsCollection = db.getCollection(marker.getName()); - - } - - eventsCollection.insertOne(toMongoDocument(eventObject)); - } - - @Override - public void stop() { - if (mongo != null) - mongo.close(); - super.stop(); - } } diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml b/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml index 46f3bc91..da17ef54 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AcsToErp.xml @@ -1,10 +1,7 @@ - - acs_log - acs_to_erp - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml b/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml index 6ba12f1d..c1d195c9 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AcsToWms.xml @@ -1,10 +1,7 @@ - - acs_log - acs_to_wms - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml b/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml index c236d0c3..1edd79ea 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AgvFeedbackServiceImpl.xml @@ -1,10 +1,7 @@ - - acs_log - agv_feedback_servlet - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml b/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml index 3c9d096f..ee95ac94 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AgvLeaveServlet.xml @@ -1,10 +1,7 @@ - - acs_log - agv_leave_servlet - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml b/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml index 31174211..27068485 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/AutoCreateInst.xml @@ -1,10 +1,7 @@ - - acs_log - auto_create_inst - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml b/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml index e908af73..f674ced5 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml @@ -1,10 +1,7 @@ - - acs_log - ndc_socket_connection_autorun - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml b/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml index 565a189d..90846b44 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/QueryAgvTaskStatus.xml @@ -1,10 +1,7 @@ - - acs_log - agv_task_status - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml b/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml index 4dd0141d..3ec70a11 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/QueryXZAgvTaskStatus.xml @@ -1,10 +1,7 @@ - - acs_log - xz_agv_task_status - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml b/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml index 51e95e93..386c33cc 100644 --- a/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml +++ b/wcs/hd/nladmin-system/src/main/resources/log/WmsToAcs.xml @@ -1,10 +1,7 @@ - - acs_log - wms_to_acs - ${CONTEXT_NAME} + info diff --git a/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml b/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml index 307dbb46..4a5a305e 100644 --- a/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml +++ b/wcs/hd/nladmin-system/src/main/resources/logback-spring.xml @@ -57,14 +57,7 @@ https://juejin.cn/post/6844903775631572999 --> - - 192.168.46.225 - 27017 - - acs_log - default - ${CONTEXT_NAME} + info