From 5a979de91624bc3d3d2a37de3acb979336bff2fd Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Tue, 21 Apr 2026 13:12:43 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/service/impl/YieldOrderCraftServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index 577e17be..90ffb1aa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -74,7 +74,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl listByYoId(Long yoId) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(YieldOrderCraft.class) .eq(YieldOrderCraft::getYoId, yoId) - .eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE); + .eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE).orderByAsc(YieldOrderCraft::getProcessNo); List craftList = baseMapper.selectList(queryWrapper); craftList.stream().forEach(item ->{ BsProcessSetEntity processSet = processSetService.getById(item.getPpsId()); From d91d7454be898695f7b9f140c17a58181f4b23ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Mon, 20 Apr 2026 10:28:15 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF.xls=20&&?= =?UTF-8?q?=20=E9=85=B8=E9=9B=BE=E5=A1=94=E5=85=A5=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../QA/安全巡检配置导入模板.xls | Bin 18944 -> 18944 bytes .../Excel/QA/酸雾塔导入模板.xls | Bin 19456 -> 19456 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/安全巡检配置导入模板.xls index cdbb3958df8a13fb893de8605724ab8f5ababc86..3a0a044da13b1940cbcbd68830f8580e2e6ea8ef 100644 GIT binary patch delta 460 zcmZpe!q_l{aYGIZ+XMZ_jA<7p7qPT4EwGsUi=~b+YjP#)dQN5rMuqtLB&F=hj%?wR z1K0#6&tS7^-m9I)LN==rwab>q)U;*l6nVfE8%<&)S z4-SSKrjz&EXmK$Eg;m)Z7z`{nf41>rWMrOfXXiS3x?K$Sb)d2tKv@k2i^($fMk4GC zOh6tZ13M5hG0g<=I42j_PnaCwxnc4Gd;3ieVodCIOc$?Y9dq9->tx9!_?@2zsDqQ? zpd$lAiykoeCM&W?PHu47p!BEc%tS4}KSe-k1_uz~#3!+5{sl%5yFu?FFp4$@x!z&s VHf1mZLQ|k9>tsjI{gVw?H~?v^cR~OF delta 623 zcmZ{iO-NKx6vzMfzW45PX4L1X4bwz54hd=zW12e6o8e^+Ge#&Cf~%$vf-otNzHFfu z5wx;65=v3DYta|J2!e!YB8t~}&uzoy-gD0HeB3|WJ2NL{=ES3M zT`jA{y9=jiLcc6$GxS@Z66a~scxWkzJvfRJIEgd7sZ$-Id6mx3k=k&2YO45q2RjV;@Ga8LW zViD+xK!@RK))BqUmt>$50#U$*2&BqYsRp+Oybpp7G$qs^9)B<0aHpEKTa;{R6h-P; zlNKdDH@I$UB`)65m2ANr;fa7jE7`8rI*4!M3Gd*hm$xP^j_lvH*FLsm=vDdn=;XXi zdkCWjV?EShcZ7BBX=U|R#vQPC3!&3&u0WNXUZ-(JM_RIhL+^6s_P^Zd(;{==c@PPd zcuBlRE#5G-(T7IL=C`G4f?B~>v8OF?4MJbJM=Ppg(~2rqU5m$m|7Iy>+*^`QJ^xb1ZBVNSvEkN*1jv)jue@O!8E WC%O9ypR`Cf(&$1r7Z`LW|N0*bJ(TYN diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls index b89b452f22991814b6a608c4d6dc7f3d78b98821..93fd4f995b299608b44eb7780e05d822f22f5858 100644 GIT binary patch delta 2086 zcmZWqZETZO6h8OuyS3fg_3hXCwrjVJZv9-hZj`aHjh4|d0)z~W0!AE&CK3@7#E1!m zq9&s8hwLFT5(EA~Ow=GaV+bKQ42dxzLi`{m8o>BR(P(2N_<_T7ZwE%W%{k9K=REh^ zbI-l$Tb>ltz*)1fZ${3goofC%E4do&oli_@VvK}6jFTzBV~cfl1f?&RU75#lq~xgtz3TryqJ zGg>9H-s9=w#h#XyYO=dFF=scq;7N&eHOqweyuN++i#zazcMKuFA>3&2hlNLKIQ?lH z2pGbTd}9=U^Q;liHRi1Hh_z(Lca2`0Yh0}&Cf*LnvcF*+g2T*-CJdP+5mq_^M=&pW z*dA!bdm%%#AQM`Li@t=iqL^lDPsj&rC?;AtwolAq-#!t;<))HoLtA)_XvfZQ31h)J zyynlK7&JrzABRgKi4~EONMSGQG%iL;IMC$4=Vm`HHPzx!Q$b|W)Lg=ja2+-^4~Q=0 z19`PRhd0^3JmNsXmqIxb#=ZW2F&Dr3RUDya2d*{uW1Mk8OTXyFww4lpWb46TN@hT3 zivwpl(hn=|dx9-{v>*R4u8j7JLF|c^#1QUlDove>c5Cx3H=*g|F6#`?%+3 zJje71j>K~awa>NKsRiS)Bx4l$M4CH1&Uy}BPUI~vieWt2%RPQAndTm!Nw!(66vwq# z8}k$RA(^!JDTytqVeawq)C1h(nM^azr+iqLPKpdF*{ZcO9%p6;!pWkgm9jXKXvUQ` z9}Y09Q?0p@Uciwqwc<+K0%qqB$w+p$VxNfl&>M@h-J|#?Vv;{s@n!7(Hn~F{>odb* zo>~#^@ZqaWl5b`vvxd3z6<2!e6O!A9wH?EJJF=FO>>WwT>W`#O_YGc}R*HHay^HBczcyQ46$j&P zv53evEsCshbzrB~+lx(uJz_atA6zBOsb2=2V#t&$dA*BlnxWFz=>I;M{!X8z>ODyc>%_FF11uBbv*Hk$;rCNEf>Jh%2$tN4&i(+fWg4y9u%?DMapy)az&o`N_k7xHTkNrRUag zbh7i-ctjzUmz@Q8M+lM+(~zF1^w_TTk_nGIjNi z{zG<6-;@D`Gu0_NOF?vv7-#YNQ$CBX*QW4&va*QZz4_5NC0GNhY|1IZl>6 zEV94*SiCH!uya`ej!`2a4|8MdxxML?H@5PWic$?Xn5Pb15NiJ7M)~PQVRQ)P(Lc1a z0;`J4rp_*1D*F4lV)+#1=wp!wI4lkRO25lWHc5V=)NOH4wy=ZIf}v%L+oi>yMOsW7 sXfti3r&({HZM2D=q%CxhvLEF-p9=O+Cv~&rSbAt4i`4w0xRg)+1!>^V3IG5A delta 1918 zcmZuxZERCj7(S=H>s`y*-gf=C?fNy^-F02Jwp+JRwn;ZSMkdS|F%qJ{en2#$5G6Pa zYDr8${2F^moc@8t7=j86=Z~4`*bfp-G%|uAU?!O{@dHC5eu5vH@401*CY+P^KIeU& z^PcnG_ib-+lov<&*bd1WIW#r;+U{9i%^1sLuk@UuevB%j? zwucNE(;!Ao9n#hZHpFn*bQOEbRfNnc`ppVX$t$p#{BPwUyiz`lR{Tne|&-NGo2Sdr95Cy`;A3D#I|TmPK_b^A=t8U@NKKMfD3dn2)5@#r#zf z%YB%pTI_VHl*eVI7YCe93_3!0IJ0!41veeNw0EO3MbBeSk^h9VPWF^)GE#Y7TL1Rd z3%FQ0fEWA~x~}3_yrgRhtx96PV!0mgFP7<8RWuWtSpeB++*r+m zw0|QG#hQ&)7RHun6E$Kan&8#=DB4O*_?4I_YGY~I8`ICW*Shd*tw#H6uu11NogYiM z@N~UKx!2;ySc2N&sYy^9x@xi%o1pg!!Pe-)jt0%>X7xB;n>X575<@kuyaA_aZzH~} ziBWtCaZTiw)?>CLT~L!ECWHI5Zr-G`B8yM7IJM=5wuxtTZYu6VARgx}dX0qlR9wWh z;;(p~unqSly7>xy?^vRP+9YZz@(xqpZnhF{)_3!EbR{=YvqT-m-Jd7pyc2&UyT^|- zIBon%9B*GGy__{LBs!ik{N92S9ZmF=neDijN5&gFt-LeBsmJs`v9of6!h}=K{?8fi zz!^&%hVJ?X>+>o4jmqK>GFr*6GXuM3d5=5khr2iyXo!=hct1|$gDvzOrfHxl&`49D zL{nfHO@Stw0%e+0d>bz2vndnB81+bjVhR+I0!5@i5h+lHt?OsxyQayOk8}@=Z|HuP zAKogB6jW(%-O)(|3NH=LQDV~zY<{7Hi*K@ow{^CNl#xD`eDWxMX}=H`&lBr8WC|ME zdQ{7NxFiwf=n0{>M9mmD_GsziL@l4*n87(kR#L8H-2vITAulvwwH+*8fh}| u9=nCZSaBacM2E!9qQ5i3M^E2sjP>nuXILW>mew)LnrW4zgU?f4lm7y_8O3=3 From dc5fa3678b06b082ec3ad3a3a65b795dede546b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E4=B9=BE=E7=BF=94?= Date: Mon, 20 Apr 2026 10:29:29 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E9=85=B8=E9=9B=BE=E5=A1=94=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Excel/QA/酸雾塔导入模板.xls | Bin 19456 -> 18944 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/酸雾塔导入模板.xls index 93fd4f995b299608b44eb7780e05d822f22f5858..1b00270a5c35fa508eda22a5f826894a14eae6ac 100644 GIT binary patch delta 209 zcmZpe!Pqc`ae@t_{6^d3jEqW?S(%DO|NZ~}AA}Vd7#Ng+7|h=oSj;$yC5Q9E!v5Oa z3wIb5CYQ1_GrhFj{EKCc8DrMu<<`!ee;BeDIDi^BCL7zNa{OoD0`k6@PF`ta#PrQ# z^IaPeCf0onVhoIvW$Yy@-Z?n*f10@NCBZ8lMur;HlXgwVGe3)tPDUYAZ7(Z rM#h;8OboBMHZck@umD9N0O-K~lNUKG-Q;A$%F?j1sdlr2`vDdJ<90wf delta 533 zcmX|7Jxc>Y5Ph@RNG=8vFA8d-F%m3;nxN$JA)*+xuopp4OF;--P@aaTdPy;jE)@|ZR8(`k}4=FLn8ow+wHc=G498^ zXZJ)rlXYAC%7M2;~kg0k Date: Tue, 21 Apr 2026 13:33:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E9=85=B8=E9=9B=BE=E5=A1=94=E6=8A=A5?= =?UTF-8?q?=E8=AD=A6=E7=AE=A1=E7=90=86-=E6=8A=A5=E8=AD=A6=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20=E6=95=B0=E6=8D=AE=E6=9D=A5=E6=BA=90=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../energy/mapper/EpTowerRecAlarmMapper.java | 40 ++++ .../energy/mapper/EpTowerRecAlarmMapper.xml | 4 + .../energy/mapper/RpParameterSetMapper.java | 40 ++++ .../energy/mapper/RpParameterSetMapper.xml | 4 + .../energy/pojo/entity/BsDosingRecEntity.java | 35 ++++ .../pojo/entity/BsTowerReportEntity.java | 18 +- .../pojo/entity/BsWasteGasRunRecEntity.java | 4 +- .../energy/pojo/entity/EpTowerRecAlarm.java | 76 +++++++ .../energy/pojo/entity/RpParameterSet.java | 194 ++++++++++++++++++ .../energy/service/IBsDosingRecService.java | 3 + .../energy/service/IBsTowerReportService.java | 5 + .../desk/energy/service/IBsTowerService.java | 3 + .../service/IBsWasteGasRunRecService.java | 4 + .../service/IEpTowerRecAlarmService.java | 40 ++++ .../service/IRpParameterSetService.java | 45 ++++ .../service/impl/BsDosingRecServiceImpl.java | 39 +++- .../impl/BsTowerReportServiceImpl.java | 85 +++++++- .../service/impl/BsTowerServiceImpl.java | 90 +++++++- .../impl/BsWasteGasRunRecServiceImpl.java | 96 ++++++++- .../impl/EpTowerRecAlarmServiceImpl.java | 44 ++++ .../impl/RpParameterSetServiceImpl.java | 93 +++++++++ .../desk/energy/util/HttpRequestService.java | 27 ++- .../desk/energy/util/TimeSpan.java | 146 +++++++++++++ 23 files changed, 1119 insertions(+), 16 deletions(-) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java new file mode 100644 index 00000000..bf6ba060 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; + +/** + * 酸雾塔报警记录对照表 Mapper 接口 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface EpTowerRecAlarmMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml new file mode 100644 index 00000000..e9d6b5b5 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/EpTowerRecAlarmMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java new file mode 100644 index 00000000..4a0be341 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; + +/** + * 参数设置表 Mapper 接口 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface RpParameterSetMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml new file mode 100644 index 00000000..c050aa5d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/mapper/RpParameterSetMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java index fc87ce31..03f622b8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java @@ -38,6 +38,8 @@ import org.springblade.core.tool.utils.DateUtil; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serial; +import java.util.HashMap; +import java.util.Map; /** * 废气/废水加药记录表 实体类 @@ -103,4 +105,37 @@ public class BsDosingRecEntity extends BaseEntity { //@Schema(description = "酸雾塔") private Long btId; + + + + /** + * 废气加药 + */ + public static Short DORTYPE_GAS_DOS = 1; + /** + * 废水加药 + */ + public static Short DORTYPE_WATER_DOS = 2; + + public static Map dorTypeMap = new HashMap<>(2); + /** + * 手动新增-默认已处理 + */ + public static Short HANDLE_RESULT_ADD = 1; + /** + * 自动生成-待处理 + */ + public static Short HANDLE_RESULT_WAIT = 2; + /** + * 自动生成-pda处理 + */ + public static Short HANDLE_RESULT_PDA = 3; + + public static Map handleResultMap = new HashMap<>(3); + + static { + handleResultMap.put(HANDLE_RESULT_ADD, "手动新增"); + handleResultMap.put(HANDLE_RESULT_WAIT, "待处理"); + handleResultMap.put(HANDLE_RESULT_PDA, "PDA已处理"); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java index 754c61d6..b45fe700 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsTowerReportEntity.java @@ -60,13 +60,16 @@ public class BsTowerReportEntity extends BaseEntity { /** * 处理状态 */ - @Schema(description = "处理状态") - private String dealStatus; + @Schema(description = "处理状态(是否报警 、、 0否1是)") + private Boolean dealStatus = false; /** * 编码 */ @Schema(description = "编码") private String btCode; + //点位 + @Schema(description = "点位") + private String key; /** * 日期 */ @@ -74,6 +77,17 @@ public class BsTowerReportEntity extends BaseEntity { @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) @Schema(description = "日期") private Date btDate; + + @Schema(name = "开始时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date startTime; + + @Schema(name = "结束时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date endTime; + /** * 错误点 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java index 4fa5ba40..e9991a57 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsWasteGasRunRecEntity.java @@ -73,10 +73,8 @@ public class BsWasteGasRunRecEntity extends BaseEntity { /** * 运行时间 */ - @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) - @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) @Schema(description = "运行时间") - private Date runTime; + private Double runTime; /** * 系统参数 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java new file mode 100644 index 00000000..e906104f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/EpTowerRecAlarm.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 酸雾塔报警记录对照表 实体类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Data +@TableName("EP_TOWER_REC_ALARM") +@Schema(description = "EpTowerRecAlarm对象") +public class EpTowerRecAlarm extends BaseEntity implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编号 + */ + @Schema(description = "编号") + private String code; + + /** + * 点位 + */ + @Schema(description = "点位") + private String key; + + /** + * 错误点 + */ + @Schema(description = "错误点") + private String errorPoint; + + /** + * 消息文本 + */ + @Schema(description = "消息文本") + private String messText; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java new file mode 100644 index 00000000..7aae4e0f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/RpParameterSet.java @@ -0,0 +1,194 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 参数设置表 实体类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Data +@TableName("RP_PARAMETER_SET") +@Schema(description = "RpParameterSet对象") +public class RpParameterSet implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 日期 + */ + @Schema(description = "日期") + private String rpsDate; + + /** + * 时间 + */ + @Schema(description = "时间") + private String rpsTime; + + /** + * NF产水导电率A + */ + @Schema(description = "NF产水导电率A") + private String nfA; + + /** + * NF产水导电率B + */ + @Schema(description = "NF产水导电率B") + private String nfB; + + /** + * NF进水导电率 + */ + @Schema(description = "NF进水导电率") + private String nf; + + /** + * RO1_1_产水导电率A + */ + @Schema(description = "RO1_1_产水导电率A") + private String ro11A; + + /** + * RO1_1_产水导电率B + */ + @Schema(description = "RO1_1_产水导电率B") + private String ro11B; + + /** + * RO1_1_产水导电率C + */ + @Schema(description = "RO1_1_产水导电率C") + private String ro11C; + + /** + * RO1_1_进水导电率 + */ + @Schema(description = "RO1_1_进水导电率") + private String ro11; + + /** + * RO1_1_浓水PH值 + */ + @Schema(description = "RO1_1_浓水PH值") + private String ro11Ph; + + /** + * RO2_1_产水导电 + */ + @Schema(description = "RO2_1_产水导电") + private String ro21; + + /** + * RO2_1_进水导电率 + */ + @Schema(description = "RO2_1_进水导电率") + private String ro21Rate; + + /** + * RO2_2_产水导电率 + */ + @Schema(description = "RO2_2_产水导电率") + private String ro22Rate; + + /** + * RO2_2_进水导电 + */ + @Schema(description = "RO2_2_进水导电") + private String ro22; + + /** + * 电镀镍PH值 + */ + @Schema(description = "电镀镍PH值") + private String electPh; + + /** + * 废液反应池ORP_A + */ + @Schema(description = "废液反应池ORP_A") + private String orpA; + + /** + * 废液反应池ORP_B + */ + @Schema(description = "废液反应池ORP_B") + private String orpB; + + /** + * 废液反应池PH_A + */ + @Schema(description = "废液反应池PH_A") + private String phA; + + /** + * 废液反应池PH_B + */ + @Schema(description = "废液反应池PH_B") + private String phB; + + /** + * 废液反应池温度_A + */ + @Schema(description = "废液反应池温度_A") + private String tempA; + + /** + * 废液反应池温度_B + */ + @Schema(description = "废液反应池温度_B") + private String tempB; + + /** + * 生化溶解氧 + */ + @Schema(description = "生化溶解氧") + private String oxygen; + + /** + * 阴阳床产水PH + */ + @Schema(description = "阴阳床产水PH") + private String ph; + + /** + * 预处理ORP + */ + @Schema(description = "预处理ORP") + private String orp; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java index b9e7150f..491fe160 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsDosingRecService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,6 @@ public interface IBsDosingRecService extends BaseService { */ List exportBsDosingRec(Wrapper queryWrapper); + void towerSosRec(List objList); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java index ecb7c2ce..62246059 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerReportService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,8 @@ public interface IBsTowerReportService extends BaseService */ List exportBsTowerReport(Wrapper queryWrapper); + void setEpTowerRec(List objList); + + + BsTowerReportEntity getTowerReportByTerm(String pid, Short type, Long id); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java index 51a1e492..e1645b82 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsTowerService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,6 @@ public interface IBsTowerService extends BaseService { */ List exportBsTower(Wrapper queryWrapper); + void generateData(List objList); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java index 610e40e2..3beb57c6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IBsWasteGasRunRecService.java @@ -25,6 +25,7 @@ */ package org.springblade.desk.energy.service; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; @@ -59,4 +60,7 @@ public interface IBsWasteGasRunRecService extends BaseService exportBsWasteGasRunRec(Wrapper queryWrapper); + void creatRunData(List objList); + + BsWasteGasRunRecEntity queryMaxDataByCode(String btCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java new file mode 100644 index 00000000..9ffc56fe --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IEpTowerRecAlarmService.java @@ -0,0 +1,40 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service; + + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; + +/** + * 酸雾塔报警记录对照表 服务类 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface IEpTowerRecAlarmService extends BaseService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java new file mode 100644 index 00000000..1a52a089 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/IRpParameterSetService.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; + +import java.util.List; + +/** + * 参数设置表 服务类 + * + * @author BladeX + * @since 2026-04-20 + */ +public interface IRpParameterSetService extends IService { + + void setParameterSet(List objList); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java index 30dc426c..c6b3b692 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsDosingRecServiceImpl.java @@ -25,18 +25,25 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.desk.energy.excel.BsDosingRecExcel; import org.springblade.desk.energy.mapper.BsDosingRecMapper; import org.springblade.desk.energy.pojo.entity.BsDosingRecEntity; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.vo.BsDosingRecVO; import org.springblade.desk.energy.service.IBsDosingRecService; +import org.springblade.desk.energy.service.IBsTowerService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; import java.util.List; +import static org.springblade.desk.energy.pojo.entity.BsDosingRecEntity.HANDLE_RESULT_WAIT; + /** * 废气/废水加药记录表 服务实现类 * @@ -45,7 +52,8 @@ import java.util.List; */ @Service public class BsDosingRecServiceImpl extends BaseServiceImpl implements IBsDosingRecService { - +@Resource + IBsTowerService iBsTowerService; @Override public IPage selectBsDosingRecPage(IPage page, BsDosingRecVO bsDosingRec) { if(StringUtils.isNotEmpty(bsDosingRec.getQueryDosingTime())){ @@ -65,4 +73,33 @@ public class BsDosingRecServiceImpl extends BaseServiceImpl objList) { + List bsTowers = iBsTowerService.list(); + for (BsTowerEntity bsTower : bsTowers) { + BsDosingRecEntity epDos = getOne(Wrappers.lambdaQuery(BsDosingRecEntity.class) + .eq(BsDosingRecEntity::getBtId,bsTower.getId()) + .eq(BsDosingRecEntity::getHandleResult,HANDLE_RESULT_WAIT)); + if (epDos != null) { + removeById(epDos.getId()); + } + for (JSONObject jsonObject : objList) { + if ("false".equals(jsonObject.getString("defaultValue")) || "true".equals(jsonObject.getString("defaultValue"))) { + continue; + } + if (bsTower.getPhPoint() != null && bsTower.getPhPoint().equals(jsonObject.getString("identifierName")) && bsTower.getThreshold().doubleValue() > Double.parseDouble(jsonObject.getString("defaultValue"))) { + BsDosingRecEntity epDosingRec = new BsDosingRecEntity(); + epDosingRec.setDevice(bsTower.getBtName()); + epDosingRec.setDrug(bsTower.getDrugName()); + epDosingRec.setDorType("2"); + epDosingRec.setHandleResult(Long.valueOf(HANDLE_RESULT_WAIT)); + epDosingRec.setBtId(bsTower.getId()); + save(epDosingRec); + } + + } + + } + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java index d365f2c9..4aef1f54 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerReportServiceImpl.java @@ -26,17 +26,29 @@ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.desk.energy.excel.BsTowerReportExcel; import org.springblade.desk.energy.mapper.BsTowerReportMapper; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.entity.BsTowerReportEntity; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; import org.springblade.desk.energy.pojo.vo.BsTowerReportVO; import org.springblade.desk.energy.service.IBsTowerReportService; +import org.springblade.desk.energy.service.IBsTowerService; +import org.springblade.desk.energy.service.IEpTowerRecAlarmService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.Objects; /** * 酸雾塔报警记录表 服务实现类 @@ -46,7 +58,10 @@ import java.util.List; */ @Service public class BsTowerReportServiceImpl extends BaseServiceImpl implements IBsTowerReportService { - + @Resource + IBsTowerService iBsTowerService; + @Resource + IEpTowerRecAlarmService iEpTowerRecAlarmService; @Override public IPage selectBsTowerReportPage(IPage page, BsTowerReportVO bsTowerReport) { if(StringUtils.isNotEmpty(bsTowerReport.getQueryBtDate())){ @@ -66,4 +81,72 @@ public class BsTowerReportServiceImpl extends BaseServiceImpl objList) { + JSONObject jsonListObj = new JSONObject(); + // 拿到所有的值装到一个对象中 + for (JSONObject jsonObject : objList) { + jsonListObj.put(jsonObject.getString("identifierName"), jsonObject.getString("defaultValue")); + } + // 拿出所有的报警记录对照表 + List allEpTowerRecAlarm = iEpTowerRecAlarmService.list(); + + // 创建空的报警记录 + List allAlarmList = new ArrayList<>(); + BsTowerReportEntity epTowerRec; + // + for (String s : jsonListObj.keySet()) { + for (EpTowerRecAlarm epTowerRecAlarm : allEpTowerRecAlarm) { + // 如果当前点位为在报警记录对照表中找到,并且当前点位的值为true + if (s.equals(epTowerRecAlarm.getKey()) && jsonListObj.getString(s) == "true") { + // 添加到报警记录中 + allAlarmList.add(epTowerRecAlarm); + // 查看数据库中是否存在 点位为 s 并且正在报警的数据 + Long num = count(Wrappers.lambdaQuery(BsTowerReportEntity.class) + .eq(BsTowerReportEntity::getKey, s) + .eq(BsTowerReportEntity::getDealStatus, "1")); + // 如果不存在则创建一条新的数据 + if(num != 1) { + epTowerRec = new BsTowerReportEntity(); + epTowerRec.setDealStatus(true); + epTowerRec.setBtCode(epTowerRecAlarm.getCode()); + epTowerRec.setKey(epTowerRecAlarm.getKey()); + epTowerRec.setErrorPoint(epTowerRecAlarm.getErrorPoint()); + epTowerRec.setMessText(epTowerRecAlarm.getMessText()); + epTowerRec.setBtDate(new Date()); + epTowerRec.setStartTime(new Date()); + save(epTowerRec); + } + } + } + }; + // 剩余都是不报警的数据 + allEpTowerRecAlarm.removeAll(allAlarmList); + // 拿出正在报警的数据 + List alarmList = list(Wrappers.lambdaQuery(BsTowerReportEntity.class) + .eq(BsTowerReportEntity::getDealStatus, "1")); + if(alarmList.size()>0) { + for (BsTowerReportEntity towerRec : alarmList) { + for (EpTowerRecAlarm epTowerRecAlarm : allEpTowerRecAlarm) { + // 如果当前报警点位在不报警的数据中,则该点位现在不报警,并且给结束时间 + if (towerRec.getKey().equals(epTowerRecAlarm.getKey())) { + towerRec.setEndTime(new Date()); + towerRec.setDealStatus(false); + save(towerRec); + } + } + } + } + } + + // TODO: 2026/4/21 缺少报表用表 + @Override + public BsTowerReportEntity getTowerReportByTerm(String pid, Short type, Long id) { + //return getOne(Wrappers.lambdaQuery(BsTowerReportEntity.class) + // .eq(BsTowerReportEntity::getKey, pid ) + // .eq(BsTowerReportEntity::get, , )) + return null; + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java index f0cf1f97..1ac8c9d3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsTowerServiceImpl.java @@ -25,15 +25,21 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; +import jakarta.annotation.Resource; import org.springblade.desk.energy.excel.BsTowerExcel; import org.springblade.desk.energy.mapper.BsTowerMapper; import org.springblade.desk.energy.pojo.entity.BsTowerEntity; +import org.springblade.desk.energy.pojo.entity.BsTowerReportEntity; import org.springblade.desk.energy.pojo.vo.BsTowerVO; +import org.springblade.desk.energy.service.IBsTowerReportService; import org.springblade.desk.energy.service.IBsTowerService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.Date; import java.util.List; /** @@ -44,7 +50,8 @@ import java.util.List; */ @Service public class BsTowerServiceImpl extends BaseServiceImpl implements IBsTowerService { - + //@Resource + //IBsTowerReportService epTowerReportService; @Override public IPage selectBsTowerPage(IPage page, BsTowerVO bsTower) { return page.setRecords(baseMapper.selectBsTowerPage(page, bsTower)); @@ -59,5 +66,86 @@ public class BsTowerServiceImpl extends BaseServiceImpl objList) { + List bsTowers = list(); + for (BsTowerEntity bsTower : bsTowers) { + for (JSONObject jsonObject : objList) { + String identifierName = jsonObject.getString("identifierName"); + String defaultValue = jsonObject.getString("defaultValue"); + // 如果当前点位与所配置PH点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getPhPoint()) && "true".equals(defaultValue)) { + queryAlsoSave(identifierName, PH, bsTower); + } else if (identifierName.equals(bsTower.getPhPoint()) && "false".equals(defaultValue)) { + queryAlsoUpdate(identifierName, PH, bsTower); + } + + // 如果当前点位跟所配置风机点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getFanPoint()) && "true".equals(defaultValue)) { + this.queryAlsoSave(identifierName, FAN, bsTower); + } else if (identifierName.equals(bsTower.getFanPoint()) && "false".equals(defaultValue)) { + this.queryAlsoUpdate(identifierName, FAN, bsTower); + } + // 如果当前点位跟所配置循环泵点位一样并且点位对应的值为true + if (identifierName.equals(bsTower.getPumpPoint()) && "true".equals(defaultValue)) { + this.queryAlsoSave(identifierName, PUMP, bsTower); + } else if (identifierName.equals(bsTower.getPumpPoint()) && "false".equals(defaultValue)) { + this.queryAlsoUpdate(identifierName, PUMP, bsTower); + } + + // 酸雾塔运行时间记录 + //if (identifierName.equals(bsTower.getFanRunPoint()) && "true".equals(defaultValue)) { + // // 根据酸雾塔查询酸雾塔运行数据并存储开始运行时间 + // EpTowerRunTime epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getBtId()); + // if (epTowerRunTime == null) { + // EpTowerRunTime newEpTowerRunTime = new EpTowerRunTime(); + // newEpTowerRunTime.setBsTower(bsTower); + // newEpTowerRunTime.setStartTime(new Date()); + // epTowerRunTimeDao.save(newEpTowerRunTime); + // } + //} else if (identifierName.equals(bsTower.getFanRunPoint()) && "false".equals(defaultValue)) { + // // 存储关闭时间 + // EpTowerRunTime epTowerRunTime = epTowerRunTimeDao.getEpTowerRunTimeByBtId(bsTower.getBtId()); + // if (epTowerRunTime != null) { + // epTowerRunTime.setEtrtTime(this.getTimeFun(epTowerRunTime.getStartTime())); + // epTowerRunTime.setEndTime(new Date()); + // epTowerRunTimeDao.update(epTowerRunTime); + // } + //} + } + + } + } + + private void queryAlsoUpdate(String identifierName, Short ph, BsTowerEntity bsTower) { + + } + + private void queryAlsoSave(String pid, Short type, BsTowerEntity bsTower) { + // 然后根据点位、类型、名称 并且没有结束时间的 去查数据 + //BsTowerReportEntity epTowerReport = epTowerReportService.getTowerReportByTerm(pid, type, bsTower.getId()); + // 如果查到不做任何操作 如果没有查到新增一条数据 + //if (epTowerReport == null) { + // EpTowerReport newEpTowerReport = new EpTowerReport(); + // newEpTowerReport.setBsTower(bsTower); + // newEpTowerReport.setEtrType(type); + // newEpTowerReport.setStartTime(new Date()); + // newEpTowerReport.setKey(pid); + // epTowerReportDao.save(newEpTowerReport); + //} + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java index afc9ba3b..70b8d751 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/BsWasteGasRunRecServiceImpl.java @@ -25,18 +25,28 @@ */ package org.springblade.desk.energy.service.impl; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.desk.energy.excel.BsWasteGasRunRecExcel; import org.springblade.desk.energy.mapper.BsWasteGasRunRecMapper; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; import org.springblade.desk.energy.pojo.entity.BsWasteGasRunRecEntity; import org.springblade.desk.energy.pojo.vo.BsWasteGasRunRecVO; +import org.springblade.desk.energy.service.IBsTowerService; import org.springblade.desk.energy.service.IBsWasteGasRunRecService; import org.springframework.stereotype.Service; -import java.util.List; +import java.text.NumberFormat; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +import static org.springblade.desk.energy.util.TimeSpan.dateDiff; /** * 废气运行记录表 服务实现类 @@ -46,6 +56,8 @@ import java.util.List; */ @Service public class BsWasteGasRunRecServiceImpl extends BaseServiceImpl implements IBsWasteGasRunRecService { + @Resource + IBsTowerService iBsTowerService; @Override public IPage selectBsWasteGasRunRecPage(IPage page, BsWasteGasRunRecVO bsWasteGasRunRec) { @@ -70,4 +82,86 @@ public class BsWasteGasRunRecServiceImpl extends BaseServiceImpl objList) { + List bsTowers = iBsTowerService.list(); + Map bsTowersMap = bsTowers + .stream() + .filter(bsTower -> StringUtils.isNotBlank(bsTower.getFanRunPoint())) + .collect(Collectors.toMap(BsTowerEntity::getFanRunPoint, + Function.identity(), + (oldValue, newValue) -> newValue)); + + if (bsTowersMap.size() == 0) { + return; + } + + Random rand = new Random(); + BsWasteGasRunRecEntity epWasteGasRunRec; + for (JSONObject jsonObject : objList) { + String name = jsonObject.getString("identifierName"); + BsTowerEntity bsTower = bsTowersMap.get(name); + + // 如果数据存在,并且维护得编码不是六位 + if (bsTower != null && bsTower.getId() != null && bsTower.getBtCode().length() != 6) { + Boolean value = jsonObject.getBoolean("defaultValue"); + // 查询最新得一条数据 + epWasteGasRunRec = queryMaxDataByCode(bsTower.getBtCode()); + // 如果存在 + if (epWasteGasRunRec != null && epWasteGasRunRec.getId() != null) { + // 如果当前点位值为true, + if (value) { + // 如果有结束时间,说明已经开关过一次,并且此次是再次开启,如果没有不做任何处理 + if (epWasteGasRunRec.getEndTime() != null) { + // 获取运行时间 + epWasteGasRunRec = new BsWasteGasRunRecEntity(); + epWasteGasRunRec.setDeviceNum(bsTower.getBtCode()); + epWasteGasRunRec.setStartTime(new Date()); + epWasteGasRunRec.setSysData(String.valueOf(Double.valueOf(rand.nextInt(300) + 800) / 100)); + save(epWasteGasRunRec); + } + } else { + // 如果没有结束时间,说明开过之后一直运行到现在,要给上结束时间 + if (epWasteGasRunRec.getEndTime() == null) { + // 获取运行时间 + String s = formatDouble(dateDiff(epWasteGasRunRec.getStartTime(), new Date()).getTotalHours(), 2, 0, false); + epWasteGasRunRec.setRunTime(Double.valueOf(s)); + epWasteGasRunRec.setEndTime(new Date()); + updateById(epWasteGasRunRec); + } + } + } else { + // 没有运行记录,创建一条 + epWasteGasRunRec = new BsWasteGasRunRecEntity(); + epWasteGasRunRec.setDeviceNum(bsTower.getBtCode()); + epWasteGasRunRec.setStartTime(new Date()); + epWasteGasRunRec.setSysData(String.valueOf((rand.nextInt(300) + 800) / 100)); + save(epWasteGasRunRec); + } + } + } + + } + public static String formatDouble(double n, int maxDigits, int minDigits, boolean useGrouping) { + if (maxDigits > 10) { + maxDigits = 10; + } + + if (minDigits < 0) { + minDigits = 0; + } + + NumberFormat nf = NumberFormat.getInstance(); + nf.setMaximumFractionDigits(maxDigits); + nf.setMinimumFractionDigits(minDigits); + nf.setGroupingUsed(useGrouping); + return nf.format(n); + } + + @Override + public BsWasteGasRunRecEntity queryMaxDataByCode(String btCode) { + return getOne(Wrappers.lambdaQuery(BsWasteGasRunRecEntity.class) + .eq(BsWasteGasRunRecEntity::getDeviceNum, btCode),false); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java new file mode 100644 index 00000000..7001a917 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/EpTowerRecAlarmServiceImpl.java @@ -0,0 +1,44 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service.impl; + + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.energy.mapper.EpTowerRecAlarmMapper; +import org.springblade.desk.energy.pojo.entity.EpTowerRecAlarm; +import org.springblade.desk.energy.service.IEpTowerRecAlarmService; +import org.springframework.stereotype.Service; + +/** + * 酸雾塔报警记录对照表 服务实现类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Service +public class EpTowerRecAlarmServiceImpl extends BaseServiceImpl implements IEpTowerRecAlarmService { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java new file mode 100644 index 00000000..f921fc77 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/service/impl/RpParameterSetServiceImpl.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.desk.energy.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.energy.mapper.RpParameterSetMapper; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; +import org.springblade.desk.energy.service.IRpParameterSetService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 参数设置表 服务实现类 + * + * @author BladeX + * @since 2026-04-20 + */ +@Service +public class RpParameterSetServiceImpl extends ServiceImpl implements IRpParameterSetService { + + @Override + public void setParameterSet(List objList) { + if (objList == null || objList.isEmpty()) { + return; + } + JSONObject obj = new JSONObject(objList.size()); + for (JSONObject jsonObject : objList) { + if (jsonObject == null) { + continue; + } + if (StringUtils.isNotEmpty(jsonObject.getString("identifierName"))) { + obj.put(jsonObject.getString("identifierName"), jsonObject.getString("defaultValue")); + } + } + + RpParameterSet rpParameterSet = new RpParameterSet(); + // 拿出所需的值存储 + rpParameterSet.setRpsDate(obj.getString("$日期")); + rpParameterSet.setRpsTime(obj.getString("$时间")); + rpParameterSet.setNfA(obj.getString("NF产水电导率A")); + rpParameterSet.setNfB(obj.getString("NF产水电导率B")); + rpParameterSet.setNf(obj.getString("NF进水电导率")); + rpParameterSet.setRo11A(obj.getString("RO1_1_产水电导率A")); + rpParameterSet.setRo11B(obj.getString("RO1_1_产水电导率B")); + rpParameterSet.setRo11C(obj.getString("RO1_1_产水电导率C")); + rpParameterSet.setRo11(obj.getString("RO1_1_进水电导率")); + rpParameterSet.setRo11Ph(obj.getString("RO1_浓水PH值")); + rpParameterSet.setRo21(obj.getString("RO2_1_产水电导率")); + rpParameterSet.setRo21Rate(obj.getString("RO2_1_进水电导率")); + rpParameterSet.setRo22Rate(obj.getString("RO2_2_产水电导率")); + rpParameterSet.setRo22(obj.getString("RO2_2_进水电导率")); + rpParameterSet.setElectPh(obj.getString("电镀镍PH值")); + rpParameterSet.setOrpA(obj.getString("废液反应池ORP_A")); + rpParameterSet.setOrpB(obj.getString("废液反应池ORP_B")); + rpParameterSet.setPhA(obj.getString("废液反应池PH_A")); + rpParameterSet.setPhB(obj.getString("废液反应池PH_B")); + rpParameterSet.setTempA(obj.getString("废液反应池温度_A")); + rpParameterSet.setTempB(obj.getString("废液反应池温度_B")); + rpParameterSet.setOxygen(obj.getString("生化溶解氧")); + rpParameterSet.setPh(obj.getString("阴阳床产水PH")); + rpParameterSet.setOrp(obj.getString("预处理ORP")); + + save(rpParameterSet); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java index 2a238b7f..0d64fc33 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/HttpRequestService.java @@ -4,11 +4,16 @@ import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springblade.desk.energy.pojo.entity.BsTowerEntity; +import org.springblade.desk.energy.pojo.entity.RpParameterSet; +import org.springblade.desk.energy.service.*; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; import java.util.List; @Service @@ -17,9 +22,17 @@ public class HttpRequestService { private static final Logger log = LoggerFactory.getLogger(HttpRequestService.class); - // private final RestTemplate httpClientTemplate; + private final RestTemplate httpClientTemplate; + private final IBsTowerReportService epTowerRecService; + private final IBsWasteGasRunRecService epWasteGasRunRecService; + private final IRpParameterSetService rpParameterSetServer; + private final IBsDosingRecService epDosingRecService; + private final IBsTowerService bsTowerService; + @Value("${request.iotNew.url}") + private String iotNewUrl; + /** @@ -39,7 +52,7 @@ public class HttpRequestService { JSONObject result = null; HttpEntity entity = new HttpEntity<>(object, headers); - ResponseEntity responseEntity= null;//httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/getDataByIotCode", entity, JSONObject.class); + ResponseEntity responseEntity= httpClientTemplate.postForEntity(iotNewUrl + "/deviceForZhgd/getDataByIotCode", entity, JSONObject.class); result = responseEntity.getBody(); if (result != null && result.getInteger("code").equals(200)) { JSONObject object1 = result.getJSONObject("data"); @@ -49,18 +62,18 @@ public class HttpRequestService { if (flag) { if (str.equals("rpAcidMistTower")) { // 酸雾塔报警记录 - // epTowerRecService.setEpTowerRec(objList); + epTowerRecService.setEpTowerRec(objList); // 废气运行记录 - // epWasteGasRunRecService.creatRunData(objList); + epWasteGasRunRecService.creatRunData(objList); } else if (str.equals("rpParameterSet")) { // 参数设置 - // rpParameterSetServer.setParameterSet(objList); + rpParameterSetServer.setParameterSet(objList); } else if (str.equals("towerSosRec")) { // 生产酸雾塔报警任务 - // epDosingRecService.towerSosRec(objList); + epDosingRecService.towerSosRec(objList); // 生成报警数据用于报表展示 - // bsTowerService.generateData(objList); + bsTowerService.generateData(objList); } } else { return objList; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java new file mode 100644 index 00000000..6bccc681 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/TimeSpan.java @@ -0,0 +1,146 @@ +package org.springblade.desk.energy.util;/** + * @date : 2026/4/21 10:02 + */ + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件名称 + * @module 归属项目 + * @author *** + * @date 2025/11/26 10:27 + */ +public class TimeSpan implements Serializable { + private static final long serialVersionUID = 807778275482047920L; + private static final long MILLISECONDS_OF_DAY = 86400000L; + private static final long MILLISECONDS_OF_HOUR = 3600000L; + private static final long MILLISECONDS_OF_MINUTE = 60000L; + private static final long MILLISECONDS_OF_SECOND = 1000L; + private long totalMilliseconds; + private int days; + private int hours; + private int minutes; + private int seconds; + private int milliseconds; + + public static TimeSpan days(int day) { + return new TimeSpan((long)day * 86400000L); + } + + public static TimeSpan hours(int hour) { + return new TimeSpan((long)hour * 3600000L); + } + + public static TimeSpan minutes(int minute) { + return new TimeSpan((long)minute * 60000L); + } + + public TimeSpan(Date sd, Date ed) { + this(ed.getTime() - sd.getTime()); + } + + public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds) { + this((long)days * 86400000L + (long)hours * 3600000L + (long)minutes * 60000L + (long)seconds * 1000L + (long)milliseconds); + } + + public TimeSpan(long mscs) { + this.totalMilliseconds = 0L; + this.days = 0; + this.hours = 0; + this.minutes = 0; + this.seconds = 0; + this.milliseconds = 0; + this.totalMilliseconds = mscs; + boolean isNav = this.totalMilliseconds < 0L; + long millBanlance = Math.abs(this.totalMilliseconds); + this.days = (int)(millBanlance / 86400000L); + millBanlance -= 86400000L * (long)this.days; + if (isNav) { + this.days = 0 - this.days; + } + + if (millBanlance > 0L) { + this.hours = (int)(millBanlance / 3600000L); + millBanlance -= 3600000L * (long)this.hours; + if (isNav) { + this.hours = 0 - this.hours; + } + + if (millBanlance > 0L) { + this.minutes = (int)(millBanlance / 60000L); + millBanlance -= 60000L * (long)this.minutes; + if (isNav) { + this.minutes = 0 - this.minutes; + } + + if (millBanlance > 0L) { + this.seconds = (int)(millBanlance / 1000L); + millBanlance -= 1000L * (long)this.seconds; + if (isNav) { + this.seconds = 0 - this.seconds; + } + + if (millBanlance > 0L) { + this.milliseconds = (int)millBanlance; + if (isNav) { + this.milliseconds = 0 - this.milliseconds; + } + + } + } + } + } + } + + public int getDays() { + return this.days; + } + + public int getHours() { + return this.hours; + } + + public int getMinutes() { + return this.minutes; + } + + public int getSeconds() { + return this.seconds; + } + + public int getMilliseconds() { + return this.milliseconds; + } + + public long getTotalMilliseconds() { + return this.totalMilliseconds; + } + + public double getTotalSeconds() { + return 1.0D * (double)this.totalMilliseconds / 1000.0D; + } + + public double getTotalMinutes() { + return 1.0D * (double)this.totalMilliseconds / 60000.0D; + } + + public double getTotalHours() { + return 1.0D * (double)this.totalMilliseconds / 3600000.0D; + } + + public double getTotalDays() { + return 1.0D * (double)this.totalMilliseconds / 8.64E7D; + } + + + public static final TimeSpan dateDiff(Date date1, Date date2) { + long diff = 0L; + if (date1 != null && date2 != null) { + diff = date2.getTime() - date1.getTime(); + } + + return new TimeSpan(diff); + } + +} From ee9d487a7b64f2f2dfe462cdb6e0912fc8e11585 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Tue, 21 Apr 2026 15:40:12 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BF=AE=E6=94=B9-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/service/IYieldOrderCraftService.java | 2 +- .../order/service/impl/YieldOrderCraftServiceImpl.java | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java index 994e8a26..1fbf812d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java @@ -49,5 +49,5 @@ public interface IYieldOrderCraftService extends BaseService { * @param rxlSpace 需要特殊分派,true:需要, false:不需要,null:不需要 * @throws BusinessException */ - void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws BusinessException; + void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java index 90ffb1aa..49caacd8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java @@ -93,9 +93,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws BusinessException { + public void automaticDispatch(List yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception { // 组装key为工艺能力的作业计划map - Map> craftAbilityMap = yieldOrderCraftList.stream().collect(Collectors.groupingBy(YieldOrderCraft::getCaId)); + Map> craftAbilityMap = yieldOrderCraftList.stream() + .collect(Collectors.groupingBy(YieldOrderCraft::getCaId,LinkedHashMap::new,Collectors.toList())); //作业计划map工艺能力key集合 Set craftKeys = craftAbilityMap.keySet(); //获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力) @@ -382,7 +383,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl bindWorkCenter(Long workCenterId, Map workCenterMap, Long craftAbilityId, Map> craftAbilityMap, Set craftKeys, - YieldOrder yieldOrder, Boolean factor) throws BusinessException { + YieldOrder yieldOrder, Boolean factor) throws Exception { List orderCrafts = new ArrayList<>(); // 开始循环生产订单中组合的工艺能力key集合, 主工艺能力之前的全部分配到此作业中心 for (Long craftId : craftKeys) { @@ -568,7 +569,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl bindOem(Oem oemCustomer, Long craftAbilityId, Map> craftAbilityMap, Set keys, YieldOrder yieldOrder, Boolean factor) { + List> craftAbilityMap, Set keys, YieldOrder yieldOrder, Boolean factor) throws Exception { List rtnList = new ArrayList<>();