From 78fea4ff31052a7b42265178b7e4689649770f36 Mon Sep 17 00:00:00 2001 From: sige Date: Wed, 24 Apr 2024 19:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E9=85=8D=E7=BD=AE=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.db | Bin 430080 -> 520192 bytes .../com/iflytop/digester/DigestionTaskThread.java | 2 ++ .../deviceinstance/LiquidAdditionInstance.java | 10 +++++----- .../com/iflytop/digester/model/MdbRuntimeLog.java | 9 +++++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app.db b/app.db index 2f5ff1efdc2c85b05e72543959b50685e58487bc..dbc823e51f202a1b6b3cf07c20ca18ecf78d9f41 100644 GIT binary patch delta 70342 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 V%92e>7^N(l2Q8Xgu_=DW{{!s?Qk?(* delta 3175 zcmai$d2|)^702JaH_Myl%>={^kVRe~FZc_yFD;?86~PK9fvA#+KLaZ`s(JlFq?Q>OtwU)G2)~eJY)M{Tkwk zGy>*+uwXD)cL4$Rp8LT}8x5w{pfp%QItDg1Q94GKg*I_pYoDE23GX;X_QyjXW(xS8 z0#k`^dzCKWzkNXFNkAvWYuXB%kCKD3qO>h}w|6Z3qkp-VOstSvw|9-Hkl5N3l@3z5 zH~G2bn@lR+xmIhHD+Z^_>-rGy)BRJabnQZ80WB_+!PGCTPHerREv~)(`f{lc!KLxp zzmhcf(efwG{bqht_3rfYqy32GQv^b~oWyI8F6UkC$4cSxE6G#Rr6@+&H0*-6c)qHLfFjQM_7cO_EVvSFL4o9%MOq>@(mKtHu8(Ot?by`Zp!|@SNZ47#6~)nEBa-!{ZsLz#&Ixi zNN2@(a7EV>7grJGi>uP-f5d8*dXmst8$;@cIH;*rsr7U8rv9cTCZ=8WC<1AT;OJ~1c%90~g zK5joq;dRe|i*=N9TdNNxPW)Gkq6_s`w{MygExn*2L)smlZwOk+e zQ|gAR*j?;u+GnOx=h#N_x6DFzEW@$`GP|=Evxmz|M^nQxxL9DSds@9@Y0~NztjuI; z@Qy|h$<9X@I-Y;ziWHumojiXAU-&(J<&9;J0(5T;!{GTpq=%$atMQo{cz5dzW+?vh zIl2b-oz7I_@x$Tv*Dul|aPz!`T8N(-4%DWXK|fzU1ZP(?gDI@6hV$#}i*SC;9?lec zI`K3Em7I-VTSxaytYqPSCT@G4M)>>-fDVu#zEq+q{CX8L2j5u$XD@?^5AH;G$Z)1d zXn0->9o_L3h4#MfmS4KnhC{QyteHMEJfD%$%Nx#FHSsX}F>U&W}FCjKEb7 zGvi}+ABz715}h#}*7)&sW&vJ4gBgO)z_M{^CR2xNo}-)MW#DPd2G|(e*3*T!{cRMN zj^v4v_|hx%+<06Yiihv1j^Ex}h2!-A^#W*1J4xO_d>2zPH33hNsgY@+rQ9r2|Kf-y zeEN0@R6Lw$Di=mlr!$%FP>*0{G^OQ*!@~27D$Ero2~~U-e}dn@F9ab>NBYb8l5~KQL4&xfl|3z zN$2`x=ZYUnr?_RgHPXiHMTr;cvQ>O3`@Fa0(Z#19BKKhCfOElv>41&CcaZkVPsve>^3$ zw7|5G>$*PD^-x8grJKl8%_wjz&6REcz67+*V(591Vlk;rnvv z_~E??X>|yBrRm@a zd8T0^)iXmij9kUAje8PM4Gq^&Altx)Y<0*P*}m+9N7Zv(8$M}v@cjgo4O=&KSwm6L zlRcz|frC8H2#}-LrlYyGVR+%)-LbVmlO5GUrlq<_mt_-NDiOH!wa~E**EjvU63|uE zAW)%*k(PLrEe|T0(2$*Ngr2Nf(VYnhZ^=+U5BaX+prRf^-Y$4Tt`>!k1Y=WkShl;@>D;B;>o^dPD#MPkt0nD6{G@$^gvDe0?uL9^b7^!h2i7` zgf7WpcYzEg5r(A{p*ymHLde6hEj#oAwJsrLJ2G`Uw2%d*2QqPKK?`)v_cdLOTq_7B zC7>6&P8b>n@*NNI_B7C%uPMmzWXR8ubxRNL==SKipc*Gcs^LfA2Q*>Zc2P%a;&|6 z0L=i&T3~5@(FlCg^lnYa$PP_UF+F73A#}%*t)%7#q@!qZWWi5l=#NW4U9p154`6>= z;7x~Zf$YErQAV(Q&-0UgFg5|b$g*U`0~H1q)ZDUs-5(p%ueKDgpyI!nO+)J%fN;$AzMpOm}iQ0p1|yBdlm zGI)Xj->+erdKMQ)Q28zMDN@e#rnX~d6MS2?w@#9qsci8ky8hY)!>+>rUPa{b$FEa$ znHk}na_tss-}RY3)HRqnN)-V8h%8_8N9w{W0x70b(k~?V7Z=m5z2<+BE2o#zUlIQW D4(pN~ diff --git a/src/main/java/com/iflytop/digester/DigestionTaskThread.java b/src/main/java/com/iflytop/digester/DigestionTaskThread.java index 007773a..9521d24 100644 --- a/src/main/java/com/iflytop/digester/DigestionTaskThread.java +++ b/src/main/java/com/iflytop/digester/DigestionTaskThread.java @@ -5,6 +5,7 @@ import com.iflytop.digester.model.MdbDigestionSolution; import com.iflytop.digester.model.MdbDigestionTaskLog; import com.iflytop.digester.underframework.dao.model.UfMdbNotification; import com.iflytop.digester.underframework.dao.model.UfMdbOption; +import com.iflytop.digester.underframework.dao.model.UfMdbRuntimeVariable; import com.iflytop.digester.underframework.dao.record.UfActiveRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -589,5 +590,6 @@ public class DigestionTaskThread extends Thread { this.taskModel.message = message; this.taskModel.save(); MdbDigestionTaskLog.log(this.taskModel.id, status, message); + UfMdbRuntimeVariable.setString("device.message", String.format("[批次:%s] %s", this.taskModel.batchNo, message)); } } diff --git a/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java b/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java index 8e6167b..430dc1a 100644 --- a/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java +++ b/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java @@ -36,16 +36,16 @@ public class LiquidAdditionInstance { // lock liquid plate public void lockLiquidPlate( String lockName ) { - MdbRuntimeLog.log("LiquidPlateLock", "加液盘锁定等待 : %s", lockName); + MdbRuntimeLog.warn("LiquidPlateLock", "加液盘锁定等待 : %s", lockName); this.liquidPlateLocks.add(lockName); if ( 1 == this.liquidPlateLocks.size() ) { - MdbRuntimeLog.log("LiquidPlateLock", "加液盘锁定成功 : %s", lockName); + MdbRuntimeLog.warn("LiquidPlateLock", "加液盘锁定成功 : %s", lockName); return ; } synchronized ( lockName ) { try { lockName.wait(); - MdbRuntimeLog.log("LiquidPlateLock", "加液盘锁定成功 : %s", lockName); + MdbRuntimeLog.warn("LiquidPlateLock", "加液盘锁定成功 : %s", lockName); } catch (InterruptedException e) { throw new RuntimeException(e); } @@ -54,7 +54,7 @@ public class LiquidAdditionInstance { // unlock liquid plate public void unlockLiquidPlate( String lockName ) { - MdbRuntimeLog.log("LiquidPlateLock", "加液盘锁定解除 : %s", lockName); + MdbRuntimeLog.warn("LiquidPlateLock", "加液盘锁定解除 : %s", lockName); String lock = null; for ( String lockItem : this.liquidPlateLocks ) { if ( lockItem.equals(lockName) ) { @@ -65,7 +65,7 @@ public class LiquidAdditionInstance { if (this.liquidPlateLocks.isEmpty()) { return ; } - Object nextLock = this.liquidPlateLocks.remove(0); + Object nextLock = this.liquidPlateLocks.get(0); synchronized ( nextLock ) { nextLock.notify(); } diff --git a/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java b/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java index 75e5257..89dbbb8 100644 --- a/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java +++ b/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java @@ -25,13 +25,18 @@ public class MdbRuntimeLog extends UfActiveRecord { } // log - public static void log(String type, String content, Object ... args ) { + public static void log(String type, String content, Object ... args) { var log = new MdbRuntimeLog(); log.type = type; log.content = String.format(content, args); log.timestamp = (int)(System.currentTimeMillis() / 1000); log.time = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new java.util.Date()); log.save(); - LOG.info("[{}] {}", type, log.content); + } + + // warn + public static void warn( String type, String content, Object ... args ) { + LOG.warn("[{}] {}", type, String.format(content, args)); + MdbRuntimeLog.log(type, content, args); } }