From 2e8866ba2c1dbbe8aab3bb40f3788a53bf831d6a Mon Sep 17 00:00:00 2001 From: whycxzp <glperry@163.com> Date: 星期五, 14 三月 2025 16:29:11 +0800 Subject: [PATCH] A200设备代码从LithiumBms迁移到本项目 --- src/main/resources/mapper/BattgroupUsrMapper.xml | 10 src/main/java/com/whyc/pojo/db_alarm/AlarmParam.java | 63 src/main/java/com/whyc/service/ActmRealstateService.java | 24 src/main/java/com/whyc/webSocket/DevLineSocket.java | 74 src/main/java/com/whyc/pojo/db_lithium_ram_db/DevA200Testparam.java | 114 + src/main/java/com/whyc/pojo/db_user/BattgroupBaojigroup.java | 38 src/main/java/com/whyc/mapper/BaojigroupMapper.java | 15 src/main/java/com/whyc/pojo/db_lithium_ram_db/ActmRealstate.java | 127 + src/main/java/com/whyc/controller/DevActmTestparamController.java | 68 src/main/java/com/whyc/controller/BatttestdataInfController.java | 62 src/main/java/com/whyc/service/SubTablePageInfoService.java | 290 +++ src/main/resources/mapper/BatttestdataInfMapper.xml | 87 + src/main/java/com/whyc/mapper/DevInfMapper.java | 23 src/main/java/com/whyc/mapper/AlarmParamMapper.java | 6 src/main/java/com/whyc/service/BattgroupUsrService.java | 29 src/main/java/com/whyc/mapper/DevalarmDataMapper.java | 14 src/main/java/com/whyc/controller/BattgroupBaojigroupController.java | 75 src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateChangeevent.java | 57 src/main/resources/mapper/BatttestdataIdMapper.xml | 5 src/main/resources/mapper/BattgroupBaojigroupMapper.xml | 9 src/main/java/com/whyc/pojo/db_alarm/DevalarmDataYear.java | 80 src/main/java/com/whyc/service/DevA200TestparamService.java | 293 +++ src/main/resources/mapper/DevInfMapper.xml | 81 src/main/java/com/whyc/webSocket/DevInfSocket.java | 109 + src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateCfg.java | 48 src/main/java/com/whyc/pojo/db_lithium_ram_db/A200Realstate.java | 113 + src/main/java/com/whyc/pojo/db_user/Baojigroup.java | 47 src/main/java/com/whyc/service/BatttestdataInfService.java | 183 ++ src/main/java/com/whyc/service/BatttestdataIdService.java | 7 src/main/java/com/whyc/mapper/ActmRealstateMapper.java | 6 src/main/java/com/whyc/mapper/BatttestdataIdMapper.java | 6 src/main/java/com/whyc/util/TestparamHttpUtil.java | 77 src/main/java/com/whyc/controller/DevA200TestparamController.java | 81 src/main/resources/mapper/DevalarmDataMapper.xml | 70 src/main/java/com/whyc/mapper/BattRtdataMapper.java | 6 src/main/java/com/whyc/controller/WorkstateChangeeventController.java | 25 src/main/java/com/whyc/service/AlarmParamService.java | 24 src/main/resources/mapper/BaojigroupMapper.xml | 63 src/main/java/com/whyc/controller/DevInfController.java | 83 + src/main/java/com/whyc/pojo/db_user/BattgroupUsr.java | 28 src/main/java/com/whyc/webSocket/DevRtstateSocket.java | 155 + src/main/java/com/whyc/mapper/DevActmTestparamMapper.java | 6 src/main/java/com/whyc/service/ExcelExportService.java | 321 +++ pom.xml | 5 src/main/java/com/whyc/service/UserInfService.java | 9 src/main/java/com/whyc/webSocket/DevStaticSocket.java | 122 + src/main/java/com/whyc/controller/DevalarmDataHisController.java | 51 src/main/java/com/whyc/mapper/BattgroupBaojigroupMapper.java | 11 src/main/java/com/whyc/mapper/A200RealstateMapper.java | 6 src/main/java/com/whyc/service/DevalarmDataService.java | 88 + src/main/java/com/whyc/webSocket/DevAlmPopUp.java | 74 src/main/java/com/whyc/pojo/db_lithium_ram_db/DevActmTestparam.java | 74 src/main/java/com/whyc/webSocket/DevalarmSocket.java | 109 + src/main/java/com/whyc/service/DevActmTestparamService.java | 221 ++ src/main/java/com/whyc/service/WorkstateChangeeventService.java | 46 src/main/java/com/whyc/mapper/DocUserMapper.java | 15 src/main/java/com/whyc/controller/AlarmParamMapperController.java | 26 src/main/java/com/whyc/pojo/db_alarm/DevalarmData.java | 82 src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java | 121 + src/main/java/com/whyc/mapper/BatttestdataInfMapper.java | 22 src/main/java/com/whyc/service/BaojigroupService.java | 85 + src/main/java/com/whyc/service/DevInfService.java | 251 +++ src/main/java/com/whyc/mapper/BattgroupUsrMapper.java | 9 src/main/java/com/whyc/mapper/DevA200TestparamMapper.java | 6 src/main/java/com/whyc/mapper/WorkstateCfgMapper.java | 6 src/main/java/com/whyc/service/BattgroupBaojigroupService.java | 33 src/main/java/com/whyc/service/BattRtdataService.java | 39 src/main/java/com/whyc/pojo/db_lithium_ram_db/BattRtdata.java | 73 src/main/java/com/whyc/pojo/db_lithium_ram_db/DevInf.java | 80 src/main/java/com/whyc/mapper/WorkstateChangeeventMapper.java | 6 src/main/java/com/whyc/service/A200RealstateService.java | 24 src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataInf.java | 133 + 72 files changed, 4,929 insertions(+), 0 deletions(-) diff --git a/pom.xml b/pom.xml index 0324d63..6c1fa63 100644 --- a/pom.xml +++ b/pom.xml @@ -161,6 +161,11 @@ <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi-ooxml</artifactId> + <version>4.1.2</version> + </dependency> <!--澶栭儴寮曞叆-浜鸿劯璇嗗埆sdk--> <dependency> <groupId>org.apache.tomcat.embed</groupId> diff --git a/src/main/java/com/whyc/controller/AlarmParamMapperController.java b/src/main/java/com/whyc/controller/AlarmParamMapperController.java new file mode 100644 index 0000000..4407a5e --- /dev/null +++ b/src/main/java/com/whyc/controller/AlarmParamMapperController.java @@ -0,0 +1,26 @@ +package com.whyc.controller; + +import com.whyc.dto.Response; +import com.whyc.service.AlarmParamService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "鍛婅鍙傛暟绠$悊") +@RequestMapping("almParam") +public class AlarmParamMapperController { + @Autowired + private AlarmParamService service; + + + @ApiOperation(value = "鑾峰彇璁惧鍛婅鍙傛暟") + @GetMapping("getAlmParam") + public Response getAlmParam(@RequestParam Integer devId){ + return service.getAlmParam(devId); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/BattgroupBaojigroupController.java b/src/main/java/com/whyc/controller/BattgroupBaojigroupController.java new file mode 100644 index 0000000..ca8d78b --- /dev/null +++ b/src/main/java/com/whyc/controller/BattgroupBaojigroupController.java @@ -0,0 +1,75 @@ +package com.whyc.controller; + +import com.whyc.dto.BaojiDto; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.BaojigroupService; +import com.whyc.service.BattgroupBaojigroupService; +import com.whyc.service.BattgroupUsrService; +import com.whyc.util.ActionUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "鍖呮満缁勭鐞�") +@RequestMapping("baoji") +public class BattgroupBaojigroupController { + @Autowired + private BattgroupBaojigroupService groupService; + + @Autowired + private BattgroupUsrService usrService; + + @Autowired + private BaojigroupService baojiService; + + + @ApiOperation(value = "娣诲姞鍖呮満缁�") + @GetMapping("addBaoji") + public Response addBaoji(@RequestParam String baojiName){ + return baojiService.addBaoji(baojiName); + } + + @ApiOperation(value = "鍒犻櫎鍖呮満缁勫強浠ヤ笅璁惧鍜岀敤鎴�") + @PostMapping("delBaoji") + public Response delBaoji(@RequestBody List<Integer> baojiIdList){ + return baojiService.delBaoji(baojiIdList); + } + + @ApiOperation(value = "缂栬緫鍖呮満缁�") + @GetMapping("updateBaoji") + public Response updateBaoji(@RequestParam int baojiGroupId,@RequestParam String baojiGroupName){ + return baojiService.updateBaoji(baojiGroupId,baojiGroupName); + } + + @ApiOperation(value = "鏌ヨ鎵�鏈夌殑鍖呮満缁勫強鍖呮満缁勪笅璁惧淇℃伅鍜岀鐞嗕汉") + @PostMapping("getBaojiInfo") + public Response getBaojiInfo(){ + return baojiService.getBaojiInfo(); + } + + @ApiOperation(value = "鍖呮満缁勪笅娣诲姞鍜岀Щ闄よ澶�") + @PostMapping("opreateDevInBaoji") + public Response opreateDevInBaoji(@RequestBody BaojiDto dto){ + return groupService.opreateDevInBaoji(dto); + } + + + @ApiOperation(value = "鍖呮満缁勪笅娣诲姞鍜岀Щ闄ょ敤鎴�") + @PostMapping("opreateUsrInBaoji") + public Response opreateUsrInBaoji(@RequestBody BaojiDto dto){ + return usrService.opreateUsrInBaoji(dto); + } + + @ApiOperation(value = "鏌ヨ鐧诲綍鐢ㄦ埛瀵瑰簲鐨勫寘鏈虹粍") + @GetMapping("getUsrBaoji") + public Response getUsrBaoji(){ + UserInf uinf= ActionUtil.getUser(); + return baojiService.getUsrBaoji(uinf.getUid()); + } + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/BatttestdataInfController.java b/src/main/java/com/whyc/controller/BatttestdataInfController.java new file mode 100644 index 0000000..79aa8f9 --- /dev/null +++ b/src/main/java/com/whyc/controller/BatttestdataInfController.java @@ -0,0 +1,62 @@ +package com.whyc.controller; + +import com.whyc.dto.Response; +import com.whyc.service.BatttestdataInfService; +import com.whyc.service.ExcelExportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.Map; + +@RestController +@Api(tags = "娴嬭瘯绠$悊") +@RequestMapping("tinf") +public class BatttestdataInfController { + @Autowired + private BatttestdataInfService service; + + @Autowired + private ExcelExportService exportService; + + @ApiOperation(value = "娴嬭瘯缁熻鏈勾/鏈湀") + @GetMapping("getDevTinfByYearMonth") + public Map<String, Object> getDevTinfByYearMonth(@RequestParam Integer uid){ + return service.getDevTinfByYearMonth(uid); + } + + @ApiOperation(value = "娴嬭瘯缁熻鏈懆") + @GetMapping("getDevTinfByWeek") + public Map<String, Object> getDevTinfByWeek(@RequestParam Integer uid){ + return service.getDevTinfByWeek(uid); + } + + @ApiOperation(value = "鑾峰彇璁惧鐨勫厖鏀剧數璁板綍") + @GetMapping("getTinfById") + public Response getTinfById(@RequestParam Integer devId){ + return service.getTinfById(devId); + } + + @ApiOperation(value = "鑾峰彇璁惧鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃繃绋�") + @GetMapping("getTdataById") + public Response getTdataById(@RequestParam Integer devId,@RequestParam Integer testRecordCount){ + return service.getTdataById(devId,testRecordCount); + } + + @ApiOperation(value = "瀵煎嚭鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃褰�") + @GetMapping("exportData") + public void exportData(@RequestParam Integer devId, @RequestParam Integer testRecordCount + , HttpServletResponse resp){ + if(devId/100000000==1){ + exportService.exportExcelA200(devId,testRecordCount,resp); + }else{ + exportService.exportExcelActm(devId,testRecordCount,resp); + } + + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/DevA200TestparamController.java b/src/main/java/com/whyc/controller/DevA200TestparamController.java new file mode 100644 index 0000000..f3996f4 --- /dev/null +++ b/src/main/java/com/whyc/controller/DevA200TestparamController.java @@ -0,0 +1,81 @@ +package com.whyc.controller; + +import com.whyc.dto.A200ResDto; +import com.whyc.dto.Response; +import com.whyc.service.DevA200TestparamService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "a200涓�浣撴満鎺у埗鎿嶄綔") +@RequestMapping("a200param") +public class DevA200TestparamController { + @Autowired + private DevA200TestparamService service; + + + @ApiOperation(value = "璇诲彇a200涓�浣撴満鍙傛暟") + @GetMapping("getA200Param") + public Object getA200Param(@RequestParam int devId){ + return service.getA200Param(devId); + } + + @ApiOperation(value = "璁剧疆a200涓�浣撴満鍙傛暟") + @PostMapping("setA200Param") + public Object setA200Param(@RequestBody A200ResDto param){ + return service.setA200Param(param); + } + + @ApiOperation(value = "鎵归噺璁剧疆a200涓�浣撴満鍙傛暟") + @PostMapping("setA200ParamPl") + public Object setA200ParamPl(@RequestBody A200ResDto param){ + return service.setA200ParamPl(param); + } + + /*@ApiOperation(value = "鎵归噺璁剧疆a200涓�浣撴満鍙傛暟(娴嬭瘯澶氱嚎绋�)") + @PostMapping("setA200ParamPl2") + public Object setA200ParamPl2(@RequestBody A200ResDto param){ + return service.setA200ParamPl2(param); + }*/ + + @ApiOperation(value = "鍚姩a200涓�浣撴満鏀剧數/鍏呯數") + @GetMapping("startA200Param") + public Object startA200Param(@RequestParam int devId,@RequestParam int type){ + return service.startA200Param(devId,type); + } + + @ApiOperation(value = "鍋滄a200涓�浣撴満鏀剧數/鍏呯數") + @GetMapping("stopA200Param") + public Object stopA200Param(@RequestParam int devId){ + return service.stopA200Param(devId); + } + + @ApiOperation(value = "鎵归噺鍚姩a200涓�浣撴満") + @PostMapping("startA200ParamPl") + public Response startA200ParamPl(@RequestBody List<Integer> devIds,@RequestParam int type){ + return service.startA200ParamPl(devIds,type); + } + + @ApiOperation(value = "鎵归噺鍋滄a200涓�浣撴満") + @PostMapping("stopA200ParamPl") + public Response stopA200ParamPl(@RequestBody List<Integer> devIds){ + return service.stopA200ParamPl(devIds); + } + + @ApiOperation(value = "鏆傚仠/缁х画鍚姩a200涓�浣撴満") + @GetMapping("pauseA200Param") + public Object pauseA200Param(@RequestParam int devId,@RequestParam int type){ + return service.pauseA200Param(devId,type); + } + + @ApiOperation(value = "鎵归噺鏆傚仠/缁х画鍚姩a200涓�浣撴満") + @PostMapping("pauseA200ParamPl") + public Response pauseA200ParamPl(@RequestBody List<Integer> devIds,@RequestParam int type){ + return service.pauseA200ParamPl(devIds,type); + } + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/DevActmTestparamController.java b/src/main/java/com/whyc/controller/DevActmTestparamController.java new file mode 100644 index 0000000..19d1da6 --- /dev/null +++ b/src/main/java/com/whyc/controller/DevActmTestparamController.java @@ -0,0 +1,68 @@ +package com.whyc.controller; + +import com.whyc.dto.ActmResDto; +import com.whyc.dto.Response; +import com.whyc.service.DevActmTestparamService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@Api(tags = "actm鍧囪 浠帶鍒舵搷浣�") +@RequestMapping("actmparam") +public class DevActmTestparamController { + + @Autowired + private DevActmTestparamService service; + + @ApiOperation(value = "璇诲彇actm涓�浣撴満鍙傛暟") + @GetMapping("getActmParam") + public Object getActmParam(@RequestParam int devId,@RequestParam int index){ + return service.getActmParam(devId,index); + } + + @ApiOperation(value = "璁剧疆actm鍧囪 浠弬鏁�") + @PostMapping("setActmParam") + public Object setActmParam(@RequestBody ActmResDto param){ + return service.setActmParam(param); + } + + @ApiOperation(value = "鎵归噺璁剧疆actm鍧囪 浠弬鏁�") + @PostMapping("setActmParamPl") + public Object setActmParamPl(@RequestBody ActmResDto param){ + return service.setActmParamPl(param); + } + + @ApiOperation(value = "鎵归噺璁剧疆actm鍧囪 浠弬鏁�(澶氱嚎绋�)") + @PostMapping("setActmParamPl2") + public Object setActmParamPl2(@RequestBody ActmResDto param){ + return service.setActmParamPl2(param); + } + @ApiOperation(value = "鍚姩,鏆傚仠,缁х画,鍋滄actm鍧囪 浠�") + @GetMapping("controllerActmParam") + public Object controllerActmParam(@RequestParam int devId,@RequestParam int index,@RequestParam int type){ + return service.controllerActmParam(devId,index,type); + } + + @ApiOperation(value = "鎵归噺鎺у埗actm鍧囪 浠�") + @PostMapping("controllActmParamPl") + public Response controllActmParamPl(@RequestBody List<Integer> devIds,@RequestParam int index,@RequestParam int type){ + return service.controllActmParamPl(devIds,index,type); + } + + @ApiOperation(value = "璁剧疆鐢垫睜缁勬暟涓庣數姹犺妭鏁�") + @PostMapping("setActmBatteryStorageNumber") + public Object setActmBatteryStorageNumber(@RequestBody ActmResDto param){ + return service.setActmBatteryStorageNumber(param); + } + + @ApiOperation(value = "鎵归噺璁捐缃數姹犵粍鏁颁笌鐢垫睜鑺傛暟") + @PostMapping("setActmBatteryStorageNumberPl") + public Object setActmBatteryStorageNumberPl(@RequestBody ActmResDto param){ + return service.setActmBatteryStorageNumberPl(param); + } + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/DevInfController.java b/src/main/java/com/whyc/controller/DevInfController.java new file mode 100644 index 0000000..47d3162 --- /dev/null +++ b/src/main/java/com/whyc/controller/DevInfController.java @@ -0,0 +1,83 @@ +package com.whyc.controller; + +import com.whyc.dto.DevInfDto; +import com.whyc.dto.Response; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import com.whyc.service.DevInfService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +@RestController +@Api(tags = "璁惧") +@RequestMapping("devInf") +public class DevInfController { + @Autowired + private DevInfService service; + + + + @ApiOperation(value = "娣诲姞璁惧") + @PostMapping("addDev") + public Response addDev(@RequestBody DevInf devInf){ + return service.addDev(devInf); + } + + @ApiOperation(value = "鑾峰彇璁惧淇℃伅") + @PostMapping("getAllInf") + public Response getAllInf(@RequestBody DevInfDto devInfDto){ + return service.getAllInf(101, devInfDto); + } + + @ApiOperation(value = "鑾峰彇璁惧淇℃伅(涓嶅垎椤电敤浜庡寘鏈虹粍)") + @GetMapping("getDinf") + public Response getDinf(){ + return service.getDinf(); + } + @ApiOperation(value = "鏍规嵁璁惧id鑾峰彇璁惧淇℃伅") + @GetMapping("getDinfById") + public Response getDinfById(@RequestParam Integer devId){ + return service.getDinfById(devId); + } + + @ApiOperation(value = "鑾峰彇宸︿晶鍒楄〃") + @GetMapping("getDevBytype") + public Response getDevBytype(@RequestParam(required = false) Integer devType){ + return service.getDevBytype(devType); + } + + @ApiOperation(value = "鏂拌幏鍙栧乏渚у垪琛�") + @GetMapping("getLine") + public Response getLine(){ + return service.getDevType(101); + } + + + @ApiOperation(value = "缂栬緫璁惧淇℃伅") + @PostMapping("updateInf") + public Response updateInf(@RequestBody DevInf dinf){ + return service.updateInf(dinf); + } + + @ApiOperation(value = "鍒犻櫎璁惧(鍚屾椂鍒犻櫎瀹炴椂鍜屽寘鏈虹粍淇℃伅)") + @GetMapping("delDinf") + public Response delDinf( Integer devId){ + return service.delDinf(devId); + } + + @ApiOperation(value = "寮哄埗绉婚櫎鎵归噺璁惧") + @PostMapping("cancelContPl") + public Response cancelContPl(@RequestBody List<Integer> devIds){ + return service.cancelContPl(devIds); + } + + @ApiOperation(value = "娴嬭瘯璁惧缁熻") + @GetMapping("getDevStaticByType") + public Map<String,Object> getDevStaticByType(){ + return service.getDevStaticByType(101); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/DevalarmDataHisController.java b/src/main/java/com/whyc/controller/DevalarmDataHisController.java new file mode 100644 index 0000000..49bb05c --- /dev/null +++ b/src/main/java/com/whyc/controller/DevalarmDataHisController.java @@ -0,0 +1,51 @@ +package com.whyc.controller; + +import com.whyc.dto.DalmDto; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.DevalarmDataService; +import com.whyc.util.ActionUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.text.ParseException; + +@RestController +@Api(tags = "鍘嗗彶鍛婅绠$悊") +@RequestMapping("tinf") +public class DevalarmDataHisController { + @Autowired + private DevalarmDataService dataService; + + @ApiOperation(value = "娴嬭瘯瀹炴椂鍛婅") + @PostMapping("getDAlmInf") + public Response getDAlmInf(@RequestParam int uid, @RequestBody DalmDto dto){ + return dataService.getDAlmInf(uid,dto); + } + @ApiOperation(value = "寮圭獥鍛婅") + @GetMapping("getDAlmPopUp") + public Response getDAlmPopUp(){ + UserInf uinf= ActionUtil.getUser(); + return dataService.getDAlmPopUp(uinf.getUid()); + } + + @ApiOperation(value = "鑾峰彇鍘嗗彶鍛婅") + @PostMapping("getDAlmHis") + public Response getDAlmHis( @RequestBody DalmDto dto) throws ParseException { + return dataService.getDAlmHis(dto); + } + + @ApiOperation(value = "纭瀹炴椂鍛婅") + @GetMapping("confiirmAlm") + public Response confiirmAlm(@RequestParam int num){ + return dataService.confiirmAlm(num); + } + + @ApiOperation(value = "鑾峰彇鎵�鏈夌殑鍛婅绫诲瀷") + @GetMapping("getAllAlmName") + public Response getAllAlmName(){ + return dataService.getAllAlmName(); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/controller/WorkstateChangeeventController.java b/src/main/java/com/whyc/controller/WorkstateChangeeventController.java new file mode 100644 index 0000000..f74a409 --- /dev/null +++ b/src/main/java/com/whyc/controller/WorkstateChangeeventController.java @@ -0,0 +1,25 @@ +package com.whyc.controller; + +import com.whyc.dto.Response; +import com.whyc.service.WorkstateChangeeventService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(tags = "璁惧宸ヤ綔鐘舵�佸垏鎹簨浠�") +@RequestMapping("workEvent") +public class WorkstateChangeeventController { + @Autowired + private WorkstateChangeeventService service; + + @ApiOperation(value = "璇诲彇璁惧宸ヤ綔鐘舵�佺殑鍒囨崲杩囩▼") + @GetMapping("getWorkEvent") + public Response getWorkEvent(@RequestParam int devId){ + return service.getWorkEvent(devId); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/A200RealstateMapper.java b/src/main/java/com/whyc/mapper/A200RealstateMapper.java new file mode 100644 index 0000000..813234b --- /dev/null +++ b/src/main/java/com/whyc/mapper/A200RealstateMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.A200Realstate; + +public interface A200RealstateMapper extends CustomMapper<A200Realstate>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/ActmRealstateMapper.java b/src/main/java/com/whyc/mapper/ActmRealstateMapper.java new file mode 100644 index 0000000..322d416 --- /dev/null +++ b/src/main/java/com/whyc/mapper/ActmRealstateMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.ActmRealstate; + +public interface ActmRealstateMapper extends CustomMapper<ActmRealstate>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/AlarmParamMapper.java b/src/main/java/com/whyc/mapper/AlarmParamMapper.java new file mode 100644 index 0000000..6bd50a1 --- /dev/null +++ b/src/main/java/com/whyc/mapper/AlarmParamMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_alarm.AlarmParam; + +public interface AlarmParamMapper extends CustomMapper<AlarmParam>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BaojigroupMapper.java b/src/main/java/com/whyc/mapper/BaojigroupMapper.java new file mode 100644 index 0000000..9f11aa8 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BaojigroupMapper.java @@ -0,0 +1,15 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_user.Baojigroup; + +import java.util.List; + +public interface BaojigroupMapper extends CustomMapper<Baojigroup>{ + //鑾峰彇鏈�澶х殑鍖呮満缁勭紪鍙� + Integer getMaxBaojiGroupId(); + + //鏌ヨ鎵�鏈夌殑鍖呮満缁勫強鍖呮満缁勪笅璁惧淇℃伅鍜岀鐞嗕汉 + List<Baojigroup> getBaojiInfo(); + //鏌ヨ鐧诲綍鐢ㄦ埛瀵瑰簲鐨勫寘鏈虹粍 + List<Baojigroup> getUsrBaoji(int uid); +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattRtdataMapper.java b/src/main/java/com/whyc/mapper/BattRtdataMapper.java new file mode 100644 index 0000000..c015a0e --- /dev/null +++ b/src/main/java/com/whyc/mapper/BattRtdataMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.BattRtdata; + +public interface BattRtdataMapper extends CustomMapper<BattRtdata>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattgroupBaojigroupMapper.java b/src/main/java/com/whyc/mapper/BattgroupBaojigroupMapper.java new file mode 100644 index 0000000..92fc425 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BattgroupBaojigroupMapper.java @@ -0,0 +1,11 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_user.BattgroupBaojigroup; + +import java.util.List; + +public interface BattgroupBaojigroupMapper extends CustomMapper<BattgroupBaojigroup>{ + + //鍖呮満缁勪笅绉婚櫎璁惧 + void delDevInBaoji(List<BattgroupBaojigroup> devList); +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BattgroupUsrMapper.java b/src/main/java/com/whyc/mapper/BattgroupUsrMapper.java new file mode 100644 index 0000000..a933f24 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BattgroupUsrMapper.java @@ -0,0 +1,9 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_user.BattgroupUsr; + +import java.util.List; + +public interface BattgroupUsrMapper extends CustomMapper<BattgroupUsr>{ + void delUsrInBaoji(List<BattgroupUsr> usrList); +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BatttestdataIdMapper.java b/src/main/java/com/whyc/mapper/BatttestdataIdMapper.java new file mode 100644 index 0000000..27d5bb5 --- /dev/null +++ b/src/main/java/com/whyc/mapper/BatttestdataIdMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_batt_testdata.BatttestdataId; + +public interface BatttestdataIdMapper extends CustomMapper<BatttestdataId>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/BatttestdataInfMapper.java b/src/main/java/com/whyc/mapper/BatttestdataInfMapper.java new file mode 100644 index 0000000..9fb800c --- /dev/null +++ b/src/main/java/com/whyc/mapper/BatttestdataInfMapper.java @@ -0,0 +1,22 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_batt_testdata.BatttestdataInf; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface BatttestdataInfMapper extends CustomMapper<BatttestdataInf>{ + //鍏呮斁鐢典竴浣撴満娴嬭瘯缁熻 + List<BatttestdataInf> getDevTinf(@Param("uid") int uid); + //鏈勾 + List<BatttestdataInf> getDevTinfByYear(@Param("uid")int userId); + + //鏈湀 + List<BatttestdataInf> getDevTinfByMonth(@Param("uid")int userId); + + //杩戜竴鍛�(mysql涓笉浼氱畻涓婁粖澶�) + List<BatttestdataInf> getDevTinfByWeek(@Param("uid")int userId,@Param("type")int type); + + //鑾峰彇鍏呮斁鐢垫暟鎹� + List<BatttestdataInf> getTinfById( @Param("type")int type, @Param("devId")Integer devId); +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DevA200TestparamMapper.java b/src/main/java/com/whyc/mapper/DevA200TestparamMapper.java new file mode 100644 index 0000000..70e37ae --- /dev/null +++ b/src/main/java/com/whyc/mapper/DevA200TestparamMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.DevA200Testparam; + +public interface DevA200TestparamMapper extends CustomMapper<DevA200Testparam>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DevActmTestparamMapper.java b/src/main/java/com/whyc/mapper/DevActmTestparamMapper.java new file mode 100644 index 0000000..2fb2bf6 --- /dev/null +++ b/src/main/java/com/whyc/mapper/DevActmTestparamMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam; + +public interface DevActmTestparamMapper extends CustomMapper<DevActmTestparam>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DevInfMapper.java b/src/main/java/com/whyc/mapper/DevInfMapper.java new file mode 100644 index 0000000..5440d9a --- /dev/null +++ b/src/main/java/com/whyc/mapper/DevInfMapper.java @@ -0,0 +1,23 @@ +package com.whyc.mapper; + +import com.whyc.dto.DevInfDto; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface DevInfMapper extends CustomMapper<DevInf>{ + //鏌ヨ鍖呮満浜虹鐞嗙殑璁惧id + List<DevInf> getAllInf(@Param("dto") DevInfDto dto); + //鏌ヨ璇ョ被鍨嬫渶澶ц澶囩紪鍙� + Integer getMaxDevId(Integer devType); + //鑾峰彇宸︿晶娉 + List<DevInf> getLine(@Param("uid") Integer uid); + + //鑾峰彇宸︿晶娉 + List<DevInf> getDevType(@Param("uid") Integer uid,@Param("devType") Integer devType); + + //璁惧鍒嗙被鎬绘暟缁熻 + List<DevInf> getDevStaticByType(@Param("uid") Integer userId); + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DevalarmDataMapper.java b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java new file mode 100644 index 0000000..ff280c5 --- /dev/null +++ b/src/main/java/com/whyc/mapper/DevalarmDataMapper.java @@ -0,0 +1,14 @@ +package com.whyc.mapper; + +import com.whyc.dto.DalmDto; +import com.whyc.pojo.db_alarm.DevalarmData; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface DevalarmDataMapper extends CustomMapper<DevalarmData>{ + //鑾峰彇璁惧鍛婅淇℃伅 + List<DevalarmData> getDAlmInf(@Param("dto") DalmDto dto); + //寮圭獥鍛婅 + List<DevalarmData> getDAlmPopUp(@Param("uid") int uid); +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/DocUserMapper.java b/src/main/java/com/whyc/mapper/DocUserMapper.java new file mode 100644 index 0000000..8a7b0fe --- /dev/null +++ b/src/main/java/com/whyc/mapper/DocUserMapper.java @@ -0,0 +1,15 @@ +package com.whyc.mapper; + + +import com.whyc.pojo.db_user.UserInf; + +import java.util.List; + +public interface DocUserMapper extends CustomMapper<UserInf>{ + //鏌ヨ鎵�鏈夌敤鎴蜂俊鎭� + List<UserInf> getAllUser(UserInf userInf); + //鏌ヨ瀵嗙爜 + String selectSnId(String name); + //鏌ヨ鎵�鏈夌敤鎴�(鏉冮檺绠$悊鐢�) + List<UserInf> getAllDocUser(); +} diff --git a/src/main/java/com/whyc/mapper/WorkstateCfgMapper.java b/src/main/java/com/whyc/mapper/WorkstateCfgMapper.java new file mode 100644 index 0000000..9479ed1 --- /dev/null +++ b/src/main/java/com/whyc/mapper/WorkstateCfgMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.WorkstateCfg; + +public interface WorkstateCfgMapper extends CustomMapper<WorkstateCfg>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/mapper/WorkstateChangeeventMapper.java b/src/main/java/com/whyc/mapper/WorkstateChangeeventMapper.java new file mode 100644 index 0000000..d34dc62 --- /dev/null +++ b/src/main/java/com/whyc/mapper/WorkstateChangeeventMapper.java @@ -0,0 +1,6 @@ +package com.whyc.mapper; + +import com.whyc.pojo.db_lithium_ram_db.WorkstateChangeevent; + +public interface WorkstateChangeeventMapper extends CustomMapper<WorkstateChangeevent>{ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/pojo/db_alarm/AlarmParam.java b/src/main/java/com/whyc/pojo/db_alarm/AlarmParam.java new file mode 100644 index 0000000..65e67ed --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_alarm/AlarmParam.java @@ -0,0 +1,63 @@ +package com.whyc.pojo.db_alarm; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * 璁惧鍛婅鍙傛暟琛� + * </p> + * + * @author lxw + * @since 2024-09-02 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_alarm",value ="tb_alarm_param") +@ApiModel(value="AlarmParam瀵硅薄", description="璁惧鍛婅鍙傛暟琛�") +public class AlarmParam implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鍛婅id") + private Integer almId; + + @ApiModelProperty(value = "鍛婅鍚嶇О") + private String almName; + + @ApiModelProperty(value = "涓婇檺鍛婅绛夌骇") + private Integer almHighLevel; + + @ApiModelProperty(value = "涓婇檺鍛婅闃堝��") + private Float almHighCoe; + + @ApiModelProperty(value = "涓婇檺鍛婅浣胯兘") + private Integer almHighEn; + + @ApiModelProperty(value = "涓嬮檺鍛婅绛夌骇") + private Integer almLowLevel; + + @ApiModelProperty(value = "涓嬮檺鍛婅浣胯兘") + private Float almLowCoe; + + @ApiModelProperty(value = "涓嬮檺鍛婅浣胯兘") + private Integer almLowEn; + + +} diff --git a/src/main/java/com/whyc/pojo/db_alarm/DevalarmData.java b/src/main/java/com/whyc/pojo/db_alarm/DevalarmData.java new file mode 100644 index 0000000..3f1b650 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_alarm/DevalarmData.java @@ -0,0 +1,82 @@ +package com.whyc.pojo.db_alarm; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 璁惧瀹炴椂鍛婅璁板綍琛� + * </p> + * + * @author lxw + * @since 2024-09-11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_alarm",value ="tb_devalarm_data") +@ApiModel(value="DevalarmData瀵硅薄", description="璁惧瀹炴椂鍛婅璁板綍琛�") +public class DevalarmData implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private int num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鍛婅ID") + private Integer almId; + + @TableField(exist = false) + private String almName; + + @ApiModelProperty(value = "鍛婅绫诲瀷銆�1-涓婇檺鍛婅 2-涓嬮檺鍛婅銆�") + private Integer almSignalId; + + @ApiModelProperty(value = "鍛婅寮�濮嬫椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date almStarttime; + + @ApiModelProperty(value = "鍛婅鍊�") + private Float almValue; + + @ApiModelProperty(value = "鍛婅鏄惁纭") + private Integer almIsConfirmed; + + @ApiModelProperty(value = "纭鐢ㄦ埛ID") + private Integer confirmedUid; + + @TableField(exist = false) + private String confirmedUname; + + @ApiModelProperty(value = "纭鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date confirmedTime; + + @ApiModelProperty(value = "鍛婅缁撴潫鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date almEndtime; + + @ApiModelProperty(value = "鍛婅璁板綍鐘舵�乕0-瀹炴椂鍛婅 1-鍘嗗彶鍛婅 2-鍙栨秷鍛婅]") + private Integer almClearedType; + + @TableField(exist = false) + private DevInf devInf; + + +} diff --git a/src/main/java/com/whyc/pojo/db_alarm/DevalarmDataYear.java b/src/main/java/com/whyc/pojo/db_alarm/DevalarmDataYear.java new file mode 100644 index 0000000..d0e7333 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_alarm/DevalarmDataYear.java @@ -0,0 +1,80 @@ +package com.whyc.pojo.db_alarm; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 璁惧鍘嗗彶鍛婅璁板綍琛� + * </p> + * + * @author lxw + * @since 2024-09-11 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("tb_devalarm_data_Year") +@ApiModel(value="DevalarmDataYear瀵硅薄", description="璁惧鍘嗗彶鍛婅璁板綍琛�") +public class DevalarmDataYear implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private int num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鍛婅ID") + private Integer almId; + + @TableField(exist = false) + private String almName; + + @ApiModelProperty(value = "鍛婅绫诲瀷銆�1-涓婇檺鍛婅 2-涓嬮檺鍛婅銆�") + private Integer almSignalId; + + @ApiModelProperty(value = "鍛婅寮�濮嬫椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date almStarttime; + + @ApiModelProperty(value = "鍛婅鍊�") + private Float almValue; + + @ApiModelProperty(value = "鍛婅鏄惁纭") + private Integer almIsConfirmed; + + @ApiModelProperty(value = "纭鐢ㄦ埛ID") + private Integer confirmedUid; + + @TableField(exist = false) + private String confirmedUname; + + @ApiModelProperty(value = "纭鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date confirmedTime; + + @ApiModelProperty(value = "鍛婅缁撴潫鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date almEndtime; + + @ApiModelProperty(value = "鍛婅璁板綍鐘舵�乕0-瀹炴椂鍛婅 1-鍘嗗彶鍛婅 2-鍙栨秷鍛婅]") + private Integer almClearedType; + + @TableField(exist = false) + private DevInf devInf; +} diff --git a/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java new file mode 100644 index 0000000..2f1ba38 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataId.java @@ -0,0 +1,121 @@ +package com.whyc.pojo.db_batt_testdata; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * <p> + * 璁惧鐢垫睜鍘嗗彶鏁版嵁璁板綍琛� + * </p> + * + * @author lxw + * @since 2024-09-09 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value="BatttestdataId瀵硅薄", description="璁惧鐢垫睜鍘嗗彶鏁版嵁璁板綍琛�") +public class BatttestdataId implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private int num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鐢垫睜缁勭紪鍙穂0-缁�1 1-缁�2 ... 4-缁�4]") + private Integer battIdx; + + @ApiModelProperty(value = "娴嬭瘯娆℃暟") + private Integer testRecordCount; + + @ApiModelProperty(value = "娴嬭瘯绫诲瀷") + private Integer testType; + + @ApiModelProperty(value = "娴嬭瘯绗旀暟") + private Integer recordNum; + + @ApiModelProperty(value = "娴嬭瘯寮�濮嬫椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date testStarttime; + + @ApiModelProperty(value = "璁板綍鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date recordTime; + + @ApiModelProperty(value = "娴嬭瘯鏃堕暱(绉�)") + private int testTimelong; + + @ApiModelProperty(value = "缁勭鐢靛帇") + private Double groupVol; + + @ApiModelProperty(value = "娴嬭瘯鐢垫祦") + private Double testCurr; + + @ApiModelProperty(value = "娴嬭瘯瀹归噺") + private Double testCap; + + @ApiModelProperty(value = "鍗曚綋缂栧彿") + private Integer monNum; + + @ApiModelProperty(value = "鍗曚綋鐢靛帇") + private Double monVol; + + @ApiModelProperty(value = "鍗曚綋娓╁害") + private Double monTmp; + + @ApiModelProperty(value = "鍗曚綋鐢垫祦") + private Double monCurr; + + @ApiModelProperty(value = "鍗曚綋瀹归噺") + private Double monCap; + + @ApiModelProperty(value = "鍗曚綋鑳介噺") + private Double monWh; + + @ApiModelProperty(value = "鍗曚綋鐘舵��") + private String monState; + + @ApiModelProperty(value = "鏁呴殰淇℃伅") + private String monFault; + + @ApiModelProperty(value = "鏄惁闇�瑕佹祴璇�") + private Integer needTest; + + @TableField(exist = false) + private List<Float> monVols; + + @TableField(exist = false) + private List<Integer> monNums; + + @TableField(exist = false) + private List<Float> monCurrs; + + @TableField(exist = false) + private List<Float> monCaps; + + @TableField(exist = false) + private List<Float> monWhs; + + + @ApiModelProperty(value = "鏈�澶ф俯搴�") + private Float maxTemp; + + @ApiModelProperty(value = "鏈�灏忔俯搴�") + private Float minTemp; + +} diff --git a/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataInf.java b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataInf.java new file mode 100644 index 0000000..6d58b89 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_batt_testdata/BatttestdataInf.java @@ -0,0 +1,133 @@ +package com.whyc.pojo.db_batt_testdata; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 鐢垫睜缁勫巻鍙叉暟鎹�昏〃 + * </p> + * + * @author lxw + * @since 2024-09-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_batt_testdata",value ="tb_batttestdata_inf") +@ApiModel(value="BatttestdataInf瀵硅薄", description="鐢垫睜缁勫巻鍙叉暟鎹�昏〃") +public class BatttestdataInf implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鐢垫睜缁勭紪鍙穂0-缁�1 1-缁�2 ... 4-缁�4]") + private Integer battIdx; + + @ApiModelProperty(value = "娴嬭瘯绫诲瀷") + private Integer testType; + + @ApiModelProperty(value = "娴嬭瘯璁板綍娆℃暟") + private Integer testRecordCount; + + @ApiModelProperty(value = "璁板綍绗旀暟") + private Integer recordNum; + + @ApiModelProperty(value = "娴嬭瘯寮�濮嬫椂闂�") + private Date testStarttime; + + @ApiModelProperty(value = "娴嬭瘯鏃堕暱") + private Integer testTimelong; + + @ApiModelProperty(value = "璁板綍鏃堕棿") + private Date recordTime; + + @ApiModelProperty(value = "鍋滄鍘熷洜") + private Integer testStoptype; + + @ApiModelProperty(value = "缁勭鐢靛帇") + private Float groupVol; + + @ApiModelProperty(value = "娴嬭瘯鐢垫祦") + private Float testCurr; + + @ApiModelProperty(value = "娴嬭瘯瀹归噺") + private Float testCap; + + @ApiModelProperty(value = "鏈�澶у崟浣撶數鍘�") + private Float maxMonvol; + + @ApiModelProperty(value = "鏈�澶у崟浣撶數鍘嬬紪鍙�") + private Integer maxMonvolnum; + + @ApiModelProperty(value = "鏈�灏忓崟浣撶數鍘�") + private Float minMonvol; + + @ApiModelProperty(value = "鏈�灏忓崟浣撶數鍘嬬紪鍙�") + private Integer minMonvolnum; + + + @ApiModelProperty(value = "鍗曚覆涓婇檺") + private Float monVolHigh; + + @ApiModelProperty(value = "鐢垫祦闃堝��") + private Float testcurrLimit; + + @ApiModelProperty(value = "鐢佃姱涓叉暟") + private Integer batteryNumber; + + @ApiModelProperty(value = "鍏呯數闄愬帇") + private Float charVoltage; + + @ApiModelProperty(value = "閲囬泦棰戠巼(绉�)") + private Integer saveInverter; + + @ApiModelProperty(value = "鏈�楂樻俯搴�(鈩�)") + private Float maxTemp; + + @ApiModelProperty(value = "鏈�浣庢俯搴�") + private Float minTemp; + + @ApiModelProperty(value = "缁勭鐢靛帇涓嬮檺") + private Float groupVolLow; + + @ApiModelProperty(value = "PACK/妯$粍鍙�") + private String batteryName; + + @ApiModelProperty(value = "鍗曚覆涓嬮檺") + private Float monVolLow; + + @ApiModelProperty(value = "鐢靛帇闃堝��") + private Float volThreshold; + + @ApiModelProperty(value = "鐢垫睜绫诲瀷[0-閾侀攤 1-涓夊厓閿� 2-閽涢吀閿傜數 3-閿伴吀閿俔") + private Integer battType; + + + @ApiModelProperty(value = "璁惧绫诲瀷") + @TableField(exist = false) + private Integer devType; + + @ApiModelProperty(value = "澶╂暟") + @TableField(exist = false) + private String weekDay; + + @ApiModelProperty(value = "鍋滄鍘熷洜") + private String stopTypeReason; +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/A200Realstate.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/A200Realstate.java new file mode 100644 index 0000000..ce6488d --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/A200Realstate.java @@ -0,0 +1,113 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * A200 璁惧瀹炴椂鐘舵�佽〃 + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_a200_realstate") +@ApiModel(value="A200Realstate瀵硅薄", description="A200 璁惧瀹炴椂鐘舵�佽〃") +public class A200Realstate implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date recordTime; + + @ApiModelProperty(value = "PACK/妯$粍鍙�") + private String batteryName; + + @ApiModelProperty(value = "娴嬭瘯绫诲瀷[1-鏀剧數 2-鍏呯數]") + private Integer testType; + + @ApiModelProperty(value = "鏄惁姝e湪娴嬭瘯") + private Integer isTesting; + + @ApiModelProperty(value = "娴嬭瘯寮�濮嬫椂闂�") + private String startTestTime; + + @ApiModelProperty(value = "娴嬭瘯鏃堕暱(绉�)") + private Integer testDuration; + + @ApiModelProperty(value = "娴嬭瘯缁撴潫鏃堕棿") + private String stopTestTime; + + @ApiModelProperty(value = "鏈�楂樺崟浣撶數鍘嬶紙V锛�") + private Double maxBatteryVoltage; + + @ApiModelProperty(value = "鏈�浣庡崟浣撶數鍘�(V)") + private Double minBatteryVoltage; + + @ApiModelProperty(value = "鏈�楂樺崟浣撶數鍘嬪搴旂數鑺紪鍙�") + private Integer maxBatteryVoltageNumber; + + @ApiModelProperty(value = "鏈�浣庡崟浣撶數鍘嬪搴旂數鑺紪鍙�") + private Integer minBatteryVoltageNumber; + + @ApiModelProperty(value = "鐢佃姱鍘嬪樊锛坢V锛�") + private Double diffBatteryVoltage; + + @ApiModelProperty(value = "缁勭鐢靛帇(V)") + private Double storageVoltage; + + @ApiModelProperty(value = "娴嬭瘯鐢垫祦锛圓锛�") + private Double testCurrent; + + @ApiModelProperty(value = "娴嬭瘯瀹归噺锛圓H锛�") + private Double testCapacity; + + @ApiModelProperty(value = "鏈�灏忔俯搴�") + private Double minBatteryTemperature; + + @ApiModelProperty(value = "鏈�澶ф俯搴�") + private Double maxBatteryTemperature; + + @ApiModelProperty(value = "鏈�澶ф俯搴﹀搴旀俯搴﹀簭鍙�") + private Integer maxBatteryTemperatureNumber; + + @ApiModelProperty(value = "鏈�灏忔俯搴﹀搴旀俯搴﹀簭鍙�") + private Integer minBatteryTemperatureNumber; + + @ApiModelProperty(value = "鍋滄満鍘熷洜") + private String stopReason; + + @ApiModelProperty(value = "鍋滄満鍘熷洜搴忓彿") + private Integer stopReasonNumber; + + @ApiModelProperty(value = "鏁呴殰鐘舵�乕0-鏃犳晠闅� 1-鏈夋晠闅淽") + private Integer faultState; + + @ApiModelProperty(value = "骞冲潎鍗曚綋鐢靛帇/娓╁害") + private Double avgMonVol; + + @ApiModelProperty(value = "鍗曚綋娓╁害骞冲潎鍊�") + private Double avgMonTmp; + + @ApiModelProperty(value = "鏄惁鏆傚仠娴嬭瘯[0-鏈殏鍋� 1-鏆傚仠涓璢") + private Integer testPause; +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/ActmRealstate.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/ActmRealstate.java new file mode 100644 index 0000000..86c8059 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/ActmRealstate.java @@ -0,0 +1,127 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * ACTM 璁惧瀹炴椂鐘舵�佽〃 + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_actm_realstate") +@ApiModel(value="ActmRealstate瀵硅薄", description="ACTM 璁惧瀹炴椂鐘舵�佽〃") +public class ActmRealstate implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "妯$粍搴忓彿 浠�0寮�濮�") + private Integer batteryStorageIndex; + + @ApiModelProperty(value = "妯$粍缂栧彿") + private String moduleCode; + + @ApiModelProperty(value = "宸ヤ綔妯″紡") + private Integer workMode; + + @ApiModelProperty(value = "鐢垫睜绫诲瀷") + private Integer batteryType; + + @ApiModelProperty(value = "鐢佃姱涓叉暟") + private Integer batteryNumber; + + @ApiModelProperty(value = "鍗曚綋鐩爣鐢靛帇") + private Double batteryVoltageThreshold; + + @ApiModelProperty(value = "妯$粍鐩爣鐢靛帇") + private Double storageVoltageThreshold; + + @ApiModelProperty(value = "宸ヤ綔鐢垫祦") + private Double testCurrent; + + @ApiModelProperty(value = "娓╁害浼犳劅鍣ㄦ暟閲�") + private Integer ntcCount; + + @ApiModelProperty(value = "娴嬭瘯璁板綍Id") + private Integer testDataId; + + @ApiModelProperty(value = "鏄惁姝e湪娴嬭瘯") + private Integer isTesting; + + @ApiModelProperty(value = "鏄惁娴嬭瘯鏆傚仠") + private Integer isTestPause; + + @ApiModelProperty(value = "娴嬭瘯寮�濮嬫椂闂�") + private String startTestTime; + + @ApiModelProperty(value = "娴嬭瘯鏃堕暱(绉�)") + private Integer testDuration; + + @ApiModelProperty(value = "娴嬭瘯缁撴潫鏃堕棿") + private String stopTestTime; + + @ApiModelProperty(value = "鐢靛帇Max") + private Double maxBatteryVoltage; + + @ApiModelProperty(value = "鐢靛帇Min") + private Double minBatteryVoltage; + + @ApiModelProperty(value = "骞冲潎鐢靛帇") + private Double avgBatteryVoltage; + + @ApiModelProperty(value = "鐢佃姱鍘嬪樊") + private Double diffBatteryVoltage; + + @ApiModelProperty(value = "妯$粍鎬荤數鍘�") + private Double storageVoltage; + + @ApiModelProperty(value = "娓╁害鍗曚綅") + private String temperatureUnitType; + + @ApiModelProperty(value = "妯$粍鐘舵��") + private String moduleStatus; + + @ApiModelProperty(value = "妯$粍鐘舵�佺被鍨�") + private Integer moduleStatusInt; + + @ApiModelProperty(value = "妯$粍鐘舵�侀鑹�") + private String moduleStatusColor; + + @ApiModelProperty(value = "鏁呴殰淇℃伅") + private String faultInfo; + + @ApiModelProperty(value = "骞冲潎鍗曚綋鐢靛帇/娓╁害") + private Double avgMonVol; + + @ApiModelProperty(value = "鍗曚綋娓╁害骞冲潎鍊�") + private Double avgMonTmp; + + @ApiModelProperty(value = "褰撳墠鎺ュ叆鐢垫睜缁勬暟閲�") + private int batteryCount; + + @ApiModelProperty(value = "鐢垫睜鏁伴噺") + private int batteryMoncount; + + @ApiModelProperty(value = "鍋滄鍘熷洜") + private String stopTypeReason; + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/BattRtdata.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/BattRtdata.java new file mode 100644 index 0000000..6a85f1c --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/BattRtdata.java @@ -0,0 +1,73 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 鐢垫睜缁勫崟浣撳疄鏃剁姸鎬佷俊鎭〃 + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_batt_rtdata") +@ApiModel(value="BattRtdata瀵硅薄", description="鐢垫睜缁勫崟浣撳疄鏃剁姸鎬佷俊鎭〃") +public class BattRtdata implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鐢垫睜缁勭紪鍙穂0-缁�1 1-缁�2 ... 4-缁�4]") + private Integer battIdx; + + @ApiModelProperty(value = "鍗曚綋缂栧彿") + private Integer monNum; + + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date recordTime; + + @ApiModelProperty(value = "鍗曚綋鐢靛帇") + private Double monVol; + + @ApiModelProperty(value = "鍗曚綋娓╁害") + private Double monTmp; + + @ApiModelProperty(value = "鍗曚綋鐢垫祦") + private Double monCurr; + + @ApiModelProperty(value = "鍗曚綋瀹归噺") + private Double monCap; + + @ApiModelProperty(value = "鍗曚綋鑳介噺") + private Double monWh; + + @ApiModelProperty(value = "鍗曚綋鐘舵��") + private String monState; + + @ApiModelProperty(value = "鏁呴殰淇℃伅") + private String monFault; + + @ApiModelProperty(value = "鏄惁闇�瑕佹祴璇�") + private Integer needTest; + + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevA200Testparam.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevA200Testparam.java new file mode 100644 index 0000000..2be1435 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevA200Testparam.java @@ -0,0 +1,114 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * A200娴嬭瘯鍙傛暟琛� + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_dev_a200_testparam") +@ApiModel(value="DevA200Testparam瀵硅薄", description="A200娴嬭瘯鍙傛暟琛�") +public class DevA200Testparam implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鍛戒护") + private Integer opCmd; + + @ApiModelProperty(value = "杩斿洖鍝嶅簲鐮�") + private Integer returnCode; + + @ApiModelProperty(value = "pack/妯$粍鍙�") + private String batteryName; + + @ApiModelProperty(value = "鏍囩О瀹归噺(AH锛�") + private Double nominalCapacity; + + @ApiModelProperty(value = "鐢垫睜绫诲瀷[0-纾烽吀閾侀攤 1-涓夊厓閿� 2-澶吀閿� 4-閿伴吀閿俔") + private Integer batteryType; + + @ApiModelProperty(value = "鐢佃姱涓叉暟") + private Integer batteryNumber; + + @ApiModelProperty(value = "鐢佃姱鍘嬪樊") + private Double diffBatteryVoltage; + + @ApiModelProperty(value = "鏀剧數鐢垫祦") + private Double dischargeCurrent; + + @ApiModelProperty(value = "鏀剧數鐩爣鐢靛帇锛圴锛�") + private Double dischargeVoltage; + + @ApiModelProperty(value = "鏀剧數鏃堕棿(绉�)") + private Integer dischargeTime; + + @ApiModelProperty(value = "棰勬斁瀹归噺锛圓H锛�") + private Double dischargeCapacity; + + @ApiModelProperty(value = "棰勬斁瀹归噺闄愬埗鏄惁寮�鍚�") + private Integer isDischargeCapacityEnable; + + @ApiModelProperty(value = "鍗曚覆涓嬮檺锛圴锛�") + private Double minBatteryVoltage; + + @ApiModelProperty(value = "鍗曚覆涓嬮檺鏄惁寮�鍚�") + private Integer isMinBatteryVoltageEnable; + + @ApiModelProperty(value = "鍏呯數鐩爣鐢靛帇锛圴锛�") + private Double chargeVoltage; + + @ApiModelProperty(value = "鍏呯數淇濇姢鐢靛帇") + private Double chargeProtectVoltage; + + @ApiModelProperty(value = "鍏呯數鐢垫祦锛圓锛�") + private Double chargeCurrent; + + @ApiModelProperty(value = "鍏呯數鍋滄満鐢垫祦锛圓锛�") + private Double chargeStopCurrent; + + @ApiModelProperty(value = "鍏呯數鏃堕棿锛堢锛�") + private Integer chargeTime; + + @ApiModelProperty(value = "鍏呯數瀹归噺") + private Double chargeCapacity; + + @ApiModelProperty(value = "棰勫厖瀹归噺闄愬埗鏄惁寮�鍚�") + private Integer isChargeCapacityEnable; + + @ApiModelProperty(value = "鍗曚覆涓婇檺") + private Double maxBatteryVoltage; + + @ApiModelProperty(value = "鍗曚覆涓婇檺闄愬埗鏄惁寮�鍚�") + private Integer isMaxBatteryVoltageEnable; + + @ApiModelProperty(value = "鍏呯數鍔熺巼锛圞W锛�") + private Double chargePower; + + @ApiModelProperty(value = "鍗曚綋娓╁害淇濇姢") + private Integer batteryTemperatureProtect; + + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevActmTestparam.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevActmTestparam.java new file mode 100644 index 0000000..44641b5 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevActmTestparam.java @@ -0,0 +1,74 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * actm 娴嬭瘯鍙傛暟琛� + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_dev_actm_testparam") +@ApiModel(value="DevActmTestparam瀵硅薄", description="actm 娴嬭瘯鍙傛暟琛�") +public class DevActmTestparam implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + private Integer devId; + + @ApiModelProperty(value = "鎿嶄綔鍛戒护") + private Integer opCmd; + + @ApiModelProperty(value = "妯$粍闇�瑕侊紝浠�0寮�濮�") + private Integer batteryStorageIndex; + + @ApiModelProperty(value = "妯$粍缂栧彿") + private String moduleCode; + + @ApiModelProperty(value = "宸ヤ綔妯″紡[0-鍏呯數 1-鏀剧數 2-鍧囪 ]") + private Integer workMode; + + @ApiModelProperty(value = "鐢垫睜绫诲瀷[0-閾侀攤 1-涓夊厓閿� 2-閽涢吀閿� 3-閿伴吀閿俔") + private Integer batteryType; + + @ApiModelProperty(value = "褰撳墠閰嶇疆鐨勭數鑺暟閲�") + private Integer batteryNumber; + + @ApiModelProperty(value = "褰撳墠閰嶇疆鐨勬俯搴︿紶鎰熷櫒鏁伴噺") + private Integer ntcCount; + + @ApiModelProperty(value = "娴嬭瘯鐢垫睜鍒楄〃[娴嬭瘯鐢垫睜鍒楄〃鏄皢寰呮祴鐢佃姱缂栧彿鐢ㄩ�楀彿鍒嗛殧鐨勫瓧绗︿覆銆備緥濡傦細1,2,4,6 琛ㄧず娴嬭瘯1#銆�2#銆�4#銆�6#鐢佃姱锛屽叾浣欐病鏈夊寘鍚殑鐢佃姱涓嶈繘琛屾祴璇昡") + private String testBatteryArray; + + @ApiModelProperty(value = "鐢靛帇闃堝��") + private Double voltage; + + @ApiModelProperty(value = "宸ヤ綔鐢垫祦") + private Double current; + + @ApiModelProperty(value = "鍙厤缃殑鏈�澶х數鑺暟閲廩鍙]") + private Integer maxBatteryNumber; + + @ApiModelProperty(value = "鍙厤缃殑鏈�澶ф俯搴︿紶鎰熷櫒鏁伴噺[鍙]") + private Integer maxNtcCount; + + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevInf.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevInf.java new file mode 100644 index 0000000..c51f568 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/DevInf.java @@ -0,0 +1,80 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_dev_inf") +@ApiModel(value="DevInf瀵硅薄", description="") +public class DevInf implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "num", type = IdType.AUTO) + private Integer num; + + private Integer devId; + + private String devIp; + + @ApiModelProperty(value = "璁惧绫诲瀷锛�1锛歛200(涓�浣撴満),2锛歛ctm(鍧囪 浠�)") + private Integer devType; + + @ApiModelProperty(value = "璁惧鍨嬪彿") + private String devModel; + + private String devIdcode; + + @ApiModelProperty(value = "璁惧鐘舵�侊紱0:鏂紑锛�1鍦ㄧ嚎") + private int devOnline; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty(value = "璁惧鎵归噺娴嬭瘯鐘舵�乕0-鏈壒閲� 1-鎵归噺涓璢") + private Integer batchState; + + @ApiModelProperty(value = "缁忓害") + private Double longitude; + + @ApiModelProperty(value = "绾害") + private Double latitude; + + @ApiModelProperty(value = "鏄惁闇�瑕侀噸鏂板姞杞芥暟鎹甗0- 涓嶉渶瑕侀噸杞� 1-闇�瑕侀噸杞絔'") + private Integer reloadEn; + + @TableField(exist = false) + private List<Integer> baojiIdList; + + @TableField(exist = false) + @ApiModelProperty(value = "a200瀹炴椂鏁版嵁") + private Object state; + + @TableField(exist = false) + @ApiModelProperty(value = "actm瀹炴椂鏁版嵁") + private Object actmstates; + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateCfg.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateCfg.java new file mode 100644 index 0000000..4c1be11 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateCfg.java @@ -0,0 +1,48 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * 璁惧宸ヤ綔鍒囨崲鎻忚堪閰嶇疆琛� + * </p> + * + * @author lxw + * @since 2024-09-04 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_workstate_cfg") +@ApiModel(value="WorkstateCfg瀵硅薄", description="璁惧宸ヤ綔鍒囨崲鎻忚堪閰嶇疆琛�") +public class WorkstateCfg implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧绫诲瀷[1-A200鍏呮斁鐢典竴浣撴満 2-ACTM鍧囪 浠猐") + private Integer devType; + + @ApiModelProperty(value = "涓婁竴娆″伐浣滅姸鎬�") + private Integer lastWorkState; + + @ApiModelProperty(value = "褰撳墠璁惧宸ヤ綔鐘舵��") + private Integer nowWorkState; + + @ApiModelProperty(value = "浜嬩欢鎻忚堪") + private String eventStr; + + +} diff --git a/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateChangeevent.java b/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateChangeevent.java new file mode 100644 index 0000000..a22a1dd --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_lithium_ram_db/WorkstateChangeevent.java @@ -0,0 +1,57 @@ +package com.whyc.pojo.db_lithium_ram_db; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 璁惧宸ヤ綔鐘舵�佸垏鎹簨浠惰〃 + * </p> + * + * @author lxw + * @since 2024-09-02 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_lithium_ram_db",value ="tb_workstate_changeevent") +@ApiModel(value="WorkstateChangeevent瀵硅薄", description="璁惧宸ヤ綔鐘舵�佸垏鎹簨浠惰〃") +public class WorkstateChangeevent implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "鑷涓婚敭") + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + @ApiModelProperty(value = "璁惧ID") + private Integer devId; + + @ApiModelProperty(value = "鐢垫睜缁勫彿[0-缁�1 1-缁�2....]") + private Integer battIdx; + + @ApiModelProperty(value = "涓婁竴娆″伐浣滅姸鎬�") + private Integer lastWorkState; + + @ApiModelProperty(value = "褰撳墠璁惧宸ヤ綔鐘舵��") + private Integer nowWorkState; + + @ApiModelProperty(value = "璁惧宸ヤ綔鐘舵�佸垏鎹㈡椂闂�") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date recordTime; + + @ApiModelProperty(value = "浜嬩欢鎻忚堪") + @TableField(exist = false) + private String eventStr; +} diff --git a/src/main/java/com/whyc/pojo/db_user/Baojigroup.java b/src/main/java/com/whyc/pojo/db_user/Baojigroup.java new file mode 100644 index 0000000..2fa4d8a --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_user/Baojigroup.java @@ -0,0 +1,47 @@ +package com.whyc.pojo.db_user; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.List; + +/** + * <p> + * + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_user",value ="tb_baojigroup") +@ApiModel(value="Baojigroup瀵硅薄", description="") +public class Baojigroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "num", type = IdType.AUTO) + private Integer num; + + private Integer baojiGroupId; + + private String baojiGroupName; + + @TableField(exist = false) + private List<UserInf> usrList; + + @TableField(exist = false) + private List<DevInf> devList; + + +} diff --git a/src/main/java/com/whyc/pojo/db_user/BattgroupBaojigroup.java b/src/main/java/com/whyc/pojo/db_user/BattgroupBaojigroup.java new file mode 100644 index 0000000..8811ac5 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_user/BattgroupBaojigroup.java @@ -0,0 +1,38 @@ +package com.whyc.pojo.db_user; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * + * </p> + * + * @author lxw + * @since 2024-08-28 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_user",value ="tb_battgroup_baojigroup") +@ApiModel(value="BattgroupBaojigroup瀵硅薄", description="") +public class BattgroupBaojigroup implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + private Integer baojiGroupId; + + private Integer devId; + + +} diff --git a/src/main/java/com/whyc/pojo/db_user/BattgroupUsr.java b/src/main/java/com/whyc/pojo/db_user/BattgroupUsr.java new file mode 100644 index 0000000..d9eaa51 --- /dev/null +++ b/src/main/java/com/whyc/pojo/db_user/BattgroupUsr.java @@ -0,0 +1,28 @@ +package com.whyc.pojo.db_user; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName(schema = "db_user",value ="tb_battgroup_usr") +@ApiModel(value="BattgroupUsr瀵硅薄", description="") +public class BattgroupUsr implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "num", type = IdType.AUTO) + private Long num; + + private Integer baojiGroupId; + + private Integer uid; +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/A200RealstateService.java b/src/main/java/com/whyc/service/A200RealstateService.java new file mode 100644 index 0000000..83c5917 --- /dev/null +++ b/src/main/java/com/whyc/service/A200RealstateService.java @@ -0,0 +1,24 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.A200RealstateMapper; +import com.whyc.pojo.db_lithium_ram_db.A200Realstate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class A200RealstateService { + + @Autowired(required = false) + private A200RealstateMapper mapper; + + //涓�浣撴満A200瀹炴椂鏁版嵁 + public Response getA200State(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + A200Realstate a200state=mapper.selectOne(wrapper); + return new Response().setII(1,a200state!=null,a200state,"涓�浣撴満A200瀹炴椂鏁版嵁"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/ActmRealstateService.java b/src/main/java/com/whyc/service/ActmRealstateService.java new file mode 100644 index 0000000..66c2750 --- /dev/null +++ b/src/main/java/com/whyc/service/ActmRealstateService.java @@ -0,0 +1,24 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.ActmRealstateMapper; +import com.whyc.pojo.db_lithium_ram_db.ActmRealstate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ActmRealstateService { + + @Autowired(required = false) + private ActmRealstateMapper mapper; + //鍧囪 浠狝ctm瀹炴椂鏁版嵁 + public Response getActmState(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + List<ActmRealstate> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鍧囪 浠狝ctm瀹炴椂鏁版嵁"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/AlarmParamService.java b/src/main/java/com/whyc/service/AlarmParamService.java new file mode 100644 index 0000000..d75700b --- /dev/null +++ b/src/main/java/com/whyc/service/AlarmParamService.java @@ -0,0 +1,24 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.AlarmParamMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AlarmParamService { + @Autowired(required = false) + private AlarmParamMapper mapper; + + //鑾峰彇璁惧鍛婅鍙傛暟 + public Response getAlmParam(Integer devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.orderByAsc("num"); + List list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鑾峰彇璁惧鍛婅鍙傛暟"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BaojigroupService.java b/src/main/java/com/whyc/service/BaojigroupService.java new file mode 100644 index 0000000..edfcb0c --- /dev/null +++ b/src/main/java/com/whyc/service/BaojigroupService.java @@ -0,0 +1,85 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.BaojigroupMapper; +import com.whyc.mapper.BattgroupBaojigroupMapper; +import com.whyc.mapper.BattgroupUsrMapper; +import com.whyc.pojo.db_user.Baojigroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class BaojigroupService { + @Autowired(required = false) + private BaojigroupMapper mapper; + + @Autowired(required = false) + private BattgroupBaojigroupMapper groupMapper; + + @Autowired(required = false) + private BattgroupUsrMapper usrMapper; + + //鍖呮満缁勪笅娣诲姞璁惧 + public Response addBaoji(String baojiName) { + Baojigroup baojigroup=new Baojigroup(); + //鑾峰彇鏈�澶х殑鍖呮満缁勭紪鍙� + Integer baojiGroupId=getMaxBaojiGroupId(); + baojigroup.setBaojiGroupId(baojiGroupId); + baojigroup.setBaojiGroupName(baojiName); + int bl=mapper.insert(baojigroup); + return new Response().set(1,bl>0); + } + //鑾峰彇鏈�澶х殑鍖呮満缁勭紪鍙� + private Integer getMaxBaojiGroupId() { + //鏌ヨ璇ョ被鍨嬫渶澶ц澶囩紪鍙� + Integer baojiGroupId=mapper.getMaxBaojiGroupId(); + if(baojiGroupId==null){ + baojiGroupId=1000; + } + return baojiGroupId+1; + } + + //鍒犻櫎鍖呮満缁� + @Transactional + public Response delBaoji(List<Integer> baojiIdList) { + if(baojiIdList!=null){ + for (Integer baojiId:baojiIdList) { + //鍒犻櫎鍖呮満缁� + UpdateWrapper baojiWrapper=new UpdateWrapper(); + baojiWrapper.eq("baoji_group_id",baojiId); + mapper.delete(baojiWrapper); + //鍒犻櫎鍖呮満缁勪笅鏈烘埧 + UpdateWrapper groupWrapper=new UpdateWrapper(); + groupWrapper.eq("baoji_group_id",baojiId); + groupMapper.delete(groupWrapper); + //鍒犻櫎鍖呮満缁勪笅鐢ㄦ埛 + UpdateWrapper usrWrapper=new UpdateWrapper(); + usrWrapper.eq("baoji_group_id",baojiId); + usrMapper.delete(usrWrapper); + } + } + return new Response().set(1,true,"鍒犻櫎鍖呮満缁�"); + } + //缂栬緫鍖呮満缁� + public Response updateBaoji(int baojiGroupId,String baojiGroupName) { + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.set("baoji_group_name",baojiGroupName); + wrapper.eq("baoji_group_id",baojiGroupId); + int flag=mapper.update(null,wrapper); + return new Response().set(1,flag>0); + } + //鏌ヨ鎵�鏈夌殑鍖呮満缁勫強鍖呮満缁勪笅璁惧淇℃伅鍜岀鐞嗕汉 + public Response getBaojiInfo() { + List<Baojigroup> list=mapper.getBaojiInfo(); + return new Response().setII(1,list!=null,list,""); + } + //鏌ヨ鐧诲綍鐢ㄦ埛瀵瑰簲鐨勫寘鏈虹粍 + public Response getUsrBaoji(int uid) { + List<Baojigroup> list=mapper.getUsrBaoji(uid); + return new Response().setII(1,list!=null,list,"鏌ヨ鐧诲綍鐢ㄦ埛瀵瑰簲鐨勫寘鏈虹粍"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattRtdataService.java b/src/main/java/com/whyc/service/BattRtdataService.java new file mode 100644 index 0000000..40df4cd --- /dev/null +++ b/src/main/java/com/whyc/service/BattRtdataService.java @@ -0,0 +1,39 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.BattRtdataMapper; +import com.whyc.pojo.db_lithium_ram_db.BattRtdata; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class BattRtdataService { + + @Autowired(required = false) + private BattRtdataMapper mapper; + + + //鑾峰彇a200鐢垫睜缁勬暟鎹� + public Response getA200RtdataState(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.orderByAsc("batt_idx"); + wrapper.orderByAsc("mon_num"); + List<BattRtdata> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鑾峰彇鐢垫睜缁勬暟鎹�"); + } + + //鑾峰彇actm鐢垫睜缁勬暟鎹� + public Response getActmRtdataState(int devId,Integer index) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.eq("batt_idx",index); + wrapper.orderByAsc("batt_idx"); + wrapper.orderByAsc("mon_num"); + List<BattRtdata> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鑾峰彇鐢垫睜缁勬暟鎹�"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattgroupBaojigroupService.java b/src/main/java/com/whyc/service/BattgroupBaojigroupService.java new file mode 100644 index 0000000..c8c3b18 --- /dev/null +++ b/src/main/java/com/whyc/service/BattgroupBaojigroupService.java @@ -0,0 +1,33 @@ +package com.whyc.service; + +import com.whyc.dto.BaojiDto; +import com.whyc.dto.Response; +import com.whyc.mapper.BattgroupBaojigroupMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class BattgroupBaojigroupService { + @Autowired(required = false) + private BattgroupBaojigroupMapper mapper; + + + + //鍖呮満缁勪笅娣诲姞璁惧 + @Transactional + public Response opreateDevInBaoji(BaojiDto dto) { + if(dto.getAdddevList()!=null&&dto.getAdddevList().size()>0){ + mapper.insertBatchSomeColumn(dto.getAdddevList()); + } + if(dto.getDeldevList()!=null&&dto.getDeldevList().size()>0){ + mapper.delDevInBaoji(dto.getDeldevList()); + } + return new Response().set(1,true); + } + //鍖呮満缁勪笅绉婚櫎璁惧 + /*public Response delDevInBaoji(List<BattgroupBaojigroup> devList) { + mapper.delDevInBaoji(devList); + return new Response().set(1,"绉婚櫎鎴愬姛"); + }*/ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BattgroupUsrService.java b/src/main/java/com/whyc/service/BattgroupUsrService.java new file mode 100644 index 0000000..d92dc06 --- /dev/null +++ b/src/main/java/com/whyc/service/BattgroupUsrService.java @@ -0,0 +1,29 @@ +package com.whyc.service; + +import com.whyc.dto.BaojiDto; +import com.whyc.dto.Response; +import com.whyc.mapper.BattgroupUsrMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class BattgroupUsrService { + @Autowired(required = false) + private BattgroupUsrMapper mapper; + + //鍖呮満缁勪笅娣诲姞鐢ㄦ埛 + public Response opreateUsrInBaoji(BaojiDto dto) { + if(dto.getAddusrList()!=null&&dto.getAddusrList().size()>0){ + mapper.insertBatchSomeColumn(dto.getAddusrList()); + } + if(dto.getDelusrList()!=null&&dto.getDelusrList().size()>0){ + mapper.delUsrInBaoji(dto.getDelusrList()); + } + return new Response().set(1,true); + } + /*//鍖呮満缁勪笅绉婚櫎鐢ㄦ埛 + public Response delUsrInBaoji(List<BattgroupUsr> usrList) { + mapper.delUsrInBaoji(usrList); + return new Response().set(1,"绉婚櫎鎴愬姛"); + }*/ +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BatttestdataIdService.java b/src/main/java/com/whyc/service/BatttestdataIdService.java new file mode 100644 index 0000000..93f1162 --- /dev/null +++ b/src/main/java/com/whyc/service/BatttestdataIdService.java @@ -0,0 +1,7 @@ +package com.whyc.service; + +import org.springframework.stereotype.Service; + +@Service +public class BatttestdataIdService { +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/BatttestdataInfService.java b/src/main/java/com/whyc/service/BatttestdataInfService.java new file mode 100644 index 0000000..4a72dec --- /dev/null +++ b/src/main/java/com/whyc/service/BatttestdataInfService.java @@ -0,0 +1,183 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.BatttestdataIdMapper; +import com.whyc.mapper.BatttestdataInfMapper; +import com.whyc.pojo.db_batt_testdata.BatttestdataId; +import com.whyc.pojo.db_batt_testdata.BatttestdataInf; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class BatttestdataInfService { + + @Autowired(required = false) + private BatttestdataInfMapper mapper; + + @Autowired(required = false) + private BatttestdataIdMapper dataMapper; + + @Autowired(required = false) + private SubTablePageInfoService subService; + + //鍏呮斁鐢典竴浣撴満娴嬭瘯缁熻 + public Map<String, Object> getDevTinfByYearMonth(int userId) { + Map<String,Object> map=new HashMap<>(); + //鏈勾 + List<BatttestdataInf> listYear=mapper.getDevTinfByYear(userId); + + Map<String,Object> a200Map=new HashMap<>(); + Map<String,Object> actmMap=new HashMap<>(); + + Map<Integer,Integer> a200YearMap=new HashMap<>(); + a200YearMap.put(2,0); + a200YearMap.put(3,0); + Map<Integer,Integer> actmYearMap=new HashMap<>(); + actmYearMap.put(2,0); + actmYearMap.put(3,0); + actmYearMap.put(4,0); + //鏈勾 + Map<Integer, List<BatttestdataInf>> typeMapY = listYear.stream().collect(Collectors.groupingBy(BatttestdataInf::getDevType)); + + for (Integer type : typeMapY.keySet()) { + List<BatttestdataInf> list=typeMapY.get(type); + Map<Integer, List<BatttestdataInf>> testMapY = list.stream().collect(Collectors.groupingBy(BatttestdataInf::getTestType)); + for (Integer test : testMapY.keySet()) { + if(type==1){ + a200YearMap.put(test, testMapY.get(test).size()); + } + if(type==2){ + actmYearMap.put(test, testMapY.get(test).size()); + } + + } + } + a200Map.put("a200YearMap",a200YearMap); + actmMap.put("actmYearMap",actmYearMap); + + //鏈湀 + Map<Integer,Integer> a200MonthMap=new HashMap<>(); + a200MonthMap.put(2,0); + a200MonthMap.put(3,0); + Map<Integer,Integer> actmMonthMap=new HashMap<>(); + actmMonthMap.put(2,0); + actmMonthMap.put(3,0); + actmMonthMap.put(4,0); + List<BatttestdataInf> listMonth=mapper.getDevTinfByMonth(userId); + Map<Integer, List<BatttestdataInf>> typeMapM = listMonth.stream().collect(Collectors.groupingBy(BatttestdataInf::getDevType)); + for (Integer type : typeMapM.keySet()) { + List<BatttestdataInf> list=typeMapM.get(type); + Map<Integer, List<BatttestdataInf>> testMapM = list.stream().collect(Collectors.groupingBy(BatttestdataInf::getTestType)); + for (Integer test : testMapM.keySet()) { + if(type==1){ + a200MonthMap.put(test, testMapM.get(test).size()); + } + if(type==2){ + actmMonthMap.put(test, testMapM.get(test).size()); + } + + } + } + a200Map.put("a200MonthMap",a200MonthMap); + actmMap.put("actmMonthMap",actmMonthMap); + + map.put("a200Map",a200Map); + map.put("actmMap",actmMap); + return map; + } + //杩戜竴鍛ㄧ數姹犳祴璇曡秼鍔跨粺璁�(浠庡綋鍓嶆椂闂村紑濮�) + public Map<String, Object> getDevTinfByWeek(int userId) { + Map<String,Object> map=new HashMap<>(); + + Map<String,Object> a200dataMap=new HashMap<>(); + Map<String,Object> actmdataMap=new HashMap<>(); + + Map<Integer,Integer> a200weekDateMap=new HashMap<>(); + a200weekDateMap.put(2,0); + a200weekDateMap.put(3,0); + + Map<Integer,Integer> actmweekDataMap=new HashMap<>(); + actmweekDataMap.put(2,0); + actmweekDataMap.put(3,0); + actmweekDataMap.put(4,0); + + // 褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + for(int i=0;i<7;i++){ + LocalDate resultDate = today.minusDays(i); + a200dataMap.put(resultDate.toString(),a200weekDateMap); + actmdataMap.put(resultDate.toString(),actmweekDataMap); + } + + List<BatttestdataInf> listW1=mapper.getDevTinfByWeek(userId,1); + Map<String, List<BatttestdataInf>> typeMapW1 = listW1.stream().collect(Collectors.groupingBy(BatttestdataInf::getWeekDay)); + for (String day : typeMapW1.keySet()) { + List<BatttestdataInf> list1=typeMapW1.get(day); + Map<Integer, List<BatttestdataInf>> testMapM1 = list1.stream().collect(Collectors.groupingBy(BatttestdataInf::getTestType)); + //杩戜竴鍛╝200 + Map<Integer,Integer> a200weekMap=new HashMap<>(); + a200weekMap.put(2,0); + a200weekMap.put(3,0); + for (Integer test : testMapM1.keySet()) { + a200weekMap.put(test, testMapM1.get(test).size()); + } + a200dataMap.put(day,a200weekMap); + } + + List<BatttestdataInf> listW2=mapper.getDevTinfByWeek(userId,2); + Map<String, List<BatttestdataInf>> typeMapW2= listW2.stream().collect(Collectors.groupingBy(BatttestdataInf::getWeekDay)); + for (String day : typeMapW2.keySet()) { + List<BatttestdataInf> list2=typeMapW2.get(day); + Map<Integer, List<BatttestdataInf>> testMapM2 = list2.stream().collect(Collectors.groupingBy(BatttestdataInf::getTestType)); + //杩戜竴鍛╝ctm + Map<Integer,Integer> actmweekMap=new HashMap<>(); + actmweekMap.put(2,0); + actmweekMap.put(3,0); + actmweekMap.put(4,0); + for (Integer test : testMapM2.keySet()) { + actmweekMap.put(test, testMapM2.get(test).size()); + } + actmdataMap.put(day,actmweekMap); + } + map.put("a200",a200dataMap); + map.put("actm",actmdataMap); + return map; + } + //鑾峰彇璁惧鐨勫厖鏀剧數璁板綍 + public Response getTinfById(Integer devId) { + Map<String,Object> map=new HashMap<>(); + //鑾峰彇鍏呮斁鐢垫暟鎹� + List<BatttestdataInf> listDis=mapper.getTinfById(3,devId); + List<BatttestdataInf> listChr=mapper.getTinfById(2,devId); + map.put("dis",listDis); + map.put("chr",listChr); + if(devId/100000000==2){ + List<BatttestdataInf> listJun=mapper.getTinfById(4,devId); + map.put("jun",listJun); + } + + return new Response().setII(1,true,map,"鑾峰彇璁惧鐨勫厖鏀剧數璁板綍"); + } + //鑾峰彇璁惧鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃繃绋� + public Response getTdataById(Integer devId, Integer testRecordCount) { + List<BatttestdataId> list=subService.getTdataById(devId,testRecordCount); + + return new Response().setII(1,list!=null,list,"鑾峰彇璁惧鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃繃绋�"); + } + //鑾峰彇鏀剧數inf + public BatttestdataInf getTinfExport(Integer devId, Integer testRecordCount) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.eq("test_record_count",testRecordCount); + wrapper.last("limit 1"); + BatttestdataInf tinf=mapper.selectOne(wrapper); + return tinf; + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/DevA200TestparamService.java b/src/main/java/com/whyc/service/DevA200TestparamService.java new file mode 100644 index 0000000..6b60997 --- /dev/null +++ b/src/main/java/com/whyc/service/DevA200TestparamService.java @@ -0,0 +1,293 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.whyc.dto.A200ResDto; +import com.whyc.dto.Response; +import com.whyc.dto.ResultA200Dto; +import com.whyc.factory.ThreadPoolExecutorFactory; +import com.whyc.mapper.DevA200TestparamMapper; +import com.whyc.mapper.DevInfMapper; +import com.whyc.pojo.db_lithium_ram_db.DevA200Testparam; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import com.whyc.util.ActionUtil; +import com.whyc.util.JsonUtil; +import com.whyc.util.TestparamHttpUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +@Service +public class DevA200TestparamService { + @Autowired(required = false) + private DevA200TestparamMapper mapper; + + @Autowired(required = false) + private DevInfMapper dinfMapper; + + private final RestTemplate restTemplate; + + @Autowired + public DevA200TestparamService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + //鎵归噺澶勭悊鍙戦�佹帴鍙h姹� + public ResultA200Dto getA200Dto(String url){ + ResultA200Dto dto= null; + String results =null; + try { + results = restTemplate.postForObject(url, null, String.class); + } catch (RestClientException e) { + results=" {\n" + + " \"code\": \"205\",\n" + + " \"msg\": \"鎺ュ彛璋冪敤鍑洪敊\",\n" + + " \"data\": null,\n" + + " \"count\": 0\n" + + " }"; + }finally { + dto = ActionUtil.getGson().fromJson(results, ResultA200Dto.class); + } + return dto; + } + //璇诲彇a200涓�浣撴満鍙傛暟 + public Object getA200Param(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/getTestParameter"; + ResultA200Dto dto= getA200Dto(url); + if(dto.getCode().equals("200")){ + DevA200Testparam a200Param=new DevA200Testparam(); + copyA200DTO(dto.getData(),a200Param); + a200Param.setDevId(devId); + a200Param.setReturnCode(Integer.parseInt(dto.getCode())); + UpdateWrapper updateWrapper=new UpdateWrapper(); + updateWrapper.eq("dev_id",devId); + mapper.update(a200Param,updateWrapper); + } + return dto; + } + + + //璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200Param(A200ResDto param) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",param.getDevId()); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + //param杞琷son瀛楃涓� + String paramJson = JsonUtil.getGson().toJson(param); + paramMap.add("testParameter",paramJson); + ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_dataA200(restTemplate,url,paramMap); + return dto; + } + + //鎵归噺璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200ParamPl2(A200ResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(size); + for (int i=0;i<size;i++) { + int finaldevId=param.getDevIds().get(i); + poolExecutor.execute(() -> { + int finalIIdevId=finaldevId; + param.setDevId(finalIIdevId); + ResultA200Dto dto= (ResultA200Dto) setA200Param(param); + map.put(finalIIdevId,dto); + latch.countDown(); + }); + } + latch.await(4, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆a200涓�浣撴満鍙傛暟"); + } + //鎵归噺璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200ParamPl(A200ResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + for (int i=0;i<size;i++) { + int finaldevId=param.getDevIds().get(i); + param.setDevId(finaldevId); + ResultA200Dto dto= (ResultA200Dto) setA200Param(param); + map.put(finaldevId,dto); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆a200涓�浣撴満鍙傛暟"); + } + + //鍚姩a200涓�浣撴満鏀剧數/鍏呯數 + public Object startA200Param(int devId,int type) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/startTest"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + paramMap.add("testType",type);//1 鏀剧數,2 鍏呯數 + ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_dataA200(restTemplate,url,paramMap); + return dto; + } + //a200涓�浣撴満鏆傚仠/缁х画 + public Object pauseA200Param(int devId, int type) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/pauseTest"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + paramMap.add("controlType",type);//1 鏆傚仠娴嬭瘯 ,2缁х画娴嬭瘯 + ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_dataA200(restTemplate,url,paramMap); + return dto; + } + //鍋滄a200涓�浣撴満鏀剧數/鍏呯數 + public Object stopA200Param(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/stopTest"; + ResultA200Dto dto= getA200Dto(url); + return dto; + } + + //鎵归噺鍚姩a200涓�浣撴満 + public Response startA200ParamPl2(List<Integer> devIds,int type) { + Map<Integer,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(devIds.size()); + for (int devId:devIds) { + poolExecutor.execute(() -> { + ResultA200Dto dto= (ResultA200Dto) startA200Param(devId,type); + map.put(devId,dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().set(1,true,"鎵归噺鎺у埗a200涓�浣撴満"); + } + + //鎵归噺鍚姩a200涓�浣撴満 + public Response startA200ParamPl(List<Integer> devIds,int type) { + Map<Integer,Object> map=new HashMap<>(); + for (int devId:devIds) { + ResultA200Dto dto= (ResultA200Dto) startA200Param(devId,type); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",devId); + wrapper.set("batch_state",1); + dinfMapper.update(null,wrapper); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鎺у埗a200涓�浣撴満"); + } + + //鎵归噺鍋滄a200涓�浣撴満 + public Response stopA200ParamPl2(List<Integer> devIds) { + Map<Integer,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(devIds.size()); + for (int devId:devIds) { + poolExecutor.execute(() -> { + ResultA200Dto dto= (ResultA200Dto) stopA200Param(devId); + map.put(devId,dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().set(1,true,"鎵归噺鍋滄a200涓�浣撴満"); + } + //鎵归噺鍋滄a200涓�浣撴満 + public Response stopA200ParamPl(List<Integer> devIds) { + Map<Integer,Object> map=new HashMap<>(); + for (int devId:devIds) { + ResultA200Dto dto= (ResultA200Dto) stopA200Param(devId); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鍋滄a200涓�浣撴満"); + } + + //鎵归噺鏆傚仠/缁х画鍚姩a200涓�浣撴満 + public Response pauseA200ParamPl(List<Integer> devIds,int type) { + Map<Integer,Object> map=new HashMap<>(); + for (int devId:devIds) { + ResultA200Dto dto= (ResultA200Dto) pauseA200Param(devId,type); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",devId); + wrapper.set("batch_state",1); + dinfMapper.update(null,wrapper); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鎺у埗a200涓�浣撴満"); + } + + //灏哾to鎷疯礉鑷硃aram + private void copyA200DTO(Object data, DevA200Testparam a200Param) { + A200ResDto dto= (A200ResDto) data; + a200Param.setBatteryName(dto.getBatteryName()); + a200Param.setNominalCapacity(dto.getNominalCapacity()); + a200Param.setBatteryType(dto.getBatteryType()); + a200Param.setBatteryNumber(dto.getBatteryNumber()); + a200Param.setDiffBatteryVoltage(dto.getDiffBatteryVoltage()); + a200Param.setDischargeCurrent(dto.getDischargeCurrent()); + a200Param.setDischargeVoltage(dto.getDischargeVoltage()); + a200Param.setDischargeTime(dto.getDischargeTime()); + a200Param.setDischargeCapacity(dto.getDischargeCapacity()); + if(dto.getIsDischargeCapacityEnable()){ + a200Param.setIsDischargeCapacityEnable(1); + }else{ + a200Param.setIsDischargeCapacityEnable(0); + } + a200Param.setMinBatteryVoltage(dto.getMinBatteryVoltage()); + if(dto.getIsMinBatteryVoltageEnable()){ + a200Param.setIsMinBatteryVoltageEnable(1); + }else{ + a200Param.setIsMinBatteryVoltageEnable(0); + } + a200Param.setChargeVoltage(dto.getChargeVoltage()); + a200Param.setChargeProtectVoltage(dto.getChargeProtectVoltage()); + a200Param.setChargeCurrent(dto.getChargeCurrent()); + a200Param.setChargeStopCurrent(dto.getChargeStopCurrent()); + a200Param.setChargeTime(dto.getChargeTime()); + a200Param.setChargeCapacity(dto.getChargeCapacity()); + if(dto.getIsChargeCapacityEnable()){ + a200Param.setIsChargeCapacityEnable(1); + }else{ + a200Param.setIsChargeCapacityEnable(0); + } + + a200Param.setMaxBatteryVoltage(dto.getMaxBatteryVoltage()); + if(dto.getIsMaxBatteryVoltageEnable()){ + a200Param.setIsMaxBatteryVoltageEnable(1); + }else{ + a200Param.setIsMaxBatteryVoltageEnable(0); + } + a200Param.setChargePower(dto.getChargePower()); + a200Param.setBatteryTemperatureProtect(dto.getBatteryTemperatureProtect()); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/DevActmTestparamService.java b/src/main/java/com/whyc/service/DevActmTestparamService.java new file mode 100644 index 0000000..b3bc1c5 --- /dev/null +++ b/src/main/java/com/whyc/service/DevActmTestparamService.java @@ -0,0 +1,221 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.whyc.dto.ActmPlContDto; +import com.whyc.dto.ActmResDto; +import com.whyc.dto.Response; +import com.whyc.dto.ResultActmDto; +import com.whyc.factory.ThreadPoolExecutorFactory; +import com.whyc.mapper.DevActmTestparamMapper; +import com.whyc.mapper.DevInfMapper; +import com.whyc.pojo.db_lithium_ram_db.DevActmTestparam; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import com.whyc.util.TestparamHttpUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + + +@Service +public class DevActmTestparamService { + @Autowired(required = false) + private DevActmTestparamMapper mapper; + + @Autowired(required = false) + private DevInfMapper dinfMapper; + + private final RestTemplate restTemplate; + + @Autowired + public DevActmTestparamService(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + //璇诲彇Actm涓�浣撴満鍙傛暟 + public Object getActmParam(int devId,int index) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/getTestParameter"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + paramMap.add("batteryStorageIndex",index); + ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); + if(dto.getCode().equals("200")){ + DevActmTestparam actmParam=new DevActmTestparam(); + copyActmDTO(dto.getData(),actmParam); + actmParam.setDevId(devId); + UpdateWrapper updateWrapper=new UpdateWrapper(); + updateWrapper.eq("dev_id",devId); + mapper.update(actmParam,updateWrapper); + } + return dto; + } + + + //璁剧疆Actm鍧囪 浠弬鏁� + public Object setActmParam(ActmResDto param) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",param.getDevId()); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + paramMap.add("batteryStorageIndex",param.getBatteryStorageIndex()); + paramMap.add("moduleCode",param.getModuleCode()); + paramMap.add("workMode",param.getWorkMode()); + paramMap.add("batteryType",param.getBatteryType()); + paramMap.add("batteryNumber",param.getBatteryNumber()); + paramMap.add("ntcCount",param.getNtcCount()); + paramMap.add("testBatteryArray",param.getTestBatteryArray()); + paramMap.add("voltage",param.getVoltage()); + paramMap.add("current",param.getCurrent()); + ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); + return dto; + } + + //鎵归噺璁剧疆Actm鍧囪 浠弬鏁� + public Object setActmParamPl2(ActmResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(size); + for (Integer devId:param.getDevIds()) { + poolExecutor.execute(() -> { + param.setDevId(devId); + ResultActmDto dto= (ResultActmDto) setActmParam(param); + map.put(devId,dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆Actm鍧囪 浠弬鏁�"); + } + + //鎵归噺璁剧疆Actm鍧囪 浠弬鏁� + public Object setActmParamPl(ActmResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + for (Integer devId:param.getDevIds()) { + param.setDevId(devId); + ResultActmDto dto= (ResultActmDto) setActmParam(param); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆Actm鍧囪 浠弬鏁�"); + } + + + //鍚姩,鏆傚仠,缁х画,鍋滄actm鍧囪 浠� + public Object controllerActmParam(int devId,int index,int type) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + switch (type){ + case 1:url=url+"/startTest";break; //鍚姩 + case 2:url=url+"/pauseTest";break; //鏆傚仠 + case 3:url=url+"/continueTest";break; //缁х画 + case 4:url=url+"/stopTest";break; //鍋滄 + } + paramMap.add("batteryStorageIndex",index); + ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); + return dto; + } + + + //鎵归噺鎺у埗Actm鍧囪 浠� + public Response controllActmParamPl2(List<ActmPlContDto> actmPlContDtos) { + Map<Integer,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(actmPlContDtos.size()); + for (ActmPlContDto actmPlContDto:actmPlContDtos) { + poolExecutor.execute(() -> { + ResultActmDto dto= (ResultActmDto) controllerActmParam(actmPlContDto.getDevId(),actmPlContDto.getIndex(),actmPlContDto.getType()); + map.put(actmPlContDto.getDevId(),dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().set(1,true,"鎵归噺璁剧疆Actm鍧囪 浠弬鏁�"); + } + + //鎵归噺鎺у埗Actm鍧囪 浠� + public Response controllActmParamPl(List<Integer> devIds, int index, int type) { + Map<Integer,Object> map=new HashMap<>(); + for (Integer devId:devIds) { + ResultActmDto dto= (ResultActmDto) controllerActmParam(devId,index,type); + if(type==1){ + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",devId); + wrapper.set("batch_state",1); + dinfMapper.update(null,wrapper); + } + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鎺у埗Actm鍧囪 浠�"); + } + + //灏哾to鎷疯礉鑷硃aram + private void copyActmDTO(Object data, DevActmTestparam actmParam) { + ActmResDto dto= (ActmResDto) data; + actmParam.setBatteryStorageIndex(dto.getBatteryStorageIndex()); + actmParam.setModuleCode(dto.getModuleCode()); + actmParam.setWorkMode(dto.getWorkMode()); + actmParam.setBatteryType(dto.getBatteryType()); + actmParam.setBatteryNumber(dto.getBatteryNumber()); + actmParam.setNtcCount(dto.getNtcCount()); + actmParam.setTestBatteryArray(dto.getTestBatteryArray()); + actmParam.setVoltage(dto.getVoltage()); + actmParam.setCurrent(dto.getCurrent()); + actmParam.setMaxBatteryNumber(dto.getMaxBatteryNumber()); + actmParam.setMaxNtcCount(dto.getMaxNtcCount()); + } + //璁剧疆鐢垫睜缁勬暟涓庣數姹犺妭鏁� + public Object setActmBatteryStorageNumber(ActmResDto param) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",param.getDevId()); + wrapper.last("limit 1"); + DevInf dinf=dinfMapper.selectOne(wrapper); + String url="http://"+dinf.getDevIp()+":8080/webService/setBatteryStorageNumber"; + //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� + MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); + paramMap.add("batteryStorageNumber",param.getBatteryStorageNumber()); + paramMap.add("batteryNumber",param.getBatteryNumber()); + ResultActmDto dto= (ResultActmDto) TestparamHttpUtil.postforform_dataActm(restTemplate,url,paramMap); + return dto; + } + //鎵归噺璁捐缃數姹犵粍鏁颁笌鐢垫睜鑺傛暟 + public Object setActmBatteryStorageNumberPl(ActmResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + for (Integer devId:param.getDevIds()) { + param.setDevId(devId); + ResultActmDto dto= (ResultActmDto) setActmBatteryStorageNumber(param); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺璁捐缃數姹犵粍鏁颁笌鐢垫睜鑺傛暟"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/DevInfService.java b/src/main/java/com/whyc/service/DevInfService.java new file mode 100644 index 0000000..9f96050 --- /dev/null +++ b/src/main/java/com/whyc/service/DevInfService.java @@ -0,0 +1,251 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.whyc.dto.DevInfDto; +import com.whyc.dto.Response; +import com.whyc.mapper.A200RealstateMapper; +import com.whyc.mapper.ActmRealstateMapper; +import com.whyc.mapper.BattgroupBaojigroupMapper; +import com.whyc.mapper.DevInfMapper; +import com.whyc.pojo.db_lithium_ram_db.A200Realstate; +import com.whyc.pojo.db_lithium_ram_db.ActmRealstate; +import com.whyc.pojo.db_lithium_ram_db.DevInf; +import com.whyc.pojo.db_user.BattgroupBaojigroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class DevInfService { + @Autowired(required = false) + private DevInfMapper mapper; + + @Autowired(required = false) + private A200RealstateMapper a200Mapper; + + @Autowired(required = false) + private ActmRealstateMapper actmMapper; + + @Autowired(required = false) + private BattgroupBaojigroupMapper battBjmapper; + + //娣诲姞璁惧 + @Transactional + public Response addDev(DevInf devInf) { + QueryWrapper wrapper=new QueryWrapper(); + //鍒ゆ柇璁惧绫诲瀷鐢熸垚devId + int devId=getDevId(devInf.getDevType()); + devInf.setDevId(devId); + devInf.setCreateTime(new Date()); + int bl=mapper.insert(devInf); + if(bl>0){ + if(devInf.getBaojiIdList()!=null){ + List<BattgroupBaojigroup> listBj=new ArrayList<>(); + for (int baojiId:devInf.getBaojiIdList()) { + BattgroupBaojigroup baojigroup=new BattgroupBaojigroup(); + baojigroup.setDevId(devId); + baojigroup.setBaojiGroupId(baojiId); + listBj.add(baojigroup); + } + //灏嗚澶囨坊鍔犺繘鎸囧畾鐨勫寘鏈虹粍 + battBjmapper.insertBatchSomeColumn(listBj); + } + } + return new Response().set(1,bl>0); + } + //鍒ゆ柇璁惧绫诲瀷鐢熸垚devId + private int getDevId(Integer devType) { + //鏌ヨ璇ョ被鍨嬫渶澶ц澶囩紪鍙� + Integer devId=mapper.getMaxDevId(devType); + if(devId==null){ + switch (devType){ + case 1:devId=100000000;break; + case 2:devId=200000000;break; + } + } + return devId+1; + } + + //鑾峰彇鎵�鏈夌殑璁惧淇℃伅 + public Response getAllInf(Integer uid, DevInfDto devInfDto) { + Map<String, Object> allMap = new HashMap<>(); + PageHelper.startPage(devInfDto.getPageNum(), devInfDto.getPageSize()); + devInfDto.setUid(uid); + List<DevInf> listype=mapper.getAllInf(devInfDto); + PageInfo pageInfo=new PageInfo(listype); + + List<DevInf> list=mapper.getLine(uid); + Map<Integer, List<DevInf>> typeDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevType)); + Map<Integer, List<DevInf>> onlineDevMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevOnline)); + Map<Integer, Object> typeMap = new HashMap<>(); + typeMap.put(1,0); + typeMap.put(2,0); + Map<Integer, Object> onlineMap = new HashMap<>(); + onlineMap.put(0,0); + onlineMap.put(1,0); + int devSum = list.size(); + for (Integer type : typeDevMap.keySet()) { + typeMap.put(type, typeDevMap.get(type).size()); + } + for (Integer online : onlineDevMap.keySet()) { + onlineMap.put(online, onlineDevMap.get(online).size()); + } + allMap.put("type",typeMap); + allMap.put("onlineMap",onlineMap); + allMap.put("devSum",devSum); + allMap.put("pageInfo",pageInfo); + + return new Response().setII(1,listype!=null,allMap,"鑾峰彇鎵�鏈夌殑璁惧淇℃伅"); + } + + //鑾峰彇宸︿晶鍒楄〃 + public Response getDevBytype(Integer devType) { + QueryWrapper wrapper=new QueryWrapper(); + if (devType!=null){ + wrapper.eq("dev_type",devType); + } + wrapper.orderByAsc("dev_id"); + List<DevInf> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鑾峰彇宸︿晶鍒楄〃"); + } + //鑾峰彇宸︿晶娉 + public Response getDevType(int uid) { + Map<String, Object> allMap = new HashMap<>(); + List<DevInf> a200List=mapper.getDevType(uid,1); + for (DevInf a200:a200List) { + QueryWrapper a200wrapper= Wrappers.query(); + a200wrapper.eq("dev_id",a200.getDevId()); + a200wrapper.last("limit 1"); + A200Realstate a200state=a200Mapper.selectOne(a200wrapper); + //a200.setA200sTate(a200state); + a200.setState(a200state!=null?a200state:null); + } + List<DevInf> actmList=mapper.getDevType(uid,2); + for (DevInf actm:actmList) { + QueryWrapper actmwrapper= Wrappers.query(); + actmwrapper.eq("dev_id",actm.getDevId()); + List<ActmRealstate> actmstates=actmMapper.selectList(actmwrapper); + //actm.setActmsTate(actmstate); + actm.setActmstates(actmstates!=null?actmstates:null); + } + allMap.put("a200List",a200List); + allMap.put("actmList",actmList); + return new Response().setII(1,allMap.size()>0,allMap,"鑾峰彇宸︿晶鍒楄〃"); + } + //缂栬緫璁惧淇℃伅 + public Response updateInf(DevInf dinf) { + //缂栬緫璁惧灏遍噸缃姞杞� + dinf.setReloadEn(1); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",dinf.getDevId()); + int flag=mapper.update(dinf,wrapper); + return new Response().set(1,flag>0,"缂栬緫璁惧淇℃伅"); + } + //鑾峰彇璁惧淇℃伅(涓嶅垎椤电敤浜庡寘鏈虹粍) + public Response getDinf() { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.orderByAsc("dev_id"); + List<DevInf> list=mapper.selectList(wrapper); + return new Response().setII(1,list!=null,list,"鑾峰彇璁惧淇℃伅(涓嶅垎椤电敤浜庡寘鏈虹粍)"); + } + + //鏍规嵁璁惧id鑾峰彇璁惧淇℃伅 + public Response getDinfById(Integer devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=mapper.selectOne(wrapper); + return new Response().setII(1,dinf!=null,dinf,"鏍规嵁璁惧id鑾峰彇璁惧淇℃伅"); + } + //鍒犻櫎璁惧(鍚屾椂鍒犻櫎瀹炴椂鍜屽寘鏈虹粍淇℃伅) + @Transactional + public Response delDinf(Integer devId) { + //鍏堝垹闄ゅ寘鏈虹粍淇℃伅 + UpdateWrapper baojiWrapper=new UpdateWrapper(); + baojiWrapper.eq("dev_id",devId); + battBjmapper.delete(baojiWrapper); + //鍐嶅垹闄ゅ疄鏃朵俊鎭� + if(devId/100000000==1){ + UpdateWrapper a200Wrapper=new UpdateWrapper(); + a200Wrapper.eq("dev_id",devId); + a200Mapper.delete(a200Wrapper); + }else{ + UpdateWrapper actmWrapper=new UpdateWrapper(); + actmWrapper.eq("dev_id",devId); + actmMapper.delete(actmWrapper); + } + //鏈�鍚庡垹闄よ澶囦俊鎭� + UpdateWrapper dinfWrapper=new UpdateWrapper(); + dinfWrapper.eq("dev_id",devId); + mapper.delete(dinfWrapper); + return new Response().set(1,true,"鍒犻櫎璁惧(鍚屾椂鍒犻櫎瀹炴椂鍜屽寘鏈虹粍淇℃伅)"); + } + //寮哄埗绉婚櫎鎵归噺璁惧 + @Transactional + public Response cancelContPl(List<Integer> devIds) { + for (Integer devId:devIds) { + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",devId); + wrapper.set("batch_state",0); + mapper.update(null,wrapper); + } + return new Response().set(1,true,"寮哄埗绉婚櫎鎵归噺璁惧"); + } + //璁惧鍒嗙被鎬绘暟缁熻 + public Map<String,Object> getDevStaticByType(int userId) { + Map<String,Object> map=new HashMap<>(); + Map<Integer,Integer> staticTypeMap=new HashMap<>(); + staticTypeMap.put(1,0); + staticTypeMap.put(2,0); + + Map<Integer,Integer> a200staticStateMap=new HashMap<>(); + a200staticStateMap.put(0,0); + a200staticStateMap.put(1,0); + Map<Integer,Integer> actmstaticStateMap=new HashMap<>(); + actmstaticStateMap.put(0,0); + actmstaticStateMap.put(1,0); + Map<String,Object> typestateMap=new HashMap<>(); + typestateMap.put("a200",a200staticStateMap); + typestateMap.put("actm",actmstaticStateMap); + List<DevInf> list=mapper.getDevStaticByType(userId); + Map<Integer, List<DevInf>> typeMap = list.stream().collect(Collectors.groupingBy(DevInf::getDevType)); + for (Integer type : typeMap.keySet()) { + staticTypeMap.put(type, typeMap.get(type).size()); + List<DevInf> typeList= typeMap.get(type); + Map<Integer, List<DevInf>> stateMap = typeList.stream().collect(Collectors.groupingBy(DevInf::getDevOnline)); + if(type==1){ + for (Integer state : stateMap.keySet()) { + a200staticStateMap.put(state, stateMap.get(state).size()); + } + typestateMap.put("a200", a200staticStateMap); + } + if(type==2){ + for (Integer state : stateMap.keySet()) { + actmstaticStateMap.put(state, stateMap.get(state).size()); + } + typestateMap.put("actm", actmstaticStateMap); + } + } + map.put("dinf",list!=null?list:null); + map.put("type",staticTypeMap); + map.put("state",typestateMap); + return map; + } + + //鏍规嵁devId鑾峰彇璁惧淇℃伅 + public DevInf getDinfByDevId(int devId){ + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.last("limit 1"); + DevInf dinf=mapper.selectOne(wrapper); + return dinf; + } + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/DevalarmDataService.java b/src/main/java/com/whyc/service/DevalarmDataService.java new file mode 100644 index 0000000..6a82cae --- /dev/null +++ b/src/main/java/com/whyc/service/DevalarmDataService.java @@ -0,0 +1,88 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.whyc.constant.DevAlmEnum; +import com.whyc.dto.DalmDto; +import com.whyc.dto.Response; +import com.whyc.mapper.DevalarmDataMapper; +import com.whyc.pojo.db_alarm.DevalarmData; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.util.ActionUtil; +import com.whyc.util.SubTablePageInfoUtil; +import com.whyc.util.ThreadLocalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.ParseException; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +public class DevalarmDataService { + + @Autowired(required = false) + private DevalarmDataMapper mapper; + + @Autowired(required = false) + private SubTablePageInfoUtil service; + + @Autowired(required = false) + private UserInfService uinfService; + + //鑾峰彇璁惧鍛婅淇℃伅 + public Response getDAlmInf(int uid, DalmDto dto) { + PageHelper.startPage(dto.getPageNum(),dto.getPageSize()); + dto.setUid(uid); + List<DevalarmData> list=mapper.getDAlmInf(dto); + for (DevalarmData data:list) { + UserInf uinf=uinfService.getUinfByUId(data.getConfirmedUid()); + data.setConfirmedUname(uinf!=null?uinf.getUname():""); + int almId=data.getAlmId(); + data.setAlmName(DevAlmEnum.getValue(almId)); + } + PageInfo pageInfo=new PageInfo(list); + return new Response().setII(1,list!=null,pageInfo,"鑾峰彇璁惧鍛婅淇℃伅"); + } + //鑾峰彇鍘嗗彶鍛婅 + public Response getDAlmHis(DalmDto dto) throws ParseException { + UserInf uinf= ActionUtil.getUser(); + dto.setUid(uinf.getUid()); + if(dto.getStartTime()==null){ + dto.setStartTime(ThreadLocalUtil.parse("2024-01-01 00:00:00",1)); + } + if(dto.getEndTime()==null){ + dto.setEndTime(new Date()); + } + PageInfo pageInfo=service.getPageInfo(dto.getPageNum(),dto.getPageSize(),dto.getStartTime(),dto.getEndTime() + ,"db_alarm", "tb_devalarm_data", dto); + return new Response().setII(1,pageInfo!=null,pageInfo,"鑾峰彇璁惧鍛婅淇℃伅"); + } + //纭瀹炴椂鍛婅 + public Response confiirmAlm(int num) { + UserInf uinf= ActionUtil.getUser(); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.set("alm_is_confirmed",1); + wrapper.set("confirmed_uid",uinf.getUid()); + wrapper.set("confirmed_time",new Date()); + wrapper.eq("num",num); + int flag=mapper.update((DevalarmData) ActionUtil.objeNull,wrapper); + return new Response().set(1,flag>0,"纭瀹炴椂鍛婅"); + } + //鑾峰彇鎵�鏈夌殑鍛婅绫诲瀷 + public Response getAllAlmName() { + Map<Integer,String> map=DevAlmEnum.getOpInfo(); + return new Response().setII(1,true,map,"鑾峰彇鎵�鏈夌殑鍛婅绫诲瀷"); + } + //寮圭獥鍛婅 + public Response getDAlmPopUp(Integer uid) { + List<DevalarmData> list=mapper.getDAlmPopUp(uid); + for (DevalarmData data:list) { + int almId=data.getAlmId(); + data.setAlmName(DevAlmEnum.getValue(almId)); + } + return new Response().setII(1,list!=null,list,"寮圭獥鍛婅"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/ExcelExportService.java b/src/main/java/com/whyc/service/ExcelExportService.java new file mode 100644 index 0000000..c353fbc --- /dev/null +++ b/src/main/java/com/whyc/service/ExcelExportService.java @@ -0,0 +1,321 @@ +package com.whyc.service; + +import com.whyc.dto.ActmstopReason; +import com.whyc.pojo.db_batt_testdata.BatttestdataId; +import com.whyc.pojo.db_batt_testdata.BatttestdataInf; +import com.whyc.util.ActionUtil; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; + +@Service +public class ExcelExportService { + @Autowired(required = false) + private SubTablePageInfoService subService; + + @Autowired(required = false) + private BatttestdataInfService infService; + + //瀵煎嚭鏂囦欢 + public void exportExcel1(Integer devId, Integer testRecordCount,HttpServletResponse response) { + Workbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet("璁惧鍘嗗彶鏁版嵁"); + String[] titiles=new String[]{"娴嬭瘯鏃堕棿","鐢垫睜缁勭紪鍙�","鍗曚綋缂栧彿","娴嬭瘯娆℃暟","娴嬭瘯绫诲瀷","娴嬭瘯璁板綍鏁�" + ,"缁勭鐢靛帇(V)","娴嬭瘯鐢垫祦(A)","娴嬭瘯瀹归噺(AH)","鍗曚綋鐢靛帇(V)","鍗曚綋娓╁害(鈩�)" + ,"鍗曚綋鐢垫祦(A)","鍗曚綋瀹归噺(AH)","鍗曚綋鑳介噺","鍗曚綋鐘舵��","鏁呴殰淇℃伅"}; + int rowNum=0; + // 鍒涘缓鏍囬琛� + Row row = sheet.createRow(rowNum); + // 濉厖鏁版嵁 + for(int i=0;i<titiles.length;i++){ + row.createCell(i).setCellValue(titiles[i]); + } + rowNum++; + List<BatttestdataId> list=subService.getTdataById(devId,testRecordCount); + if(list!=null){ + //鏁版嵁鏍� + for (int i = 0; i < list.size(); i++) { + sheet.createRow(rowNum); //鍒涘缓琛� + BatttestdataId tdata=list.get(i); + for(int j=0;j<titiles.length;j++){ + sheet.getRow(rowNum).createCell(0 ).setCellValue(ActionUtil.secToTime(tdata.getTestTimelong())); + sheet.getRow(rowNum).createCell(1).setCellValue(tdata.getBattIdx()+1); + sheet.getRow(rowNum).createCell(2 ).setCellValue(tdata.getMonNum()); + sheet.getRow(rowNum).createCell(3).setCellValue(tdata.getTestRecordCount()); + sheet.getRow(rowNum).createCell(4).setCellValue(tdata.getTestType()); + sheet.getRow(rowNum).createCell(5).setCellValue(tdata.getRecordNum()); + sheet.getRow(rowNum).createCell(6).setCellValue(tdata.getGroupVol()); + sheet.getRow(rowNum).createCell(7).setCellValue(tdata.getTestCurr()); + sheet.getRow(rowNum).createCell(8).setCellValue(tdata.getTestCap()); + sheet.getRow(rowNum).createCell(9 ).setCellValue(tdata.getMonVol()); + sheet.getRow(rowNum).createCell(10 ).setCellValue(tdata.getMonTmp()); + sheet.getRow(rowNum).createCell(11 ).setCellValue(tdata.getMonCurr()); + sheet.getRow(rowNum).createCell(12 ).setCellValue(tdata.getMonCap()); + sheet.getRow(rowNum).createCell(13 ).setCellValue(tdata.getMonWh()); + sheet.getRow(rowNum).createCell(14 ).setCellValue(tdata.getMonState()); + sheet.getRow(rowNum).createCell(15 ).setCellValue(tdata.getMonFault()); + } + rowNum++; + } + } + try { + // 鍐欏叆鍒拌緭鍑烘祦 + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + workbook.write(byteArrayOutputStream); + workbook.close(); + + // 璁剧疆鍝嶅簲澶� + String filename = "璁惧鍘嗗彶鏁版嵁"; + /*response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ + new String(filename.getBytes("UTF-8"), "ISO8859-1")+ + ".xlsx");*/ + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode (filename, "utf-8") + ".xlsx"); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + + // 鍐欏叆鍝嶅簲娴佸苟鍏抽棴 + response.getOutputStream().write(byteArrayOutputStream.toByteArray()); + response.getOutputStream().flush(); + response.getOutputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + //瀵煎嚭鏂囦欢A200 + public void exportExcelA200(Integer devId, Integer testRecordCount,HttpServletResponse response) { + Workbook wb = new XSSFWorkbook(); + //娴嬭瘯鎶ュ憡灏侀潰 + exportExcelCoverA200(devId,testRecordCount,wb); + Sheet sheet = wb.createSheet("娴嬭瘯鏁版嵁璇︽儏"); + // 鍒涘缓涓�涓崟鍏冩牸鏍峰紡锛屽苟璁剧疆瀛椾綋澶у皬涓�5 + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); // 璁剧疆姘村钩灞呬腑 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 璁剧疆鍨傜洿灞呬腑 + + Font font = wb.createFont(); + font.setFontHeightInPoints((short)20); + cellStyle.setFont(font); + + String[] titiles=new String[]{"Time(H:M:S)","Group V(V)","Group A(A)","Cap (AH)","Temp H(掳C)","Temp L(掳C)"}; + List<BatttestdataId> list=subService.getTdataByIdWithListA200(devId,testRecordCount); + + int rowNum=0; + // 鍒涘缓鏍囬琛� + Row row = sheet.createRow(rowNum); + row.setHeightInPoints(20.0f); + // 濉厖鏁版嵁 + for(int i=0;i<titiles.length;i++){ + row.createCell(i).setCellValue(titiles[i]); + } + if(list!=null&&list.size()>0){ + List<Integer> monNums=list.get(0).getMonNums(); + for (int i=0;i<monNums.size();i++){ + row.createCell(i+titiles.length).setCellValue("V"+monNums.get(i)); + } + } + rowNum++; + + if(list!=null){ + //鏁版嵁鏍� + for (int i = 0; i < list.size(); i++) { + Row row1 = sheet.createRow(rowNum); //鍒涘缓琛� + row1.setHeightInPoints(20.0f); + BatttestdataId tdata=list.get(i); + sheet.getRow(rowNum).createCell(0 ).setCellValue(ActionUtil.secToTime(tdata.getTestTimelong())); + sheet.getRow(rowNum).createCell(1).setCellValue(String.format("%.1f",tdata.getGroupVol())); + sheet.getRow(rowNum).createCell(2).setCellValue(String.format("%.1f",tdata.getTestCurr())); + sheet.getRow(rowNum).createCell(3).setCellValue(String.format("%.1f",tdata.getTestCap())); + sheet.getRow(rowNum).createCell(4).setCellValue(String.format("%.1f",tdata.getMaxTemp())); + sheet.getRow(rowNum).createCell(5).setCellValue(String.format("%.1f",tdata.getMinTemp())); + if (tdata.getMonVols() != null) { + List<Float> monVols = tdata.getMonVols(); + for (int j = 0; j < monVols.size(); j++) { + sheet.getRow(rowNum).createCell(6 + j).setCellValue(String.format("%.3f", monVols.get(j))); + } + } + rowNum++; + } + } + try { + // 鍐欏叆鍒拌緭鍑烘祦 + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + wb.write(byteArrayOutputStream); + wb.close(); + + // 璁剧疆鍝嶅簲澶� + String filename = "璁惧鍘嗗彶鏁版嵁"; + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode (filename, "utf-8") + ".xlsx"); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + + // 鍐欏叆鍝嶅簲娴佸苟鍏抽棴 + response.getOutputStream().write(byteArrayOutputStream.toByteArray()); + response.getOutputStream().flush(); + response.getOutputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //娴嬭瘯鎶ュ憡灏侀潰 + private void exportExcelCoverA200(Integer devId, Integer testRecordCount, Workbook wb) { + Sheet sheet = wb.createSheet("娴嬭瘯鎶ュ憡灏侀潰"); + // 鍒涘缓涓�涓崟鍏冩牸鏍峰紡锛屽苟璁剧疆瀛椾綋澶у皬涓�5 + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); // 璁剧疆姘村钩灞呬腑 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 璁剧疆鍨傜洿灞呬腑 + + Font font = wb.createFont(); + font.setFontHeightInPoints((short)20); + cellStyle.setFont(font); + + //鑾峰彇鏀剧數inf + BatttestdataInf tinf=infService.getTinfExport(devId,testRecordCount); + String[] titiles33=new String[]{"PACK/妯$粍鍙�:","娴嬭瘯寮�濮嬫椂闂�:","娴嬭瘯缁撴潫鏃堕棿:","鏁版嵁绫诲瀷:","鍋滄鍘熷洜:","棰勬斁瀹归噺(AH):" + ,"鏀剧數鐢垫祦(A):","娴嬭瘯鏃堕暱(h:m:s):","鍗曚覆涓嬮檺(V):","缁勭涓嬮檺(V):","鐢佃姱涓叉暟:","鏈�楂樻俯搴�(掳C):","鏈�浣庢俯搴�(掳C):","閲囬泦棰戠巼(绉�):"}; + String[] titiles34=new String[]{tinf.getBatteryName(),ActionUtil.sdf.format(tinf.getTestStarttime()),ActionUtil.sdf.format(tinf.getRecordTime()), "鏀剧數鏁版嵁",tinf.getStopTypeReason(),String.format("%.1f",tinf.getTestCap()) + ,String.format("%.1f",tinf.getTestCurr()),ActionUtil.secToTime(tinf.getTestTimelong()),String.format("%.1f",tinf.getMonVolLow()),String.format("%.1f",tinf.getGroupVolLow()),String.valueOf(tinf.getBatteryNumber()) + ,String.format("%.1f",tinf.getMaxTemp()),String.format("%.1f",tinf.getMinTemp()),String.valueOf(tinf.getSaveInverter())}; + + String[] titiles23=new String[]{"PACK/妯$粍鍙�:","娴嬭瘯寮�濮嬫椂闂�:","娴嬭瘯缁撴潫鏃堕棿:","鏁版嵁绫诲瀷:","鍋滄鍘熷洜:","鍏呯數闄愭祦(A):" + ,"娴嬭瘯鏃堕暱(h:m:s):","鍗曚覆涓婇檺(V):","鐢垫祦闃�鍊�(A):","鐢佃姱涓叉暟:","鍏呯數闄愬帇(V)","鏈�楂樻俯搴�(掳C):","鏈�浣庢俯搴�(掳C):","閲囬泦棰戠巼(绉�):"}; + String[] titiles24=new String[]{tinf.getBatteryName(),ActionUtil.sdf.format(tinf.getTestStarttime()),ActionUtil.sdf.format(tinf.getRecordTime()), "鍏呯數鏁版嵁",tinf.getStopTypeReason(),String.format("%.1f",tinf.getTestCurr()) + ,ActionUtil.secToTime(tinf.getTestTimelong()),String.format("%.1f",tinf.getMonVolHigh()),String.format("%.1f",tinf.getTestcurrLimit()),String.valueOf(tinf.getBatteryNumber()) + ,String.format("%.1f",tinf.getCharVoltage()),String.format("%.1f",tinf.getMaxTemp()),String.format("%.1f",tinf.getMinTemp()),String.valueOf(tinf.getSaveInverter())}; + + + int rowNum=5; + if(tinf.getTestType()==3){//鏀剧數 + for (int i=0;i<titiles33.length;i++){ + Row row = sheet.createRow(rowNum); //鍒涘缓琛� + row.setHeightInPoints(20.0f); + row.createCell(3).setCellValue(titiles33[i]); + row.createCell(4).setCellValue(titiles34[i]); + rowNum++; + } + }else{ + for (int i=0;i<titiles23.length;i++){ + Row row = sheet.createRow(rowNum); //鍒涘缓琛� + row.setHeightInPoints(20.0f); + row.createCell(3).setCellValue(titiles23[i]); + row.createCell(4).setCellValue(titiles24[i]); + rowNum++; + } + } + } + //ACTM瀵煎嚭 + public void exportExcelActm(Integer devId, Integer testRecordCount, HttpServletResponse response) { + Workbook wb = new XSSFWorkbook(); + //娴嬭瘯鎶ュ憡灏侀潰 + exportExcelCoverActm(devId,testRecordCount,wb); + Sheet sheet = wb.createSheet("娴嬭瘯鏁版嵁"); + // 鍒涘缓涓�涓崟鍏冩牸鏍峰紡锛屽苟璁剧疆瀛椾綋澶у皬涓�5 + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); // 璁剧疆姘村钩灞呬腑 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 璁剧疆鍨傜洿灞呬腑 + + Font font = wb.createFont(); + font.setFontHeightInPoints((short)20); + cellStyle.setFont(font); + + String[] titiles=new String[]{"娴嬭瘯鏃堕暱"}; + List<BatttestdataId> list=subService.getTdataByIdWithListActm(devId,testRecordCount); + + int rowNum=0; + // 鍒涘缓鏍囬琛� + Row row = sheet.createRow(rowNum); + row.setHeightInPoints(20.0f); + // 濉厖鏁版嵁 + for(int i=0;i<titiles.length;i++){ + row.createCell(i).setCellValue(titiles[i]); + } + if(list!=null&&list.size()>0){ + List<Integer> monNums=list.get(0).getMonNums(); + for (int i=0;i<monNums.size();i++){ + row.createCell(4*i+titiles.length).setCellValue(monNums.get(i)+"#鐢靛帇"); + row.createCell(4*i+titiles.length+1).setCellValue(monNums.get(i)+"#鐢垫祦"); + row.createCell(4*i+titiles.length+2).setCellValue(monNums.get(i)+"#瀹归噺锛圓H锛�"); + row.createCell(4*i+titiles.length+3).setCellValue(monNums.get(i)+"#鑳介噺锛圵H锛�"); + } + } + rowNum++; + + if(list!=null){ + //鏁版嵁鏍� + for (int i = 0; i < list.size(); i++) { + Row row1 = sheet.createRow(rowNum); //鍒涘缓琛� + row1.setHeightInPoints(20.0f); + BatttestdataId tdata=list.get(i); + sheet.getRow(rowNum).createCell(0 ).setCellValue(ActionUtil.secToTime(tdata.getTestTimelong())); + List<Float> monVols = tdata.getMonVols(); + List<Float> monCurrs = tdata.getMonCurrs(); + List<Float> monCaps = tdata.getMonCaps(); + List<Float> monWhs = tdata.getMonWhs(); + List<Integer> monNums=list.get(i).getMonNums(); + for (int j = 0; j < monNums.size(); j++) { + sheet.getRow(rowNum).createCell(4*j+1 ).setCellValue(String.format("%.3f", monVols.get(j))); + sheet.getRow(rowNum).createCell(4*j+1+1).setCellValue(String.format("%.3f", monCurrs.get(j))); + sheet.getRow(rowNum).createCell(4*j+1+2).setCellValue(String.format("%.3f", monCaps.get(j))); + sheet.getRow(rowNum).createCell(4*j+1+3).setCellValue(String.format("%.3f", monWhs.get(j))); + + + } + rowNum++; + } + } + try { + // 鍐欏叆鍒拌緭鍑烘祦 + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + wb.write(byteArrayOutputStream); + wb.close(); + + // 璁剧疆鍝嶅簲澶� + String filename = "璁惧鍘嗗彶鏁版嵁"; + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLEncoder.encode (filename, "utf-8") + ".xlsx"); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); + + // 鍐欏叆鍝嶅簲娴佸苟鍏抽棴 + response.getOutputStream().write(byteArrayOutputStream.toByteArray()); + response.getOutputStream().flush(); + response.getOutputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + //娴嬭瘯鎶ュ憡灏侀潰 + private void exportExcelCoverActm(Integer devId, Integer testRecordCount, Workbook wb) { + Sheet sheet = wb.createSheet("妯$粍閰嶇疆"); + // 鍒涘缓涓�涓崟鍏冩牸鏍峰紡锛屽苟璁剧疆瀛椾綋澶у皬涓�5 + CellStyle cellStyle = wb.createCellStyle(); + cellStyle.setAlignment(HorizontalAlignment.CENTER); // 璁剧疆姘村钩灞呬腑 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 璁剧疆鍨傜洿灞呬腑 + + Font font = wb.createFont(); + font.setFontHeightInPoints((short)20); + cellStyle.setFont(font); + + //鑾峰彇鏀剧數inf + BatttestdataInf tinf=infService.getTinfExport(devId,testRecordCount); + + String[] titiles3=new String[]{"鐢垫睜鍖呭簭鍙�:","妯$粍缂栧彿:","宸ヤ綔妯″紡:","鐢垫睜绫诲瀷:","鐢垫睜涓叉暟:","鐢靛帇闃�鍊�(v):" + ,"宸ヤ綔鐢垫祦(A):","寮�濮嬫祴璇曟椂闂�:","缁撴潫娴嬭瘯鏃堕棿:","鍋滄鍘熷洜:"}; + String[] titiles4=new String[]{String.valueOf(tinf.getBattIdx()+1),tinf.getBatteryName(),ActmstopReason.getTestType(tinf.getTestType()),ActmstopReason.getBattType(tinf.getBattType()),String.valueOf(tinf.getBatteryNumber()),String.format("%.1f",tinf.getVolThreshold()) + ,String.format("%.1f",tinf.getTestCurr()), ActionUtil.sdf.format(tinf.getTestStarttime()),ActionUtil.sdf.format(tinf.getRecordTime()), tinf.getStopTypeReason()}; + + int rowNum=5; + for (int i=0;i<titiles3.length;i++){ + Row row = sheet.createRow(rowNum); //鍒涘缓琛� + row.setHeightInPoints(20.0f); + row.createCell(3).setCellValue(titiles3[i]); + row.createCell(4).setCellValue(titiles4[i]); + rowNum++; + } + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/service/SubTablePageInfoService.java b/src/main/java/com/whyc/service/SubTablePageInfoService.java new file mode 100644 index 0000000..1298fcb --- /dev/null +++ b/src/main/java/com/whyc/service/SubTablePageInfoService.java @@ -0,0 +1,290 @@ +package com.whyc.service; + +import com.whyc.dto.DalmDto; +import com.whyc.mapper.CallBack; +import com.whyc.pojo.db_alarm.DevalarmDataYear; +import com.whyc.pojo.db_batt_testdata.BatttestdataId; +import com.whyc.util.ThreadLocalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +@Service +public class SubTablePageInfoService { + @Autowired + private MybatisSqlExecuteService sqlExecuteService; + //鑾峰彇璁惧鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃繃绋� + public List<BatttestdataId> getTdataById(Integer devId, Integer testRecordCount) { + String sql="select * from db_batt_testdata.tb_batttestdata_" +devId + +" where need_test=1 and test_record_count="+testRecordCount+" "; + sql+=" ORDER BY record_num asc "; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<BatttestdataId> list=new ArrayList<>(); + while (rs.next()){ + BatttestdataId tdata=new BatttestdataId(); + tdata.setNum(rs.getInt("num")); + tdata.setDevId(rs.getInt("dev_id")); + tdata.setBattIdx(rs.getInt("batt_idx")); + tdata.setTestRecordCount(rs.getInt("test_record_count")); + tdata.setTestType(rs.getInt("test_type")); + tdata.setRecordNum(rs.getInt("record_num")); + tdata.setTestStarttime(rs.getTimestamp("test_starttime")); + tdata.setRecordTime(rs.getTimestamp("record_time")); + tdata.setTestTimelong(rs.getInt("test_timelong")); + tdata.setGroupVol(rs.getDouble("group_vol")); + tdata.setTestCurr(rs.getDouble("test_curr")); + tdata.setTestCap(rs.getDouble("test_cap")); + tdata.setMonNum(rs.getInt("mon_num")); + tdata.setMonVol(rs.getDouble("mon_vol")); + tdata.setMonTmp(rs.getDouble("mon_tmp")); + tdata.setMonCurr(rs.getDouble("mon_curr")); + tdata.setMonCap(rs.getDouble("mon_cap")); + tdata.setMonWh(rs.getDouble("mon_wh")); + tdata.setMonState(rs.getString("mon_state")); + tdata.setMonFault(rs.getString("mon_fault")); + tdata.setNeedTest(rs.getInt("need_test")); + list.add(tdata); + } + return list; + } + }); + return list; + } + + //鑾峰彇璁惧鏌愭璁板綍璇︾粏鐨勫崟浣撴斁鐢佃繃绋� + public List<BatttestdataId> getTdataByIdWithListA200(Integer devId, Integer testRecordCount) { + String sql="select * from db_batt_testdata.tb_batttestdata_" +devId + +" where need_test=1 and test_record_count="+testRecordCount+" "; + sql+=" ORDER BY record_num asc "; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList<>(); + List<Float> monVols=null; + List<Integer> monNums=null; + BatttestdataId tdata=null; + int num=0; + try { + while (rs.next()){ + int monNum=rs.getInt("mon_num"); + float monvol=rs.getFloat("mon_vol"); + int recordNum=rs.getInt("record_num"); + if(num!=recordNum){ + if(num!=0){ + tdata.setMonVols(monVols); + tdata.setMonNums(monNums); + list.add(tdata); + } + tdata=new BatttestdataId(); + monVols=new ArrayList<>(); + monNums=new ArrayList<>(); + tdata.setDevId(rs.getInt("dev_id")); + tdata.setBattIdx(rs.getInt("batt_idx")); + tdata.setTestRecordCount(rs.getInt("test_record_count")); + tdata.setTestType(rs.getInt("test_type")); + tdata.setRecordNum(recordNum); + tdata.setTestStarttime(rs.getTimestamp("test_starttime")); + tdata.setRecordTime(rs.getTimestamp("record_time")); + tdata.setTestTimelong(rs.getInt("test_timelong")); + tdata.setGroupVol(rs.getDouble("group_vol")); + tdata.setTestCurr(rs.getDouble("test_curr")); + tdata.setTestCap(rs.getDouble("test_cap")); + tdata.setNeedTest(rs.getInt("need_test")); + tdata.setMaxTemp(rs.getFloat("max_temp")); + tdata.setMinTemp(rs.getFloat("min_temp")); + num=recordNum; + } + monVols.add(monvol); + monNums.add(monNum); + } + tdata.setMonVols(monVols); + tdata.setMonNums(monNums); + list.add(tdata); + } catch (SQLException e) { + e.printStackTrace(); + } + return list; + } + }); + return list; + } + //鏌ヨDevAlm鍘嗗彶鍛婅鏁伴噺 + public int getCountForDevAlm(DalmDto dto) { + String sql="select count(distinct num) as number from db_alarm." +dto.getTableName() + +" where 1=1 "; + + if(dto.getStartTime()!=null){ + sql+=" and alm_starttime >='"+ ThreadLocalUtil.format(dto.getStartTime(),1)+"' "; + } + if(dto.getEndTime()!=null){ + sql+=" and alm_endtime <='"+ThreadLocalUtil.format(dto.getEndTime(),1)+"' "; + } + if(dto.getDevType()!=null){ + sql+=" and FLOOR(dev_id/100000000)="+dto.getDevType(); + } + if(dto.getDevId()!=null){ + sql+=" and dev_id="+dto.getDevId(); + } + if(dto.getAlmId()!=null){ + sql+=" and alm_id="+dto.getAlmId(); + } + sql+=" and dev_id in (" + + " SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr" + + " where tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id" + + " and uid="+dto.getUid()+ + ")"; + sql+=" order by alm_starttime desc "; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + LinkedList<Object> temp = new LinkedList<>(); + try { + while (rs.next()) + temp.add(rs.getInt("number")); + } catch (SQLException e) { + e.printStackTrace(); + } + return temp; + } + }); + int num =0; + if(list!=null){ + num= (int) list.get(0); + } + return num; + } + //鏌ヨdevalm鍘嗗彶鍛婅 + public List getListDevAlm(DalmDto dto){ + String sql="select * from db_alarm." +dto.getTableName() + +" where 1=1 "; + + if(dto.getStartTime()!=null){ + sql+=" and alm_starttime >='"+ ThreadLocalUtil.format(dto.getStartTime(),1)+"' "; + } + if(dto.getEndTime()!=null){ + sql+=" and alm_endtime <='"+ThreadLocalUtil.format(dto.getEndTime(),1)+"' "; + } + if(dto.getDevType()!=null){ + sql+=" and FLOOR(dev_id/100000000)="+dto.getDevType(); + } + if(dto.getDevId()!=null){ + sql+=" and dev_id="+dto.getDevId(); + } + if(dto.getAlmId()!=null){ + sql+=" and alm_id="+dto.getAlmId(); + } + sql+=" and dev_id in (" + + " SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr" + + " where tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id" + + " and uid="+dto.getUid()+ + ")"; + sql+=" ORDER BY alm_starttime desc limit "+dto.getLimitStart()+","+dto.getLimitEnd()+" "; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List<DevalarmDataYear> list=new ArrayList<>(); + while (rs.next()){ + DevalarmDataYear dataYear=new DevalarmDataYear(); + dataYear.setNum(rs.getInt("num")); + dataYear.setDevId(rs.getInt("dev_id")); + dataYear.setAlmId(rs.getInt("alm_id")); + dataYear.setAlmSignalId(rs.getInt("alm_signal_id")); + dataYear.setAlmStarttime(rs.getTimestamp("alm_starttime")); + dataYear.setAlmValue(rs.getFloat("alm_value")); + dataYear.setAlmIsConfirmed(rs.getInt("alm_is_confirmed")); + dataYear.setConfirmedUid(rs.getInt("confirmed_uid")); + dataYear.setConfirmedTime(rs.getTimestamp("confirmed_time")); + dataYear.setAlmEndtime(rs.getTimestamp("alm_endtime")); + dataYear.setAlmClearedType(rs.getInt("alm_cleared_type")); + list.add(dataYear); + } + return list; + } + }); + return list; + } + + + public List<BatttestdataId> getTdataByIdWithListActm(Integer devId, Integer testRecordCount) { + String sql="select * from db_batt_testdata.tb_batttestdata_" +devId + +" where need_test=1 and test_record_count="+testRecordCount+" "; + sql+=" ORDER BY record_num asc "; + List list = sqlExecuteService.executeQuery_call(sql, new CallBack() { + @Override + public List getResults(ResultSet rs) throws SQLException { + List list=new ArrayList<>(); + List<Float> monVols=null; + List<Float> monCurrs=null; + List<Float> monCaps=null; + List<Float> monWhs=null; + List<Integer> monNums=null; + BatttestdataId tdata=null; + int num=0; + try { + while (rs.next()){ + int monNum=rs.getInt("mon_num"); + float monvol=rs.getFloat("mon_vol"); + float monCurr=rs.getFloat("mon_curr"); + float monCap=rs.getFloat("mon_cap"); + float monWh=rs.getFloat("mon_wh"); + int recordNum=rs.getInt("record_num"); + + if(num!=recordNum){ + if(num!=0){ + tdata.setMonVols(monVols); + tdata.setMonNums(monNums); + tdata.setMonCurrs(monCurrs); + tdata.setMonCaps(monCaps); + tdata.setMonWhs(monWhs); + list.add(tdata); + } + tdata=new BatttestdataId(); + monVols=new ArrayList<>(); + monNums=new ArrayList<>(); + monCurrs=new ArrayList<>(); + monCaps=new ArrayList<>(); + monWhs=new ArrayList<>(); + tdata.setDevId(rs.getInt("dev_id")); + tdata.setBattIdx(rs.getInt("batt_idx")); + tdata.setTestRecordCount(rs.getInt("test_record_count")); + tdata.setTestType(rs.getInt("test_type")); + tdata.setRecordNum(recordNum); + tdata.setTestStarttime(rs.getTimestamp("test_starttime")); + tdata.setRecordTime(rs.getTimestamp("record_time")); + tdata.setTestTimelong(rs.getInt("test_timelong")); + tdata.setGroupVol(rs.getDouble("group_vol")); + tdata.setTestCurr(rs.getDouble("test_curr")); + tdata.setTestCap(rs.getDouble("test_cap")); + tdata.setNeedTest(rs.getInt("need_test")); + tdata.setMonTmp(rs.getDouble("mon_tmp")); + num=recordNum; + } + monVols.add(monvol); + monNums.add(monNum); + monCurrs.add(monCurr); + monCaps.add(monCap); + monWhs.add(monWh); + } + + tdata.setMonVols(monVols); + tdata.setMonNums(monNums); + tdata.setMonCurrs(monCurrs); + tdata.setMonCaps(monCaps); + tdata.setMonWhs(monWhs); + list.add(tdata); + } catch (SQLException e) { + e.printStackTrace(); + } + return list; + } + }); + return list; + } +} diff --git a/src/main/java/com/whyc/service/UserInfService.java b/src/main/java/com/whyc/service/UserInfService.java index dd026bc..53a2533 100644 --- a/src/main/java/com/whyc/service/UserInfService.java +++ b/src/main/java/com/whyc/service/UserInfService.java @@ -256,4 +256,13 @@ } return model; } + + //鏍规嵁uId鑾峰彇璁惧淇℃伅 + public UserInf getUinfByUId(int uId){ + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("uid",uId); + wrapper.last("limit 1"); + UserInf uinf=mapper.selectOne(wrapper); + return uinf; + } } diff --git a/src/main/java/com/whyc/service/WorkstateChangeeventService.java b/src/main/java/com/whyc/service/WorkstateChangeeventService.java new file mode 100644 index 0000000..9eddda6 --- /dev/null +++ b/src/main/java/com/whyc/service/WorkstateChangeeventService.java @@ -0,0 +1,46 @@ +package com.whyc.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.whyc.dto.Response; +import com.whyc.mapper.WorkstateCfgMapper; +import com.whyc.mapper.WorkstateChangeeventMapper; +import com.whyc.pojo.db_lithium_ram_db.WorkstateCfg; +import com.whyc.pojo.db_lithium_ram_db.WorkstateChangeevent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class WorkstateChangeeventService { + @Autowired(required = false) + private WorkstateChangeeventMapper mapper; + + @Autowired(required = false) + private WorkstateCfgMapper cfgMapper; + + + //璇诲彇璁惧宸ヤ綔鐘舵�佺殑鍒囨崲杩囩▼ + public Response getWorkEvent(int devId) { + QueryWrapper wrapper=new QueryWrapper(); + wrapper.eq("dev_id",devId); + wrapper.orderByDesc("record_time"); + wrapper.last("limit 100"); + int devType=devId/100000000; + List<WorkstateChangeevent> list=mapper.selectList(wrapper); + for (WorkstateChangeevent event:list) { + QueryWrapper wrapper1=new QueryWrapper(); + wrapper1.eq("dev_type",devType); + wrapper1.eq("last_work_state",event.getLastWorkState()); + wrapper1.eq("now_work_state",event.getNowWorkState()); + wrapper1.last("limit 1"); + WorkstateCfg cfg=cfgMapper.selectOne(wrapper1); + if(cfg==null){ + event.setEventStr("---"); + }else{ + event.setEventStr(cfg.getEventStr()); + } + } + return new Response().setII(1,list!=null,list,"璇诲彇璁惧宸ヤ綔鐘舵�佺殑鍒囨崲杩囩▼"); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/util/TestparamHttpUtil.java b/src/main/java/com/whyc/util/TestparamHttpUtil.java new file mode 100644 index 0000000..3a14be9 --- /dev/null +++ b/src/main/java/com/whyc/util/TestparamHttpUtil.java @@ -0,0 +1,77 @@ +package com.whyc.util; + +import com.whyc.dto.ResultA200Dto; +import com.whyc.dto.ResultActmDto; +import org.springframework.http.*; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +public class TestparamHttpUtil { + + + + //post璇锋眰浼犲叆form-data 鏍煎紡 + public static Object postforform_dataA200( RestTemplate restTemplate,String url, MultiValueMap<String, Object> paramMap){ + HttpHeaders headers = new HttpHeaders(); + HttpMethod method = HttpMethod.POST; + // 璁剧疆浠ヨ〃鍗曠殑鏂瑰紡鎻愪氦 + headers.add("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE); + HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers); + String results= null; + try { + ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class ); + results = response.getBody(); + } catch (RestClientException e) { + results=" {\n" + + " \"code\": \"205\",\n" + + " \"msg\": \"鎺ュ彛璋冪敤鍑洪敊\",\n" + + " \"data\": null,\n" + + " \"count\": 0\n" + + " }"; + } + if(results==null){ + results=" {\n" + + " \"code\": \"0\",\n" + + " \"msg\": \"鎺ュ彛璋冪敤鏃犺繑鍥瀄",\n" + + " \"data\": null,\n" + + " \"count\": 0\n" + + " }"; + } + Object dto= ActionUtil.getGson().fromJson(results, ResultA200Dto.class); + return dto; + } + + //post璇锋眰浼犲叆form-data 鏍煎紡 + public static Object postforform_dataActm( RestTemplate restTemplate,String url, MultiValueMap<String, Object> paramMap){ + HttpHeaders headers = new HttpHeaders(); + HttpMethod method = HttpMethod.POST; + // 璁剧疆浠ヨ〃鍗曠殑鏂瑰紡鎻愪氦 + headers.add("Content-Type", MediaType.MULTIPART_FORM_DATA_VALUE); + HttpEntity< MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(paramMap, headers); + String results= null; + try { + ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity,String.class ); + results = response.getBody(); + } catch (RestClientException e) { + results=" {\n" + + " \"code\": \"205\",\n" + + " \"msg\": \"鎺ュ彛璋冪敤鍑洪敊\",\n" + + " \"data\": null,\n" + + " \"count\": 0\n" + + " }"; + } + if(results==null){ + results=" {\n" + + " \"code\": \"0\",\n" + + " \"msg\": \"鎺ュ彛璋冪敤鏃犺繑鍥瀄",\n" + + " \"data\": null,\n" + + " \"count\": 0\n" + + " }"; + } + Object dto= ActionUtil.getGson().fromJson(results, ResultActmDto.class); + return dto; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/whyc/webSocket/DevAlmPopUp.java b/src/main/java/com/whyc/webSocket/DevAlmPopUp.java new file mode 100644 index 0000000..c8ee096 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevAlmPopUp.java @@ -0,0 +1,74 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.DevalarmDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; + +/** + * 鍛婅寮圭獥 + */ +@Component +@ServerEndpoint(value = "/almPop",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevAlmPopUp{ + + private Session session; + + private Thread thread; + private static DevalarmDataService almService; + + private HttpSession httpSession; + + @Autowired + public void setDevalarmDataService(DevalarmDataService almService) { + DevAlmPopUp.almService = almService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config){ + this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + UserInf user = (UserInf) this.httpSession.getAttribute("user"); + final int userId = user.getUid(); + //final int userId = 101; + Thread thread = new Thread() { + @Override + public void run() { + try { + while (!currentThread().isInterrupted()) { + Response res = almService.getDAlmPopUp(userId); + session.getBasicRemote().sendObject(res); + sleep(4000); + } + } catch (Exception e) { + this.interrupt(); + } + } + }; + thread.start(); + this.thread = thread; + } + @OnClose + public void onClose(CloseReason closeReason) throws IOException { + System.err.println("closeReason = " + closeReason); + if(session.isOpen()){ + session.close(); + } + } + + @OnError + public void onError(Throwable error) throws IOException { + error.printStackTrace(); + thread.isInterrupted(); + if(session.isOpen()){ + session.close(); + } + } + +} diff --git a/src/main/java/com/whyc/webSocket/DevInfSocket.java b/src/main/java/com/whyc/webSocket/DevInfSocket.java new file mode 100644 index 0000000..0b37f68 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevInfSocket.java @@ -0,0 +1,109 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.DevInfDto; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.DevInfService; +import com.whyc.util.ActionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.Map; + + +/** + * 璁惧瀹炴椂杩炴帴淇℃伅 + */ +@Component +@ServerEndpoint(value = "/dinfSocket",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevInfSocket { + private Session session; + + private Thread thread; + + private static DevInfService dinfService; + + private HttpSession httpSession; + + private volatile boolean runFlag = true; + + private volatile Map<String, Thread> threadMap = new HashMap<>(); + + private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); + + @Autowired + public void setDevInfService(DevInfService dinfService) { + DevInfSocket.dinfService = dinfService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config) { + this.session = session; + this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + } + @OnMessage + public void onMessage(Session session, String message) { + DevInfDto devInfDto = ActionUtil.getGson("yyyy-MM-dd").fromJson(message, DevInfDto.class); + UserInf user = (UserInf) this.httpSession.getAttribute("user"); + final int userId = user.getUid(); + //final int userId = 101; + thread = new Thread("Thread_DinfSocket") { + @Override + public void run() { + while (runFlag && !isInterrupted()) { + Thread thread = currentThread(); + threadFlagMap.put(thread.getId(), true); + try { + Response res=dinfService.getAllInf(userId, devInfDto); + if (session.isOpen()) { + //鎺ㄩ�佷俊鎭� + synchronized (session) { + session.getBasicRemote().sendObject(res); + } + threadFlagMap.put(thread.getId(), false); + } + sleep(4000); + } catch (Exception e) { + interrupt(); + } + } + } + }; + thread.start(); + threadFlagMap.put(thread.getId(),true); + //鍋滄鑰佺殑socket绾跨▼ + Thread threadBefore = threadMap.get(session.getId()); + if(threadBefore !=null && threadBefore.isAlive()){ + while (threadFlagMap.get(threadBefore.getId())){ + } + threadBefore.interrupt(); + } + //灏嗙嚎绋嬪瓨鍌�,渚夸簬璋冪敤瀹氫綅 + threadMap.put(session.getId(), this.thread); + } + + + @OnClose + public void onClose(CloseReason closeReason){ + System.err.println("closeReason = " + closeReason); + runFlag = false; + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } + + @OnError + public void onError(Throwable error) { + error.printStackTrace(); + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/webSocket/DevLineSocket.java b/src/main/java/com/whyc/webSocket/DevLineSocket.java new file mode 100644 index 0000000..446ae87 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevLineSocket.java @@ -0,0 +1,74 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.DevInfService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; + +/** + * 宸︿晶鍒楄〃 + */ +@Component +@ServerEndpoint(value = "/lineSocket",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevLineSocket{ + + private Session session; + + private Thread thread; + private static DevInfService dinfService; + + private HttpSession httpSession; + + @Autowired + public void setDevInfService(DevInfService dinfService) { + DevLineSocket.dinfService = dinfService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config){ + this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + UserInf user = (UserInf) this.httpSession.getAttribute("user"); + final int userId = user.getUid(); + //final int userId = 101; + Thread thread = new Thread() { + @Override + public void run() { + try { + while (!currentThread().isInterrupted()) { + Response res = dinfService.getDevType(userId); + session.getBasicRemote().sendObject(res); + sleep(4000); + } + } catch (Exception e) { + this.interrupt(); + } + } + }; + thread.start(); + this.thread = thread; + } + @OnClose + public void onClose(CloseReason closeReason) throws IOException { + System.err.println("closeReason = " + closeReason); + if(session.isOpen()){ + session.close(); + } + } + + @OnError + public void onError(Throwable error) throws IOException { + error.printStackTrace(); + thread.isInterrupted(); + if(session.isOpen()){ + session.close(); + } + } + +} diff --git a/src/main/java/com/whyc/webSocket/DevRtstateSocket.java b/src/main/java/com/whyc/webSocket/DevRtstateSocket.java new file mode 100644 index 0000000..bb0e443 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevRtstateSocket.java @@ -0,0 +1,155 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.Response; +import com.whyc.dto.RtstateDto; +import com.whyc.service.A200RealstateService; +import com.whyc.service.ActmRealstateService; +import com.whyc.service.BattRtdataService; +import com.whyc.service.WorkstateChangeeventService; +import com.whyc.util.ActionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.Map; + + +/** + * 璁惧瀹炴椂杩炴帴淇℃伅 + */ +@Component +@ServerEndpoint(value = "/rtstateSocket",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevRtstateSocket { + private Session session; + + private Thread thread; + + private static BattRtdataService rtdataService; + + private static A200RealstateService a200Service; + + private static ActmRealstateService actmService; + + private static WorkstateChangeeventService eventService; + + + private volatile boolean runFlag = true; + + private volatile Map<String, Thread> threadMap = new HashMap<>(); + + private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); + + @Autowired + public void setBattRtdataService(BattRtdataService rtdataService) { + DevRtstateSocket.rtdataService = rtdataService; + } + + @Autowired + public void setA200RealstateService(A200RealstateService a200Service) { + DevRtstateSocket.a200Service = a200Service; + } + + @Autowired + public void setActmRealstateService(ActmRealstateService actmService) { + DevRtstateSocket.actmService = actmService; + } + + @Autowired + public void setWorkstateChangeeventService(WorkstateChangeeventService eventService) { + DevRtstateSocket.eventService = eventService; + } + + @OnOpen + public void onOpen(Session session) { + this.session = session; + } + @OnMessage + public void onMessage(Session session, String message) { + RtstateDto dto= ActionUtil.getGson().fromJson(message,RtstateDto.class); + thread = new Thread("Thread_RtstateSocket") { + @Override + public void run() { + while (runFlag && !isInterrupted()) { + Thread thread = currentThread(); + threadFlagMap.put(thread.getId(), true); + Response res = new Response(); + try { + switch (dto.getDevType()){ + case 1:res=getA200State(dto.getDevId());break; + case 2:res=getActmState(dto.getDevId());break; + } + if (session.isOpen()) { + //鎺ㄩ�佷俊鎭� + synchronized (session) { + session.getBasicRemote().sendObject(res); + } + threadFlagMap.put(thread.getId(), false); + } + sleep(4000); + } catch (Exception e) { + interrupt(); + } + } + } + }; + thread.start(); + threadFlagMap.put(thread.getId(),true); + //鍋滄鑰佺殑socket绾跨▼ + Thread threadBefore = threadMap.get(session.getId()); + if(threadBefore !=null && threadBefore.isAlive()){ + while (threadFlagMap.get(threadBefore.getId())){ + } + threadBefore.interrupt(); + } + //灏嗙嚎绋嬪瓨鍌�,渚夸簬璋冪敤瀹氫綅 + threadMap.put(session.getId(), this.thread); + } + //鍧囪 浠狝ctm瀹炴椂鏁版嵁 + private Response getActmState(int devId) { + Map<String, Response> map = new HashMap<>(); + Response resActmState=actmService.getActmState(devId); + Response rtdataState0=rtdataService.getActmRtdataState(devId,0); + Response rtdataState1=rtdataService.getActmRtdataState(devId,1); + Response event=eventService.getWorkEvent(devId); + map.put("resActmState",resActmState); + map.put("rtdataState0",rtdataState0); + map.put("rtdataState1",rtdataState1); + map.put("event",event); + return new Response().setII(1,true,map,"鍧囪 浠狝ctm瀹炴椂鏁版嵁"); + } + + //涓�浣撴満A200瀹炴椂鏁版嵁 + private Response getA200State(int devId) { + Map<String, Response> map = new HashMap<>(); + Response resA200State=a200Service.getA200State(devId); + Response rtdataState=rtdataService.getA200RtdataState(devId); + Response event=eventService.getWorkEvent(devId); + map.put("resA200State",resA200State); + map.put("rtdataState",rtdataState); + map.put("event",event); + return new Response().setII(1,true,map,"涓�浣撴満A200瀹炴椂鏁版嵁"); + } + + + @OnClose + public void onClose(CloseReason closeReason){ + System.err.println("closeReason = " + closeReason); + runFlag = false; + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } + + @OnError + public void onError(Throwable error) { + error.printStackTrace(); + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } +} \ No newline at end of file diff --git a/src/main/java/com/whyc/webSocket/DevStaticSocket.java b/src/main/java/com/whyc/webSocket/DevStaticSocket.java new file mode 100644 index 0000000..6ffc412 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevStaticSocket.java @@ -0,0 +1,122 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.Response; +import com.whyc.factory.ThreadPoolExecutorFactory; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.BatttestdataInfService; +import com.whyc.service.DevInfService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * 宸︿晶鍒楄〃 + */ +@Component +@ServerEndpoint(value = "/staticSocket",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevStaticSocket{ + + private Session session; + + private Thread thread; + + private static DevInfService dinfService; + + private static BatttestdataInfService tinfService; + + + private HttpSession httpSession; + + @Autowired + public void setDevInfService(DevInfService dinfService) { + DevStaticSocket.dinfService = dinfService; + } + + @Autowired + public void setBatttestdataInfService(BatttestdataInfService tinfService) { + DevStaticSocket.tinfService = tinfService; + } + + + @OnOpen + public void onOpen(Session session, EndpointConfig config){ + this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + UserInf user = (UserInf) this.httpSession.getAttribute("user"); + final int userId = user.getUid(); + //final int userId = 101; + Thread thread = new Thread() { + @Override + public void run() { + try { + while (!currentThread().isInterrupted()) { + Response res = getDevStatic(userId); + session.getBasicRemote().sendObject(res); + sleep(4000); + } + } catch (Exception e) { + this.interrupt(); + } + } + }; + thread.start(); + this.thread = thread; + } + //鑾峰彇缁熻淇℃伅 + private Response getDevStatic(int userId) { + Map<String,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(3); + //鍏呮斁鐢典竴浣撴満娴嬭瘯缁熻/閿傜數鍧囪 浠祴璇曠粺璁� + poolExecutor.execute(() -> { + Map<String,Object> devTinfMap=tinfService.getDevTinfByYearMonth(userId); + map.put("devTinf",devTinfMap); + latch.countDown(); + }); + //璁惧鍒嗙被鎬绘暟缁熻/璁惧鐘舵�佺粺璁�/鍦板浘淇℃伅 + poolExecutor.execute(() -> { + Map<String,Object> devSaticMap=dinfService.getDevStaticByType(userId); + map.put("devSatic",devSaticMap); + latch.countDown(); + }); + //杩戜竴鍛ㄧ數姹犳祴璇曡秼鍔跨粺璁�(浠庡綋鍓嶆椂闂村紑濮�) + poolExecutor.execute(() -> { + Map<String,Object> devTestByWeekMap=tinfService.getDevTinfByWeek(userId); + map.put("devTestByWeek",devTestByWeekMap); + latch.countDown(); + }); + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().setII(1,true,map,""); + } + + @OnClose + public void onClose(CloseReason closeReason) throws IOException { + System.err.println("closeReason = " + closeReason); + if(session.isOpen()){ + session.close(); + } + } + + @OnError + public void onError(Throwable error) throws IOException { + error.printStackTrace(); + thread.isInterrupted(); + if(session.isOpen()){ + session.close(); + } + } + +} diff --git a/src/main/java/com/whyc/webSocket/DevalarmSocket.java b/src/main/java/com/whyc/webSocket/DevalarmSocket.java new file mode 100644 index 0000000..1fe6238 --- /dev/null +++ b/src/main/java/com/whyc/webSocket/DevalarmSocket.java @@ -0,0 +1,109 @@ +package com.whyc.webSocket; + +import com.whyc.config.WebSocketConfig; +import com.whyc.dto.DalmDto; +import com.whyc.dto.Response; +import com.whyc.pojo.db_user.UserInf; +import com.whyc.service.DevalarmDataService; +import com.whyc.util.ActionUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpSession; +import javax.websocket.*; +import javax.websocket.server.ServerEndpoint; +import java.util.HashMap; +import java.util.Map; + + +/** + * 璁惧瀹炴椂杩炴帴淇℃伅 + */ +@Component +@ServerEndpoint(value = "/dalmSocket",encoders = WebSocketEncoder.class,configurator = WebSocketConfig.class) +public class DevalarmSocket { + private Session session; + + private Thread thread; + + private static DevalarmDataService dalmService; + + private HttpSession httpSession; + + private volatile boolean runFlag = true; + + private volatile Map<String, Thread> threadMap = new HashMap<>(); + + private volatile Map<Long,Boolean> threadFlagMap = new HashMap<>(); + + @Autowired + public void setDevalarmDataService(DevalarmDataService dalmService) { + DevalarmSocket.dalmService = dalmService; + } + + @OnOpen + public void onOpen(Session session, EndpointConfig config) { + this.session = session; + this.httpSession = (HttpSession) config.getUserProperties().get("httpSession"); + } + @OnMessage + public void onMessage(Session session, String message) { + DalmDto dto = ActionUtil.getGson("yyyy-MM-dd HH:mm:ss").fromJson(message, DalmDto.class); + UserInf user = (UserInf) this.httpSession.getAttribute("user"); + final int userId = user.getUid(); + //final int userId = 101; + thread = new Thread("Thread_DevalarmSocket") { + @Override + public void run() { + while (runFlag && !isInterrupted()) { + Thread thread = currentThread(); + threadFlagMap.put(thread.getId(), true); + try { + Response res=dalmService.getDAlmInf(userId, dto); + if (session.isOpen()) { + //鎺ㄩ�佷俊鎭� + synchronized (session) { + session.getBasicRemote().sendObject(res); + } + threadFlagMap.put(thread.getId(), false); + } + sleep(4000); + } catch (Exception e) { + interrupt(); + } + } + } + }; + thread.start(); + threadFlagMap.put(thread.getId(),true); + //鍋滄鑰佺殑socket绾跨▼ + Thread threadBefore = threadMap.get(session.getId()); + if(threadBefore !=null && threadBefore.isAlive()){ + while (threadFlagMap.get(threadBefore.getId())){ + } + threadBefore.interrupt(); + } + //灏嗙嚎绋嬪瓨鍌�,渚夸簬璋冪敤瀹氫綅 + threadMap.put(session.getId(), this.thread); + } + + + @OnClose + public void onClose(CloseReason closeReason){ + System.err.println("closeReason = " + closeReason); + runFlag = false; + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } + + @OnError + public void onError(Throwable error) { + error.printStackTrace(); + if (thread != null && thread.isAlive()) { + thread.interrupt(); + } + threadMap.remove(session.getId()); + } +} \ No newline at end of file diff --git a/src/main/resources/mapper/BaojigroupMapper.xml b/src/main/resources/mapper/BaojigroupMapper.xml new file mode 100644 index 0000000..5051c17 --- /dev/null +++ b/src/main/resources/mapper/BaojigroupMapper.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.BaojigroupMapper"> + + <select id="getMaxBaojiGroupId" resultType="java.lang.Integer"> + select max(baoji_group_id) from db_user.tb_baojigroup + limit 1 + </select> + + <resultMap id="baojiList" type="baojigroup"> + <id property="num" column="num"></id> + <result property="baojiGroupId" column="baoji_group_id"></result> + <result property="baojiGroupName" column="baoji_group_name"></result> + <collection property="usrList" javaType="java.util.ArrayList" ofType="com.whyc.pojo.db_user.UserInf" column="{baojiGroupId=baoji_group_id}" + select="selectUsrList"> + </collection> + <collection property="devList" javaType="java.util.ArrayList" ofType="com.whyc.pojo.db_lithium_ram_db.DevInf" column="{baojiGroupId=baoji_group_id}" + select="selectDevList"> + </collection> + </resultMap> + + <select id="selectUsrList" resultType="userInf"> + select uid,uname,udownload_role from db_user.tb_user_inf + <where> + uid in ( + SELECT distinct uid from db_user.tb_battgroup_usr + <where> + baoji_group_id=#{baojiGroupId} + </where> + ) + </where> + order by uid asc + </select> + + <select id="selectDevList" resultType="devInf"> + select * from db_lithium_ram_db.tb_dev_inf + <where> + dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup + <where> + baoji_group_id=#{baojiGroupId} + </where> + ) + </where> + </select> + + <select id="getBaojiInfo" resultMap="baojiList"> + select * from db_user.tb_baojigroup order by baoji_group_id asc + </select> + <select id="getUsrBaoji" resultType="com.whyc.pojo.db_user.Baojigroup"> + select * from db_user.tb_baojigroup + <where> + baoji_group_id in ( + SELECT distinct baoji_group_id from db_user.tb_battgroup_usr + <where> + uid=#{uid} + </where> + ) + </where> + order by baoji_group_id asc + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/BattgroupBaojigroupMapper.xml b/src/main/resources/mapper/BattgroupBaojigroupMapper.xml new file mode 100644 index 0000000..6c59685 --- /dev/null +++ b/src/main/resources/mapper/BattgroupBaojigroupMapper.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.BattgroupBaojigroupMapper"> + <delete id="delDevInBaoji"> + <foreach collection="list" item="item" separator=";" > + delete from db_user.tb_battgroup_baojigroup where baoji_group_id = #{item.baojiGroupId} and dev_id = #{item.devId} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/BattgroupUsrMapper.xml b/src/main/resources/mapper/BattgroupUsrMapper.xml new file mode 100644 index 0000000..1d7ae26 --- /dev/null +++ b/src/main/resources/mapper/BattgroupUsrMapper.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.BattgroupUsrMapper"> + + <delete id="delUsrInBaoji"> + <foreach collection="list" item="item" separator=";" > + delete from db_user.tb_battgroup_usr where baoji_group_id = #{item.baojiGroupId} and uid = #{item.uid} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/BatttestdataIdMapper.xml b/src/main/resources/mapper/BatttestdataIdMapper.xml new file mode 100644 index 0000000..f958f3a --- /dev/null +++ b/src/main/resources/mapper/BatttestdataIdMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.BatttestdataIdMapper"> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/BatttestdataInfMapper.xml b/src/main/resources/mapper/BatttestdataInfMapper.xml new file mode 100644 index 0000000..e25365c --- /dev/null +++ b/src/main/resources/mapper/BatttestdataInfMapper.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.BatttestdataInfMapper"> + <resultMap id="staticTinf" type="batttestdataInf"> + <id property="num" column="num"></id> + <result property="devId" column="dev_id"></result> + <result property="testType" column="test_type"></result> + <result property="devType" column="dev_type"></result> + </resultMap> + <select id="getDevTinf" resultMap="staticTinf"> + select num,dev_id,test_type,floor(dev_id/100000000) as dev_type from db_batt_testdata.tb_batttestdata_inf + <where> + dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + <select id="getDevTinfByYear" resultMap="staticTinf"> + select num,dev_id,test_type,floor(dev_id/100000000) as dev_type from db_batt_testdata.tb_batttestdata_inf + <where> + YEAR(test_starttime)=YEAR(NOW()) + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + <select id="getDevTinfByMonth" resultMap="staticTinf"> + select num,dev_id,test_type,floor(dev_id/100000000) as dev_type from db_batt_testdata.tb_batttestdata_inf + <where> + DATE_FORMAT(test_starttime,'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m') + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + <resultMap id="staticTinfWeek" type="batttestdataInf"> + <id property="num" column="num"></id> + <result property="devId" column="dev_id"></result> + <result property="testType" column="test_type"></result> + <result property="devType" column="dev_type"></result> + <result property="weekDay" column="week_day"></result> + </resultMap> + <select id="getDevTinfByWeek" resultMap="staticTinfWeek"> + select num,dev_id,test_type,floor(dev_id/100000000) as dev_type,DATE_FORMAT(test_starttime, '%Y-%m-%d') AS week_day + from db_batt_testdata.tb_batttestdata_inf + <where> + DATE_SUB(CURDATE(), INTERVAL 6 DAY) <= DATE(test_starttime) + and floor(dev_id/100000000)=#{type} + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + <select id="getTinfById" resultType="com.whyc.pojo.db_batt_testdata.BatttestdataInf"> + select * + from db_batt_testdata.tb_batttestdata_inf + <where> + and test_type=#{type} + and dev_id=#{devId} + </where> + order by test_starttime desc + </select> +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DevInfMapper.xml b/src/main/resources/mapper/DevInfMapper.xml new file mode 100644 index 0000000..ef16f5b --- /dev/null +++ b/src/main/resources/mapper/DevInfMapper.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.DevInfMapper"> + + <select id="getAllInf" resultType="com.whyc.pojo.db_lithium_ram_db.DevInf"> + select * from db_lithium_ram_db.tb_dev_inf + <where> + dev_type=#{dto.devType} + <if test="dto.devOnline!=null"> + and dev_online=#{dto.devOnline} + </if> + <if test="dto.startTime!=null"> + and create_time>=#{dto.startTime} + </if> + <if test="dto.endTime!=null"> + and create_time<=#{dto.endTime} + </if> + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="dto.uid!=null"> + and uid=#{dto.uid} + </if> + </where> + ) + </where> + </select> + <select id="getMaxDevId" resultType="java.lang.Integer"> + select max(dev_id) from db_lithium_ram_db.tb_dev_inf + <where> + dev_type=#{devType} + </where> + limit 1 + </select> + <select id="getLine" resultType="com.whyc.pojo.db_lithium_ram_db.DevInf"> + select * from db_lithium_ram_db.tb_dev_inf + <where> + dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + + <select id="getDevType" resultType="com.whyc.pojo.db_lithium_ram_db.DevInf"> + select * from db_lithium_ram_db.tb_dev_inf + <where> + dev_type=#{devType} + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + <select id="getDevStaticByType" resultType="com.whyc.pojo.db_lithium_ram_db.DevInf"> + select * from db_lithium_ram_db.tb_dev_inf + <where> + dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="uid!=null"> + and uid=#{uid} + </if> + </where> + ) + </where> + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/DevalarmDataMapper.xml b/src/main/resources/mapper/DevalarmDataMapper.xml new file mode 100644 index 0000000..5683978 --- /dev/null +++ b/src/main/resources/mapper/DevalarmDataMapper.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.whyc.mapper.DevalarmDataMapper"> + <resultMap type="com.whyc.pojo.db_alarm.DevalarmData" id="almDev"> + <id column="num" property="num"/> + <result column="dev_id" property="devId"/> + <result column="alm_id" property="almId"/> + <result column="alm_signal_id" property="almSignalId"/> + <result column="alm_starttime" property="almStarttime"/> + <result column="alm_value" property="almValue"/> + <result column="alm_is_confirmed" property="almIsConfirmed"/> + <result column="confirmed_uid" property="confirmedUid"/> + <result column="confirmed_time" property="confirmedTime"/> + <result column="alm_endtime" property="almEndtime"/> + <result column="alm_cleared_type" property="almClearedType"/> + <!-- 瀹冩槸鐢ㄤ簬鎸囧畾浠庤〃鏂圭殑寮曠敤瀹炰綋灞炴�х殑 --> + <association property="devInf" javaType="devInf" + select="selectDinf" + column="dev_id"> + </association> + </resultMap> + + <select id="getDAlmInf" resultMap="almDev"> + select * from db_alarm.tb_devalarm_data + <where> + <if test="dto.devId!=null"> + and dev_id=#{dto.devId} + </if> + <if test="dto.devType!=null"> + and FLOOR(dev_id/100000000)=#{dto.devType} + </if> + <if test="dto.almId!=null"> + and alm_id=#{dto.almId} + </if> + <if test="dto.startTime!=null"> + and alm_starttime>=#{dto.startTime} + </if> + <if test="dto.endTime!=null"> + and alm_starttime<=#{dto.endTime} + </if> + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + <where> + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + <if test="dto.uid!=null"> + and uid=#{dto.uid} + </if> + </where> + ) + order by alm_starttime desc + </where> + </select> + <select id="selectDinf" resultType="devInf" parameterType="int" > + select * from db_lithium_ram_db.tb_dev_inf where dev_id = #{dev_id} + </select> + <select id="getDAlmPopUp" resultMap="almDev"> + select * from db_alarm.tb_devalarm_data + <where> + alm_is_confirmed=0 + and dev_id in ( + SELECT distinct dev_id from db_user.tb_battgroup_baojigroup,db_user.tb_battgroup_usr + where + tb_battgroup_baojigroup.baoji_group_id=tb_battgroup_usr.baoji_group_id + and uid=#{uid} + ) + </where> + order by alm_starttime desc + </select> + +</mapper> \ No newline at end of file -- Gitblit v1.9.1