pom.xml
@@ -320,7 +320,7 @@ <!--指定生成文档的使用的配置文件,配置文件放在自己的 目中 项 --> <configFile>./src/main/resources/smart-doc.json</configFile> <!--指定 目名称 项 --> <projectName>xxx项目-xxx服务-接口文档</projectName> <projectName>丰都气体监测项目-api服务-接口文档</projectName> <!-- <!–smart-doc 实现自动分析依赖树加载第三方 依 的源 ,如果一些框架依 加 不到 致 , 使用 赖 码 赖库 载 导 报错 这时请 excludes 排除掉–> <excludes> src/main/java/com/fengdu/gas/common/enums/EFacilityState.java
对比新文件 @@ -0,0 +1,56 @@ package com.fengdu.gas.common.enums; import java.util.Arrays; import java.util.Objects; public enum EFacilityState { NO("停止", 0), YES("运行", 1), ONE("一级报警", 2), TWO("二级报警",3) ; private String desc;//枚举描述 private Integer value;//枚举值 public Integer getValue() { return value; } public String getDesc() { return desc; } /** * 构造方法 * @param desc 枚举描述 * @param value 枚举值 */ EFacilityState(String desc, Integer value) { this.desc = desc; this.value = value; } /** * 根据值获取枚举 * * @param value 枚举值 * @return */ public static EFacilityState getByValue(Integer value) { return Arrays.stream(EFacilityState.values()) .filter(e -> Objects.equals(e.getValue(), value)) .findFirst() .orElse(null); } @Override public String toString() { return "EFacilityState{" + "desc='" + desc + '\'' + ", value=" + value + '}'; } } src/main/java/com/fengdu/gas/entity/request/alarmscheme/ReqCreateAlarmScheme.java
对比新文件 @@ -0,0 +1,58 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.entity.request.alarmscheme; import lombok.Data; import java.math.BigDecimal; /** * 报警规则配置 * @author zr */ @Data public class ReqCreateAlarmScheme { /** * 设备参数code */ private String columnsCode; /** * 参数名称 */ private String columnsShow; /** * 低报警值 */ private BigDecimal lowAlarm; /** * 高报警值 */ private BigDecimal tallAlarm; /** * 通知人员 */ private String informUser; /** * 备注 */ private String remark; } src/main/java/com/fengdu/gas/entity/request/alarmscheme/ReqModifyAlarmScheme.java
对比新文件 @@ -0,0 +1,62 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.entity.request.alarmscheme; import lombok.Data; import java.math.BigDecimal; /** * 报警规则配置 * @author zr */ @Data public class ReqModifyAlarmScheme { /** * null */ private Long id; /** * 设备参数code */ private String columnsCode; /** * 参数名称 */ private String columnsShow; /** * 低报警值 */ private BigDecimal lowAlarm; /** * 高报警值 */ private BigDecimal tallAlarm; /** * 通知人员 */ private String informUser; /** * 备注 */ private String remark; } src/main/java/com/fengdu/gas/entity/request/facilityalarmrecord/ReqCreateFacilityAlarmRecord.java
@@ -54,6 +54,16 @@ * 参数名称 */ private String columnsName; private Integer alarmType; private String columnsValue; private String minValue; private String maxValue; /** * 报警描述 */ src/main/java/com/fengdu/gas/entity/request/test/TestPayVO.java
对比新文件 @@ -0,0 +1,28 @@ package com.fengdu.gas.entity.request.test; import lombok.Data; @Data public class TestPayVO { private String service; private String mer_no; private String account_type; private String card_no; private String real_name; private String bank_code; private String id_type; private String id_no; private String notify_url; private String goods_name; private String goods_num; private String goods_price; private String goods_type; private String order_no; private String order_amount; private String order_time; private String currency; private String pay_comments; private String remark; } src/main/java/com/fengdu/gas/entity/request/waterfacility/ReqCreateWaterFacility.java
@@ -47,6 +47,10 @@ */ private Long pointId; /** * 监控点名称 */ private String pointName; /** * 是否在线 */ private Integer isOnline; src/main/java/com/fengdu/gas/entity/request/waterfacilityparameter/ReqAddParameter.java
对比新文件 @@ -0,0 +1,17 @@ package com.fengdu.gas.entity.request.waterfacilityparameter; import lombok.Data; import java.util.List; @Data public class ReqAddParameter { /** * 设备id */ private Long facilityId; /** * 参数列表 */ private List<ReqCreateWaterFacilityParameter> parameterList; } src/main/java/com/fengdu/gas/entity/response/alarm/FacilityAlarm.java
对比新文件 @@ -0,0 +1,23 @@ package com.fengdu.gas.entity.response.alarm; import lombok.Data; @Data public class FacilityAlarm { /** * 报警名称 */ private String name; /** * 最小报警值 */ private String minValue; /** * 最大报警值 */ private String maxValue; /** * 报警次数 */ private Integer count; } src/main/java/com/fengdu/gas/entity/response/facility/FacilityCount.java
对比新文件 @@ -0,0 +1,35 @@ package com.fengdu.gas.entity.response.facility; import lombok.Data; @Data public class FacilityCount { /** * 监控点id */ private Long pointId; /** * 监控点名称 */ private String pointName; /** * 甲烷传感器数量 */ private Integer methaneCount; /** * 硫化氢传感器数量 */ private Integer hyrothionCount; /** * 风机数量 */ private Integer facilityFanCount; /** * 终端设备台数 */ private Integer boxCount; /** * 总设备数量 */ private Integer sumCount; } src/main/java/com/fengdu/gas/entity/response/facility/FacilityData.java
对比新文件 @@ -0,0 +1,53 @@ package com.fengdu.gas.entity.response.facility; import lombok.Data; import java.math.BigDecimal; @Data public class FacilityData { /** * 监测点id */ private Long pointId; /** * 监测点名称名称 */ private String pointName; /** * 左边距 */ private String left; /** * 上边距 */ private String top; /** * 设备id */ private Long facilityId; /** * 设备名称 */ private String facilityName; /** * 设备状态 */ private String facilityState; /** * 设备风机状态 */ private String facilityFanState; /** * 设备甲烷值 */ private BigDecimal methaneValue; /** * 硫化氢值 */ private BigDecimal hyrothionValue; /** * 温度 */ private BigDecimal temperature; } src/main/java/com/fengdu/gas/entity/search/SearchAlarmScheme.java
对比新文件 @@ -0,0 +1,14 @@ package com.fengdu.gas.entity.search; import lombok.Data; import com.fengdu.gas.entity.dto.SearchBasicDTO; /** * 报警规则配置 * @author zr */ @Data public class SearchAlarmScheme extends SearchBasicDTO { } src/main/java/com/fengdu/gas/entity/search/SearchFacilityAlarmRecord.java
@@ -10,5 +10,8 @@ */ @Data public class SearchFacilityAlarmRecord extends SearchBasicDTO { /** *1本日 2本月 3本年 */ private Integer dateType; } src/main/java/com/fengdu/gas/host/controller/AlarmSchemeController.java
对比新文件 @@ -0,0 +1,113 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.host.controller; import com.fengdu.gas.common.ExecutedResult; import com.fengdu.gas.common.PagerResult; import com.fengdu.gas.common.util.ParameterUtil; import com.fengdu.gas.common.validator.ParameterValidateResult; import com.fengdu.gas.common.validator.ParameterValidator; import com.fengdu.gas.entity.request.ReqListId; import com.fengdu.gas.host.BasicController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import com.fengdu.gas.service.AlarmSchemeService; import com.fengdu.gas.entity.request.alarmscheme.ReqCreateAlarmScheme; import com.fengdu.gas.entity.request.alarmscheme.ReqModifyAlarmScheme; import com.fengdu.gas.entity.search.SearchAlarmScheme; import com.fengdu.gas.repository.vo.AlarmSchemeVO; /** * 9000.报警规则配置 * @author zr * @order 9000 */ @RestController @RequestMapping(value = "alarmScheme") public class AlarmSchemeController extends BasicController { @Autowired private AlarmSchemeService service; /** * 创建[报警规则配置] * @author zr */ @PostMapping(value = "create") public ExecutedResult<Long> create(@RequestBody ReqCreateAlarmScheme request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 非空 //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName()) // 限制最大长度 //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return service.create(request); } /** * 编辑[报警规则配置] * @author zr */ @PostMapping(value = "modify") public ExecutedResult<String> modify(@RequestBody ReqModifyAlarmScheme request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 必须大于0 .addGreater(ParameterUtil.named("[报警规则配置]id"), request.getId(), 0L) // 非空 //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName()) // 限制最大长度 //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return service.modify(request); } /** * 获取[报警规则配置] * @author zr */ @GetMapping(value = "get/{id}") public ExecutedResult<AlarmSchemeVO> get(@PathVariable Long id) { return service.get(id); } /** * 查询[报警规则配置] * @author zr */ @PostMapping(value = "search") public ExecutedResult<PagerResult<AlarmSchemeVO>> search(@RequestBody SearchAlarmScheme request) { return service.search(request); } } src/main/java/com/fengdu/gas/host/controller/TestInfoServiceController.java
@@ -12,6 +12,7 @@ import com.fengdu.gas.entity.request.ReqSetSort; import com.fengdu.gas.entity.request.test.ReqCreateTestInfo; import com.fengdu.gas.entity.request.test.ReqModifyTestInfo; import com.fengdu.gas.entity.request.test.TestPayVO; import com.fengdu.gas.entity.search.SearchTestInfo; import com.fengdu.gas.service.TestInfoService; import com.fengdu.gas.host.BasicController; @@ -36,222 +37,27 @@ public class TestInfoServiceController extends BasicController { @Autowired private TestInfoService service; /** * 创建[测试信息] * 测试支付信息 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "create") public ExecutedResult<Long> create(@RequestBody ReqCreateTestInfo request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 非空 .addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName()) // 限制最大长度 .addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50) // 必须大于0 .addGreater(ParameterUtil.named("用户id"), request.getUserId(), 0L) // 必须是手机号码(正则) .addMustMobile(ParameterUtil.named("电话"), request.getPhone()) // 金额大于0 .addGreaterThan(ParameterUtil.named("余额"), request.getBalance(), BigDecimal.ZERO) // 必须是枚举值 .addMustEnum(ParameterUtil.named("性别"), request.getSex(), ESex.class) // 必须是日期字符串(yyyy-MM-dd) .addMustDate(ParameterUtil.named("生日"), request.getBirthday()) // 必须大于0 .addGreater(ParameterUtil.named("排序值"), request.getSort(), 0) // 限制最大长度 .addLengthMax(ParameterUtil.named("备注"), request.getComment(), ConstantFactory.LENGTH_MAX500); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.create(request); @PostMapping(value = "pay") public ExecutedResult<String> pay() throws Exception { return this.service.testPay(); } /** * 编辑[测试信息] * 测试支付信息 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "modify") public ExecutedResult<String> modify(@RequestBody ReqModifyTestInfo request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 必须大于0 .addGreater(ParameterUtil.named("[测试信息]id"), request.getId(), 0L) // 非空 .addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName()) // 限制最大长度 .addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50) // 必须大于0 .addGreater(ParameterUtil.named("用户id"), request.getUserId(), 0L) // 必须是手机号码(正则) .addMustMobile(ParameterUtil.named("电话"), request.getPhone()) // 金额大于0 .addGreaterThan(ParameterUtil.named("余额"), request.getBalance(), BigDecimal.ZERO) // 必须是枚举值 .addMustEnum(ParameterUtil.named("性别"), request.getSex(), ESex.class) // 必须是日期字符串(yyyy-MM-dd) .addMustDate(ParameterUtil.named("生日"), request.getBirthday()) // 必须大于0 .addGreater(ParameterUtil.named("排序值"), request.getSort(), 0) // 限制最大长度 .addLengthMax(ParameterUtil.named("备注"), request.getComment(), ConstantFactory.LENGTH_MAX500); ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.modify(request); @PostMapping(value = "confirmPay") public ExecutedResult<String> confirmPay() throws Exception { return this.service.confirmPay(); } /** * 获取[测试信息] * * @author lin.liu * @date 2021/11/23 */ @GetMapping(value = "get/{id}") public ExecutedResult<TestInfoVO> get(@PathVariable Long id) { return this.service.get(id); } /** * 根据id批量获取[测试信息] * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "getList") public ExecutedResult<List<TestInfoVO>> getList(@RequestBody ReqListId request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 不能为空 .addNotNullOrEmpty(ParameterUtil.named("[测试信息]id列表"), request.getListId()) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.getList(request.getListId()); } /** * [测试信息]设置排序值 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "setSort") public ExecutedResult<String> setSort(@RequestBody ReqSetSort request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 必须大于0 .addGreater(ParameterUtil.named("[测试信息]id"), request.getId(), 0L) // 必须大于0 .addGreaterThan(ParameterUtil.named("排序值"), request.getSort(), 0) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.setSort(request); } /** * [测试信息]批量设置排序值 * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "listSetSort") ExecutedResult<String> listSetSort(ReqListSetSort request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 不能为空 .addNotNullOrEmpty(ParameterUtil.named("[测试信息]排序设置列表"), request.getList()) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.listSetSort(request); } /** * 停用[测试信息] * * @param id [测试]id * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "stop/{id}") public ExecutedResult<String> stop(@PathVariable Long id) { return this.service.stop(id); } /** * 启用[测试信息] * * @param id [测试]id * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "enable/{id}") public ExecutedResult<String> enable(@PathVariable Long id) { return this.service.enable(id); } /** * 删除[测试信息] * * @param id [测试]id * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "remove/{id}") public ExecutedResult<String> remove(@PathVariable Long id) { return this.service.remove(id); } /** * 批量删除[测试信息] * * @author lin.liu * @date 2021/11/23 */ @PostMapping(value = "removeList") public ExecutedResult<String> removeList(@RequestBody ReqListId request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 不能为空 .addNotNullOrEmpty(ParameterUtil.named("[测试信息]id列表"), request.getListId()) ; ParameterValidateResult result = validator.validate(); if (result.getIsFiled()) { return failed(result.getErrorMsg()); } //#endregion return this.service.removeList(request.getListId()); } /** * 查询[测试信息] * * @author lin.liu * @date 2021/11/23 */ @NonLogin @PostMapping(value = "search") public ExecutedResult<PagerResult<TestInfoVO>> search(@RequestBody SearchTestInfo request) { return this.service.search(request); } } src/main/java/com/fengdu/gas/host/controller/WaterFacilityParameterController.java
@@ -28,6 +28,7 @@ import com.fengdu.gas.common.validator.ParameterValidateResult; import com.fengdu.gas.common.validator.ParameterValidator; import com.fengdu.gas.entity.request.ReqListId; import com.fengdu.gas.entity.request.waterfacilityparameter.ReqAddParameter; import com.fengdu.gas.host.BasicController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -54,11 +55,12 @@ * @author zr */ @PostMapping(value = "create") public ExecutedResult<Long> create(@RequestBody ReqCreateWaterFacilityParameter request) { public ExecutedResult<String> create(@RequestBody ReqAddParameter request) { //#region 参数验证 ParameterValidator validator = new ParameterValidator() // 非空 //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName()) .addNotNullOrEmpty(ParameterUtil.named("设备id"), request.getFacilityId()) .addNotNullOrEmpty(ParameterUtil.named("参数列表"), request.getParameterList()) // 限制最大长度 //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50) ; src/main/java/com/fengdu/gas/host/controller/visualized/FacilityDataController.java
对比新文件 @@ -0,0 +1,17 @@ package com.fengdu.gas.host.controller.visualized; import com.fengdu.gas.host.BasicController; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 10000.可视化数据大屏设备管理 * @author zr * @order 10000 */ @RestController @RequestMapping(value = "facilityData") public class FacilityDataController extends BasicController { /*****************************设备管理**********************************/ } src/main/java/com/fengdu/gas/host/controller/visualized/HomeDataController.java
对比新文件 @@ -0,0 +1,58 @@ package com.fengdu.gas.host.controller.visualized; import com.fengdu.gas.common.ExecutedResult; import com.fengdu.gas.common.PagerResult; import com.fengdu.gas.common.util.ParameterUtil; import com.fengdu.gas.common.validator.ParameterValidateResult; import com.fengdu.gas.common.validator.ParameterValidator; import com.fengdu.gas.entity.request.commonparameters.ReqModifyCommonParameters; import com.fengdu.gas.entity.response.facility.FacilityCount; import com.fengdu.gas.entity.response.facility.FacilityData; import com.fengdu.gas.entity.search.SearchUserWorkOrder; import com.fengdu.gas.host.BasicController; import com.fengdu.gas.repository.vo.UserWorkOrderVO; import com.fengdu.gas.service.UserWorkOrderService; import com.fengdu.gas.service.WaterFacilityService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 10000.可视化数据大屏首页总览 * @author zr * @order 10000 */ @RestController @RequestMapping(value = "homeData") public class HomeDataController extends BasicController { @Autowired private WaterFacilityService waterFacilityService; @Autowired private UserWorkOrderService userWorkOrderService; /** * 查询设备 * @author zr */ @PostMapping(value = "getFacilityList") public ExecutedResult<List<FacilityData>> getFacilityList() { return waterFacilityService.getFacilityList(); } /** * 区域设备数量统计 * @author zr */ @PostMapping(value = "deviceCount") public ExecutedResult<List<FacilityCount>> deviceCount() { return waterFacilityService.deviceCount(); } /** * 工单统计 * @author zr */ @PostMapping(value = "workOrderList") public ExecutedResult<PagerResult<UserWorkOrderVO>> workOrderList(@ RequestBody SearchUserWorkOrder search) { return userWorkOrderService.search(search); } } src/main/java/com/fengdu/gas/host/controller/visualized/StatisticsDataController.java
对比新文件 @@ -0,0 +1,31 @@ package com.fengdu.gas.host.controller.visualized; import com.fengdu.gas.common.ExecutedResult; import com.fengdu.gas.common.PagerResult; import com.fengdu.gas.entity.response.alarm.FacilityAlarm; import com.fengdu.gas.entity.search.SearchFacilityAlarmRecord; import com.fengdu.gas.entity.search.SearchUserWorkOrder; import com.fengdu.gas.host.BasicController; import com.fengdu.gas.repository.vo.FacilityAlarmRecordVO; import com.fengdu.gas.repository.vo.UserWorkOrderVO; import com.fengdu.gas.service.FacilityAlarmRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * 10000.可视化数据大屏数据统计 * @author zr * @order 10000 */ @RestController @RequestMapping(value = "statisticsData") public class StatisticsDataController extends BasicController { @Autowired private FacilityAlarmRecordService facilityAlarmRecordService; @PostMapping(value = "getAlarmList") public ExecutedResult<List<FacilityAlarm>> getAlarmList(Integer dateType) { return facilityAlarmRecordService.getAlarmList(dateType); } } src/main/java/com/fengdu/gas/host/controller/visualized/visualizedDataController.java
文件已删除 src/main/java/com/fengdu/gas/host/mqtt/PushCallback.java
@@ -3,13 +3,17 @@ import com.fengdu.gas.common.enums.ELogger; import com.fengdu.gas.common.util.LoggerUtil; import com.fengdu.gas.common.util.SpringUtil; import com.fengdu.gas.common.util.ThreadPoolUtil; import com.fengdu.gas.service.DataUploadRecordService; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import java.nio.charset.StandardCharsets; import java.util.Objects; ; @@ -32,7 +36,8 @@ public class PushCallback implements MqttCallback { private static final Logger LOGGER_DEBUG = LoggerUtil.get(ELogger.DEBUG); private static final Logger LOGGER_ERROR = LoggerUtil.get(ELogger.SYS_ERROR); @Autowired DataUploadRecordService dataUploadService; private MQTTSubsribe mqttSubsribe; public PushCallback(MQTTSubsribe mqttSubsribe) { @@ -74,8 +79,20 @@ //这里可以针对收到的消息做处理 ThreadPoolUtil.getDefaultPool().execute(() -> { try { if (Objects.nonNull(dataUploadService)) { //调用方法 //dataUploadYwjRecordService.mqttReceived(topic, msg); dataUploadService.mqttReceived(topic, msg); } else { try { System.out.println("dataUploadService bean尚未初始化..."); dataUploadService = SpringUtil.getBean(DataUploadRecordService.class); System.out.println("dataUploadService 初始化bean成功!"); } catch (Exception ignored) {} if (Objects.nonNull(dataUploadService)) { //调用方法 dataUploadService.mqttReceived(topic, msg); } } } catch (Exception e) { LOGGER_ERROR.error("messageArrived", e); } src/main/java/com/fengdu/gas/repository/impl/AlarmSchemeMapperImpl.java
对比新文件 @@ -0,0 +1,137 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.repository.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fengdu.gas.common.PagerResult; import com.fengdu.gas.common.enums.EYesOrNo; import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.dto.*; import com.fengdu.gas.entity.enums.*; import com.fengdu.gas.repository.BasicMapperImpl; import org.springframework.stereotype.Repository; import java.util.List; import com.fengdu.gas.entity.search.SearchAlarmScheme; import com.fengdu.gas.repository.mapper.AlarmSchemeMapper; import com.fengdu.gas.repository.po.AlarmSchemePO; /** * 报警规则配置 * @author zr */ @Repository public class AlarmSchemeMapperImpl extends BasicMapperImpl<AlarmSchemePO, AlarmSchemeMapper> { AlarmSchemeMapperImpl(AlarmSchemeMapper mapper) { super(mapper); } @Override public PagerResult<AlarmSchemePO> search(SearchBasicDTO request) { // 还原查询条件真实类型 SearchAlarmScheme search = (SearchAlarmScheme)request; // 查询条件 LambdaQueryWrapper<AlarmSchemePO> queryWrapper = this.query(); // 非逻辑删除 queryWrapper.eq(AlarmSchemePO::getIsDelete, EYesOrNo.NO.getValue()); // 状态 //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, AlarmSchemePO::getStatus, search.getStatus()); // 状态列表 //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), AlarmSchemePO::getStatus, search.getListStatus()); // 数据创建时间-起始 queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, AlarmSchemePO::getCreateTime, search.getCreateTimeStart()); // 数据创建时间-截止 queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, AlarmSchemePO::getCreateTime, search.getCreateTimeEnd()); // 关键字 //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) { // queryWrapper.and(q -> // q.like(AlarmSchemePO::getName, search.getKeywords()) // .or().like(AlarmSchemePO::getPhone, search.getKeywords()) // ); //} // 排序处理 if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) { for (OrderByDTO item : search.getOrderBy()) { EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy()); // 顺序排序 if (item.getIsAsc()) { switch (orderBy) { // 主键 case ID: queryWrapper.orderByAsc(AlarmSchemePO::getId); break; // 数据创建时间 case CREATE_TIME: queryWrapper.orderByAsc(AlarmSchemePO::getCreateTime); break; // 最后更新时间 case UPDATE_TIME: queryWrapper.orderByAsc(AlarmSchemePO::getUpdateTime); break; } } else { // 倒叙排序 switch (orderBy) { // 主键 case ID: queryWrapper.orderByDesc(AlarmSchemePO::getId); break; // 数据创建时间 case CREATE_TIME: queryWrapper.orderByDesc(AlarmSchemePO::getCreateTime); break; // 最后更新时间 case UPDATE_TIME: queryWrapper.orderByDesc(AlarmSchemePO::getUpdateTime); break; } } } } else { queryWrapper.orderByDesc(AlarmSchemePO::getId); } Page<AlarmSchemePO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper); return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords()); } public Boolean add(AlarmSchemePO item) { int rowCount = super.insert(item); return rowCount == 1; } public Boolean addNotIncrement(AlarmSchemePO item) { int rowCount = super.insert(item); return rowCount == 1; } public AlarmSchemePO getById(Long id) { return super.get(id); } public List<AlarmSchemePO> getListById(List<Long> listId) { return super.getList(listId); } } src/main/java/com/fengdu/gas/repository/impl/FacilityAlarmRecordMapperImpl.java
@@ -29,6 +29,7 @@ import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.dto.*; import com.fengdu.gas.entity.enums.*; import com.fengdu.gas.entity.response.alarm.FacilityAlarm; import com.fengdu.gas.repository.BasicMapperImpl; import org.springframework.stereotype.Repository; @@ -134,4 +135,8 @@ public List<FacilityAlarmRecordPO> getListById(List<Long> listId) { return super.getList(listId); } public List<FacilityAlarm> getByDateType(String beginTime,String endTime){ return DB.getByDateType(beginTime,endTime); } } src/main/java/com/fengdu/gas/repository/impl/WaterFacilityParameterMapperImpl.java
@@ -126,7 +126,12 @@ int rowCount = super.insert(item); return rowCount == 1; } public List<WaterFacilityParameterPO> getListByFacilityId(Long facilityId) { LambdaQueryWrapper<WaterFacilityParameterPO> queryWrapper = this.query(); queryWrapper.eq(WaterFacilityParameterPO::getFacilityId,facilityId); queryWrapper.eq(WaterFacilityParameterPO::getIsDelete,EYesOrNo.NO.getValue()); return DB.selectList(queryWrapper); } public WaterFacilityParameterPO getById(Long id) { return super.get(id); } src/main/java/com/fengdu/gas/repository/mapper/AlarmSchemeMapper.java
对比新文件 @@ -0,0 +1,10 @@ package com.fengdu.gas.repository.mapper; import com.fengdu.gas.repository.BasicMapper;import com.fengdu.gas.repository.po.AlarmSchemePO; /** * 报警规则配置 mapper * @author zr */ public interface AlarmSchemeMapper extends BasicMapper<AlarmSchemePO> { } src/main/java/com/fengdu/gas/repository/mapper/FacilityAlarmRecordMapper.java
@@ -1,10 +1,19 @@ package com.fengdu.gas.repository.mapper; import com.fengdu.gas.repository.BasicMapper;import com.fengdu.gas.repository.po.FacilityAlarmRecordPO; import com.fengdu.gas.entity.response.alarm.FacilityAlarm; import com.fengdu.gas.repository.BasicMapper; import com.fengdu.gas.repository.po.FacilityAlarmRecordPO; import org.apache.ibatis.annotations.Select; import java.util.List; /** * 设备报警记录 mapper * @author zr */ public interface FacilityAlarmRecordMapper extends BasicMapper<FacilityAlarmRecordPO> { @Select("SELECT description AS NAME ,MIN(min_value) AS minValue ,MAX(max_value) AS maxValue,COUNT(id) AS count FROM facility_alarm_record \n" + "WHERE is_delete=0 AND latest_alarm_time BETWEEN #{beginTime} AND #{endTime} '\n" + "GROUP BY description\n") List<FacilityAlarm> getByDateType(String beginTime, String endTime); } src/main/java/com/fengdu/gas/repository/po/AlarmSchemePO.java
对比新文件 @@ -0,0 +1,90 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.repository.po; import lombok.Data; import com.baomidou.mybatisplus.annotation.*; import java.io.Serializable; import java.sql.Timestamp; import java.math.BigDecimal; /** * 报警规则配置 * @author zr */ @Data @TableName("alarm_scheme") public class AlarmSchemePO implements Serializable { /** * null */ private Long id; /** * 设备参数code */ @TableField(value = "columns_code") private String columnsCode; /** * 参数名称 */ @TableField(value = "columns_show") private String columnsShow; /** * 低报警值 */ @TableField(value = "low_alarm") private BigDecimal lowAlarm; /** * 高报警值 */ @TableField(value = "tall_alarm") private BigDecimal tallAlarm; /** * 通知人员 */ @TableField(value = "inform_user") private String informUser; /** * 备注 */ @TableField(value = "remark") private String remark; /** * 是否删除 */ @TableLogic @TableField(value = "is_delete") private Integer isDelete; /** * 创建时间 */ @TableField(value = "create_time") private Long createTime; /** * 修改时间 */ @TableField(value = "update_time") private Timestamp updateTime; } src/main/java/com/fengdu/gas/repository/po/FacilityAlarmRecordPO.java
@@ -61,21 +61,37 @@ @TableField(value = "facility_name") private String facilityName; /** * 报警类型(1 一级报警 2二级报警) */ @TableField(value = "alarm_type") private Integer alarmType; /** * 参数编码 */ @TableField(value = "columns_code") private String columnsCode; /** * 参数名称 * 报警值 */ @TableField(value = "columns_name") private String columnsName; /** * 参数名称 */ @TableField(value = "columns_name") @TableField(value = "columns_value") private String columnsValue; /** * 最小报警值 */ @TableField(value = "min_value") private String minValue; /** * 最大报警值 */ @TableField(value = "max_value") private String maxValue; /** * 报警描述 */ @TableField(value = "description") src/main/java/com/fengdu/gas/repository/po/UserWorkOrderPO.java
@@ -56,6 +56,16 @@ @TableField(value = "type") private Integer type; /** * 所属监测点编号 */ @TableField(value = "point_code") private String pointCode; /** * 所属设备编号 */ @TableField(value = "facility_code") private String facilityCode; /** * 内容描述 */ @TableField(value = "content") src/main/java/com/fengdu/gas/repository/po/WaterFacilityPO.java
@@ -86,6 +86,16 @@ @TableField(value = "facility_url") private String facilityUrl; /** * 设备状态 */ @TableField(value = "facility_state") private Integer facilityState; /** * 设备风机运行状态 */ @TableField(value = "facility_fan_state") private Integer facilityFanState; /** * 数据创建时间 */ @TableField(value = "create_time") src/main/java/com/fengdu/gas/repository/po/WaterMonitoryPointPO.java
@@ -61,6 +61,16 @@ @TableField(value = "remark") private String remark; /** * 左边距 */ @TableField(value = "left_margin") private String leftMargin; /** * 上边距 */ @TableField(value = "top_margin") private String topMargin; /** * 监控点图片 */ @TableField(value = "image_rul") src/main/java/com/fengdu/gas/repository/vo/AlarmSchemeVO.java
对比新文件 @@ -0,0 +1,54 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.repository.vo; import lombok.Data; import com.fengdu.gas.common.util.LocalDateTimeUtil; import com.fengdu.gas.common.util.NumericUtil; import java.util.Objects; import com.fengdu.gas.repository.po.AlarmSchemePO; /** * 报警规则配置 * @author zr */ @Data public class AlarmSchemeVO extends AlarmSchemePO implements BasicVO { @Override public String getCreateTimeView() { if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) { return LocalDateTimeUtil.toFormatString(this.getCreateTime()); } return ""; } @Override public String getUpdateTimeView() { if (Objects.isNull(this.getUpdateTime())) { return ""; } return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime()); } } src/main/java/com/fengdu/gas/repository/vo/UserWorkOrderVO.java
@@ -22,11 +22,14 @@ */ package com.fengdu.gas.repository.vo; import com.fengdu.gas.entity.enums.EExecuteType; import lombok.Data; import com.fengdu.gas.common.util.LocalDateTimeUtil; import com.fengdu.gas.common.util.NumericUtil; import java.util.Objects; import com.fengdu.gas.repository.po.UserWorkOrderPO; /** @@ -35,6 +38,8 @@ */ @Data public class UserWorkOrderVO extends UserWorkOrderPO implements BasicVO { private String pointName; private String facilityName; @Override public String getCreateTimeView() { @@ -51,4 +56,11 @@ } return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime()); } public String getExecuteStateView() { if (Objects.isNull(this.getExecuteState())) { return ""; } return EExecuteType.getByValue(this.getExecuteState()).getDesc(); } } src/main/java/com/fengdu/gas/service/AlarmSchemeService.java
对比新文件 @@ -0,0 +1,245 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.service; import com.fengdu.gas.common.*; import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.repository.vo.UserWorkOrderVO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; import com.fengdu.gas.repository.impl.AlarmSchemeMapperImpl; import com.fengdu.gas.repository.po.AlarmSchemePO; import com.fengdu.gas.entity.request.alarmscheme.ReqCreateAlarmScheme; import com.fengdu.gas.entity.request.alarmscheme.ReqModifyAlarmScheme; import com.fengdu.gas.entity.search.SearchAlarmScheme; import com.fengdu.gas.repository.vo.AlarmSchemeVO; import com.fengdu.gas.service.convert.AlarmSchemeConvert; /** * 报警规则配置 * @author zr */ @Service public class AlarmSchemeService extends BaseService { @Autowired private AlarmSchemeMapperImpl mapper; public ExecutedResult<Long> create(ReqCreateAlarmScheme request) { // 转换po AlarmSchemePO item = CopierUtil.mapTo(request, AlarmSchemePO.class); // 设置状态 //item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 item.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); // 是否删除(逻辑删除)初始值 item.setIsDelete(EYesOrNo.NO.getValue()); int rowCount = mapper.insert(item); if (rowCount != 1) { return ExecutedResult.failed("创建[报警规则配置]失败。"); } return ExecutedResult.success(item.getId()); } public ExecutedResult<String> modify(ReqModifyAlarmScheme request) { // 验证记录是否存在 ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(request.getId()); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); } // 转换po AlarmSchemePO item = AlarmSchemeConvert.INSTANCE.toModify(request); int rowCount = mapper.updateById(item); if (rowCount != 1) { return ExecutedResult.failed("编辑[报警规则配置]失败。"); } return ExecutedResult.success(); } public ExecutedResult<AlarmSchemeVO> get(Long id) { AlarmSchemeVO result = new AlarmSchemeVO(); AlarmSchemePO find = mapper.get(id); if (null != find) { // 转换vo result = AlarmSchemeConvert.INSTANCE.toVo(find); } return ExecutedResult.success(result); } // public ExecutedResult<String> stop(Long id) { // // 验证记录是否存在 // ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(id); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // AlarmSchemePO item = new AlarmSchemePO(); // item.setId(id); // item.setStatus(EState.DISABLED.getValue()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("停用[报警规则配置]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> enable(Long id) { // // 验证记录是否存在 // ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(id); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // AlarmSchemePO item = new AlarmSchemePO(); // item.setId(id); // item.setStatus(EState.NORMAL.getValue()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("启用[报警规则配置]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> setSort(ReqSetSort request) { // // 验证记录是否存在 // ExecutedResult<AlarmSchemePO> checkExists = this.check4Id(request.getId()); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // AlarmSchemePO item = new AlarmSchemePO(); // item.setId(request.getId()); // item.setSort(request.getSort()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("设置[报警规则配置]排序值失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> listSetSort(ReqListSetSort request) { // // id列表 // List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList()); // // 验证记录是否存在 // ExecutedResult<List<AlarmSchemePO>> checkExists = this.check4Id(listId); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // // List<AlarmSchemePO> listUpdate = request.getList().stream() // .map(c -> { // AlarmSchemePO item = new AlarmSchemePO(); // item.setId(c.getId()); // item.setSort(c.getSort()); // return item; // }) // .collect(Collectors.toList()); // Boolean result = mapper.modifyList(listUpdate); // if (result) { // return ExecutedResult.success(); // } // return ExecutedResult.failed("[报警规则配置]设置排序值失败"); // } // // public ExecutedResult<String> remove(Long id) { // Boolean result = mapper.deleteLogic(id); // if (BooleanUtils.isFalse(result)) { // return ExecutedResult.failed("删除[报警规则配置]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> removeList(List<Long> ids) { // Boolean result = mapper.deleteLogic(ids); // if (BooleanUtils.isFalse(result)) { // return ExecutedResult.failed("删除[报警规则配置]失败。"); // } // return ExecutedResult.success(); // } public ExecutedResult<List<AlarmSchemeVO>> getList(List<Long> listId) { List<AlarmSchemeVO> result = new ArrayList<>(); List<AlarmSchemePO> list = mapper.getList(listId); if (ListUtil.isNotNullOrEmpty(list)) { // 转换vo result = AlarmSchemeConvert.INSTANCE.toVo(list); } return ExecutedResult.success(result); } public ExecutedResult<PagerResult<AlarmSchemeVO>> search(SearchAlarmScheme search) { // 处理创建时间范围-查询参数 Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange()); if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) { search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime()); } if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) { search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime()); } PagerResult<AlarmSchemePO> pageList = mapper.search(search); List<AlarmSchemeVO> listVo = new ArrayList<>(); List<AlarmSchemePO> list = pageList.getList(); if (ListUtil.isNotNullOrEmpty(list)) { pageList.setLastId(list.get(list.size() - 1).getId()); // 转换vo listVo = AlarmSchemeConvert.INSTANCE.toVo(list); } PagerResult<AlarmSchemeVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo); result.setLastId(pageList.getLastId()); return ExecutedResult.success(result); } protected ExecutedResult<AlarmSchemePO> check4Id(Long id) { AlarmSchemePO exists = mapper.get(id); if (Objects.isNull(exists)) { return ExecutedResult.failed("[报警规则配置]不存在:" + id); } return ExecutedResult.success(exists); } protected ExecutedResult<List<AlarmSchemePO>> check4Id(List<Long> listId) { // 从数据库查找报警规则配置 List<AlarmSchemePO> list = mapper.getList(listId); if (ListUtil.isNullOrEmpty(list)) { return ExecutedResult.failed("[报警规则配置]不存在." + listId); } // 数据库找到的id列表 List<Long> listIdFind = list.stream().map(AlarmSchemePO::getId).collect(Collectors.toList()); // 数量不一致 if (listId.size() != listIdFind.size()) { // 筛选数据库不存在的报警规则配置 List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList()); if (ListUtil.isNullOrEmpty(list)) { return ExecutedResult.failed("[报警规则配置]不存在." + listIdNotFound); } } return ExecutedResult.success(list); }} src/main/java/com/fengdu/gas/service/DataUploadRecordService.java
@@ -33,6 +33,7 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import org.apache.commons.lang3.BooleanUtils; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -67,7 +68,8 @@ private DataUploadRecordMonthMapperImpl dataUploadRecordMonthMapper; @Autowired private WaterFacilityParameterMapperImpl waterFacilityParameterMapper; private static final Logger DEBUG_LOGGER = LoggerUtil.get(ELogger.DEBUG); private static final Logger ERROR_LOGGER = LoggerUtil.get(ELogger.SYS_ERROR); public ExecutedResult<Long> create(ReqCreateDataUploadRecord request) { // 转换po DataUploadRecordPO item = DataUploadRecordConvert.INSTANCE.toCreate(request); @@ -202,9 +204,31 @@ // } // return ExecutedResult.success(); // } /** * mqtt收到消息 * @param topic 主题 * @param msg 消息内容 */ public void mqttReceived(String topic, String msg) { if (StringUtil.isNullOrEmpty(topic)) { ERROR_LOGGER.error("主题不能为空"); return; } if (StringUtil.isNullOrEmpty(msg)) { ERROR_LOGGER.error("消息不能为空"); return; } if (msg.startsWith("{\"platform")) { return; } //报文解析 //添加参数报警记录 List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList(); FacilityAlarmRecordPO recordPO=new FacilityAlarmRecordPO(); } public ExecutedResult<String> dataUpload(Long startTime, Long endTime, Integer type) { List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList(); List<WaterMonitoryPointPO> pointPOList = waterMonitoryPointMapper.getList(); //获取所有设备参数 List<WaterFacilityParameterPO> parameterPOList = waterFacilityParameterMapper.getList(); src/main/java/com/fengdu/gas/service/FacilityAlarmRecordService.java
@@ -22,10 +22,13 @@ */ package com.fengdu.gas.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fengdu.gas.common.*; import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.response.alarm.FacilityAlarm; import com.fengdu.gas.repository.po.AlarmSchemePO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -50,7 +53,7 @@ public ExecutedResult<Long> create(ReqCreateFacilityAlarmRecord request) { // 转换po FacilityAlarmRecordPO item = FacilityAlarmRecordConvert.INSTANCE.toCreate(request); FacilityAlarmRecordPO item = CopierUtil.mapTo(request, FacilityAlarmRecordPO.class); // 设置状态 //item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 @@ -193,16 +196,37 @@ } return ExecutedResult.success(result); } public ExecutedResult<PagerResult<FacilityAlarmRecordVO>> search(SearchFacilityAlarmRecord search) { public ExecutedResult<List<FacilityAlarm>> getAlarmList(Integer dateType){ List<FacilityAlarm> result=new ArrayList<>(); // 处理创建时间范围-查询参数 Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange()); if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) { search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime()); if(dateType!=null&&dateType>0) { Long beginTime = 0L; Long endTime = 0L; switch (dateType) { case 1: beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayStartTime()).getTime(); endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.todayEndTime()).getTime(); break; case 2: beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekStartTime()).getTime(); endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.weekEndTime()).getTime(); break; case 3: beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthStartTime()).getTime(); endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.monthEndTime()).getTime(); break; case 4: beginTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearStartTime()).getTime(); endTime = LocalDateTimeUtil.getTimeStamp(LocalDateTimeUtils.yearEndTime()).getTime(); break; } if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) { search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime()); if (beginTime > 0&&endTime > 0) { result= mapper.getByDateType(LocalDateTimeUtil.toFormatString(beginTime),LocalDateTimeUtil.toFormatString(endTime)); } } return ExecutedResult.success(result); } public ExecutedResult<PagerResult<FacilityAlarmRecordVO>> search(SearchFacilityAlarmRecord search) { PagerResult<FacilityAlarmRecordPO> pageList = mapper.search(search); List<FacilityAlarmRecordVO> listVo = new ArrayList<>(); src/main/java/com/fengdu/gas/service/TestInfoService.java
@@ -1,5 +1,6 @@ package com.fengdu.gas.service; import com.fengdu.gas.entity.request.test.TestPayVO; import com.fengdu.gas.repository.po.TestInfoPO; import com.fengdu.gas.service.convert.TestInfoConvert; import com.fengdu.gas.common.ExecutedResult; @@ -15,10 +16,30 @@ import com.fengdu.gas.entity.search.SearchTestInfo; import com.fengdu.gas.repository.impl.TestInfoMapperImpl; import com.fengdu.gas.repository.vo.TestInfoVO; import com.google.gson.Gson; import org.apache.commons.lang3.BooleanUtils; import org.apache.http.HttpStatus; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.security.KeyStore; import java.security.NoSuchAlgorithmException; import java.security.Signature; import java.security.interfaces.RSAPrivateCrtKey; import java.util.*; import java.util.stream.Collectors; @@ -29,222 +50,237 @@ public class TestInfoService extends BaseService { @Autowired private TestInfoMapperImpl mapper; //私钥 private final static String PRIVATE_KEY=""; private final static String PASSWORD=""; public ExecutedResult<Long> create(ReqCreateTestInfo request) { // 转换po TestInfoPO item = TestInfoConvert.INSTANCE.toCreate(request); // 设置状态 item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 item.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); // 非逻辑删除 item.setIsDelete(EYesOrNo.NO.getValue()); int rowCount = mapper.insert(item); if (rowCount != 1) { return ExecutedResult.failed("创建[测试信息]失败。"); } return ExecutedResult.success(item.getId()); /** * AES256加密 * @param data * @return * @throws Exception */ public String AES256(String data) throws Exception { KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); keyGenerator.init(256); // 初始化密钥生成器,指定AES-256 SecretKey key = keyGenerator.generateKey(); Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encrypted = cipher.doFinal(data.getBytes("UTF-8")); return Base64.getEncoder().encodeToString(encrypted); } public ExecutedResult<String> modify(ReqModifyTestInfo request) { // 验证记录是否存在 ExecutedResult<TestInfoPO> checkExists = this.check4Id(request.getId()); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); /** * Base64加密 * @param data * @return */ public String Base64(String data) { String encodedString = Base64.getEncoder().encodeToString(data.getBytes()); return encodedString; } public static String getKeyAndValueStr(Map<String, String> map) { String result = ""; try { List<Map.Entry<String, String>> infoIds = new ArrayList<>(map.entrySet()); // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) Collections.sort(infoIds, Comparator.comparing(Map.Entry::getKey)); // 构造签名键值对的格式 StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> item : infoIds) { if (item.getKey() != null && item.getKey() != "") { String key = item.getKey(); String val = item.getValue(); if (!(val == "" || val == null)) { sb.append(key + "=" + val + "&"); } } } result = sb.toString().substring(0, sb.length() - 1); } catch (Exception e) { return null; } return result; } // 转换po TestInfoPO item = TestInfoConvert.INSTANCE.toModify(request); int rowCount = mapper.updateById(item); if (rowCount != 1) { return ExecutedResult.failed("编辑[测试信息]失败。"); /** * 测试支付 * @return * @throws Exception */ public ExecutedResult<String> testPay() throws Exception { CloseableHttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://test.sumpay.cn/entrance/gateway.htm"); List<BasicNameValuePair> pairList = new ArrayList<>(); Map<String, String> map = new HashMap<>(); map.put("service", "fosun.sumpay.api.orderpay.order.apply"); map.put("version","1.0"); map.put("format","JSON"); map.put("app_id",); map.put("timestamp","20250313142521"); map.put("terminal_type","api"); map.put("mer_no", "200102833852");//商户号 map.put("account_type", "01");//付款方账户类型 map.put("card_no", AES256("6217007200125513450"));//付款方账户号 map.put("real_name", AES256("尹勇"));//付款方账户名 //map.put("bank_code","");//银行代码 //map.put("id_type","1");//证件类型 //map.put("id_no",AES256(""));//证件号码 //map.put("notify_url");//商户后台通知URL map.put("goods_name", Base64("测试001"));//商品名称 map.put("goods_num", "1");//商品数量 map.put("goods_price", "0.11");//商品价格 map.put("goods_type", "1");//商品类型 map.put("order_no", "111111111111111");//订单号 map.put("order_amount", "0.11");//订单金额 map.put("order_time", "20250313142521");//订单时间 map.put("currency", "CNY");//币种 // map.put("pay_comments");//附言 //map.put("remark");//备注字段 Map<String, String> map1 = new HashMap<>(); for (Map.Entry<String, String> entry : map.entrySet()) { map1.put(entry.getKey(), entry.getValue()); } //map转换字符串&拼接并排序 String keyAndValueStr = getKeyAndValueStr(map); //签名处理 String msg = signMsg(keyAndValueStr, PRIVATE_KEY, PASSWORD, "UTF-8"); map1.put("sign_type","CERT"); map1.put("sign",msg); for(String key:map1.keySet()){ pairList.add(new BasicNameValuePair(key,map1.get(key))); } UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairList, "UTF-8"); httpPost.setEntity(entity); try { // 执行请求并获取响应 CloseableHttpResponse response = client.execute(httpPost); try { if(response.getStatusLine().getStatusCode()== HttpStatus.SC_OK){ String data=EntityUtils.toString(response.getEntity(),"UTF-8"); System.out.println(data); }else { throw new RuntimeException("接口连接失败"); } // 处理响应... } finally { response.close(); } } catch (IOException e) { e.printStackTrace(); } finally { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } return ExecutedResult.success(); } public ExecutedResult<TestInfoVO> get(Long id) { TestInfoVO result = new TestInfoVO(); TestInfoPO find = mapper.selectById(id); if (null != find) { result = TestInfoConvert.INSTANCE.toVo(find); /** * 订单支付确认接口 * @return * @throws Exception */ public ExecutedResult<String> confirmPay() throws Exception { CloseableHttpClient client = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("https://test.sumpay.cn/entrance/gateway.htm"); List<BasicNameValuePair> pairList = new ArrayList<>(); Map<String, String> map = new HashMap<>(); map.put("service", "fosun.sumpay.api.orderpay.order.apply"); map.put("version","1.0"); map.put("format","JSON"); map.put("app_id",); map.put("timestamp","20250313142521"); map.put("terminal_type","api"); map.put("mer_no", "200102833852");//商户号 map.put("order_no", "111111111111111");//订单号 map.put("serial_no", "");//入账流水号 Map<String, String> map1 = new HashMap<>(); for (Map.Entry<String, String> entry : map.entrySet()) { map1.put(entry.getKey(), entry.getValue()); } return ExecutedResult.success(result); //map转换字符串&拼接并排序 String keyAndValueStr = getKeyAndValueStr(map); //签名处理 String msg = signMsg(keyAndValueStr, PRIVATE_KEY, PASSWORD, "UTF-8"); map1.put("sign_type","CERT"); map1.put("sign",msg); for(String key:map1.keySet()){ pairList.add(new BasicNameValuePair(key,map1.get(key))); } public ExecutedResult<String> stop(Long id) { // 验证记录是否存在 ExecutedResult<TestInfoPO> checkExists = this.check4Id(id); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairList, "UTF-8"); httpPost.setEntity(entity); try { // 执行请求并获取响应 CloseableHttpResponse response = client.execute(httpPost); try { if(response.getStatusLine().getStatusCode()== HttpStatus.SC_OK){ String data=EntityUtils.toString(response.getEntity(),"UTF-8"); System.out.println(data); }else { throw new RuntimeException("接口连接失败"); } TestInfoPO item = new TestInfoPO(); item.setId(id); item.setStatus(EState.DISABLED.getValue()); int rowCount = mapper.updateById(item); if (rowCount != 1) { return ExecutedResult.failed("停用[测试信息]失败。"); // 处理响应... } finally { response.close(); } } catch (IOException e) { e.printStackTrace(); } finally { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } return ExecutedResult.success(); } public ExecutedResult<String> enable(Long id) { // 验证记录是否存在 ExecutedResult<TestInfoPO> checkExists = this.check4Id(id); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); /** * 签名处理 * @param privateKeyPath:私钥 * @param plaintext:原始字符串 * @param passWord:证书密码 * @param charset :UTF-8 * @return */ public String signMsg(String plaintext, String privateKeyPath, String passWord, String charset) { try { InputStream keyFile = new FileInputStream(new File(privateKeyPath)); KeyStore ks = KeyStore.getInstance("PKCS12"); try { ks.load(keyFile, passWord.toCharArray()); } catch (Throwable ex) { if (keyFile != null) keyFile.close(); throw new RuntimeException("加载私钥失败",ex); } TestInfoPO item = new TestInfoPO(); item.setId(id); item.setStatus(EState.NORMAL.getValue()); int rowCount = mapper.updateById(item); if (rowCount != 1) { return ExecutedResult.failed("启用[测试信息]失败。"); } return ExecutedResult.success(); } public ExecutedResult<String> setSort(ReqSetSort request) { // 验证记录是否存在 ExecutedResult<TestInfoPO> checkExists = this.check4Id(request.getId()); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); } TestInfoPO item = new TestInfoPO(); item.setId(request.getId()); item.setSort(request.getSort()); int rowCount = mapper.updateById(item); if (rowCount != 1) { return ExecutedResult.failed("[测试信息]设置排序值失败。"); } return ExecutedResult.success(); } public ExecutedResult<String> listSetSort(ReqListSetSort request) { // id列表 List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList()); // 验证记录是否存在 ExecutedResult<List<TestInfoPO>> checkExists = this.check4Id(listId); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); } List<TestInfoPO> listUpdate = request.getList().stream() .map(c -> { TestInfoPO item = new TestInfoPO(); item.setId(c.getId()); item.setSort(c.getSort()); return item; }) .collect(Collectors.toList()); Boolean result = mapper.modifyList(listUpdate); if (result) { return ExecutedResult.success(); } return ExecutedResult.failed("[测试信息]设置排序值失败"); } public ExecutedResult<String> remove(Long id) { // 验证记录是否存在 ExecutedResult<TestInfoPO> checkExists = this.check4Id(id); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); } Boolean result = mapper.deleteLogic(id); if (BooleanUtils.isFalse(result)) { return ExecutedResult.failed("删除[测试信息]失败。"); } return ExecutedResult.success(); } public ExecutedResult<String> removeList(List<Long> listId) { // 验证记录是否存在 ExecutedResult<List<TestInfoPO>> checkExists = this.check4Id(listId); if (checkExists.isFailed()) { return ExecutedResult.failed(checkExists.getMsg()); } Boolean result = mapper.deleteLogic(listId); if (BooleanUtils.isFalse(result)) { return ExecutedResult.failed("删除[测试信息]失败。"); } return ExecutedResult.success(); } public ExecutedResult<List<TestInfoVO>> getList(List<Long> listId) { List<TestInfoVO> result = new ArrayList<>(); List<TestInfoPO> list = mapper.getList(listId); if (ListUtil.isNotNullOrEmpty(list)) { result = CopierUtil.mapTo(list, TestInfoVO.class); } return ExecutedResult.success(result); } public ExecutedResult<PagerResult<TestInfoVO>> search(SearchTestInfo search) { // 处理创建时间范围-查询参数 Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange()); if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) { search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime()); } if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) { search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime()); } PagerResult<TestInfoPO> pageList = mapper.search(search); List<TestInfoVO> listVo = new ArrayList<>(); List<TestInfoPO> list = pageList.getList(); if (ListUtil.isNotNullOrEmpty(list)) { pageList.setLastId(list.get(list.size() - 1).getId()); // 转换vo listVo = TestInfoConvert.INSTANCE.toVo(list); } PagerResult<TestInfoVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo); result.setLastId(pageList.getLastId()); return ExecutedResult.success(result); } protected ExecutedResult<TestInfoPO> check4Id(Long id) { TestInfoPO exists = mapper.get(id); if (Objects.isNull(exists)) { return ExecutedResult.failed("[测试信息]不存在:" + id); } return ExecutedResult.success(exists); } protected ExecutedResult<List<TestInfoPO>> check4Id(List<Long> listId) { // 从数据库查找测试信息 List<TestInfoPO> list = mapper.getList(listId); if (ListUtil.isNullOrEmpty(list)) { return ExecutedResult.failed("[测试信息]不存在." + listId); } // 数据库找到的id列表 List<Long> listIdFind = list.stream().map(TestInfoPO::getId).collect(Collectors.toList()); // 数量不一致 if (listId.size() != listIdFind.size()) { // 筛选数据库不存在的测试信息 List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList()); if (ListUtil.isNullOrEmpty(list)) { return ExecutedResult.failed("[测试信息]不存在." + listIdNotFound); Enumeration<String> myEnum = ks.aliases(); String keyAlias = null; RSAPrivateCrtKey prikey = null; /* IBM JDK必须使用While循环取最后一个别名,才能得到个人私钥别名 */ while (myEnum.hasMoreElements()) { keyAlias = myEnum.nextElement(); if (ks.isKeyEntry(keyAlias)) { prikey = (RSAPrivateCrtKey) ks.getKey(keyAlias, passWord.toCharArray()); break; } } return ExecutedResult.success(list); if (prikey == null) { throw new RuntimeException("没有找到匹配私钥"); } else { Signature sign = Signature.getInstance("SHA256withRSA"); sign.initSign(prikey); sign.update(plaintext.getBytes(charset)); return org.apache.commons.codec.binary.Base64.encodeBase64String(sign.sign()); } protected Map<Long, TestInfoPO> getMap4Id(List<Long> listId) { List<TestInfoPO> list = mapper.getList(listId); if (ListUtil.isNullOrEmpty(list)) { return new HashMap<>(0); } catch (RuntimeException e) { throw e; } catch (Throwable e) { throw new RuntimeException("签名失败",e); } return list.stream().collect(Collectors.toMap(TestInfoPO::getId, c -> c)); } } src/main/java/com/fengdu/gas/service/UserWorkOrderService.java
@@ -26,6 +26,8 @@ import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.repository.impl.WaterFacilityMapperImpl; import com.fengdu.gas.repository.po.WaterFacilityPO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,6 +49,8 @@ public class UserWorkOrderService extends BaseService { @Autowired private UserWorkOrderMapperImpl mapper; @Autowired private WaterFacilityMapperImpl waterFacilityMapper; public ExecutedResult<Long> create(ReqCreateUserWorkOrder request) { // 转换po @@ -210,7 +214,15 @@ if (ListUtil.isNotNullOrEmpty(list)) { pageList.setLastId(list.get(list.size() - 1).getId()); // 转换vo listVo = UserWorkOrderConvert.INSTANCE.toVo(list); listVo = CopierUtil.mapTo(list, UserWorkOrderVO.class); List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList(); for(UserWorkOrderVO vo:listVo){ WaterFacilityPO waterFacilityPO = facilityPOList.stream().filter(item -> item.getFacilityCode().equals(vo.getFacilityCode())).findFirst().orElse(null); if(Objects.nonNull(waterFacilityPO)){ vo.setPointName(waterFacilityPO.getPointName()); vo.setFacilityName(waterFacilityPO.getFacilityName()); } } } PagerResult<UserWorkOrderVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo); result.setLastId(pageList.getLastId()); src/main/java/com/fengdu/gas/service/WaterFacilityParameterService.java
@@ -26,6 +26,9 @@ import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.request.waterfacilityparameter.ReqAddParameter; import com.fengdu.gas.repository.impl.WaterFacilityMapperImpl; import com.fengdu.gas.repository.po.WaterFacilityPO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,22 +50,34 @@ public class WaterFacilityParameterService extends BaseService { @Autowired private WaterFacilityParameterMapperImpl mapper; @Autowired private WaterFacilityMapperImpl waterFacilityMapper; public ExecutedResult<Long> create(ReqCreateWaterFacilityParameter request) { // 转换po WaterFacilityParameterPO item = WaterFacilityParameterConvert.INSTANCE.toCreate(request); // 设置状态 //item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 item.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); // 是否删除(逻辑删除)初始值 item.setIsDelete(EYesOrNo.NO.getValue()); int rowCount = mapper.insert(item); if (rowCount != 1) { return ExecutedResult.failed("创建[设备设定参数]失败。"); public ExecutedResult<String> create(ReqAddParameter request) { WaterFacilityPO facilityPO = waterFacilityMapper.get(request.getFacilityId()); if (Objects.isNull(facilityPO)) { return ExecutedResult.failed("所属设备[id=" + request.getFacilityId() + "]不存在。"); } return ExecutedResult.success(item.getId()); List<WaterFacilityParameterPO> list = mapper.getListByFacilityId(request.getFacilityId()); if (ListUtil.isNotNullOrEmpty(request.getParameterList())) { for (ReqCreateWaterFacilityParameter x : request.getParameterList()) { WaterFacilityParameterPO parameterPO = list.stream().filter(item -> item.getFacilityId().equals(request.getFacilityId()) && item.getColumnsCode().equals(x.getColumnsCode())).findFirst().orElse(null); if(Objects.isNull(parameterPO)) { WaterFacilityParameterPO item = new WaterFacilityParameterPO(); item.setId(SnowFlakeUtil.getId()); item.setFacilityId(facilityPO.getId()); item.setFacilityCode(facilityPO.getFacilityCode()); item.setCreateTime(LocalDateTimeUtil.nowTimeStamp()); item.setColumnsUnits(x.getColumnsUnits()); item.setColumnsCode(x.getColumnsCode()); item.setColumnsShow(x.getColumnsShow()); item.setColumnValue(""); item.setLastTime(""); this.mapper.insert(item); } } } return ExecutedResult.success("添加成功"); } public ExecutedResult<String> modify(ReqModifyWaterFacilityParameter request) { src/main/java/com/fengdu/gas/service/WaterFacilityService.java
@@ -26,11 +26,21 @@ import com.fengdu.gas.common.enums.*; import com.fengdu.gas.common.model.Tuple; import com.fengdu.gas.common.util.*; import com.fengdu.gas.entity.response.facility.FacilityCount; import com.fengdu.gas.entity.response.facility.FacilityData; import com.fengdu.gas.repository.impl.WaterFacilityParameterMapperImpl; import com.fengdu.gas.repository.impl.WaterMonitoryPointMapperImpl; import com.fengdu.gas.repository.po.WaterFacilityParameterPO; import com.fengdu.gas.repository.po.WaterMonitoryPointPO; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; import java.util.stream.Stream; import com.fengdu.gas.repository.impl.WaterFacilityMapperImpl; import com.fengdu.gas.repository.po.WaterFacilityPO; import com.fengdu.gas.entity.request.waterfacility.ReqCreateWaterFacility; @@ -47,10 +57,14 @@ public class WaterFacilityService extends BaseService { @Autowired private WaterFacilityMapperImpl mapper; @Autowired private WaterFacilityParameterMapperImpl waterFacilityParameterMapper; @Autowired private WaterMonitoryPointMapperImpl waterMonitoryPointMapper; public ExecutedResult<Long> create(ReqCreateWaterFacility request) { // 转换po WaterFacilityPO item = WaterFacilityConvert.INSTANCE.toCreate(request); WaterFacilityPO item = CopierUtil.mapTo(request, WaterFacilityPO.class); // 设置状态 //item.setStatus(EState.NORMAL.getValue()); // 设置记录创建时间 @@ -92,96 +106,63 @@ return ExecutedResult.success(result); } // public ExecutedResult<String> stop(Long id) { // // 验证记录是否存在 // ExecutedResult<WaterFacilityPO> checkExists = this.check4Id(id); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // WaterFacilityPO item = new WaterFacilityPO(); // item.setId(id); // item.setStatus(EState.DISABLED.getValue()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("停用[设备信息]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> enable(Long id) { // // 验证记录是否存在 // ExecutedResult<WaterFacilityPO> checkExists = this.check4Id(id); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // WaterFacilityPO item = new WaterFacilityPO(); // item.setId(id); // item.setStatus(EState.NORMAL.getValue()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("启用[设备信息]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> setSort(ReqSetSort request) { // // 验证记录是否存在 // ExecutedResult<WaterFacilityPO> checkExists = this.check4Id(request.getId()); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // WaterFacilityPO item = new WaterFacilityPO(); // item.setId(request.getId()); // item.setSort(request.getSort()); // // int rowCount = mapper.updateById(item); // if (rowCount != 1) { // return ExecutedResult.failed("设置[设备信息]排序值失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> listSetSort(ReqListSetSort request) { // // id列表 // List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList()); // // 验证记录是否存在 // ExecutedResult<List<WaterFacilityPO>> checkExists = this.check4Id(listId); // if (checkExists.isFailed()) { // return ExecutedResult.failed(checkExists.getMsg()); // } // // List<WaterFacilityPO> listUpdate = request.getList().stream() // .map(c -> { // WaterFacilityPO item = new WaterFacilityPO(); // item.setId(c.getId()); // item.setSort(c.getSort()); // return item; // }) // .collect(Collectors.toList()); // Boolean result = mapper.modifyList(listUpdate); // if (result) { // return ExecutedResult.success(); // } // return ExecutedResult.failed("[设备信息]设置排序值失败"); // } // // public ExecutedResult<String> remove(Long id) { // Boolean result = mapper.deleteLogic(id); // if (BooleanUtils.isFalse(result)) { // return ExecutedResult.failed("删除[设备信息]失败。"); // } // return ExecutedResult.success(); // } // // public ExecutedResult<String> removeList(List<Long> ids) { // Boolean result = mapper.deleteLogic(ids); // if (BooleanUtils.isFalse(result)) { // return ExecutedResult.failed("删除[设备信息]失败。"); // } // return ExecutedResult.success(); // } public ExecutedResult<List<FacilityData>> getFacilityList() { List<FacilityData> result = new ArrayList<>(); List<WaterMonitoryPointPO> pointPOList = waterMonitoryPointMapper.getList(); List<WaterFacilityPO> facilityPOList = mapper.getList(); List<WaterFacilityParameterPO> parameterPOList = waterFacilityParameterMapper.getList(); for (WaterFacilityPO facilityPO : facilityPOList) { WaterMonitoryPointPO pointPO = pointPOList.stream().filter(item -> item.getId().equals(facilityPO.getPointId())).findFirst().orElse(null); FacilityData data = new FacilityData(); data.setPointId(facilityPO.getPointId()); data.setPointName(facilityPO.getPointName()); data.setLeft(pointPO.getLeftMargin()); data.setTop(pointPO.getTopMargin()); data.setFacilityId(facilityPO.getId()); data.setFacilityName(facilityPO.getFacilityName()); data.setFacilityState(EFacilityState.getByValue(facilityPO.getFacilityState()).getDesc()); data.setFacilityFanState(EFacilityState.getByValue(facilityPO.getFacilityFanState()).getDesc()); List<WaterFacilityParameterPO> poList = parameterPOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId())).collect(Collectors.toList()); if (ListUtil.isNotNullOrEmpty(poList)) { //获取甲烷值 String methaneValue = poList.stream().filter(item -> item.getColumnsCode().equals("JW001")).map(WaterFacilityParameterPO::getColumnValue).findFirst().orElse(null); //获取硫化氢值 String hyrothionValue = poList.stream().filter(item -> item.getColumnsCode().equals("LHQ001")).map(WaterFacilityParameterPO::getColumnValue).findFirst().orElse(null); //获取温度 String temperature = poList.stream().filter(item -> item.getColumnsCode().equals("WD001")).map(WaterFacilityParameterPO::getColumnValue).findFirst().orElse(null); if (StringUtil.isNotNullOrEmpty(methaneValue)) data.setMethaneValue(new BigDecimal(methaneValue)); if (StringUtil.isNotNullOrEmpty(hyrothionValue)) data.setHyrothionValue(new BigDecimal(hyrothionValue)); if (StringUtil.isNotNullOrEmpty(temperature)) data.setTemperature(new BigDecimal(temperature)); } result.add(data); } return ExecutedResult.success(result); } public ExecutedResult<List<FacilityCount>> deviceCount(){ List<FacilityCount> result = new ArrayList<>(); List<WaterMonitoryPointPO> pointPOList = waterMonitoryPointMapper.getList(); List<WaterFacilityPO> facilityPOList = mapper.getList(); for(WaterMonitoryPointPO po:pointPOList){ List<WaterFacilityPO> collect = facilityPOList.stream().filter(item -> item.getPointId().equals(po.getId())).collect(Collectors.toList()); if(ListUtil.isNotNullOrEmpty(collect)&&collect.size()>0){ FacilityCount count=new FacilityCount(); count.setPointId(po.getId()); count.setPointName(po.getPointName()); count.setFacilityFanCount(collect.size()); count.setMethaneCount(collect.size()); count.setHyrothionCount(collect.size()); count.setBoxCount(collect.size()); int i = count.getFacilityFanCount() + count.getMethaneCount() + count.getHyrothionCount() + count.getBoxCount(); count.setSumCount( i); result.add(count); } } return ExecutedResult.success(result); } public ExecutedResult<List<WaterFacilityVO>> getList(List<Long> listId) { List<WaterFacilityVO> result = new ArrayList<>(); @@ -224,6 +205,7 @@ } return ExecutedResult.success(exists); } protected ExecutedResult<List<WaterFacilityPO>> check4Id(List<Long> listId) { // 从数据库查找设备信息 List<WaterFacilityPO> list = mapper.getList(listId); @@ -241,4 +223,5 @@ } } return ExecutedResult.success(list); }} } } src/main/java/com/fengdu/gas/service/convert/AlarmSchemeConvert.java
对比新文件 @@ -0,0 +1,48 @@ /** # __----~~~~~~~~~~~------___ # . . ~~//====...... __--~ ~~ # -. \_|// |||\\ ~~~~~~::::... /~ # ___-==_ _-~o~ \/ ||| \\ _/~~- # __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ # _-~~ .=~ | \\-_ '-~7 /- / || \ / # .~ .~ | \\ -_ / /- / || \ / # / ____ / | \\ ~-_/ /|- _/ .|| \ / # |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ # ' ~-| /| |-~\~~ __--~~ # |-~~-_/ | | ~\_ _-~ /\ # / \ \__ \/~ \__ # _--~ _/ | .-~~____--~-/ ~~==. # ((->/~ '.|||' -_| ~~-/ , . _|| # -_ ~\ ~~---l__i__i__i--~~_/ # _-~-__ ~) \--______________--~~ # //.-~~~-~_--~- |-------~~~~~~~~ # //.-~~~--\ # 神兽保佑 # 永无BUG! */ package com.fengdu.gas.service.convert; import com.fengdu.gas.entity.request.alarmscheme.ReqCreateAlarmScheme; import com.fengdu.gas.entity.request.alarmscheme.ReqModifyAlarmScheme; import com.fengdu.gas.repository.po.AlarmSchemePO; import com.fengdu.gas.repository.vo.AlarmSchemeVO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.List; /** * 报警规则配置 * @author {#=author} */ @Mapper public interface AlarmSchemeConvert { AlarmSchemeConvert INSTANCE = Mappers.getMapper(AlarmSchemeConvert.class); AlarmSchemePO toCreate(ReqCreateAlarmScheme request); AlarmSchemePO toModify(ReqModifyAlarmScheme request); AlarmSchemeVO toVo(AlarmSchemePO item); List<AlarmSchemeVO> toVo(List<AlarmSchemePO> list); } src/main/resources/application-dev.yml
@@ -44,10 +44,10 @@ # mybatis-plus 配置: #mybatis-plus: # configuration: # ### 开启打印sql配置 # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mybatis-plus: configuration: ### 开启打印sql配置 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mqtt: # 是否启用 src/main/resources/application-prod.yml
src/test/java/com/fengdu/gas/GenCodeGauss.java
@@ -243,7 +243,7 @@ * 只生成以下配置的表 */ private static final List<String> ONLY_TABLES = Arrays.asList( "data_upload_record","data_upload_record_day","data_upload_record_hour","data_upload_record_month" "alarm_scheme" ); public static void main(String[] args) {