diff --git a/hzims-biz-common/pom.xml b/hzims-biz-common/pom.xml index f1d1274..4908ce6 100644 --- a/hzims-biz-common/pom.xml +++ b/hzims-biz-common/pom.xml @@ -44,6 +44,10 @@ org.springblade blade-starter-datascope + + com.hikvision.ga + artemis-http-client + diff --git a/hzims-biz-common/src/main/java/com/hnac/hzims/common/utils/HiKUtil.java b/hzims-biz-common/src/main/java/com/hnac/hzims/common/utils/HiKUtil.java new file mode 100644 index 0000000..7481619 --- /dev/null +++ b/hzims-biz-common/src/main/java/com/hnac/hzims/common/utils/HiKUtil.java @@ -0,0 +1,72 @@ +package com.hnac.hzims.common.utils; + +import com.alibaba.druid.support.json.JSONUtils; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.databind.JsonNode; +import com.hikvision.artemis.sdk.ArtemisHttpUtil; +import com.hikvision.artemis.sdk.config.ArtemisConfig; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.RequestBody; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.log.logger.BladeLogger; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.server.domain.Sys; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.Assert; + +import java.text.DateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +/** + * @Author: huangxing + * @Date: 2024/1/10 14:40 + */ +public class HiKUtil { + + public static String APP_KEY = "26486442"; + public static String APP_SECRET = "tXBM9jsMqeM9yvEMS8qg"; + public static String HOST = "140.210.208.111:443"; + + public static String send(String api, Map map) { + ArtemisConfig.host = HOST; + ArtemisConfig.appKey = APP_KEY; + ArtemisConfig.appSecret = APP_SECRET; + + final String url = "/artemis" + api; + Map path = new HashMap(2){{ + put("https://", url); + }}; + String contentType = "application/json"; + String body = JSON.toJSONString(map); + String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null); + JSONObject object = JsonUtil.parse(result, JSONObject.class); + return object.getString("data"); + } + + public static String send(String api, Map map, String host,String appKey,String appSecret) { + ArtemisConfig.host = host; + ArtemisConfig.appKey = appKey; + ArtemisConfig.appSecret = appSecret; + + final String url = "/artemis" + api; + Map path = new HashMap(2){{ + put("https://", url); + }}; + String contentType = "application/json"; + String body = JSON.toJSONString(map); + String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null); + JSONObject object = JsonUtil.parse(result, JSONObject.class); + return object.getString("data"); + } + +} diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/constants/AbnormalAlarmConstant.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/constants/AlarmHandleConstant.java similarity index 93% rename from hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/constants/AbnormalAlarmConstant.java rename to hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/constants/AlarmHandleConstant.java index 3bf7e4f..8804bc0 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/constants/AbnormalAlarmConstant.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/constants/AlarmHandleConstant.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.operational.alert.constants; +package com.hnac.hzims.alarm.constants; import java.util.Arrays; import java.util.List; @@ -6,7 +6,7 @@ import java.util.List; /** * @author YSJ */ -public interface AbnormalAlarmConstant { +public interface AlarmHandleConstant { List INTERRUPT_LIST = Arrays.asList("13","14"); diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleDetailEntity.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleDetailEntity.java similarity index 94% rename from hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleDetailEntity.java rename to hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleDetailEntity.java index 0307998..5f68cad 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleDetailEntity.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleDetailEntity.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.operational.alert.entity; +package com.hnac.hzims.alarm.entity; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleEntity.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleEntity.java similarity index 95% rename from hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleEntity.java rename to hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleEntity.java index 1fc22fc..23e6a46 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/entity/AlarmHandleEntity.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/entity/AlarmHandleEntity.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.operational.alert.entity; +package com.hnac.hzims.alarm.entity; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/vo/AlarmHandleVo.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/vo/AlarmHandleVo.java similarity index 91% rename from hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/vo/AlarmHandleVo.java rename to hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/vo/AlarmHandleVo.java index b0e5fa4..85f2e35 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/alert/vo/AlarmHandleVo.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/vo/AlarmHandleVo.java @@ -1,8 +1,8 @@ -package com.hnac.hzims.operational.alert.vo; +package com.hnac.hzims.alarm.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.NullSerializer; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; +import com.hnac.hzims.alarm.entity.AlarmHandleEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; diff --git a/hzims-service-api/hzims-operational-api/pom.xml b/hzims-service-api/hzims-operational-api/pom.xml index 4d40f42..4dc32e8 100644 --- a/hzims-service-api/hzims-operational-api/pom.xml +++ b/hzims-service-api/hzims-operational-api/pom.xml @@ -67,6 +67,12 @@ com.hnac.hzims middle-api + + cn.afterturn + easypoi-base + 4.4.0 + compile + diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessStatisticsEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessStatisticsEntity.java index 8609df3..273e5e1 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessStatisticsEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessStatisticsEntity.java @@ -35,6 +35,20 @@ public class OperAccessStatisticsEntity extends TenantEntity { /** * 任务ID */ + @ApiModelProperty(value = "设备编号") + @JsonSerialize(nullsUsing = NullSerializer.class) + private String emCode; + + /** + * 任务ID + */ + @ApiModelProperty(value = "设备名称") + @JsonSerialize(nullsUsing = NullSerializer.class) + private String emName; + + /** + * 任务ID + */ @ApiModelProperty(value = "任务ID") @JsonSerialize(nullsUsing = NullSerializer.class) private Long taskId; @@ -59,6 +73,13 @@ public class OperAccessStatisticsEntity extends TenantEntity { private Date planEndTime; /** + * 实际工时 + */ + @ApiModelProperty(value = "计划工时") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer planHours; + + /** * 实际开始时间 */ @ApiModelProperty(value = "实际开始时间") diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java index bbeb2a7..f9f6054 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperAccessTaskEntity.java @@ -79,6 +79,12 @@ public class OperAccessTaskEntity extends TenantEntity { private Date planEndTime; /** + * 计划结束时间 + */ + @ApiModelProperty(value = "计划工时") + private Integer planHours; + + /** * 实际开始时间 */ @ApiModelProperty(value = "实际开始时间") diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java index b164315..8c138e0 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/entity/OperConstructionEntity.java @@ -28,14 +28,14 @@ public class OperConstructionEntity extends TenantEntity { private String code; @ApiModelProperty(value = "检修名称") - private String constructionTime; - - @ApiModelProperty(value = "检修名称") private String overhaulName; @ApiModelProperty(value = "施工地点") private String constructionLocation; + @ApiModelProperty(value = "施工时间") + private Date constructionTime; + @ApiModelProperty(value = "检修负责人") @JsonSerialize(nullsUsing = NullSerializer.class) private Long overhaulHead; diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java index e7244ad..8c1ee5c 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/access/vo/ConstructionVo.java @@ -1,10 +1,14 @@ package com.hnac.hzims.operational.access.vo; +import cn.afterturn.easypoi.entity.ImageEntity; import com.hnac.hzims.operational.access.entity.OperConstructionEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.awt.image.BufferedImage; +import java.io.File; + /** * @author ysj */ @@ -17,4 +21,20 @@ public class ConstructionVo extends OperConstructionEntity { @ApiModelProperty(value = "结束时间") private String endTime; + + @ApiModelProperty(value = "年") + private String year; + + @ApiModelProperty(value = "月") + private String mon; + + @ApiModelProperty(value = "日") + private String day; + + @ApiModelProperty(value = "图片1") + private ImageEntity constructionImg1; + + @ApiModelProperty(value = "图片2") + private ImageEntity constructionImg2; + } diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyGroupMemberVo.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyGroupMemberVo.java new file mode 100644 index 0000000..04c6fda --- /dev/null +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyGroupMemberVo.java @@ -0,0 +1,25 @@ +package com.hnac.hzims.operational.duty.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author ysj + */ +@Data +public class DutyGroupMemberVo { + + @ApiModelProperty(value = "班组Id") + private String groupId; + + @ApiModelProperty(value = "班组名称") + private String groupName; + + @ApiModelProperty(value = "机构Id") + private Long createDept; + + @ApiModelProperty(value = "班组成员对象") + private List member; +} diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyMemberVO.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyMemberVO.java new file mode 100644 index 0000000..90395ac --- /dev/null +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/DutyMemberVO.java @@ -0,0 +1,21 @@ +package com.hnac.hzims.operational.duty.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author ysj + */ +@Data +public class DutyMemberVO { + + @ApiModelProperty(value = "班组人员Id") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Long personId; + + @ApiModelProperty(value = "班组人员名称") + private String personName; + +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/constants/RedisConstants.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/constants/RedisConstants.java new file mode 100644 index 0000000..bcbf815 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/constants/RedisConstants.java @@ -0,0 +1,6 @@ +package com.hnac.hzims.safeproduct.constants; + +public interface RedisConstants { + /**安全工器具提醒记录**/ + String TOOLS_REMIND_MSG = "200000:hzims:safeproduct:tools:remind"; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckRecordDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckRecordDTO.java new file mode 100644 index 0000000..0eac4c5 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckRecordDTO.java @@ -0,0 +1,46 @@ +package com.hnac.hzims.safeproduct.dto; + +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; + +/** + * @author liwen + * @date 2024-01-09 + */ +@Data +@ApiModel(value = "车检记录DTO类") +public class CarCheckRecordDTO { + + @ApiModelProperty("车检记录id") + private Long id; + + @ApiModelProperty("车辆id") + private Long carId; + + @NotNull + @Size(max = 50, message = "检查人长度不能超过50") + @ApiModelProperty("检查人") + private String checker; + + @NotNull + @ApiModelProperty("检查时间") + private Date checkTime; + + @NotNull + @ApiModelProperty("检查结论") + private String conclusion; + + @Size(max = 500, message = "填报备注长度不能超过50") + @ApiModelProperty("填报备注") + private String remark; + + @ApiModelProperty("检查项列表") + List itemList; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java index 313ecc5..9bfbcf7 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarMaintenanceConfirmationDTO.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; import java.util.Date; /** @@ -14,12 +16,19 @@ import java.util.Date; @ApiModel(value = "车辆维保记录确认DTO类") public class CarMaintenanceConfirmationDTO { + @NotNull @ApiModelProperty("车辆维保记录id") private Long carMaintenanceId; + @NotNull @ApiModelProperty("车辆管理人意见") private String managerAdvice; - @ApiModelProperty("确认时间") - private Date confirmationTime; + @NotNull + @ApiModelProperty("下次维保时间") + private Date maintenanceNextTime; + + @NotNull + @ApiModelProperty("维保里程") + private BigDecimal maintenanceMileage; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java index 47a8df7..acabb4e 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarUsedRecordConfirmationDTO.java @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.Date; +import javax.validation.constraints.NotNull; /** * @author liwen @@ -14,9 +14,7 @@ import java.util.Date; @ApiModel(value = "用车记录确认DTO类") public class CarUsedRecordConfirmationDTO { + @NotNull @ApiModelProperty("用车记录id") private Long carUsedRecordId; - - @ApiModelProperty("确认时间") - private Date confirmationTime; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java index 9332d2f..d4c074f 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/HygienePlanDTO.java @@ -21,8 +21,11 @@ import java.util.List; @ApiModel(value = "卫生自查计划DTO类") public class HygienePlanDTO extends BaseEntity { - @ApiModelProperty("编码") - private String code; + @ApiModelProperty("卫生自查计划id") + private Long id; + + @ApiModelProperty("计划名称") + private String name; @ApiModelProperty("标准总分值") private Integer standardScore; diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java index 21dd74b..3461c52 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckItemEntity.java @@ -1,5 +1,6 @@ package com.hnac.hzims.safeproduct.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -7,6 +8,9 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + /** * @author liwen * @date 2024-01-05 @@ -20,9 +24,16 @@ public class CarCheckItemEntity extends BaseEntity { @ApiModelProperty("车检记录id") private Long carCheckRecordId; + @NotNull + @Size(max = 500, message = "检查项目长度不能超过50") @ApiModelProperty("检查项目") private String checkItem; + @NotNull @ApiModelProperty("检查内容") private String checkContent; + + @NotNull + @ApiModelProperty("检查结果") + private String checkResult; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java index 8035cf5..c1a899b 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckRecordEntity.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.util.Date; /** @@ -22,24 +24,24 @@ public class CarCheckRecordEntity extends BaseEntity { @ApiModelProperty("车辆id") private Long carId; + @Size(max = 50, message = "编码长度不能超过50") @ApiModelProperty("编码") private String code; + @NotNull + @Size(max = 50, message = "检查人长度不能超过50") @ApiModelProperty("检查人") private String checker; + @NotNull @ApiModelProperty("检查时间") private Date checkTime; - @ApiModelProperty("检查项id") - private String checkItemIds; - - @ApiModelProperty("检查项结果") - private String checkItemResults; - + @NotNull @ApiModelProperty("检查结论") private String conclusion; + @Size(max = 500, message = "填报备注长度不能超过50") @ApiModelProperty("填报备注") private String remark; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java index b0292ef..d758fd4 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarEntity.java @@ -1,6 +1,7 @@ package com.hnac.hzims.safeproduct.entity; 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; @@ -43,51 +44,60 @@ public class CarEntity extends BaseEntity { private String plateNumber; @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("上牌时间") private Date registrationTime; @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("上期缴车保时间") private Date insurancePayLastTime; @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("下期缴车保时间") private Date insurancePayNextTime; @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("年检时间") private Date annualInspectionTime; @NotNull + @Size(max = 50, message = "年检状态长度不能超过50") @ApiModelProperty("年检状态") private String annualInspectionStatus; @NotNull + @Size(max = 50, message = "保险状态长度不能超过50") @ApiModelProperty("保险状态") private String insuranceStatus; - @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("上期保养时间") private Date maintenanceLastTime; - @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("下期保养时间") private Date maintenanceNextTime; @ApiModelProperty("保养里程") private BigDecimal maintenanceMileage; - @NotNull + @Size(max = 50, message = "保养状态长度不能超过50") @ApiModelProperty("保养状态") private String maintenanceStatus; @NotNull + @Size(max = 50, message = "车辆管理人长度不能超过50") @ApiModelProperty("车辆管理人") private String manager; + @Size(max = 1000, message = "车辆照片长度不能超过1000") @ApiModelProperty("车辆照片") private String imgPath; + @Size(max = 1000, message = "车辆附件长度不能超过1000") @ApiModelProperty("车辆附件") private String filePath; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java index 2d106df..10da28b 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarMaintenanceEntity.java @@ -1,12 +1,15 @@ package com.hnac.hzims.safeproduct.entity; 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 org.springblade.core.mp.base.BaseEntity; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.util.Date; /** @@ -22,42 +25,60 @@ public class CarMaintenanceEntity extends BaseEntity { @ApiModelProperty("车辆id") private Long carId; + @Size(max = 50, message = "编码长度不能超过50") @ApiModelProperty("编码") private String code; + @NotNull + @Size(max = 50, message = "维保类型长度不能超过50") @ApiModelProperty("维保类型") private String maintenanceType; + @NotNull @ApiModelProperty("维保内容") private String content; + @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("维保开始时间") private Date startTime; + @NotNull + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("维保结束时间") private Date endTime; + @NotNull + @Size(max = 255, message = "维保地点长度不能超过255") @ApiModelProperty("维保地点") private String location; + @NotNull @ApiModelProperty("维保费用") private Long cost; + @NotNull + @Size(max = 20, message = "维保人长度不能超过20") @ApiModelProperty("维保人") private String maintainer; + @Size(max = 1000, message = "维保照片长度不能超过1000") @ApiModelProperty("维保照片") private String imgPath; + @Size(max = 1000, message = "维保附件长度不能超过1000") @ApiModelProperty("维保附件") private String filePath; + @Size(max = 500, message = "车辆管理人意见长度不能超过500") @ApiModelProperty("车辆管理人意见") private String managerAdvice; + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("确认时间") private Date confirmationTime; + @Size(max = 50, message = "维保状态长度不能超过50") @ApiModelProperty("维保状态") private String maintenanceStatus; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java index baf0c43..941a57a 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarUsedRecordEntity.java @@ -7,6 +7,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.math.BigDecimal; import java.util.Date; @@ -23,33 +25,44 @@ public class CarUsedRecordEntity extends BaseEntity { @ApiModelProperty("车辆id") private Long carId; + @Size(max = 50, message = "编码长度不能超过50") @ApiModelProperty("编码") private String code; + @NotNull + @Size(max = 50, message = "用车单位长度不能超过50") @ApiModelProperty("用车单位") private String unit; + @NotNull @ApiModelProperty("使用时间") private Date startTime; + @NotNull + @Size(max = 255, message = "使用地点长度不能超过255") @ApiModelProperty("使用地点") private String usedLocation; + @NotNull + @Size(max = 20, message = "使用人长度不能超过20") @ApiModelProperty("使用人") private String user; @ApiModelProperty("用途详情") private String remark; + @NotNull @ApiModelProperty("出车公里数") private BigDecimal startMiles; @ApiModelProperty("收车公里数") private BigDecimal endMiles; + @NotNull @ApiModelProperty("行驶公里数") private BigDecimal miles; + @NotNull @ApiModelProperty("收车时间") private Date endTime; @@ -59,6 +72,7 @@ public class CarUsedRecordEntity extends BaseEntity { @ApiModelProperty("用车状态") private String usedStatus; - @ApiModelProperty("图片路径") + @Size(max = 1000, message = "用车图片长度不能超过1000") + @ApiModelProperty("用车图片") private String imgPath; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java index 0379406..f4af9aa 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygienePlanEntity.java @@ -9,7 +9,6 @@ import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.util.Date; /** @@ -22,8 +21,8 @@ import java.util.Date; @ApiModel(value = "卫生自查计划实体类") public class HygienePlanEntity extends BaseEntity { - @ApiModelProperty("编码") - private String code; + @ApiModelProperty("计划名称") + private String name; @ApiModelProperty("标准总分值") private Integer standardScore; @@ -38,8 +37,6 @@ public class HygienePlanEntity extends BaseEntity { @ApiModelProperty("计划结束时间") private Date scheduledEndTime; - @NotNull - @Size(max = 20, message = "卫生自查状态字段长度不能超过20") - @ApiModelProperty("卫生自查状态") - private String hygieneStatus; + @ApiModelProperty("自查计划状态") + private String hygienePlanStatus; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java index 25d7842..275d3dd 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java @@ -45,6 +45,7 @@ public class HygieneRecordEntity extends BaseEntity { @ApiModelProperty("责任区id") private String hygieneZoneIds; + @NotNull @ApiModelProperty("检查结果") private String checkResult; @@ -58,4 +59,7 @@ public class HygieneRecordEntity extends BaseEntity { @Size(max = 1000, message = "检查图片字段长度不能超过1000") @ApiModelProperty("检查图片") private String imgPath; + + @ApiModelProperty("自查记录状态") + private String hygieneRecordStatus; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/RehearsalRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/RehearsalRecordEntity.java index 1bcf594..1b139d9 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/RehearsalRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/RehearsalRecordEntity.java @@ -9,6 +9,7 @@ import org.springblade.core.mp.base.BaseEntity; import javax.validation.constraints.Max; import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.util.Date; @@ -38,12 +39,15 @@ public class RehearsalRecordEntity extends BaseEntity { @ApiModelProperty("参演人员") private String peopleName; + @NotNull @ApiModelProperty("演练实际开始时间") private Date actualStartTime; + @NotNull @ApiModelProperty("演练实际结束时间") private Date actualEndTime; + @NotNull @Size(max = 250, message = "演练记录字段长度不能超过250") @ApiModelProperty("演练记录") private String record; diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/SafetyToolEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/SafetyToolEntity.java index 1ac5e07..d57c115 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/SafetyToolEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/SafetyToolEntity.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; +import java.io.Serializable; import java.util.Date; @@ -21,7 +22,7 @@ import java.util.Date; @TableName("hzims_safe_safety_tool") @EqualsAndHashCode(callSuper = true) @ApiModel(value = "SafetyTool对象", description = "") -public class SafetyToolEntity extends TenantEntity { +public class SafetyToolEntity extends TenantEntity implements Serializable { private static final long serialVersionUID = 1L; diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarInsuranceStatusEnum.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarInsuranceStatusEnum.java new file mode 100644 index 0000000..c3e90e2 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarInsuranceStatusEnum.java @@ -0,0 +1,30 @@ +package com.hnac.hzims.safeproduct.enums; + +/** + * 车辆保险记录状态枚举类 + * + * @author liwen + * @date 2024-01-11 + */ +public enum CarInsuranceStatusEnum { + + INSURED("INSURED", "已参保"), + UNINSURED("UNINSURED", "未参保"); + + private final String value; + + private final String desc; + + CarInsuranceStatusEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return value; + } + + public String getDesc() { + return desc; + } +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarMaintenanceStatusEnum.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarMaintenanceStatusEnum.java new file mode 100644 index 0000000..f239837 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarMaintenanceStatusEnum.java @@ -0,0 +1,30 @@ +package com.hnac.hzims.safeproduct.enums; + +/** + * 车辆维保记录状态枚举类 + * + * @author liwen + * @date 2024-01-10 + */ +public enum CarMaintenanceStatusEnum { + + MAINTAINED("MAINTAINED", "已维保"), + UNMAINTAINED("UNMAINTAINED", "未维保"); + + private final String value; + + private final String desc; + + CarMaintenanceStatusEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return value; + } + + public String getDesc() { + return desc; + } +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarUsedRecordEnum.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarUsedRecordEnum.java new file mode 100644 index 0000000..b8e5211 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/enums/CarUsedRecordEnum.java @@ -0,0 +1,30 @@ +package com.hnac.hzims.safeproduct.enums; + +/** + * 用车记录枚举类 + * + * @author liwen + * @date 2024-01-10 + */ +public enum CarUsedRecordEnum { + + USING("USING", "使用中"), + USED("USED", "已使用"); + + private final String value; + + private final String desc; + + CarUsedRecordEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public String getValue() { + return value; + } + + public String getDesc() { + return desc; + } +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java index 2a48891..2c1ff91 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordDetailVO.java @@ -1,5 +1,6 @@ package com.hnac.hzims.safeproduct.vo; +import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -37,5 +38,5 @@ public class CarCheckRecordDetailVO { private String remark; @ApiModelProperty("检查列表") - private List checkItemList; + private List checkItemList; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordPageVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordPageVO.java new file mode 100644 index 0000000..d274cd3 --- /dev/null +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckRecordPageVO.java @@ -0,0 +1,37 @@ +package com.hnac.hzims.safeproduct.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author liwen + * @date 2024-01-09 + */ +@Data +@ApiModel(value = "车检记录页面VO类") +public class CarCheckRecordPageVO { + + @ApiModelProperty("车检记录id") + private Long id; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("品牌") + private String carBrand; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("检查人") + private String checker; + + @ApiModelProperty("检查时间") + private Date checkTime; + + @ApiModelProperty("检查结论") + private String conclusion; +} diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java index 0c54dc9..5b166b6 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarMaintenancePageVO.java @@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @author liwen * @date 2024-01-04 @@ -24,8 +26,11 @@ public class CarMaintenancePageVO { @ApiModelProperty("型号") private String carType; + @ApiModelProperty("车牌号") + private String plateNumber; + @ApiModelProperty("维保类型") - private String type; + private String maintenanceType; @ApiModelProperty("维保内容") private String content; @@ -38,4 +43,7 @@ public class CarMaintenancePageVO { @ApiModelProperty("维保人") private String maintainer; + + @ApiModelProperty("确认时间") + private Date confirmationTime; } diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java index 38fa1eb..d24ba26 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarUsedRecordPageVO.java @@ -15,6 +15,9 @@ import java.util.Date; @ApiModel(value = "用车记录页面VO类") public class CarUsedRecordPageVO { + @ApiModelProperty("用车记录id") + private Long id; + @ApiModelProperty("用车单位") private String unit; @@ -24,6 +27,9 @@ public class CarUsedRecordPageVO { @ApiModelProperty("车牌号") private String plateNumber; + @ApiModelProperty("使用地点") + private String usedLocation; + @ApiModelProperty("使用时间") private Date startTime; @@ -41,4 +47,7 @@ public class CarUsedRecordPageVO { @ApiModelProperty("行驶公里数") private BigDecimal miles; + + @ApiModelProperty("确认时间") + private Date confirmationTime; } diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java index 2965c3a..280ee87 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/entity/WorkTaskEntity.java @@ -31,7 +31,7 @@ public class WorkTaskEntity extends TenantEntity { private String headName; @ApiModelProperty(value = "工作负责人名称") - private Date headHandlTime; + private Date headHandleTime; @ApiModelProperty(value = "班组ID") private Long groupId; @@ -52,7 +52,7 @@ public class WorkTaskEntity extends TenantEntity { private Date planStartTime; @ApiModelProperty(value = "工作计划结束时间") - private Date endStartTime; + private Date planEndTime; @ApiModelProperty(value = "工作任务") private String workTask; diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/fegin/IRepairClient.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/fegin/IRepairClient.java index 8b01972..f55df9c 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/fegin/IRepairClient.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/fegin/IRepairClient.java @@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.RequestParam; * @author ysj */ @FeignClient( - value = TicketConstants.APP_NAME, - fallback = RepairClientFallback.class + value = TicketConstants.APP_NAME +// fallback = RepairClientFallback.class ) public interface IRepairClient { diff --git a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskVO.java b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskVO.java index 2c37e32..1a1808a 100644 --- a/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskVO.java +++ b/hzims-service-api/ticket-api/src/main/java/com/hnac/hzims/ticket/repair/vo/WorkTaskVO.java @@ -1,6 +1,7 @@ package com.hnac.hzims.ticket.repair.vo; import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -11,5 +12,12 @@ import lombok.EqualsAndHashCode; @Data public class WorkTaskVO extends WorkTaskEntity { + @ApiModelProperty(value = "开始时间") + private String startTime; + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "机构ID") + private Long deptId; } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java index bf8dc05..ffd108b 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/emParam/service/impl/ParamServiceImpl.java @@ -97,7 +97,10 @@ public class ParamServiceImpl implements IParamService { String realData = JSON.toJSONString(realDataR.getData().getDataMap().get(p.getSignage())); if("0".equals(JSONObject.parseObject(realData).getString("q"))) { String value = JSONObject.parseObject(realData).getString("v"); - if(StringUtil.isNotBlank(p.getDbType()) && "double".equals(p.getDbType()) + if(StringUtil.isNotBlank(p.getDbType()) && "int".equals(p.getDbType()) && StringUtil.isNotBlank(value)) { + value = String.valueOf(new BigDecimal(value).setScale(0, RoundingMode.HALF_UP).doubleValue()); + } + else if(StringUtil.isNotBlank(p.getDbType()) && "double".equals(p.getDbType()) && StringUtil.isNotBlank(value) && ObjectUtil.isNotEmpty(p.getKeepFigures())) { value = String.valueOf(new BigDecimal(value).setScale(p.getKeepFigures(), RoundingMode.HALF_UP).doubleValue()); } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java index 6239612..da112b3 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java @@ -420,4 +420,11 @@ public class EmInfoController extends BladeController { public R> hkVideoDevices() { return R.data(em_infoService.hkVideoDevices()); } + + @GetMapping("/select") + @ApiOperationSupport(order = 13) + @ApiOperation(value = "下拉框设备查询") + public R> select(@RequestParam(value = "deptId",required = false) Long deptId) { + return R.data(em_infoService.select(deptId)); + } } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java index e3527c3..8732f88 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/IEmInfoService.java @@ -94,4 +94,6 @@ public interface IEmInfoService extends BaseService { List hkVideoDevices(); List deviceByPath(String emCode); + + List select(Long deptId); } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java index c796b39..6c3b991 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java @@ -990,4 +990,18 @@ public class EmInfoServiceImpl extends BaseServiceImpllambdaQuery().in(EmInfoEntity::getNumber, Arrays.asList(deviceCodes))); } + /** + * 根据机构查询设备 + * @param deptId + * @return + */ + @Override + public List select(Long deptId) { + if(ObjectUtil.isEmpty(deptId)){ + return this.list(); + } + return this.list(Wrappers.lambdaQuery() + .eq(EmInfoEntity::getDepartment,deptId)); + } + } diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/listener/AlarmListener.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/listener/AlarmListener.java index ce4f618..3441281 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/listener/AlarmListener.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/listener/AlarmListener.java @@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.monitor.listener; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.MessageService; +import com.hnac.hzims.alarm.source.service.MessageService; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.utils.StringUtil; import org.springblade.queue.annotation.RedisQueue; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java index 33a9697..e320b37 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/DroolsMqttConsumer.java @@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.mqtt; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.DroolsAlarmService; +import com.hnac.hzims.alarm.source.service.DroolsAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; import lombok.extern.slf4j.Slf4j; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java index 90fd7a6..e37e57c 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java @@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.mqtt; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.FdpAlarmService; +import com.hnac.hzims.alarm.source.service.FdpAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; import org.springblade.core.log.exception.ServiceException; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java index 6060a59..b624c23 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java @@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.mqtt; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.SystemAlarmService; +import com.hnac.hzims.alarm.source.service.SystemAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; import lombok.extern.slf4j.Slf4j; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java index e42bfa3..bc285e1 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/VideoMqttConsumer.java @@ -2,7 +2,7 @@ package com.hnac.hzims.alarm.mqtt; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.VideoAlarmService; +import com.hnac.hzims.alarm.source.service.VideoAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; import lombok.extern.slf4j.Slf4j; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AlarmHandleController.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/AlarmHandleController.java similarity index 84% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AlarmHandleController.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/AlarmHandleController.java index 0a9cd85..9f638cb 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AlarmHandleController.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/AlarmHandleController.java @@ -1,13 +1,13 @@ -package com.hnac.hzims.operational.alert.controller; +package com.hnac.hzims.alarm.show.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.alarm.show.service.AlarmHandleService; +import com.hnac.hzims.alarm.vo.AlarmHandleVo; import com.hnac.hzims.common.logs.annotation.OperationAnnotation; import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; -import com.hnac.hzims.operational.alert.service.AlarmHandleService; -import com.hnac.hzims.operational.alert.vo.AlarmHandleVo; import com.hnac.hzims.operational.alert.vo.HandleQueryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -29,7 +29,7 @@ import java.util.List; @Api(tags = {"告警处理"}) @RestController @AllArgsConstructor -@RequestMapping("/alarm/handle") +@RequestMapping("/handle") public class AlarmHandleController extends BladeController { private final AlarmHandleService service; @@ -52,7 +52,7 @@ public class AlarmHandleController extends BladeController { @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入AlarmHandleEntity") - @OperationAnnotation(moduleName = "告警配置", title = "告警配置记录", operatorType = OperatorType.MOBILE, businessType = + @OperationAnnotation(moduleName = "分页查询告警处理记录", title = "查询告警处理记录", operatorType = OperatorType.MOBILE, businessType = BusinessType.GENCODE, action = "分页") public R> list(HandleQueryVo param, Query query) { diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/ShowAlarmController.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/ShowAlarmController.java index 5410138..178fba2 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/ShowAlarmController.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/controller/ShowAlarmController.java @@ -3,7 +3,7 @@ package com.hnac.hzims.alarm.show.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.SystemAlarmService; +import com.hnac.hzims.alarm.source.service.SystemAlarmService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.vo.AlarmCountVo; import io.swagger.annotations.Api; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.java similarity index 66% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.java index b87f290..d7e5cec 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.java @@ -1,6 +1,6 @@ -package com.hnac.hzims.operational.alert.mapper; +package com.hnac.hzims.alarm.show.mapper; -import com.hnac.hzims.operational.alert.entity.AlarmHandleDetailEntity; +import com.hnac.hzims.alarm.entity.AlarmHandleDetailEntity; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; /** diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.xml b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.xml similarity index 65% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.xml rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.xml index c4664e9..fe0ad87 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleDetailMapper.xml +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleDetailMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.java similarity index 55% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.java index c989ecc..8a25d64 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.java @@ -1,8 +1,8 @@ -package com.hnac.hzims.operational.alert.mapper; +package com.hnac.hzims.alarm.show.mapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.vo.AlarmHandleVo; +import com.hnac.hzims.alarm.entity.AlarmHandleEntity; +import com.hnac.hzims.alarm.vo.AlarmHandleVo; import com.hnac.hzims.operational.alert.vo.HandleQueryVo; import org.apache.ibatis.annotations.Param; import org.springblade.core.datascope.annotation.UserDataAuth; @@ -18,7 +18,7 @@ import java.util.List; public interface AlarmHandleMapper extends UserDataScopeBaseMapper { @UserDataAuth - IPage selectHandlePage(IPage page,@Param("param") HandleQueryVo param); + IPage selectHandlePage(IPage page, @Param("param") HandleQueryVo param); - List handles(@Param("types") List types,@Param("start") String start,@Param("end") String end); + List handles(@Param("start") String start,@Param("end") String end); } diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml new file mode 100644 index 0000000..78b9f15 --- /dev/null +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleDetailService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleDetailService.java similarity index 63% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleDetailService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleDetailService.java index d14dcf0..3e7f4ba 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleDetailService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleDetailService.java @@ -1,6 +1,7 @@ -package com.hnac.hzims.operational.alert.service; +package com.hnac.hzims.alarm.show.service; -import com.hnac.hzims.operational.alert.entity.AlarmHandleDetailEntity; + +import com.hnac.hzims.alarm.entity.AlarmHandleDetailEntity; import org.springblade.core.mp.base.BaseService; /** diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleService.java similarity index 70% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleService.java index ce66494..99ef712 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmHandleService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleService.java @@ -1,8 +1,8 @@ -package com.hnac.hzims.operational.alert.service; +package com.hnac.hzims.alarm.show.service; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.vo.AlarmHandleVo; +import com.hnac.hzims.alarm.entity.AlarmHandleEntity; +import com.hnac.hzims.alarm.vo.AlarmHandleVo; import com.hnac.hzims.operational.alert.vo.HandleQueryVo; import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.support.Query; @@ -23,5 +23,5 @@ public interface AlarmHandleService extends BaseService { List handleUser(); - List handles(List types,Integer alarmType); + List handles(); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleDetailServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleDetailServiceImpl.java similarity index 61% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleDetailServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleDetailServiceImpl.java index d40abac..a0d5703 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleDetailServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleDetailServiceImpl.java @@ -1,8 +1,8 @@ -package com.hnac.hzims.operational.alert.service.impl; +package com.hnac.hzims.alarm.show.service.impl; -import com.hnac.hzims.operational.alert.entity.AlarmHandleDetailEntity; -import com.hnac.hzims.operational.alert.mapper.AlarmHandleDetailMapper; -import com.hnac.hzims.operational.alert.service.AlarmHandleDetailService; +import com.hnac.hzims.alarm.entity.AlarmHandleDetailEntity; +import com.hnac.hzims.alarm.show.mapper.AlarmHandleDetailMapper; +import com.hnac.hzims.alarm.show.service.AlarmHandleDetailService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleServiceImpl.java similarity index 73% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleServiceImpl.java index 9daebb3..5363fb1 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlarmHandleServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleServiceImpl.java @@ -1,17 +1,17 @@ -package com.hnac.hzims.operational.alert.service.impl; +package com.hnac.hzims.alarm.show.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.alarm.entity.AlarmHandleDetailEntity; +import com.hnac.hzims.alarm.entity.AlarmHandleEntity; +import com.hnac.hzims.alarm.show.mapper.AlarmHandleMapper; +import com.hnac.hzims.alarm.show.service.AlarmHandleDetailService; +import com.hnac.hzims.alarm.show.service.AlarmHandleService; +import com.hnac.hzims.alarm.show.wrapper.HandleWrapper; +import com.hnac.hzims.alarm.vo.AlarmHandleVo; import com.hnac.hzims.fdp.feign.IFdpMonitorClient; import com.hnac.hzims.fdp.vo.UpdateFaultStateVo; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AlarmHandleDetailEntity; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.mapper.AlarmHandleMapper; -import com.hnac.hzims.operational.alert.service.AlarmHandleDetailService; -import com.hnac.hzims.operational.alert.service.AlarmHandleService; -import com.hnac.hzims.operational.alert.vo.AlarmHandleVo; +import com.hnac.hzims.alarm.constants.AlarmHandleConstant; import com.hnac.hzims.operational.alert.vo.HandleQueryVo; -import com.hnac.hzims.operational.alert.wrapper.HandleWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; @@ -60,11 +60,11 @@ public class AlarmHandleServiceImpl extends BaseServiceImpl handleUser() { - R> result = sysClient.getDeptByCurrentUser(); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - throw new ServiceException("查询告警处理人失败!"); - } - List users = new ArrayList<>(); - result.getData().forEach(dept->{ - users.addAll(userClient.userListByDeptAndChildrenWithAuth(dept.getId()).getData()); - }); + List users = userClient.userListByDeptAndChildrenWithAuth(Long.valueOf(AuthUtil.getUser().getDeptId())).getData(); return users.stream().distinct().collect(Collectors.toList()); } /** * 查询处理告警记录 - * @param types 告警类型 * @return */ @Override - public List handles(List types,Integer isEarly) { - if(AbnormalAlarmConstant.INTELLIGENCE_ALARM.equals(isEarly)){ - String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME); - return this.baseMapper.handles(types,null,end); - } + public List handles() { String start = DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00"; String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME); - return this.baseMapper.handles(types,start,end); + return this.baseMapper.handles(start,end); } } diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java index 4efb20a..22c5ad2 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmServiceImpl.java @@ -3,13 +3,13 @@ package com.hnac.hzims.alarm.show.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.alarm.config.service.AlarmConfigService; import com.hnac.hzims.alarm.constants.AlarmConstants; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.MessageService; import com.hnac.hzims.alarm.show.mapper.AlarmMapper; +import com.hnac.hzims.alarm.show.service.AlarmHandleService; import com.hnac.hzims.alarm.show.service.AlarmService; +import com.hnac.hzims.alarm.source.service.MessageService; import com.hnac.hzims.alarm.vo.AlarmCountVo; import com.hnac.hzims.alarm.vo.ChildAlarmCountVo; import com.hnac.hzims.message.dto.MailMessageDTO; @@ -42,6 +42,8 @@ public class AlarmServiceImpl extends BaseServiceImpl private final AlarmConfigService configService; + private final AlarmHandleService alarmHandleService; + private final IUserClient userClient; private final IStationClient stationClient; @@ -77,6 +79,12 @@ public class AlarmServiceImpl extends BaseServiceImpl wrapper.eq("ALARM_TYPE",alarm.getAlarmType()); } + // 处理告警过滤 :当天处理告警 + List handles = alarmHandleService.handles(); + if(!CollectionUtil.isEmpty(handles)){ + wrapper.notIn("ALARM_ID",handles); + } + // 查询数据 return this.page(page,wrapper); } @@ -184,13 +192,18 @@ public class AlarmServiceImpl extends BaseServiceImpl if(CollectionUtil.isEmpty(effectives)){ return null; } - List alarms = this.list(Wrappers.lambdaQuery() - .in(AlarmEntity::getStationId,effectives) - .in(AlarmEntity::getAlarmType, Arrays.asList(AlarmConstants.FAULT,AlarmConstants.EARLY)) - .eq(AlarmEntity::getIsShowAlert,0) - .eq(AlarmEntity::getStatus,0) - //.ge(AlarmEntity::getAlarmType, DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00") - ); + // 条件过滤 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().in(AlarmEntity::getStationId,effectives); + queryWrapper.lambda().in(AlarmEntity::getAlarmType, Arrays.asList(AlarmConstants.FAULT,AlarmConstants.EARLY)); + queryWrapper.lambda().eq(AlarmEntity::getIsShowAlert,0); + queryWrapper.lambda().eq(AlarmEntity::getStatus,0); + // 处理告警过滤 :当天处理告警 + List handles = alarmHandleService.handles(); + if(!CollectionUtil.isEmpty(handles)){ + queryWrapper.lambda().notIn(AlarmEntity::getAlarmId,handles); + } + List alarms = this.list(queryWrapper); if(CollectionUtil.isEmpty(alarms)){ return null; } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/wrapper/HandleWrapper.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/wrapper/HandleWrapper.java similarity index 86% rename from hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/wrapper/HandleWrapper.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/wrapper/HandleWrapper.java index 0902031..9fb55e9 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/wrapper/HandleWrapper.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/wrapper/HandleWrapper.java @@ -1,6 +1,6 @@ -package com.hnac.hzims.operational.alert.wrapper; +package com.hnac.hzims.alarm.show.wrapper; -import com.hnac.hzims.operational.alert.vo.AlarmHandleVo; +import com.hnac.hzims.alarm.vo.AlarmHandleVo; import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.system.user.cache.UserCache; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.java similarity index 83% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.java index 4b2d713..25d3aed 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.mapper; +package com.hnac.hzims.alarm.source.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hnac.hzims.alarm.entity.AlarmHistoryEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.xml b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.xml similarity index 72% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.xml rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.xml index f6dd5d6..fa2e261 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/mapper/AlarmHistoryMapper.xml +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/mapper/AlarmHistoryMapper.xml @@ -1,5 +1,5 @@ - + diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/AlarmHistoryService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/AlarmHistoryService.java similarity index 81% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/AlarmHistoryService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/AlarmHistoryService.java index 3805436..d7ef128 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/AlarmHistoryService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/AlarmHistoryService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmHistoryEntity; import org.springblade.core.mp.base.BaseService; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/DroolsAlarmService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/DroolsAlarmService.java similarity index 83% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/DroolsAlarmService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/DroolsAlarmService.java index 186609a..4d2b0da 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/DroolsAlarmService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/DroolsAlarmService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/FdpAlarmService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/FdpAlarmService.java similarity index 84% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/FdpAlarmService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/FdpAlarmService.java index bbb248d..e50da70 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/FdpAlarmService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/FdpAlarmService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/LevelAlarmService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/LevelAlarmService.java similarity index 83% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/LevelAlarmService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/LevelAlarmService.java index 4d3a695..903b81e 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/LevelAlarmService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/LevelAlarmService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/MessageService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/MessageService.java similarity index 83% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/MessageService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/MessageService.java index 230150e..8496031 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/MessageService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/MessageService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/SystemAlarmService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/SystemAlarmService.java similarity index 84% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/SystemAlarmService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/SystemAlarmService.java index 42f44d8..3adf860 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/SystemAlarmService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/SystemAlarmService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/VideoAlarmService.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/VideoAlarmService.java similarity index 84% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/VideoAlarmService.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/VideoAlarmService.java index 2751346..4d7432b 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/VideoAlarmService.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/VideoAlarmService.java @@ -1,4 +1,4 @@ -package com.hnac.hzims.alarm.handle.service; +package com.hnac.hzims.alarm.source.service; import com.hnac.hzims.alarm.entity.AlarmEntity; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/AlarmHistoryServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/AlarmHistoryServiceImpl.java similarity index 80% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/AlarmHistoryServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/AlarmHistoryServiceImpl.java index 2de5d10..773d266 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/AlarmHistoryServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/AlarmHistoryServiceImpl.java @@ -1,7 +1,7 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.hnac.hzims.alarm.entity.AlarmHistoryEntity; -import com.hnac.hzims.alarm.handle.mapper.AlarmHistoryMapper; +import com.hnac.hzims.alarm.source.mapper.AlarmHistoryMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseService; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/DroolsAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/DroolsAlarmServiceImpl.java similarity index 94% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/DroolsAlarmServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/DroolsAlarmServiceImpl.java index 501b131..1584d15 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/DroolsAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/DroolsAlarmServiceImpl.java @@ -1,10 +1,10 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.DroolsAlarmService; -import com.hnac.hzims.alarm.handle.service.MessageService; +import com.hnac.hzims.alarm.source.service.DroolsAlarmService; +import com.hnac.hzims.alarm.source.service.MessageService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.vo.ConditionAlarmVo; import com.hnac.hzims.equipment.feign.IEmInfoClient; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/FdpAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java similarity index 95% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/FdpAlarmServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java index f801958..48428a0 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/FdpAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java @@ -1,10 +1,10 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.FdpAlarmService; -import com.hnac.hzims.alarm.handle.service.MessageService; +import com.hnac.hzims.alarm.source.service.FdpAlarmService; +import com.hnac.hzims.alarm.source.service.MessageService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.vo.FdpAlarmVo; import com.hnac.hzims.message.fegin.IMessageClient; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/LevelAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/LevelAlarmServiceImpl.java similarity index 95% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/LevelAlarmServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/LevelAlarmServiceImpl.java index 3f3c926..c46e28b 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/LevelAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/LevelAlarmServiceImpl.java @@ -1,11 +1,11 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.hnac.hzims.alarm.constants.AlarmConstants; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.LevelAlarmService; -import com.hnac.hzims.alarm.handle.service.MessageService; +import com.hnac.hzims.alarm.source.service.LevelAlarmService; +import com.hnac.hzims.alarm.source.service.MessageService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.vo.LevelMessageVo; import com.hnac.hzims.alarm.vo.LevelVo; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/MessageServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/MessageServiceImpl.java similarity index 98% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/MessageServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/MessageServiceImpl.java index 1e691a6..2f4c9be 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/MessageServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/MessageServiceImpl.java @@ -1,9 +1,9 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.hnac.hzims.alarm.config.service.AlarmConfigService; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.MessageService; +import com.hnac.hzims.alarm.source.service.MessageService; import com.hnac.hzims.message.MessageConstants; import com.hnac.hzims.message.dto.BusinessMessageDTO; import com.hnac.hzims.message.dto.SmsPushDto; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/SystemAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/SystemAlarmServiceImpl.java similarity index 92% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/SystemAlarmServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/SystemAlarmServiceImpl.java index e73da1a..6c09aae 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/SystemAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/SystemAlarmServiceImpl.java @@ -1,15 +1,15 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.hnac.hzims.alarm.constants.AlarmConstants; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.MessageService; -import com.hnac.hzims.alarm.handle.service.SystemAlarmService; +import com.hnac.hzims.alarm.source.service.MessageService; +import com.hnac.hzims.alarm.source.service.SystemAlarmService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.alarm.vo.SystemAlarmVo; import com.hnac.hzims.message.fegin.IMessageClient; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; +import com.hnac.hzims.alarm.constants.AlarmHandleConstant; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.feign.IStationClient; import lombok.RequiredArgsConstructor; @@ -61,7 +61,7 @@ public class SystemAlarmServiceImpl implements SystemAlarmService { List stations = listAll.getData(); Map map = new ConcurrentHashMap<>(); map.put("stations", stations.stream().map(StationEntity::getCode).collect(Collectors.joining(","))); - map.put("soe_type", AbnormalAlarmConstant.SYSTEM_TYPE_LIST); + map.put("soe_type", AlarmHandleConstant.SYSTEM_TYPE_LIST); return JSONObject.toJSONString(map); } diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/VideoAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/VideoAlarmServiceImpl.java similarity index 95% rename from hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/VideoAlarmServiceImpl.java rename to hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/VideoAlarmServiceImpl.java index 0c0447d..10ac876 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/handle/service/impl/VideoAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/VideoAlarmServiceImpl.java @@ -1,15 +1,15 @@ -package com.hnac.hzims.alarm.handle.service.impl; +package com.hnac.hzims.alarm.source.service.impl; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.hnac.hzims.alarm.constants.AlarmConstants; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.VideoAlarmService; +import com.hnac.hzims.alarm.source.service.VideoAlarmService; import com.hnac.hzims.alarm.show.service.AlarmService; import com.hnac.hzims.equipment.entity.EmInfoEntity; import com.hnac.hzims.equipment.feign.IEmInfoClient; import com.hnac.hzims.message.fegin.IMessageClient; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; +import com.hnac.hzims.alarm.constants.AlarmHandleConstant; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.feign.IStationClient; import com.hnac.hzinfo.datasearch.soe.ISoeClient; @@ -105,7 +105,7 @@ public class VideoAlarmServiceImpl implements VideoAlarmService { entity.setAlarmId(item.getId()); entity.setAlarmTime(DateUtil.parse(item.getTs(), "yyyy-MM-dd HH:mm:ss.s")); entity.setAlarmContext(item.getSoeExplain()); - entity.setAlarmType(AbnormalAlarmConstant.VIDEO_ALARM); + entity.setAlarmType(AlarmHandleConstant.VIDEO_ALARM); entity.setAlarmStatus(Integer.valueOf(item.getSoeStatus())); entity.setRealId(item.getRealId()); entity.setStationId(item.getStation()); diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java index 6b5daf0..169d8ca 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/task/VideoScheduledTask.java @@ -1,7 +1,7 @@ package com.hnac.hzims.alarm.task; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.VideoAlarmService; +import com.hnac.hzims.alarm.source.service.VideoAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.xxl.job.core.biz.model.ReturnT; import lombok.extern.slf4j.Slf4j; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmRegular.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmRegular.java index d2726b8..1727c10 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmRegular.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmRegular.java @@ -1,6 +1,6 @@ package com.hnac.hzims.alarm.ws.level; -import com.hnac.hzims.alarm.handle.service.LevelAlarmService; +import com.hnac.hzims.alarm.source.service.LevelAlarmService; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java index 601071c..cdbb5a4 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/ws/level/LevelAlarmWebSocket.java @@ -1,7 +1,7 @@ package com.hnac.hzims.alarm.ws.level; import com.hnac.hzims.alarm.entity.AlarmEntity; -import com.hnac.hzims.alarm.handle.service.LevelAlarmService; +import com.hnac.hzims.alarm.source.service.LevelAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import lombok.extern.slf4j.Slf4j; import org.java_websocket.client.WebSocketClient; diff --git a/hzims-service/operational/pom.xml b/hzims-service/operational/pom.xml index cc0dbf1..fbb805c 100644 --- a/hzims-service/operational/pom.xml +++ b/hzims-service/operational/pom.xml @@ -18,6 +18,23 @@ + + + com.documents4j + documents4j-local + ${documents4j.version} + + + com.documents4j + documents4j-transformer-msoffice-word + ${documents4j.version} + + + com.documents4j + documents4j-UTIL-ALL + ${documents4j.version} + + redis.clients jedis @@ -232,6 +249,12 @@ swagger-bootstrap-ui ${swagger-bootstrap-ui.version} + + e-iceblue + spire.xls.free + 3.9.1 + compile + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java index a27bce0..1653362 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/ConstructionController.java @@ -49,7 +49,7 @@ public class ConstructionController extends BladeController { @ApiOperation(value = "新增") public R save(@RequestBody OperConstructionEntity entity) { entity.setCode("SGRZ" + DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME_MINI)); - entity.setConstructionTime(DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); + entity.setConstructionTime(entity.getOverhaulTime()); return R.status(service.save(entity)); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessStatisticsDTO.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessStatisticsDTO.java index bb9effb..f6337fd 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessStatisticsDTO.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/dto/OperAccessStatisticsDTO.java @@ -20,6 +20,9 @@ public class OperAccessStatisticsDTO extends OperAccessStatisticsEntity { private static final long serialVersionUID = 1L; + @ApiModelProperty("设备编码") + private String emCode; + @ApiModelProperty(value = "任务名称") private String taskName; diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessStatisticsMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessStatisticsMapper.xml index e390f35..bda5b07 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessStatisticsMapper.xml +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessStatisticsMapper.xml @@ -3,12 +3,15 @@ - + + + + @@ -22,12 +25,19 @@ + + - SELECT OT.`NAME` AS taskName,OS.* FROM hzims_oper_access_statistics OS JOIN hzims_oper_access_task OT ON OS.`TASK_ID` = OT.`ID` WHERE OS.IS_DELETED = 0 + + and OS.EM_CODE = #{dto.emCode} + and OT.`NAME` like concat('%',#{dto.taskName},'%') diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.java index c9ca368..f0b06b1 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.java @@ -2,8 +2,11 @@ package com.hnac.hzims.operational.access.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hnac.hzims.operational.access.entity.OperAccessTaskDetailEntity; +import org.apache.ibatis.annotations.Param; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; +import java.util.List; + /** * * Mapper 接口 @@ -13,4 +16,5 @@ import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; **/ public interface OperAccessTaskDetailMapper extends BaseMapper { + List selectByTaskId(@Param("taskId") Long taskId); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.xml index 49b57fa..977c8ce 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.xml +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/mapper/OperAccessTaskDetailMapper.xml @@ -17,5 +17,10 @@ + \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java index dce780c..0d3bdbe 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessPlanV4ServiceImpl.java @@ -32,6 +32,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.text.DecimalFormat; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -229,7 +232,7 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{ if(ObjectUtil.isEmpty(plan)){ throw new ServiceException("未查询到检修计划!"); } - + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); for(OperAccessContentDTO item : entity.getAccessContents()){ //任务参数 AccessTaskV4DTO task = BeanUtil.copy(item, AccessTaskV4DTO.class); @@ -239,6 +242,10 @@ public class AccessPlanV4ServiceImpl implements AccessPlanV4Service{ task.setProcDefId(plan.getProcDefId()); task.setHandler(item.getManager()); task.setPlanId(plan.getId()); + LocalDateTime start = LocalDateTime.parse(DateUtil.format(task.getPlanStartTime(),DateUtil.PATTERN_DATETIME), formatter); + LocalDateTime end = LocalDateTime.parse(DateUtil.format(task.getPlanEndTime(),DateUtil.PATTERN_DATETIME), formatter); + Duration duration = Duration.between(start, end); + task.setPlanHours((int) duration.toHours()); task.setContentId(item.getId()); task.setEmCode(item.getEmCode()); task.setTenantId(plan.getTenantId()); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java index e873831..ec72544 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/AccessTaskV4ServiceImpl.java @@ -251,6 +251,8 @@ public class AccessTaskV4ServiceImpl implements AccessTaskV4Service { OperAccessStatisticsDTO statisticsDTO = BeanUtil.copy(entity, OperAccessStatisticsDTO.class); statisticsDTO.setId(null); statisticsDTO.setTaskId(entity.getId()); + statisticsDTO.setEmCode(entity.getEmCode()); + statisticsDTO.setPlanHours(entity.getPlanHours()); statisticsDTO.setManager(entity.getHandler()); OperAccessContentEntity content = contentService.getById(entity.getId()); if (ObjectUtil.isNotEmpty(content)) { diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java index dddf426..33ed9c8 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/ConstructionServiceImpl.java @@ -1,19 +1,24 @@ package com.hnac.hzims.operational.access.service.impl; -import cn.afterturn.easypoi.excel.entity.TemplateExportParams; +import cn.afterturn.easypoi.entity.ImageEntity; +import cn.afterturn.easypoi.word.WordExportUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.operational.access.entity.OperConstructionEntity; import com.hnac.hzims.operational.access.mapper.ConstructionMapper; import com.hnac.hzims.operational.access.service.ConstructionService; import com.hnac.hzims.operational.access.vo.ConstructionVo; -import com.hnac.hzims.operational.util.ExcelUtil; +import com.hnac.hzims.operational.util.PdfUtils; +import com.hnac.hzims.operational.util.WordUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.poi.ss.usermodel.Workbook; +import org.apache.commons.io.IOUtils; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.beans.factory.annotation.Value; @@ -21,7 +26,12 @@ import org.springframework.stereotype.Service; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; @@ -33,12 +43,8 @@ import java.util.Map; @RequiredArgsConstructor public class ConstructionServiceImpl extends BaseServiceImpl implements ConstructionService { - - @Value("${hzims.operational.construction.save.xlsx}") - private String constructionSaveXlsxPath; - - @Value("${hzims.operational.construction.save.pdf}") - private String constructionSavePdfPath; + @Value("${hzims.operation.construction.save.img}") + private String constructionSaveImgPath; /** * 施工日志记录分页查询 @@ -67,34 +73,36 @@ public class ConstructionServiceImpl extends BaseServiceImpl params = new HashMap<>(); - /*try { + try { params = PdfUtils.objectToMap(construction); }catch (Exception e) { log.error("转换对象失败!"); - }*/ - TemplateExportParams templateExportParams = new TemplateExportParams("template/constructio_template.xlsx", true); - Workbook workbook = null; + } + String fileName = construction.getCode() + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.DOCX_SUFFIX; + XWPFDocument document; try { - workbook = ExcelUtil.getWorkbook(templateExportParams,params); + document = WordExportUtil.exportWord07("template/word/constructio_template.docx",params); } catch (Exception e) { - e.printStackTrace(); + throw new ServiceException("文件创建失败!"); } - //上传xlsx至服务器 - //String fileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.XLSX_SUFFIX; - /* try { - ExcelUtil.upload(workbook,constructionSaveXlsxPath,fileName); - } catch (Exception e) { + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/vnd.ms-word"); + ServletOutputStream outputStream; + try { + //设置docx格式 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + //创建一个输出流 + outputStream = response.getOutputStream(); + //写入数据 + document.write(outputStream); + // 关闭 + outputStream.close(); + document.close(); + } catch (IOException e) { e.printStackTrace(); - }*/ - //将docx文件转换为pdf并保存 - //String pdfFileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.PDF_SUFFIX; - //String xlsxFileName = DateUtil.format(construction.getConstructionTime(),DateUtil.PATTERN_DATETIME) + "_" + construction.getOverhaulName() + "_施工日志" + PdfUtils.XLSX_SUFFIX; - //PdfUtils.convertPdf(constructionSaveXlsxPath, xlsxFileName, constructionSavePdfPath, pdfFileName); - //String savePath = constructionSavePdfPath + pdfFileName; - // 设置response参数,可以打开下载页面 - //PdfUtils.readPdf(response,savePath); + } } /** @@ -102,11 +110,96 @@ public class ConstructionServiceImpl extends BaseServiceImpl 1){ + construction.setConstructionImg1(new ImageEntity(imgToByte(constructionSaveImgPath + downloadFileByUrl(imgArr[0],constructionSaveImgPath)), 225, 163)); + construction.setConstructionImg2(new ImageEntity(imgToByte(constructionSaveImgPath + downloadFileByUrl(imgArr[1],constructionSaveImgPath)), 225, 163)); + }else{ + construction.setConstructionImg1(new ImageEntity(imgToByte(constructionSaveImgPath + downloadFileByUrl(imgArr[0],constructionSaveImgPath)), 225, 163)); + } + } + if(StringUtil.isEmpty(construction.getConstructionAttachment())){ + construction.setConstructionAttachment(" "); + } + construction.setYear(DateUtil.format(construction.getConstructionTime(),"yyyy")); + construction.setMon(DateUtil.format(construction.getConstructionTime(),"MM")); + construction.setDay(DateUtil.format(construction.getConstructionTime(),"dd")); + return construction; + } + + /** + * 将图片转化为字节数组 + * + * @return 字节数组 + */ + private byte[] imgToByte(String tempImgPath) { + File file = new File(tempImgPath); + byte[] buffer = null; + try { + FileInputStream fis = new FileInputStream(file); + ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); + byte[] b = new byte[1000]; + int n; + while ((n = fis.read(b)) != -1) { + bos.write(b, 0, n); + } + fis.close(); + bos.close(); + buffer = bos.toByteArray(); + } catch (IOException e) { + log.error(e.getMessage()); + } + //删除临时文件 + file.delete(); + return buffer; + } + + /** + * 下载文件 + * @param fileUrl + * @param downloadFileDir + * @return + */ + private String downloadFileByUrl(String fileUrl, String downloadFileDir){ + URL url = null; + String fileName = null; + try { + url = new URL(fileUrl); + HttpURLConnection connection = (HttpURLConnection)url.openConnection(); + connection.setConnectTimeout(5000); + connection.setReadTimeout(5000); + connection.connect(); + + int responseCode = connection.getResponseCode(); + if (responseCode == 200) { + + InputStream inputStream = connection.getInputStream(); + + int lastSlashIndex = fileUrl.lastIndexOf("/"); + if (lastSlashIndex > 0){ + fileName = fileUrl.substring(lastSlashIndex+1); + String filePath = downloadFileDir + fileName; + File file = new File(filePath); + if (file.exists()){ + file.delete(); + } + OutputStream outputStream = new FileOutputStream(file); + // 将文件流拷贝到本地处理 + IOUtils.copy(inputStream, outputStream); + }else { + throw new ServiceException("下载文件路径异常:" + downloadFileDir); + } + } + } catch (Exception e) { + throw new ServiceException("文件图片下载失败!"); + } + return fileName; } } \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessStatisticsServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessStatisticsServiceImpl.java index 4d89199..548fd15 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessStatisticsServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessStatisticsServiceImpl.java @@ -50,8 +50,6 @@ public class OperAccessStatisticsServiceImpl extends BaseServiceImpl> list(OperAccessStatisticsDTO req, IPage page) { List operAccessStatisticsVOS = this.baseMapper.selectPageList(page, req); - /* IPage pages = super.page(Condition.getPage(query), getQueryWrapperByList(req)); - pages.setRecords(OperAccessStatisticsWrapper.build().listVO(pages.getRecords()));*/ return R.data(page.setRecords(OperAccessStatisticsWrapper.build().listVO(operAccessStatisticsVOS))); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/vo/OperAccessStatisticsVO.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/vo/OperAccessStatisticsVO.java index 1e1760f..1b085da 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/vo/OperAccessStatisticsVO.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/vo/OperAccessStatisticsVO.java @@ -1,10 +1,13 @@ package com.hnac.hzims.operational.access.vo; import com.hnac.hzims.operational.access.entity.OperAccessStatisticsEntity; +import com.hnac.hzims.operational.access.entity.OperAccessTaskDetailEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 模型VO * @@ -28,4 +31,7 @@ public class OperAccessStatisticsVO extends OperAccessStatisticsEntity { @ApiModelProperty(value = "任务名称") private String taskName; + + @ApiModelProperty(value = "检修内容") + private List details; } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/AlertWebSocketClient.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/AlertWebSocketClient.java deleted file mode 100644 index abb1dac..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/AlertWebSocketClient.java +++ /dev/null @@ -1,182 +0,0 @@ -package com.hnac.hzims.operational.alert; - -import com.alibaba.fastjson.JSONObject; -import com.hnac.hzims.monitor.feign.IMonitorClient; -import com.hnac.hzims.operational.alert.service.AlertDefectService; -import com.hnac.hzims.operational.alert.vo.AlertVo; -import com.hnac.hzims.operational.station.service.IStationService; -import com.hnac.hzinfo.core.push.enums.PushAudienceType; -import com.hnac.hzinfo.core.push.model.PushAudience; -import com.hnac.hzinfo.core.push.model.PushInfo; -import com.hnac.hzinfo.core.push.model.PushPlatform; -import lombok.extern.slf4j.Slf4j; -import org.java_websocket.client.WebSocketClient; -import org.java_websocket.handshake.ServerHandshake; -import org.springblade.core.log.exception.ServiceException; -import org.springblade.core.tool.utils.Func; -import org.springblade.core.tool.utils.SpringUtil; -import org.springblade.resource.feign.IPushClient; -import org.springblade.resource.vo.PushInfoVO; -import org.springblade.system.user.entity.User; -import org.springframework.beans.factory.annotation.Value; - -import javax.net.ssl.*; -import java.net.URI; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 该socket服务只能启一个微服务,启动多个微服务的话同一个信息会重复发。 - * 如果operation服务需要部署多个微服务,这个alert需要分离出来作为单独的微服务部署,且只能部署一个。 - * @Author: py - */ -@Slf4j -public class AlertWebSocketClient extends WebSocketClient { - - @Value("${hzims.operation.task.jgPushCode}") - String jgPushCode; - - IStationService stationService; - IPushClient pushClient; - IMonitorClient monitorClient; - - AlertDefectService alertDefectService; - - public AlertWebSocketClient(URI serverUri) { - super(serverUri); - stationService = SpringUtil.getBean(IStationService.class); - pushClient = SpringUtil.getBean(IPushClient.class); - monitorClient = SpringUtil.getBean(IMonitorClient.class); - alertDefectService = SpringUtil.getBean(AlertDefectService.class); - if(serverUri.toString().contains("wss://")){ - trustAllHosts(this); - } - } - - @Override - public void onOpen(ServerHandshake handshakedata) { - log.info("[websocket] 连接成功"); - } - - - @Override - public void onMessage(String message) { - log.info("[websocket] 收到消息={}",message); - try{ - // 处理信息 - handleMsg(message); - // 告警缺陷处理现象 - handleAlertDefect(message); - } - catch (Exception e){ - log.error(e.getMessage()); - } - /**自动诊断**/ - this.diagnosisByMsg(message); - } - - - @Override - public void onClose(int code, String reason, boolean remote) { - log.info("[websocket] 退出连接={}-{}, 是否远程主动中断 = ", code , reason, remote); - } - - - @Override - public void onError(Exception ex) { - log.error("[websocket] onError = {}",ex.getMessage()); - } - - - void trustAllHosts(AlertWebSocketClient appClient) { - log.info("[websocket] wss 连接 ----- "); - try { - // wss需添加 - SSLContext sslContext = SSLContext.getInstance("TLS"); - sslContext.init(null, new TrustManager[] { new X509TrustManager() { - - @Override - public void checkClientTrusted(X509Certificate[] chain, - String authType) { - - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, - String authType) { - - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - } }, new SecureRandom()); - SSLSocketFactory factory = sslContext.getSocketFactory(); - appClient.setSocket(factory.createSocket()); - } catch (Exception e) { - log.error("[websocket] trustAllHosts 错误 - " + e.toString()); - } - } - - - /** - * 推送信息到移动端 - * @param message - */ - private void handleMsg(String message){ - JSONObject msg = JSONObject.parseObject(message); - if(Func.isEmpty(msg.getString("soe_explain")) || Func.isEmpty(msg.getString("station"))){ - return; - } - List users = stationService.getUsersByStationId(msg.getString("station")); - if(Func.isEmpty(users)){ - return; - } - // 移动端消息推送 : 使用 用户id做TAG,前端注册用户id为TAG - PushInfoVO pushInfoVO = new PushInfoVO(); - pushInfoVO.setTenantId(users.get(0).getTenantId()); - PushPlatform platform = PushPlatform.all(); - Map> audienceMap = new HashMap<>(); - audienceMap.put(PushAudienceType.TAG, users.stream().map(user -> user.getId().toString()).collect(Collectors.toList())); - PushAudience audience = new PushAudience(false, audienceMap); - PushInfo pushInfo = new PushInfo(jgPushCode - , "实时告警" - , msg.getString("soe_explain") - , "" - , null - , platform - , audience); - pushInfoVO.setPushInfo(pushInfo); - // FIXME:极光推送暂时关闭 推送消息给移动端 - //pushClient.tenantPush(pushInfoVO); - log.info("[websocket] handleMsg finish ----- " + pushInfo.toString()); - } - - /** - * 告警缺陷处理 - * @param message - */ - private void handleAlertDefect(String message) { - List list = Collections.singletonList(JSONObject.parseObject(message, AlertVo.class)); - alertDefectService.saveAlertDefect(list); - } - - /*** - * 根据返回信息自动诊断 - * @param message - */ - private void diagnosisByMsg(String message){ - JSONObject msg = JSONObject.parseObject(message); - if(Func.isEmpty(msg.getString("station")) || Func.isEmpty(msg.getString("realid"))){ - return; - } - /**根据station/realid进行诊断**/ - monitorClient.alertAutoDiagnosis(msg.getString("realid"),msg.getString("station")); - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/WebSocketClientManager.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/WebSocketClientManager.java deleted file mode 100644 index 460cf4c..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/WebSocketClientManager.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.hnac.hzims.operational.alert; - -import lombok.extern.slf4j.Slf4j; -import org.java_websocket.client.WebSocketClient; -import org.springblade.core.tool.utils.Func; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.net.URI; - -/** - * @Author: py - */ -@Slf4j -@EnableScheduling -@Component -public class WebSocketClientManager { - @Value("${hzims.alert.ws-url}") - String wsUrl; - - WebSocketClient webSocketClient; - - /** - * 保活,每30秒发送一次信息 - */ - @Scheduled(cron="0 */1 * * * ? ") - private void keepAlive(){ - if(Func.isNotEmpty(webSocketClient) && webSocketClient.isOpen()){ - webSocketClient.send("{\"type\":\"soe\"}"); - log.info("[WebSocketClient] 发送保活信息"); - } else { - try { - webSocketClient = new AlertWebSocketClient(new URI(wsUrl)); - if(webSocketClient.connectBlocking()){ - webSocketClient.send("{\"type\":\"soe\"}"); - } - } catch (Exception e) { - log.error("[WebSocketClient] connectBlocking 错误={}",e.toString()); - } - } - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AbnormalAlarmController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AbnormalAlarmController.java deleted file mode 100644 index cd4979d..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/AbnormalAlarmController.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.hnac.hzims.operational.alert.controller; - - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.common.logs.annotation.OperationAnnotation; -import com.hnac.hzims.common.logs.enums.BusinessType; -import com.hnac.hzims.common.logs.enums.OperatorType; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.service.HistoryAbnormalAlarmService; -import com.hnac.hzims.operational.alert.vo.AlarmParamVo; -import com.hnac.hzims.operational.alert.vo.AlarmReustVo; -import com.hnac.hzims.operational.alert.vo.HistoryAlarmVo; -import com.hnac.hzims.operational.config.vo.AlarmDataPageVo; -import com.hnac.hzims.operational.config.vo.AlarmVo; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import com.hnac.hzims.operational.station.vo.HistoryAbnormalAlarmVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.AllArgsConstructor; -import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.log.annotation.ApiLog; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.Func; -import org.springframework.web.bind.annotation.*; - -import javax.validation.Valid; -import java.util.List; - -/** - * @author ysj - */ -@Api(tags = {"通讯中断、数据异常"}) -@RestController -@AllArgsConstructor -@RequestMapping("/abnormal/alarm") -public class AbnormalAlarmController extends BladeController { - - - private final HistoryAbnormalAlarmService service; - /** - * 统计通讯中断时间 - */ - @ApiLog - @RequestMapping(value = "/statisticsTime", method = {RequestMethod.GET, RequestMethod.POST}) - @ApiOperationSupport(order = 1) - @ApiOperation(value = "统计通讯中断时间", notes = "传入imsDutyMainEntity") - @OperationAnnotation(moduleName = "通讯告警统计",title = "通讯告警统计", operatorType = OperatorType.MOBILE, - businessType = BusinessType.GENCODE,action = "查询通讯告警统计数据") - public R> statisticsTime(HistoryAlarmVo entity, Query query) { - IPage pages = service.getAlarmTime(query,entity); - return R.data(pages); - } - - /** - * 统计通讯中断二级目录查询 - */ - @ApiLog - @RequestMapping(value = "/queryByEntity", method = {RequestMethod.GET, RequestMethod.POST}) - @ApiOperationSupport(order = 1) - @ApiOperation(value = "统计通讯中断二级目录查询", notes = "传入imsDutyMainEntity") - public R> queryByEntity(HistoryAlarmVo entity, Query query) { - IPage pages = service.queryByEntity(entity,query); - return R.data(pages); - } - - @ApiLog - @GetMapping("/queryStationName") - @ApiOperationSupport(order = 2) - @ApiOperation(value = "查询站点") - public R> queryStationName() { - List res = service.queryStationName(); - return R.data(res); - } - /** - * 详情 - */ - @ApiLog - @RequestMapping(value = "/detail", method = {RequestMethod.GET, RequestMethod.POST}) - @ApiOperationSupport(order = 3) - @ApiOperation(value = "详情", notes = "传入HistoryAbnormalAlarmEntity") - public R detail(HistoryAbnormalAlarmEntity entity) { - HistoryAbnormalAlarmEntity detail = service.getOne(Condition.getQueryWrapper(entity)); - return R.data(detail); - } - - /** - * 分页 - */ - @ApiLog - @GetMapping("/list") - @ApiOperationSupport(order = 4) - @ApiOperation(value = "分页", notes = "传入HistoryAbnormalAlarmEntity") - public R> list(HistoryAbnormalAlarmEntity entity, Query query) { - IPage pages = service.page(Condition.getPage(query), Condition.getQueryWrapper(entity)); - return R.data(pages); - } - - /** - * 新增或修改 - */ - @PostMapping("/submit") - @ApiOperationSupport(order = 5) - @ApiOperation(value = "新增或修改", notes = "传入HistoryAbnormalAlarmEntity") - public R submit(@Valid @RequestBody HistoryAbnormalAlarmEntity entity) { - return R.status(service.saveOrUpdate(entity)); - } - - - /** - * 删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 6) - @ApiOperation(value = "逻辑删除", notes = "传入ids") - public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * - */ - @ApiLog - @ApiOperation(value = "原始告警接口") - @ApiOperationSupport(order = 7) - @RequestMapping(value = "/alarms", method = {RequestMethod.GET, RequestMethod.POST}) - public R alarms(AlarmParamVo param){ - return R.data(service.alarms(param)); - } - - /** - * 智能告警数量: 时间范围当天 - */ - @ApiLog - @ApiOperation(value = "智能告警数量") - @ApiOperationSupport(order = 8) - @RequestMapping(value = "/count", method = {RequestMethod.GET, RequestMethod.POST}) - public R> count(){ - return R.data(service.alarmCount()); - } - - - /** - * 智能告警数据: 时间范围当天 - */ - @ApiLog - @ApiOperation(value = "智能告警数据") - @ApiOperationSupport(order = 9) - @RequestMapping(value = "/data", method = RequestMethod.GET) - public R> data(AlarmDataPageVo page,Query query) { - return R.data(service.alarmData(page,query)); - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/LevelAlarmController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/LevelAlarmController.java deleted file mode 100644 index 2adf429..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/controller/LevelAlarmController.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.hnac.hzims.operational.alert.controller; - - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; -import com.hnac.hzims.operational.alert.service.HistoryLevelAlarmService; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import lombok.AllArgsConstructor; -import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.log.annotation.ApiLog; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.Func; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @author ysj - */ -@Api(tags = {"等级告警"}) -@RestController -@AllArgsConstructor -@RequestMapping("/level/alarm") -public class LevelAlarmController extends BladeController { - - private HistoryLevelAlarmService service; - - /** - * 分页 - */ - @ApiLog - @GetMapping("/list") - @ApiOperationSupport(order = 1) - @ApiOperation(value = "分页", notes = "传入HistoryAbnormalAlarmEntity") - public R> list(HistoryLevelAlarmEntity entity, Query query) { - IPage pages = service.pageCondition(query, entity); - return R.data(pages); - } - - - /** - * 删除 - */ - @PostMapping("/remove") - @ApiOperationSupport(order = 2) - @ApiOperation(value = "逻辑删除", notes = "传入ids") - public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { - return R.status(service.deleteLogic(Func.toLongList(ids))); - } - - /** - * 智能告警数量: 时间范围当天 - */ - @ApiLog - @ApiOperation(value = "智能告警数量") - @ApiOperationSupport(order = 3) - @RequestMapping(value = "/count", method = {RequestMethod.GET, RequestMethod.POST}) - public R> count(){ - return R.data(service.alarmCount()); - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.java deleted file mode 100644 index 34f6317..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hnac.hzims.operational.alert.mapper; - -import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; -import org.apache.ibatis.annotations.Param; -import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; - -import java.util.List; - -/** - * @author YSJ - */ -public interface AbnormalAlarmMapper extends UserDataScopeBaseMapper { - - AbnormalAlarmEntity getAbnormalAlarm(@Param("stationId") String stationId,@Param("type") String type); - - List getAbnormalAlarmList(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.xml deleted file mode 100644 index 034ec61..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AbnormalAlarmMapper.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.xml deleted file mode 100644 index 18304a2..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlarmHandleMapper.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.java deleted file mode 100644 index b78d7ed..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hnac.hzims.operational.alert.mapper; - -import com.hnac.hzims.operational.alert.entity.AlertDefectConfigEntity; - -import java.util.List; - -/** - * @author YSJ - */ -public interface AlertDefectConfigMapper { - - List getConfigAll(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.xml deleted file mode 100644 index 3b1071a..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/AlertDefectConfigMapper.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.java deleted file mode 100644 index fc81187..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hnac.hzims.operational.alert.mapper; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.station.vo.HistoryAbnormalAlarmVo; -import com.hnac.hzims.spare.vo.SpReceiveVO; -import org.apache.ibatis.annotations.Param; -import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; - -import java.util.Date; -import java.util.List; - -/** - * @author YSJ - */ -public interface HistoryAbnormalAlarmMapper extends UserDataScopeBaseMapper { - - List getHistoryAbnormalAlarm(@Param("stationId") String stationId,@Param("type") String type); - - List selectPageList(IPage page, String type, List stations); - - List getAlarmEntity(@Param("type") String type,@Param("stationName") List stationName,@Param("startTime") Date startTime,@Param("endTime") Date endTime); - - List getStationName(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.xml deleted file mode 100644 index 366645a..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryAbnormalAlarmMapper.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.java deleted file mode 100644 index 9eb6c3b..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.hnac.hzims.operational.alert.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; - -/** - * @author YSJ - */ -public interface HistoryLevelAlarmMapper extends BaseMapper { - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.xml deleted file mode 100644 index 40e7037..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/mapper/HistoryLevelAlarmMapper.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AbnormalAlarmService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AbnormalAlarmService.java deleted file mode 100644 index b75d835..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AbnormalAlarmService.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; -import org.springblade.core.mp.base.BaseService; - -import java.util.List; - -/** - * 告警处理接口 - * @author ysj - */ -public interface AbnormalAlarmService extends BaseService { - - void alarmDataHandle(String param); - - List getAbnormalAlarmList(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmMergeService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmMergeService.java deleted file mode 100644 index 4cb0260..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlarmMergeService.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -import com.hnac.hzims.operational.config.vo.MessageParamVo; -import org.springframework.web.socket.TextMessage; - -/** - * @author ysj - * @date 2023/03/09 09:19:13 - * @version 4.0.0 - */ -public interface AlarmMergeService { - - // 获取发送消息 - TextMessage getSendMessage(MessageParamVo param); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlertDefectService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlertDefectService.java deleted file mode 100644 index ae3c966..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/AlertDefectService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -import com.hnac.hzims.operational.alert.vo.AlertVo; - -import java.util.List; - -/** - * 告警缺陷处理接口 - */ -public interface AlertDefectService { - - void saveAlertDefect(List list); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryAbnormalAlarmService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryAbnormalAlarmService.java deleted file mode 100644 index ca936c6..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryAbnormalAlarmService.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.vo.AlarmParamVo; -import com.hnac.hzims.operational.alert.vo.AlarmReustVo; -import com.hnac.hzims.operational.alert.vo.HistoryAlarmVo; -import com.hnac.hzims.operational.config.vo.AlarmDataPageVo; -import com.hnac.hzims.operational.config.vo.AlarmVo; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import com.hnac.hzims.operational.station.vo.HistoryAbnormalAlarmVo; -import org.springblade.core.mp.base.BaseService; -import org.springblade.core.mp.support.Query; - -import java.util.List; - -/** - * 告警处理接口 - * @author ysj - */ -public interface HistoryAbnormalAlarmService extends BaseService { - - HistoryAbnormalAlarmEntity getAbnormalAlarm(String station, String soeType); - - IPage list(IPage page, String type); - - IPage getAlarmTime(Query query, HistoryAlarmVo entity); - - IPage queryByEntity(HistoryAlarmVo entity,Query query); - - AlarmReustVo alarms(AlarmParamVo param); - - // 智能告警数量: 时间范围当天 - List alarmCount(); - - // 告警数据:时间范围-当天 - IPage alarmData(AlarmDataPageVo page,Query query); - - List queryStationName(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryLevelAlarmService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryLevelAlarmService.java deleted file mode 100644 index c0cffea..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/HistoryLevelAlarmService.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import org.springblade.core.mp.base.BaseService; -import org.springblade.core.mp.support.Query; - -import java.util.List; - -/** - * 等级告警数据查询 - * @author ysj - */ -public interface HistoryLevelAlarmService extends BaseService { - - - IPage pageCondition(Query query, HistoryLevelAlarmEntity entity); - - List alarmCount(); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/LevelAlarmService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/LevelAlarmService.java deleted file mode 100644 index 885ab64..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/LevelAlarmService.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.hnac.hzims.operational.alert.service; - -/** - * 告警处理接口 - * @author ysj - */ -public interface LevelAlarmService { - - String sendMessage(); - - void receiveMessage(String message); -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java deleted file mode 100644 index c4067ea..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AbnormalAlarmServiceImpl.java +++ /dev/null @@ -1,268 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hnac.hzims.message.MessageConstants; -import com.hnac.hzims.message.dto.BusinessMessageDTO; -import com.hnac.hzims.message.fegin.IMessageClient; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.mapper.AbnormalAlarmMapper; -import com.hnac.hzims.operational.alert.service.AbnormalAlarmService; -import com.hnac.hzims.operational.alert.service.HistoryAbnormalAlarmService; -import com.hnac.hzims.operational.station.entity.StationEntity; -import com.hnac.hzims.operational.station.service.IStationService; -import com.hnac.hzinfo.datasearch.soe.ISoeClient; -import com.hnac.hzinfo.datasearch.soe.domian.SoeData; -import com.hnac.hzinfo.datasearch.soe.domian.SoeQueryConditionByStation; -import com.hnac.hzinfo.sdk.core.response.HzPage; -import com.hnac.hzinfo.sdk.core.response.Result; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springblade.core.tool.utils.StringUtil; -import org.springblade.system.entity.Dept; -import org.springblade.system.feign.ISysClient; -import org.springblade.system.user.entity.User; -import org.springblade.system.user.feign.IUserClient; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.util.*; -import java.util.stream.Collectors; - -/** - * 告警实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class AbnormalAlarmServiceImpl extends BaseServiceImpl implements AbnormalAlarmService { - - private final IStationService stationService; - - private final HistoryAbnormalAlarmService historyAbnormalAlarmService; - - private final ISysClient sysClient; - - private final ISoeClient soeClient; - - private final IUserClient userClient; - - private final IMessageClient messageClient; - - /** - * 故障、中断,异常告警数据处理 - * @param param - */ - @Override - public void alarmDataHandle(String param) { - // 查询站点站点 - List stations = stationService.list(); - if(CollectionUtil.isEmpty(stations)){ - return; - } - // 查询告警数据: 间隔3分钟 - SoeQueryConditionByStation query = new SoeQueryConditionByStation(); - query.setTypes(AbnormalAlarmConstant.SEND_MESSSAGE_TYPE_LIST); - query.setStationIds(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - Calendar calendar = Calendar.getInstance(); - query.setEndTime(LocalDateTime.parse(DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); - calendar.add(Calendar.MINUTE,-10); - query.setBeginTime(LocalDateTime.parse(DateUtil.format(calendar.getTime() , DateUtil.PATTERN_DATETIME),DateUtil.DATETIME_FORMATTER)); - query.setNeedPage(false); - query.setPage(1); - query.setLimit(100000); - Result> result = soeClient.getByStationsAndTime(query); - // 未查询到告警信息 - if(!result.isSuccess() || ObjectUtil.isEmpty(result.getData()) || CollectionUtil.isEmpty(result.getData().getRecords())) { - return; - } - List soes = result.getData().getRecords(); - // 过滤已经当天存储得告警数据 - List history = historyAbnormalAlarmService.list(Wrappers.lambdaQuery() - .in(HistoryAbnormalAlarmEntity::getAlarmId,soes.stream().map(SoeData::getId).collect(Collectors.toList())) - .ge(HistoryAbnormalAlarmEntity::getStartTime,DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00") - ); - if(CollectionUtil.isNotEmpty(history)){ - soes = result.getData().getRecords().stream().filter(soe-> !history.stream().map(HistoryAbnormalAlarmEntity::getAlarmId).collect(Collectors.toList()).contains(soe.getId())).collect(Collectors.toList()); - } - if(CollectionUtil.isEmpty(soes)){ - return; - } - - // 遍历告警信息 - soes.forEach(item -> { - if(!AbnormalAlarmConstant.INTERRUPT_LIST.contains(item.getSoeType())){ - return; - } - this.interrupt(stations,item); - }); - - // 历史数据处理 - this.saveHistoryAlarm(stations,soes); - } - - - /** - * 中断、异常数据处理 - * @param stations - * @param item - */ - private void interrupt(List stations,SoeData item) { - // 查询中断数据 - AbnormalAlarmEntity queryEntity = this.baseMapper.getAbnormalAlarm(item.getStation(),item.getSoeType()); - // 是否为中断恢复 - boolean flag = AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType()); - // 站点名称 - String stationName = Optional.ofNullable(stations.stream().filter(o-> o.getCode().equals(item.getStation())).collect(Collectors.toList())).map(o->o.get(0).getName()).orElse(null); - // 不存在记录进行保存 - if(ObjectUtil.isEmpty(queryEntity)){ - AbnormalAlarmEntity entity = new AbnormalAlarmEntity(); - entity.setStationId(item.getStation()); - entity.setStationName(stationName); - entity.setRealId(item.getRealId()); - entity.setSoeExplain(item.getSoeExplain()); - entity.setType(item.getSoeType()); - entity.setStartTime(item.getTs()); - entity.setEndTime(null); - entity.setStatus(0); - if(flag){ - entity.setStartTime(null); - entity.setEndTime(item.getTs()); - entity.setStatus(1); - } - // 保存告警信息 - this.save(entity); - // 存在记录进行修改 - }else{ - queryEntity.setSoeExplain(item.getSoeExplain()); - queryEntity.setStartTime(queryEntity.getStartTime()); - queryEntity.setUpdateTime(new Date()); - queryEntity.setEndTime(null); - queryEntity.setStatus(0); - if(flag){ - queryEntity.setEndTime(item.getTs()); - queryEntity.setStatus(1); - } - this.updateById(queryEntity); - } - } - - /** - * 历史数据处理 - * - * @param stations - * @param list - */ - private void saveHistoryAlarm(List stations, List list) { - List historys = historyAbnormalAlarmService.list(Wrappers.lambdaQuery() - .in(HistoryAbnormalAlarmEntity::getAlarmId,list.stream().map(SoeData::getId).collect(Collectors.toList())) - ); - List explains = new ArrayList<>(); - for(SoeData item: list){ - if(CollectionUtil.isNotEmpty(historys) && historys.stream().map(HistoryAbnormalAlarmEntity::getAlarmId).collect(Collectors.toList()).contains(item.getId())){ - return; - } - HistoryAbnormalAlarmEntity entity = new HistoryAbnormalAlarmEntity(); - String stationName = Optional.ofNullable(stations.stream().filter(o-> o.getCode().equals(item.getStation())).collect(Collectors.toList())).map(o->o.get(0).getName()).orElse(null); - entity.setAlarmId(item.getId()); - entity.setStationId(item.getStation()); - entity.setStationName(stationName); - entity.setRealId(item.getRealId()); - entity.setType(item.getSoeType()); - entity.setStartTime(item.getTs()); - entity.setSoeExplain(item.getSoeExplain()); - if(AbnormalAlarmConstant.ABNORMAL_STATUS.equals(item.getSoeAlarmType())){ - entity.setStatus(1); - }else{ - entity.setStatus(0); - } - this.historyAbnormalAlarmService.save(entity); - if(explains.contains(entity.getSoeExplain())){ - continue; - }else{ - // 相同告警只允许添加一次,发送一次消息 - explains.add(item.getSoeExplain()); - } - // 发送消息 - this.sendAlarmMessage(entity,stations,stationName); - // 推送短信: 只推送拥有项目经理角色用户 - }; - } - - /** - * 告警消息推送 - * @param entity - */ - private void sendAlarmMessage(HistoryAbnormalAlarmEntity entity,List stations,String stationName) { - if(StringUtil.isEmpty(entity.getStationId())){ - return; - } - List depts = stations.stream().filter(station -> station.getCode().equals(entity.getStationId())).map(StationEntity::getRefDept).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(depts)){ - return; - } - List users = this.parentAuthUser(depts.get(0)); - if(CollectionUtil.isEmpty(users)){ - log.error("alarmmessagestation {} user is null",entity.getStationId()); - return; - } - BusinessMessageDTO message = new BusinessMessageDTO(); - message.setDeptId(depts.get(0)); - message.setBusinessClassify("warning"); - message.setUserIds(users.stream().map(o->String.valueOf(o.getId())).distinct().collect(Collectors.joining(","))); - message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); - message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription() + "-[" + stationName + "]"); - message.setTaskId(entity.getId()); - message.setTenantId("200000"); - message.setContent(entity.getSoeExplain()); - R deptName = sysClient.getDeptName(depts.get(0)); - if (deptName.isSuccess()) { - message.setDeptName(deptName.getData()); - } - User admin = userClient.userByAccount("200000", "admin").getData(); - message.setCreateUser(admin.getId()); - messageClient.sendAppAndWsMsgByUsers(message); - } - - /** - * 获取本级机构或者上级机构用户 - * @param deptId - * @return - */ - private List parentAuthUser(Long deptId) { - List users = new ArrayList<>(); - R> selfs = userClient.userListByDeptId(deptId); - if(selfs.isSuccess() && CollectionUtil.isNotEmpty(selfs.getData())){ - users.addAll(selfs.getData()); - } - R dept = sysClient.getDept(deptId); - if(dept.isSuccess() && ObjectUtil.isNotEmpty(dept.getData())){ - R> parents = userClient.userByDeptId("200000",dept.getData().getParentId()); - if(parents.isSuccess() && CollectionUtil.isNotEmpty(parents.getData())){ - users.addAll(parents.getData()); - } - } - return users; - } - - /** - * 查询实时告警数据 - * @return - */ - @Override - public List getAbnormalAlarmList() { - List alarmList = this.baseMapper.getAbnormalAlarmList(); - if(CollectionUtil.isEmpty(alarmList)){ - return new ArrayList<>(); - } - return alarmList; - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertDefectServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertDefectServiceImpl.java deleted file mode 100644 index bff16bb..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertDefectServiceImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; -import com.hnac.hzims.operational.alert.constants.AlertDefectConfigConstant; -import com.hnac.hzims.operational.alert.entity.AlertDefectConfigEntity; -import com.hnac.hzims.operational.alert.mapper.AlertDefectConfigMapper; -import com.hnac.hzims.operational.alert.service.AlertDefectService; -import com.hnac.hzims.operational.alert.vo.AlertVo; -import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity; -import com.hnac.hzims.operational.defect.service.IDefectCheckService; -import com.hnac.hzims.operational.main.service.IMainSystemMonitoringService; -import com.hnac.hzims.operational.station.service.IStationService; -import com.hnac.hzims.operational.station.vo.StationVO; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.MapUtils; -import org.springblade.core.tool.utils.*; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Service; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 告警缺陷处理实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class AlertDefectServiceImpl implements AlertDefectService { - - private final AlertDefectConfigMapper defectConfigMapper; - - private final IDefectCheckService defectCheckService; - - private final IStationService stationService; - - private final IMainSystemMonitoringService mainSystemMonitoringService; - - - @Value("${hzims.operation.alert.saveDefectIsOpen}") - public Boolean isOpen; - - /** - * 保存告警缺陷 - * @param list - */ - @Override - public void saveAlertDefect(List list) { - if(!isOpen){ - return; - } - // 查询保存告警类型配置 - List configAll = this.defectConfigMapper.getConfigAll(); - if(CollectionUtil.isEmpty(configAll)){ - return; - } - List saveAlertType = configAll.stream().filter(o->o.getIsOpen().equals(1)).map(AlertDefectConfigEntity::getAlertType).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(saveAlertType)){ - return; - } - // 所有设备信息 - List devices = mainSystemMonitoringService.getEmInfoList(); - DateTimeFormatter format = DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME_MINI); - list.forEach(alert->{ - // 不在配置告警保存类型内 - if(!saveAlertType.contains(Integer.valueOf(alert.getSoeType()))){ - return; - } - // TODO 近约大概时长不进行重复记录现象 - //this.defectCheckService.get - - // 组装现象对象 - OperPhenomenonEntity phenomenon = new OperPhenomenonEntity(); - phenomenon.setSourceCode(AlertDefectConfigConstant.ALERT_SOURCE_CODE); - phenomenon.setDefectCode(AlertDefectConfigConstant.ALERT_SOURCE_CODE + format.format(LocalDateTime.now()) + Func.random(3)); - phenomenon.setFaultName(alert.getRealid() + alert.getSoeAlarmType()); - phenomenon.setFindTime(new Date()); - phenomenon.setDescripiton(alert.getSoeExplain()); - phenomenon.setCreateTime(new Date()); - phenomenon.setInitResult("系统捕捉告警,分析因现场设备某个指标不在可控阀值内或设备出现故障"); - phenomenon.setFinder(1575044163023556610L); - phenomenon.setCreateDept(20000001L); - phenomenon.setCreateUser(1575044163023556610L); - phenomenon.setUpdateUser(1575044163023556610L); - phenomenon.setTypeCode("0"); - phenomenon.setDiscriminateStatus("0"); - phenomenon.setTenantId("200000"); - EminfoAndEmParamVo device = this.findDeviceByRealId(devices,alert.getRealid()); - if(ObjectUtil.isEmpty(device)){ - StationVO station = stationService.getStationByCode(alert.getStation()); - if(ObjectUtil.isEmpty(station)){ - phenomenon.setName(alert.getStation() + "-未知设备"); - }else{ - phenomenon.setName(station.getName() + "-站点设备"); - } - }else { - phenomenon.setEmCode(device.getEmCode()); - phenomenon.setName(device.getName()); - } - // 现象保存,缺陷流程开启 - defectCheckService.startCheck(phenomenon); - }); - } - - /** - * 根据realId查找设备 - * @param devices - * @param realid - * @return - */ - private EminfoAndEmParamVo findDeviceByRealId(List devices, String realid) { - if(CollectionUtil.isEmpty(devices) || StringUtil.isBlank(realid)){ - return null; - } - // 遍历设备监测点 - for(EminfoAndEmParamVo device : devices){ - Map map = device.getPoint(); - if(MapUtils.isEmpty(map)){ - continue; - } - if(map.containsKey(realid)){ - return device; - } - } - return null; - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertMerageServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertMerageServiceImpl.java deleted file mode 100644 index ad687cb..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/AlertMerageServiceImpl.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; -import com.hnac.hzims.operational.alert.service.*; -import com.hnac.hzims.operational.alert.vo.AlarmMergeVo; -import com.hnac.hzims.operational.config.vo.MessageParamVo; -import com.hnac.hzims.operational.main.constant.HomePageConstant; -import com.hnac.hzims.operational.station.entity.StationEntity; -import com.hnac.hzims.operational.station.service.IStationService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springframework.stereotype.Service; -import org.springframework.web.socket.TextMessage; - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 告警合并处理实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class AlertMerageServiceImpl implements AlarmMergeService { - - private final IStationService stationService; - - private final AlarmHandleService alarmHandleService; - - private final HistoryAbnormalAlarmService faultAlarmService; - - private final HistoryLevelAlarmService levelAlarmService; - - /** - * 根据用户获取hz3000事故告警、平台一级告警、二级告警 - * @param param - * @return - */ - @Override - public TextMessage getSendMessage(MessageParamVo param) { - // 查询用户 - if(ObjectUtil.isEmpty(param)){ - return null; - } - List depts = param.getDeptIds(); - if(CollectionUtil.isEmpty(depts)){ - return null; - } - // 查询站点 - List stations = stationService.list(Wrappers.lambdaQuery() - .in(StationEntity::getRefDept,depts) - .eq(StationEntity::getServeType, HomePageConstant.HYDROPOWER_SERVETYPE) - ); - if(CollectionUtil.isEmpty(stations)){ - return null; - } - String start = DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00"; - String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 23:59:59"; - - // hz3000事故告警 - List faults = faultAlarmService.list(Wrappers.lambdaQuery() - .in(HistoryAbnormalAlarmEntity::getStationId,stations.stream().map(StationEntity::getCode).collect(Collectors.toList())) - .eq(HistoryAbnormalAlarmEntity::getType, AbnormalAlarmConstant.FAULT) - .between(HistoryAbnormalAlarmEntity::getStartTime,start,end) - ); - // 处理告警记录 - List handles = alarmHandleService.handles(AbnormalAlarmConstant.LONG_TYPE_LIST,null); - - List alarms = new ArrayList<>(); - if(CollectionUtil.isNotEmpty(faults)){ - alarms.addAll(faults.stream().filter(o -> CollectionUtil.isEmpty(handles) - || !handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()).contains(o.getAlarmId().toString())). - map(fault->{ - AlarmMergeVo alarm = new AlarmMergeVo(); - alarm.setStationCode(fault.getStationId()); - alarm.setStationName(fault.getStationName()); - alarm.setContent(fault.getSoeExplain()); - alarm.setDate(fault.getStartTime()); - alarm.setRealId(fault.getRealId()); - alarm.setAlarmCode(String.valueOf(fault.getAlarmId())); - alarm.setType(fault.getType()); - alarm.setAlarmType(AbnormalAlarmConstant.SYSTEM_ALARM); - return alarm; - }).collect(Collectors.toList())); - } - // 等级告警 - List levels = levelAlarmService.list(Wrappers.lambdaQuery() - .in(HistoryLevelAlarmEntity::getAlarmLevel,AbnormalAlarmConstant.LEVEL_LIST) - .in(HistoryLevelAlarmEntity::getStationId,stations.stream().map(StationEntity::getCode).collect(Collectors.toList())) - .in(HistoryLevelAlarmEntity::getType, AbnormalAlarmConstant.TYPE_LIST) - .between(HistoryLevelAlarmEntity::getCreateTime,start,end) - ); - if(CollectionUtil.isNotEmpty(levels)){ - alarms.addAll(levels.stream().filter(l -> CollectionUtil.isEmpty(handles) - || !handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()).contains(l.getAlarmId())). - map(level->{ - AlarmMergeVo alarm = new AlarmMergeVo(); - alarm.setStationCode(level.getStationId()); - alarm.setStationName(level.getStationName()); - alarm.setContent(level.getSoeExplain()); - alarm.setDate(level.getAlarmTime()); - alarm.setRealId(level.getRealId()); - alarm.setLevel(level.getAlarmLevel()); - alarm.setAlarmCode(level.getAlarmId()); - alarm.setType(level.getType()); - alarm.setAlarmType(AbnormalAlarmConstant.INTELLIGENCE_ALARM); - return alarm; - }).collect(Collectors.toList())); - } - - return new TextMessage(JSONObject.toJSONString(alarms.stream().sorted(Comparator.comparing(AlarmMergeVo::getDate)).collect(Collectors.toList()))); - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java deleted file mode 100644 index e02cfe7..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java +++ /dev/null @@ -1,433 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.entity.HistoryAbnormalAlarmEntity; -import com.hnac.hzims.operational.alert.mapper.HistoryAbnormalAlarmMapper; -import com.hnac.hzims.operational.alert.service.AlarmHandleService; -import com.hnac.hzims.operational.alert.service.HistoryAbnormalAlarmService; -import com.hnac.hzims.operational.alert.vo.*; -import com.hnac.hzims.operational.config.vo.AlarmDataPageVo; -import com.hnac.hzims.operational.config.vo.AlarmVo; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import com.hnac.hzims.operational.main.constant.HomePageConstant; -import com.hnac.hzims.operational.station.entity.StationEntity; -import com.hnac.hzims.operational.station.service.IStationService; -import com.hnac.hzims.operational.station.vo.HistoryAbnormalAlarmVo; -import com.hnac.hzinfo.datasearch.soe.ISoeClient; -import com.hnac.hzinfo.datasearch.soe.domian.SoeData; -import com.hnac.hzinfo.datasearch.soe.domian.SoeQueryConditionByStation; -import com.hnac.hzinfo.sdk.core.response.HzPage; -import com.hnac.hzinfo.sdk.core.response.Result; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import net.logstash.logback.encoder.org.apache.commons.lang3.ObjectUtils; -import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; -import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.BeanUtil; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springblade.system.entity.Dept; -import org.springblade.system.feign.ISysClient; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Service; - -import java.lang.reflect.Field; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -/** - * 历史告警实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class HistoryAbnormalAlarmServiceImpl extends BaseServiceImpl implements HistoryAbnormalAlarmService { - - private final IStationService stationService; - - private final AlarmHandleService handleService; - - private final ISysClient sysClient; - - private final ISoeClient alarmClient; - - @Value("${hzims.operation.alarm.types}") - private String types; - - /** - * 查询单条历史告警 - * - * @param station - * @param soeType - * @return - */ - @Override - public HistoryAbnormalAlarmEntity getAbnormalAlarm(String station, String soeType) { - List alarms = this.baseMapper.getHistoryAbnormalAlarm(station, soeType); - if(CollectionUtil.isEmpty(alarms)){ - return null; - } - return alarms.stream().sorted(Comparator.comparing(HistoryAbnormalAlarmEntity::getStartTime)).collect(Collectors.toList()).get(0); - } - - /** - * 查询告警列表 - * @param page - * @param type - * @return - */ - @Override - public IPage list(IPage page, String type) { - List stations = stationService.getStationByType(HomePageConstant.HYDROPOWER, HomePageConstant.HYDROPOWER_SERVETYPE); - if (CollectionUtil.isEmpty(stations)) { - return null; - } - List result = this.baseMapper.selectPageList(page, type, stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - page.setRecords(result); - return page; - } - - /** - * 统计告警时长 - * @param query - * @param entity - * @return - */ - @Override - public IPage getAlarmTime(Query query, HistoryAlarmVo entity) { - QueryWrapper alarmEntityQueryWrapper = getAlarmEntityQueryWrapper(entity); - List historyAbnormalAlarmEntity = this.baseMapper.selectList(alarmEntityQueryWrapper); - if (historyAbnormalAlarmEntity == null) { - return null; - } - List historyAbnormalAlarmVos = BeanUtil.copy(historyAbnormalAlarmEntity, HistoryAbnormalAlarmVo.class); - //赋值空的endTime - if (ObjectUtils.isNotEmpty(entity.getEndTime())) { - historyAbnormalAlarmVos.stream().filter(s -> s.getEndTime() == null).forEach(s -> s.setEndTime(entity.getEndTime())); - } else { - historyAbnormalAlarmVos.stream().filter(s -> s.getEndTime() == null).forEach(s -> s.setEndTime(new Date())); - } - List voList = historyAbnormalAlarmVos.parallelStream().peek(s -> s.setTimes((s.getEndTime().getTime() - s.getStartTime().getTime()))).collect(Collectors.toList()); - //次数统计 - Map timesList = voList.stream().collect(Collectors.groupingBy(HistoryAbnormalAlarmEntity::getStationName, - Collectors.counting())); - //时间统计 - Map durationList = voList.stream().collect(Collectors.groupingBy(HistoryAbnormalAlarmEntity::getStationName, - Collectors.summingLong(HistoryAbnormalAlarmVo::getTimes))); - List res = new ArrayList<>(); - for (Map.Entry entry : durationList.entrySet()) { - //累计时长 - double v = BigDecimal.valueOf(entry.getValue() / (1000 * 60 * 60.00)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - HistoryAbnormalAlarmVo historyAbnormalAlarmVo = new HistoryAbnormalAlarmVo(); - historyAbnormalAlarmVo.setDuration(v); - String key = entry.getKey(); - historyAbnormalAlarmVo.setStationName(key); - historyAbnormalAlarmVo.setTimes(timesList.get(key)); - if (CollectionUtil.isNotEmpty(entity.getType())) { - //只有告警类型唯一,前端才根据这个字段进行渲染 - if (entity.getType().size()==1) { - historyAbnormalAlarmVo.setType(entity.getType().get(0)); - } - } - res.add(historyAbnormalAlarmVo); - } - //根据电站名字排序 - res = res.stream(). - sorted(Comparator.comparing(HistoryAbnormalAlarmVo::getStationName)) - .collect(Collectors.toList()); - IPage page = Condition.getPage(query); - page.setTotal(res.size()); - if (entityIsNull(query)) { - page.setRecords(res); - } else { - if (res.size() > query.getCurrent() * query.getSize()) { - page.setRecords(res.subList((query.getCurrent() - 1) * query.getSize(), query.getCurrent() * query.getSize())); - } else { - page.setRecords(res.subList((query.getCurrent() - 1) * query.getSize(), res.size())); - } - } - return page; - } - - - private QueryWrapper getAlarmEntityQueryWrapper(HistoryAlarmVo entity) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - if (entity.getStationName() != null) { - String[] list = entity.getStationName().split(","); - queryWrapper.lambda().in(HistoryAbnormalAlarmEntity::getStationName, Arrays.stream(list).collect(Collectors.toList())); - } - if (entity.getType() != null) { - queryWrapper.lambda().in(HistoryAbnormalAlarmEntity::getType, entity.getType()); - } - if (entity.getStartTime() != null) { - queryWrapper.lambda().ge(HistoryAbnormalAlarmEntity::getStartTime, entity.getStartTime()); - } - if (entity.getEndTime() != null) { - queryWrapper.lambda().le(HistoryAbnormalAlarmEntity::getStartTime, entity.getEndTime()); - } - return queryWrapper; - } - - @Override - public IPage queryByEntity(HistoryAlarmVo entity, Query query) { - QueryWrapper alarmEntityQueryWrapper = getAlarmEntityQueryWrapper(entity); - IPage historyAbnormalAlarmEntityIPage = this.baseMapper.selectPage(Condition.getPage(query), alarmEntityQueryWrapper); - List records = historyAbnormalAlarmEntityIPage.getRecords(); - List voList =new ArrayList<>(); - if (records.size()>0) { - List historyAbnormalAlarmVos = BeanUtil.copy(records, HistoryAbnormalAlarmVo.class); - //赋值空的endTime - if (ObjectUtils.isNotEmpty(entity.getEndTime())) { - historyAbnormalAlarmVos.stream().filter(s -> s.getEndTime() == null).forEach(s -> s.setEndTime(entity.getEndTime())); - } else { - historyAbnormalAlarmVos.stream().filter(s -> s.getEndTime() == null).forEach(s -> s.setEndTime(new Date())); - } - voList= historyAbnormalAlarmVos.parallelStream().peek(s -> { - long duration = s.getEndTime().getTime() - s.getStartTime().getTime(); - double v = BigDecimal.valueOf(duration / (1000 * 60 * 60.00)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - s.setDuration(v); - }).collect(Collectors.toList()); - } - IPage page = Condition.getPage(query); - page.setTotal(historyAbnormalAlarmEntityIPage.getTotal()); - page.setRecords(voList); - return page; - } - - /** - * 告警优化 - * @param param - * @return - */ - @Override - public AlarmReustVo alarms(AlarmParamVo param) { - // 查询用户权限机构 - R> result = sysClient.getDeptByCurrentUser(); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - return new AlarmReustVo(); - } - // 查询站点 - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE); - wrapper.in(StationEntity::getRefDept,result.getData().stream().map(Dept::getId).collect(Collectors.toList())); - - List stations = stationService.list(wrapper); - if(CollectionUtil.isEmpty(stations)){ - return new AlarmReustVo(); - } - // 查询告警数据 - SoeQueryConditionByStation condition = new SoeQueryConditionByStation(); - condition.setBeginTime(LocalDateTime.parse(DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00", DateUtil.DATETIME_FORMATTER)); - condition.setEndTime(LocalDateTime.now()); - condition.setNeedPage(true); - condition.setPage(param.getCurrent()); - condition.setLimit(param.getSize()); - condition.setStationIds(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - List types = Arrays.asList(param.getType().split(",")); - condition.setTypes(types); - Result> soe = alarmClient.getByStationsAndTime(condition); - if(!soe.isSuccess() || ObjectUtil.isEmpty(soe.getData()) || CollectionUtil.isEmpty(soe.getData().getRecords())){ - return new AlarmReustVo(); - } - - // 查询当天类型处理告警 - List handles = handleService.handles(types.stream().map(Long::parseLong).collect(Collectors.toList()),AbnormalAlarmConstant.SYSTEM_ALARM); - - // 返回数据 - AlarmReustVo response = new AlarmReustVo(); - List datas = soe.getData().getRecords().stream().map(alarm -> { - AlarmDataVo record = new AlarmDataVo(); - // 继承类属性拷贝 - BeanUtil.copyProperties(alarm, record); - if(CollectionUtil.isEmpty(handles)){ - record.setIsHandle(false); - }else{ - record.setIsHandle(handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()).contains(String.valueOf(alarm.getId()))); - } - record.setStationCode(alarm.getStation()); - record.setContent(alarm.getSoeExplain()); - record.setType(alarm.getSoeType()); - record.setSoeType(AbnormalAlarmConstant.TYPE_NAMES[Integer.parseInt(alarm.getSoeType())]); - List filter = stations.stream().filter(station -> station.getCode().equals(alarm.getStation())).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(filter)) { - return record; - } - record.setStationName(filter.get(0).getName()); - record.setServeType(filter.get(0).getServeType()); - record.setAlarmType(AbnormalAlarmConstant.SYSTEM_ALARM); - return record; - }).sorted(Comparator.comparing(AlarmDataVo::getIsHandle) - .thenComparing(AlarmDataVo::getTs, Comparator.reverseOrder())).collect(Collectors.toList()); - - response.setCount((int) (soe.getData().getTotal() - handles.size())); - response.setSoeList(datas); - response.setTotal(soe.getData().getTotal()); - return response; - } - - - - /** - * 获取处理数据ID集合 - * @return - */ - private List getAlarmHandleIds() { - List handles = handleService.list(); - if(CollectionUtil.isEmpty(handles)){ - return null; - } - return handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()); - } - - /** - * 告警数量:时间范围-当天 - * @return - */ - @Override - public List alarmCount() { - // 查询用户权限机构 - R> result = sysClient.getDeptByCurrentUser(); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - return new ArrayList<>(); - } - // 步骤1.查询用户权限站点 - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE); - wrapper.in(StationEntity::getRefDept,result.getData().stream().map(Dept::getId).collect(Collectors.toList())); - - List stations = stationService.list(wrapper); - if(CollectionUtil.isEmpty(stations)){ - return new ArrayList<>(); - } - // 步骤2.查询告警数据 - SoeQueryConditionByStation condition = new SoeQueryConditionByStation(); - condition.setBeginTime(LocalDateTime.parse(DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00", DateUtil.DATETIME_FORMATTER)); - condition.setEndTime(LocalDateTime.now()); - condition.setNeedPage(false); - condition.setStationIds(stations.stream().map(StationEntity::getCode).filter(StringUtils::isNotEmpty).collect(Collectors.toList())); - // nacos中配置告警类型:"0-默认", "1-系统", "2-告警", "3-故障", "4-用户操作", "5-遥测越限", "6-遥信变位", "7-注册信息", - // "8-信息提示", "9-设备巡检", "10-遥控操作", "11-遥测越限恢复","12-未定义","13-通讯中断","14-数据异常" - condition.setTypes(Arrays.asList(types.split(","))); - Result> soe = alarmClient.getByStationsAndTime(condition); - - // 步骤3. TODO 过滤已处理告警 - - // 步骤4.遍历获取 - return Arrays.stream(types.split(",")).map(type->{ - IntelligentAlarmCountVo count = new IntelligentAlarmCountVo(); - count.setType(type); - count.setName(AbnormalAlarmConstant.TYPE_NAMES[Integer.parseInt(type)]); - if(soe.isSuccess() && !ObjectUtil.isEmpty(soe.getData())){ - count.setCount(soe.getData().getRecords().stream().filter(record->type.equals(record.getSoeType())).count()); - }else { - count.setCount(0L); - } - return count; - }).collect(Collectors.toList()); - } - - /** - * 告警数据:时间范围-当天 - * @param param - * @param query - * @return - */ - @Override - public IPage alarmData(AlarmDataPageVo param,Query query) { - // 步骤1.查询用户权限站点 - LambdaQueryWrapper wappers = Wrappers.lambdaQuery(); - if(StringUtils.isNotEmpty(param.getCode())){ - wappers.eq(StationEntity::getCode,param.getCode()); - } - List stations = stationService.list(wappers); - - // 步骤2.查询告警数据 - List type_list; - if(Optional.ofNullable(param.getType()).isPresent()){ - type_list = Collections.singletonList(param.getType()); - }else { - type_list = Collections.singletonList(Arrays.asList(types.split(",")).get(0)); - } - SoeQueryConditionByStation condition = new SoeQueryConditionByStation(); - DateTimeFormatter format = DateTimeFormatter.ofPattern(DateUtil.PATTERN_DATETIME); - condition.setBeginTime(LocalDateTime.parse(/*DateUtil.format(new Date(), DateUtil.PATTERN_DATE) +*/ "2022-12-01 00:00:00", format)); - condition.setEndTime(LocalDateTime.parse(/*DateUtil.format(new Date(), DateUtil.PATTERN_DATE) +*/ "2022-12-28 00:00:00", format)); - condition.setNeedPage(false); - condition.setStationIds(stations.stream().map(StationEntity::getCode).filter(StringUtils::isNotEmpty).collect(Collectors.toList())); - // nacos中配置告警类型:"0-默认", "1-系统", "2-告警", "3-故障", "4-用户操作", "5-遥测越限", "6-遥信变位", "7-注册信息", - // "8-信息提示", "9-设备巡检", "10-遥控操作", "11-遥测越限恢复","12-未定义","13-通讯中断","14-数据异常" - condition.setTypes(type_list); - Result> result = alarmClient.getByStationsAndTime(condition); - IPage page = Condition.getPage(query); - if(result.isSuccess() && ObjectUtil.isNotEmpty(result)){ - // 步骤3.过滤完成告警处理数据 - List alarms = result.getData().getRecords().stream().map(record ->{ - AlarmVo alarm = new AlarmVo(); - alarm.setId(record.getId()); - alarm.setContent(record.getSoeExplain()); - alarm.setRealId(record.getRealId()); - alarm.setTs(record.getTs()); - alarm.setSoeStatus(record.getSoeStatus()); - alarm.setSoeType(AbnormalAlarmConstant.TYPE_NAMES[Integer.parseInt(record.getSoeType())]); - alarm.setOptionvals(record.getOptionvals()); - alarm.setSoeStatus(record.getSoeStatus()); - alarm.setStation(record.getStation()); - List names = stations.stream().filter(station -> station.getCode().equals(record.getStation())).map(StationEntity::getName).collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(names)){ - alarm.setStationName(names.get(0)); - } - return alarm; - }).collect(Collectors.toList()); - - // 步骤4.分页 - page.setTotal(alarms.size()); - page.setRecords(alarms.stream().sorted(Comparator.comparing(AlarmVo::getTs,Comparator.reverseOrder())) - .skip(page.getSize() * (page.getCurrent() - 1)).limit(page.getSize()) - .collect(Collectors.toList())); - page.setPages((alarms.size() -1) / page.getSize() + 1); - }else{ - page.setTotal(0); - page.setPages(0); - } - return page; - } - - @Override - public List queryStationName() { - return this.baseMapper.getStationName(); - } - - - - private Boolean entityIsNull(Object object) { - if (null == object) { - return true; - } - try { - for (Field f : object.getClass().getDeclaredFields()) { - f.setAccessible(true); - if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) { - return false; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return true; - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryLevelAlarmServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryLevelAlarmServiceImpl.java deleted file mode 100644 index 324b205..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryLevelAlarmServiceImpl.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; -import com.hnac.hzims.operational.alert.mapper.HistoryLevelAlarmMapper; -import com.hnac.hzims.operational.alert.service.AlarmHandleService; -import com.hnac.hzims.operational.alert.service.HistoryLevelAlarmService; -import com.hnac.hzims.operational.config.vo.IntelligentAlarmCountVo; -import com.hnac.hzims.operational.station.entity.StationEntity; -import com.hnac.hzims.operational.station.service.IStationService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springframework.stereotype.Service; - -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -/** - * 等级告警实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class HistoryLevelAlarmServiceImpl extends BaseServiceImpl implements HistoryLevelAlarmService { - - - private final IStationService stationService; - - private final AlarmHandleService handleService; - - /** - * 列表查询 - * @param query - * @param entity - * @return - */ - @Override - public IPage pageCondition(Query query, HistoryLevelAlarmEntity entity) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - wrapper.between(HistoryLevelAlarmEntity::getAlarmTime, DateUtil.format(new Date(), DateUtil.PATTERN_DATE) + " 00:00:00", - DateUtil.format(new Date(), DateUtil.PATTERN_DATETIME)); - if(ObjectUtil.isNotEmpty(entity.getType())){ - wrapper.eq(HistoryLevelAlarmEntity::getType, entity.getType()); - } - if(ObjectUtil.isNotEmpty(entity.getStationId())){ - wrapper.eq(HistoryLevelAlarmEntity::getStationId, entity.getStationId()); - }else{ - List stations = stationService.list(); - if(CollectionUtil.isNotEmpty(stations)){ - wrapper.in(HistoryLevelAlarmEntity::getStationId,stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - } - } - IPage page = super.page(Condition.getPage(query), wrapper); - List records = page.getRecords(); - // 步骤2. 过滤已处理等級告警 - List handles = handleService.handles(ObjectUtil.isEmpty(entity.getType()) ? AbnormalAlarmConstant.LONG_TYPE_LIST : Collections.singletonList(Long.parseLong(entity.getType())),AbnormalAlarmConstant.INTELLIGENCE_ALARM); - - page.setRecords(records.stream().peek(record-> { - record.setIsHandle(CollectionUtil.isNotEmpty(handles) && handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()).contains(record.getAlarmId())); - record.setAlarmType(AbnormalAlarmConstant.INTELLIGENCE_ALARM); - }).collect(Collectors.toList())); - return page; - } - - /** - * 告警数量:时间范围-当天 - * @return - */ - @Override - public List alarmCount() { - // 步骤1.查询用户权限站点 - List stations = stationService.list(); - if(CollectionUtil.isEmpty(stations)){ - return null; - } - - // 步骤2. 过滤已处理等級告警 - LambdaQueryWrapper handleWarpper = new LambdaQueryWrapper(); - handleWarpper.between(AlarmHandleEntity::getCreateTime, DateUtil.format(new Date(), DateUtil.PATTERN_DATE) + " 00:00:00", - DateUtil.format(new Date(), DateUtil.PATTERN_DATETIME)); - handleWarpper.in(AlarmHandleEntity::getStationCode, stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - List handles = handleService.list(); - - // 步骤2.查询告警数据 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); - wrapper.between(HistoryLevelAlarmEntity::getAlarmTime, DateUtil.format(new Date(), DateUtil.PATTERN_DATE) + " 00:00:00", - DateUtil.format(new Date(), DateUtil.PATTERN_DATETIME)); - wrapper.in(HistoryLevelAlarmEntity::getStationId, stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - wrapper.in(HistoryLevelAlarmEntity::getType,AbnormalAlarmConstant.TYPE_LIST); - if(CollectionUtil.isNotEmpty(handles)){ - wrapper.notIn(HistoryLevelAlarmEntity::getAlarmId,handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList())); - } - List levels = this.list(wrapper); - - // 步骤4.遍历获取 - return AbnormalAlarmConstant.TYPE_LIST.stream().map(type->{ - IntelligentAlarmCountVo count = new IntelligentAlarmCountVo(); - count.setType(type); - count.setName(AbnormalAlarmConstant.TYPE_NAMES[Integer.parseInt(type)]); - if(CollectionUtil.isEmpty(levels)){ - count.setCount(0L); - }else{ - count.setCount(levels.stream().filter(level->level.getType().equals(type)).count()); - } - return count; - }).collect(Collectors.toList()); - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/LevelAlarmServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/LevelAlarmServiceImpl.java deleted file mode 100644 index 24bc744..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/LevelAlarmServiceImpl.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.hnac.hzims.operational.alert.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.hnac.hzims.equipment.entity.EmInfoEntity; -import com.hnac.hzims.equipment.feign.IEmInfoClient; -import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; -import com.hnac.hzims.message.MessageConstants; -import com.hnac.hzims.message.dto.MessagePushRecordDto; -import com.hnac.hzims.message.fegin.IMessageClient; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.HistoryLevelAlarmEntity; -import com.hnac.hzims.operational.alert.service.HistoryLevelAlarmService; -import com.hnac.hzims.operational.alert.service.LevelAlarmService; -import com.hnac.hzims.operational.config.vo.LevelAlarmVo; -import com.hnac.hzims.operational.main.constant.HomePageConstant; -import com.hnac.hzims.operational.main.service.IMainSystemMonitoringService; -import com.hnac.hzims.operational.station.entity.StationEntity; -import com.hnac.hzims.operational.station.service.IStationService; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.log.exception.ServiceException; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.StringUtil; -import org.springblade.system.feign.ISysClient; -import org.springblade.system.user.entity.User; -import org.springblade.system.user.feign.IUserClient; -import org.springframework.stereotype.Service; - -import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; - -/** - * 等级告警实现类 - * @author ysj - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class LevelAlarmServiceImpl implements LevelAlarmService { - - private final IStationService stationService; - - private final IEmInfoClient deviceClient; - - private final HistoryLevelAlarmService historyLevelAlarmService; - - private final IUserClient userClient; - - private final ISysClient sysClient; - - private final IMessageClient messageClient; - - /** - * 定时发送消息内容 - * @return String - */ - @Override - public String sendMessage() { - // 站点 - List stations = stationService.list(Wrappers.lambdaQuery() - .eq(StationEntity::getServeType, HomePageConstant.HYDROPOWER_SERVETYPE)); - if(CollectionUtil.isEmpty(stations)){ - throw new ServiceException("level send message is null"); - } - Map map = new ConcurrentHashMap<>(); - map.put("projectIds",stations.stream().map(StationEntity::getCode).collect(Collectors.joining(","))); - map.put("type", AbnormalAlarmConstant.LEVEL_TYPE_LIST); - map.put("startTime", DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00"); - return JSONObject.toJSONString(map); - } - - - /** - * 接收服务推送消息 - * @param message - */ - @Override - public void receiveMessage(String message) { - // 对象转换 - List alarms = JSONObject.parseArray(message,LevelAlarmVo.class); - if(CollectionUtil.isEmpty(alarms)){ - return; - } - - // 站点 - List stations = stationService.list(Wrappers.lambdaQuery() - .eq(StationEntity::getServeType, HomePageConstant.HYDROPOWER_SERVETYPE)); - if(CollectionUtil.isEmpty(stations)){ - throw new ServiceException("level send message is null"); - } - - // 设备 - List devices = deviceClient.list(); - - // 查询当天已经记录的告警 - List historys = historyLevelAlarmService.list(Wrappers.lambdaQuery() - .ge(HistoryLevelAlarmEntity::getCreateTime,DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00") - ); - - // 数据过滤 - List entitys = alarms.stream().filter(alarm -> CollectionUtil.isNotEmpty(historys) || !historys.stream().map(HistoryLevelAlarmEntity::getAlarmId).collect(Collectors.toList()).contains(alarm.getId())).map(item->{ - HistoryLevelAlarmEntity entity = new HistoryLevelAlarmEntity(); - entity.setAlarmId(item.getId()); - entity.setAlarmTime(DateUtil.parse(item.getTs(), "yyyy-MM-dd HH:mm:ss.s")); - entity.setType(String.valueOf(item.getType())); - entity.setRealId(item.getSignage()); - entity.setSoeExplain(item.getName()); - entity.setDeviceCode(item.getDevicecode()); - entity.setDeviceName(item.getDevicename()); - entity.setAlarmLevel(String.valueOf(item.getLevel())); - // 根据设备找站点 - if(CollectionUtil.isNotEmpty(devices)){ - // 找到设备 - List alarmDevices = devices.stream().filter(device->device.getNumber().equals(item.getDevicecode())).collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(alarmDevices)){ - // 找到站点 - List alarmStations = stations.stream().filter(station->station.getRefDept().equals(alarmDevices.get(0).getCreateDept())).collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(alarmStations)){ - entity.setStationId(alarmStations.get(0).getCode()); - entity.setStationName(alarmStations.get(0).getName()); - } - } - } - return entity; - }).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(entitys)){ - return; - } - - // 批量保存 - historyLevelAlarmService.saveBatch(entitys); - - // 消息推送 - CompletableFuture.runAsync(()->this.sendAlarmMessage(entitys,stations.stream().filter(station -> entitys.stream().filter(stationId -> !StringUtil.isEmpty(stationId)).map(HistoryLevelAlarmEntity::getStationId).collect(Collectors.toList()).contains(station.getCode())).collect(Collectors.toList()))); - } - - /** - * 告警消息推送 - * @param entitys - */ - private void sendAlarmMessage(List entitys,List stations) { - if(CollectionUtil.isEmpty(entitys)){ - return; - } - // 告警等级 :一级、二级告警发送通知 - List alarms = entitys.stream().filter(entity -> AbnormalAlarmConstant.LEVEL_LIST.contains(entity.getAlarmLevel())).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(alarms)){ - return; - } - // 查询站点用户 - entitys.forEach(entity->{ - if(StringUtil.isEmpty(entity.getStationId())){ - return; - } - List depts = stations.stream().filter(station -> station.getCode().equals(entity.getStationId())).map(StationEntity::getRefDept).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(depts)){ - return; - } - // app,web消息推送 - this.sendMessageByWebApp(depts.get(0),entity); - // 短信推送 - //this.message(depts.get(0),entity); - }); - } - - private void sendMessageByWebApp(Long dept,HistoryLevelAlarmEntity entity) { - // 获取站点用户 - R> result = userClient.userListByDeptId(dept); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - return; - } - MessagePushRecordDto message = new MessagePushRecordDto(); - message.setBusinessClassify("warning"); - message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); - message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); - message.setTaskId(entity.getId()); - message.setTenantId("200000"); - message.setContent(entity.getSoeExplain()); - message.setTypes(Arrays.asList(MessageConstants.APP_PUSH, MessageConstants.WS_PUSH)); - message.setPushType(MessageConstants.IMMEDIATELY); - message.setDeptId(dept); - message.setCreateDept(dept); - R deptName = sysClient.getDeptName(dept); - if (deptName.isSuccess()) { - message.setDeptName(deptName.getData()); - } - message.setCreateDept(dept); - result.getData().forEach(user->{ - message.setPusher(String.valueOf(user.getId())); - message.setPusherName(user.getName()); - message.setAccount(String.valueOf(user.getId())); - message.setCreateUser(user.getId()); - messageClient.sendMessage(message); - }); - } - - /** - * 发送短信 - * @param dept - * @param entity - */ - private void message(Long dept,HistoryLevelAlarmEntity entity) { - // 获取站点用户 - R> result = userClient.relationUserListByRoleAlias("200000",dept,"projectManager"); - if(!result.isSuccess() || CollectionUtil.isEmpty(result.getData())){ - return; - } - MessagePushRecordDto message = new MessagePushRecordDto(); - message.setBusinessClassify("warning"); - message.setBusinessKey(MessageConstants.BusinessClassifyEnum.WARNING.getKey()); - message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription()); - message.setTaskId(entity.getId()); - message.setTenantId("200000"); - message.setContent(entity.getSoeExplain()); - message.setTypes(Collections.singletonList(MessageConstants.SMS_PUSH)); - message.setPushType(MessageConstants.IMMEDIATELY); - message.setDeptId(dept); - R deptName = sysClient.getDeptName(dept); - if (deptName.isSuccess()) { - message.setDeptName(deptName.getData()); - } - User admin = userClient.userByAccount("200000", "admin").getData(); - message.setCreateDept(admin.getCreateDept()); - message.setCreateUser(admin.getId()); - result.getData().forEach(user->{ - message.setPusher(String.valueOf(user.getId())); - message.setPusherName(user.getName()); - message.setAccount(String.valueOf(user.getId())); - messageClient.sendMessage(message); - }); - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/config/WebSocketConfig.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/config/WebSocketConfig.java index eab3f8d..2ccc50e 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/config/WebSocketConfig.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/config/WebSocketConfig.java @@ -1,7 +1,6 @@ package com.hnac.hzims.operational.config.config; -import com.hnac.hzims.operational.config.ws.AlarmHandler; import com.hnac.hzims.operational.config.ws.MessageHandler; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -21,8 +20,6 @@ public class WebSocketConfig implements WebSocketConfigurer{ public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { // 集中监控处理器 registry.addHandler(monitorHandler(), "/comprehensiveD/{uid}").setAllowedOrigins("*"); - // 告警处理器 - registry.addHandler(alarmHandler(), "/alarmHandler/{uid}").setAllowedOrigins("*"); } @Bean @@ -31,11 +28,6 @@ public class WebSocketConfig implements WebSocketConfigurer{ } @Bean - public WebSocketHandler alarmHandler() { - return new AlarmHandler(); - } - - @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/CentralMonitorController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/CentralMonitorController.java index 4f64964..afea65f 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/CentralMonitorController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/CentralMonitorController.java @@ -40,15 +40,6 @@ public class CentralMonitorController extends BladeController { } - @GetMapping("/getRealTimeData") - @ApiOperation("获取站点实时缓存数据") - @ApiOperationSupport(order = 1) - public R getRealTimeData() { - realMonitorService.realTimeData(""); - return R.success("true"); - } - - /** * 查询通讯告警的最后一小时的运行数据 * @param page diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/HistoryAbnormalAlarmController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/HistoryAbnormalAlarmController.java deleted file mode 100644 index ba7d161..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/HistoryAbnormalAlarmController.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.hnac.hzims.operational.config.controller; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; -import com.hnac.hzims.operational.alert.service.HistoryAbnormalAlarmService; -import com.hnac.hzims.operational.station.vo.HistoryAbnormalAlarmVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import lombok.AllArgsConstructor; -import org.springblade.core.boot.ctrl.BladeController; -import org.springblade.core.mp.support.Condition; -import org.springblade.core.mp.support.Query; -import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - - -/** - * @author ysj - */ -@RestController -@AllArgsConstructor -@Api(value = "集中监控智能告警",tags = "集中监控智能告警") -@RequestMapping("/abnormalAlarm") -public class HistoryAbnormalAlarmController extends BladeController { - - private final HistoryAbnormalAlarmService historyAbnormalAlarmService; - - @PostMapping("/list") - @ApiOperation("智能告警数据异常列表查询") - @ApiOperationSupport(order = 1) - public R> getStationMonitor(@RequestParam(value = "type",required = false) String type, Query query) { - return R.data(historyAbnormalAlarmService.list(Condition.getPage(query), type)); - } - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/StAlamRecordController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/StAlamRecordController.java index e0ba376..545f561 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/StAlamRecordController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/controller/StAlamRecordController.java @@ -1,7 +1,6 @@ package com.hnac.hzims.operational.config.controller; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.common.logs.annotation.OperationAnnotation; @@ -9,7 +8,6 @@ import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; import com.hnac.hzims.operational.config.service.StAlamRecordService; -import com.hnac.hzims.operational.config.vo.FaultVo; import com.hnac.hzims.operational.config.vo.SoeBodyVo; import com.hnac.hzims.operational.config.vo.StAlarmRecordVo; import io.swagger.annotations.Api; @@ -24,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Date; -import java.util.List; @Api(tags = "告警记录") @RestController @@ -64,12 +61,6 @@ public class StAlamRecordController { return stAlamRecordService.getDaySoeList(AuthUtil.getUser(), date, type,current,size,code); } - @ApiOperation("获取故障列表数据") - @RequestMapping(value = "/getFaultList", method = {RequestMethod.GET, RequestMethod.POST}) - public R> getFaultList(@ApiParam(value = "站点编码") @RequestParam(required = false) String code) { - return R.data(stAlamRecordService.getFaultList(code)); - } - /** * 分页 获取告警记录列表 diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/scheduled/StAlamRecordTask.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/scheduled/StAlamRecordTask.java deleted file mode 100644 index 1355aa1..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/scheduled/StAlamRecordTask.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.hnac.hzims.operational.config.scheduled; - -import com.hnac.hzims.operational.alert.service.AbnormalAlarmService; -import com.hnac.hzims.operational.config.service.StFocusPropertiesService; -import com.hnac.hzims.operational.station.service.IRealMonitorService; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.tool.utils.DateUtil; -import org.springblade.core.tool.utils.Func; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.util.Date; - -import static com.hnac.hzims.operational.main.constant.MainConstants.*; - -/** - * 集中监控 - */ -@Slf4j -@Component -public class StAlamRecordTask { - - @Value("${hzims.operation.comprehensiveD}") - public String path; - - @Autowired - private IRealMonitorService monitorService; - - @Autowired - private AbnormalAlarmService abnormalAlarmService; - - @Autowired - private StFocusPropertiesService stFocusPropertiesService; - /** - * 站点数据统计 - * @return ReturnT - */ - @XxlJob(STATION_DATA_COUNT) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT stationDataCount(String param) throws Exception { - if (Func.isBlank(param)) { - param = DateUtil.format(new Date(), "yyyy-MM"); - } - monitorService.stationDataCount(param); - return new ReturnT<>("SUCCESS"); - } - - /** - * realId获取 - * @return ReturnT - */ - @XxlJob(REAL_ID_DATA) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT realIdData(String param) throws Exception { - if (Func.isBlank(param)) { - param = DateUtil.format(new Date(), "yyyy-MM"); - } - stFocusPropertiesService.getStationRealIds(param); - return new ReturnT<>("SUCCESS"); - } - - /** - * 站点实时数据 - * @return ReturnT - */ - @XxlJob(REAL_TIME_DATA) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT realTimeData(String param) throws Exception { - if (Func.isBlank(param)) { - param = DateUtil.format(new Date(), "yyyy-MM"); - } - monitorService.realTimeData(param); - return new ReturnT<>("SUCCESS"); - } - - /** - * 集中监控数据处理 - * @return ReturnT - */ - @XxlJob(CENTRALIZED_MONITORING) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT centralizedMonitoring(String param) throws Exception { - if (Func.isBlank(param)) { - param = DateUtil.format(new Date(), "yyyy-MM"); - } - monitorService.centralizedMonitoring(param); - return new ReturnT<>("SUCCESS"); - } - - - /** - * 数据中断告警 - * @return ReturnT - */ - @XxlJob(ALARM_DATA_HANDLE) - //@Scheduled(cron = "0/40 * * * * ? ") - public ReturnT alarmDataHandle(String param) throws Exception { - if (Func.isBlank(param)) { - param = DateUtil.format(new Date(), "yyyy-MM"); - } - abnormalAlarmService.alarmDataHandle(param); - return new ReturnT<>("SUCCESS"); - } - - -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/StAlamRecordService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/StAlamRecordService.java index 185b123..fca0f07 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/StAlamRecordService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/StAlamRecordService.java @@ -3,7 +3,6 @@ package com.hnac.hzims.operational.config.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; -import com.hnac.hzims.operational.config.vo.FaultVo; import com.hnac.hzims.operational.config.vo.SoeBodyVo; import com.hnac.hzims.operational.config.vo.StAlarmRecordVo; import com.hnac.hzinfo.datasearch.analyse.vo.AnalyzeCodeBySignagesVO; @@ -49,11 +48,4 @@ public interface StAlamRecordService extends BaseService { Long insertAlert(String stationId,String realId); List getJointRelayInfo(); - - /** - * 获取故障列表 - * - * @return - */ - List getFaultList(String code); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/impl/StAlamRecordServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/impl/StAlamRecordServiceImpl.java index 97411f8..66b4041 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/impl/StAlamRecordServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/service/impl/StAlamRecordServiceImpl.java @@ -3,19 +3,14 @@ package com.hnac.hzims.operational.config.service.impl; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.hutool.core.map.MapUtil; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.equipment.feign.IEmInfoClient; import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; import com.hnac.hzims.fdp.feign.IFdpMonitorClient; import com.hnac.hzims.fdp.vo.FdpFaultStatusVo; -import com.hnac.hzims.operational.alert.constants.AbnormalAlarmConstant; -import com.hnac.hzims.operational.alert.entity.AlarmHandleEntity; -import com.hnac.hzims.operational.alert.service.AlarmHandleService; import com.hnac.hzims.operational.config.entity.DataSet; import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; import com.hnac.hzims.operational.config.entity.StFocusPropertiesEntity; @@ -23,9 +18,11 @@ import com.hnac.hzims.operational.config.enume.ConfigStatus; import com.hnac.hzims.operational.config.mapper.StAlarmRecordMapper; import com.hnac.hzims.operational.config.service.StAlamRecordService; import com.hnac.hzims.operational.config.service.StFocusPropertiesService; -import com.hnac.hzims.operational.config.vo.*; +import com.hnac.hzims.operational.config.vo.SoeBodyVo; +import com.hnac.hzims.operational.config.vo.StAlarmRecordExcelVo; +import com.hnac.hzims.operational.config.vo.StAlarmRecordVo; +import com.hnac.hzims.operational.config.vo.TimeDataVo; import com.hnac.hzims.operational.main.service.IMainSystemMonitoringService; -import com.hnac.hzims.operational.main.vo.RealDeviceVo; import com.hnac.hzims.operational.main.vo.SoeDataVo; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.service.IStationService; @@ -72,8 +69,6 @@ public class StAlamRecordServiceImpl extends BaseServiceImpl getFaultList(String code) { - List stations = this.getStationByUserAuth(code);; - if(CollectionUtil.isEmpty(stations)){ - return null; - } - String result = fdpMonitorClient.getFaultList(stations.stream().map(StationEntity::getCode).collect(Collectors.toList())); - if(StringUtil.isEmpty(result)){ - return null; - } - List list = JSONArray.parseArray(result,FaultVo.class); - if(CollectionUtil.isEmpty(list)){ - return null; - } - // 过滤已处理预警信息 - List handles = handleService.handles(Collections.singletonList(AbnormalAlarmConstant.EARLY_WARNING),AbnormalAlarmConstant.INTELLIGENCE_ALARM); - Map map = stations.stream().collect(Collectors.toMap(StationEntity::getCode,StationEntity::getName)); - return list.stream().filter(fault -> map.containsKey(fault.getStation())).peek(record -> { - record.setStationName(map.get(record.getStation())); - if(CollectionUtil.isEmpty(handles)){ - record.setIsHandle(false); - }else{ - record.setIsHandle(handles.stream().map(AlarmHandleEntity::getAlarmId).collect(Collectors.toList()).contains(String.valueOf(record.getFaultId()))); - } - }).sorted(Comparator.comparing((FaultVo::getIsHandle)).reversed().thenComparing(FaultVo::getCreateTime).reversed()).collect(Collectors.toList()); - } - - - /** * map添加redis原有数据 * @param map * @return diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmHandler.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmHandler.java deleted file mode 100644 index 7bcb706..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.hnac.hzims.operational.config.ws; - -import com.alibaba.fastjson.JSONObject; -import com.hnac.hzims.operational.alert.service.AlarmMergeService; -import com.hnac.hzims.operational.config.vo.MessageParamVo; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.tool.utils.CollectionUtil; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springblade.core.tool.utils.StringUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.socket.CloseStatus; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.handler.TextWebSocketHandler; - -import java.io.IOException; - -/** - * @author ysj - */ -@Slf4j -public class AlarmHandler extends TextWebSocketHandler { - - private final Long defaultRealDataRefreshTime = 20000L; - - @Autowired - private AlarmMergeService alarmMergeService; - - - //WebSocket连接建立成功之后调用 - @Override - public void afterConnectionEstablished(WebSocketSession session) { - String[] split = session.getUri().toString().split("/"); - String uid = split[split.length - 1]; - // session 参数设置用户进行标识 - session.getAttributes().put("userId", uid); - AlarmSessionManager.add(uid, session); - SocketPool.alarm_pool.put(session.getId(), this); - } - - // 连接关闭时调用 - @Override - public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { - // 移除会话 - AlarmSessionManager.removeAndClose(session.getId()); - // map移除用户 - SocketPool.alarm_pool.remove(session.getId()); - } - - // 消息传输错误触发 - @Override - public void handleTransportError(WebSocketSession session, Throwable exception) { - // 移除会话 - AlarmSessionManager.removeAndClose(session.getId()); - // map移除用户 - SocketPool.alarm_pool.remove(session.getId()); - } - - - // 接收消息触发 - @Override - protected void handleTextMessage(WebSocketSession session, TextMessage textMessage) throws IOException { - // 获取会话用户编号 - String userId = (String) session.getAttributes().get("userId"); - String message = textMessage.getPayload(); - if(StringUtil.isBlank(message)){ - return; - } - MessageParamVo param = JSONObject.parseObject(message, MessageParamVo.class); - if(ObjectUtil.isEmpty(param) || CollectionUtil.isEmpty(param.getDeptIds())){ - return; - } - TextMessage sendMessage = alarmMergeService.getSendMessage(param); - if(ObjectUtil.isEmpty(sendMessage)){ - return; - } - session.sendMessage(sendMessage); - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmSessionManager.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmSessionManager.java deleted file mode 100644 index 707c0cf..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/AlarmSessionManager.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.hnac.hzims.operational.config.ws; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.socket.WebSocketSession; - -import java.io.IOException; -import java.util.concurrent.ConcurrentHashMap; - - -/** - * @author ysj - */ -@Slf4j -public class AlarmSessionManager { - - public static ConcurrentHashMap SESSION_POOL = new ConcurrentHashMap<>(); - - /** - * 添加会话 - * @param uid 用户 - * @param session 会话对象 - */ - public static void add(String uid, WebSocketSession session) { - if (SESSION_POOL.containsKey(uid)) { - AlarmSessionManager.removeAndClose(uid); - } - SESSION_POOL.put(uid, session); - log.info("添加 WebSocketSession 会话成功,uid=" + uid); - } - - - /** - * 获取会话 - * @param uid 用户 - * @return - */ - public static WebSocketSession get(String uid) { - return SESSION_POOL.get(uid); - } - - /** - * 移除会话并关闭会话 - * @param uid 用户 - */ - public static void removeAndClose(String uid) { - WebSocketSession session = SESSION_POOL.get(uid); - if (session != null) { - try { - //关闭连接 - session.close(); - } catch (IOException ex) { - throw new RuntimeException("关闭ws会话失败!", ex); - } - } - - SESSION_POOL.remove(uid); - } -} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmRegular.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmRegular.java deleted file mode 100644 index 25a9bcc..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmRegular.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.hnac.hzims.operational.config.ws; - -import com.hnac.hzims.operational.alert.service.LevelAlarmService; -import lombok.extern.slf4j.Slf4j; -import org.springblade.core.tool.utils.ObjectUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.net.URI; - -/** - * 等级告警获取数据长链接 - * @author ysj - */ -@Slf4j -@Component -@EnableScheduling -public class LevelAlarmRegular{ - - @Value("${hzims.level.ws-url}") - private String level_wss_url; - - private LevelAlarmWebSocket client; - - @Autowired - private LevelAlarmService levelAlarmService; - - // 定时发送消息 - @Scheduled(cron = "0 0/30 * * * ?") - private void regular(){ - // 检查链接存活状态 - if(ObjectUtil.isNotEmpty(client) && client.isOpen()){ - client.send(levelAlarmService.sendMessage()); - }else { - this.createClient(); - } - } - - // 创建websocket链接 - private void createClient() { - try{ - client = new LevelAlarmWebSocket(new URI(level_wss_url)); - client.connectBlocking(); - }catch (Exception e){ - log.error("level create error : {}",e.getMessage()); - } - } -} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmWebSocket.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmWebSocket.java deleted file mode 100644 index ed224dd..0000000 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/LevelAlarmWebSocket.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.hnac.hzims.operational.config.ws; - -import com.hnac.hzims.operational.alert.service.LevelAlarmService; -import lombok.extern.slf4j.Slf4j; -import org.java_websocket.client.WebSocketClient; -import org.java_websocket.handshake.ServerHandshake; -import org.springblade.core.tool.utils.SpringUtil; -import org.springblade.core.tool.utils.StringUtil; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import java.net.Socket; -import java.net.URI; -import java.security.SecureRandom; -import java.security.cert.X509Certificate; -import java.util.Optional; - -/** - * 等级告警获取数据长链接 - * @author ysj - */ -@Slf4j -public class LevelAlarmWebSocket extends WebSocketClient { - - private final LevelAlarmService levelAlarmService; - - /** - * 构造等级告警websocket - * @param uri - */ - public LevelAlarmWebSocket(URI uri) { - super(uri); - levelAlarmService = SpringUtil.getBean(LevelAlarmService.class); - connection(this); - } - - // 链接到服务器回调接口 - @Override - public void onOpen(ServerHandshake handshakedata) { - log.error("levl websocket open"); - } - - // 接收到服务器消息回调接口 - @Override - public void onMessage(String message) { - if(StringUtil.isEmpty(message)){ - log.error("levl on message is null"); - }else{ - // 等级告警数据处理 - levelAlarmService.receiveMessage(message); - } - } - - // 与服务器链接中断回调接口 - @Override - public void onClose(int code, String reason, boolean remote) { - log.error("levl websocket close"); - } - - // 与服务器通讯异常触发 - @Override - public void onError(Exception e) { - log.error("levl websocket error : {}",e.getMessage()); - } - - /** - * 建立链接 - * @param webSocket - */ - private void connection(LevelAlarmWebSocket webSocket) { - SSLContext context = init(); - if(Optional.ofNullable(context).isPresent()){ - Socket socket = create(context); - if(Optional.ofNullable(socket).isPresent()){ - webSocket.setSocket(socket); - } - } - } - - /** - * 创建Socket - * @param context - * @return - */ - private Socket create(SSLContext context) { - Socket socket = null; - try{ - socket = context.getSocketFactory().createSocket(); - }catch (Exception e){ - log.error("leve socket create error : {}",e.getMessage()); - } - return socket; - } - - /** - * 协议初始化 - * @return SSLContext - */ - private SSLContext init() { - SSLContext SSL = null; - try{ - SSL = SSLContext.getInstance("TLS"); - SSL.init(null, new TrustManager[]{new X509TrustManager() { - @Override - public void checkClientTrusted(X509Certificate[] chain, - String authType) { - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) { - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[0]; - } - }}, new SecureRandom()); - }catch (Exception e){ - log.error("leve SSL init error : {}",e.getMessage()); - } - return SSL; - } - -} \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/SocketPool.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/SocketPool.java index a38b27c..a48c9ae 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/SocketPool.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/config/ws/SocketPool.java @@ -10,6 +10,4 @@ public class SocketPool { public static Map pool = new ConcurrentHashMap<>(); - public static Map alarm_pool = new ConcurrentHashMap<>(); - } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java index c3ded48..d8d4f15 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java @@ -8,6 +8,7 @@ import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; import com.hnac.hzims.operational.duty.entity.ImsDutyGroupEntity; import com.hnac.hzims.operational.duty.service.IImsDutyGroupService; +import com.hnac.hzims.operational.duty.vo.DutyGroupMemberVo; import com.hnac.hzims.operational.duty.vo.ImsDutyGroupPersonVO; import com.hnac.hzims.operational.duty.vo.ImsDutyGroupVO; import io.swagger.annotations.Api; @@ -176,5 +177,11 @@ public class ImsDutyGroupController extends BladeController { return imsDutyGroupService.getListManager(createDept); } + @GetMapping("/groupMember") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "查询班组成员", notes = "传入imsDutyGroup") + public R> groupMember(@RequestParam(value = "deptId",required = false) Long deptId) { + return R.data(imsDutyGroupService.groupMember(deptId)); + } } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.java index cb71e7b..e447ef2 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.java @@ -1,6 +1,7 @@ package com.hnac.hzims.operational.duty.mapper; import com.hnac.hzims.operational.duty.entity.ImsDutyGroupEntity; +import com.hnac.hzims.operational.duty.vo.DutyGroupMemberVo; import org.apache.ibatis.annotations.Param; import org.springblade.core.datascope.annotation.UserDataAuth; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; @@ -24,4 +25,6 @@ public interface ImsDutyGroupMapper extends UserDataScopeBaseMapper selectDutyGroupJoinDutyMain(@Param("startDate") String startDate, @Param("endDate") String endDate); + @UserDataAuth + List groupMember(@Param("deptId") Long deptId); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.xml index a4b6796..7d0116e 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.xml +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupMapper.xml @@ -15,6 +15,17 @@ + + + + + + + + + update hz_ims_duty_group set MANAGER_ID = NULL where ID = #{id} @@ -28,4 +39,15 @@ AND DM.DUTY_DATE <= #{endDate} + + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.java index 72fa2b4..6d452b1 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.java @@ -3,6 +3,7 @@ package com.hnac.hzims.operational.duty.mapper; import com.baomidou.mybatisplus.annotation.SqlParser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hnac.hzims.operational.duty.entity.ImsDutyGroupPEntity; +import com.hnac.hzims.operational.duty.vo.DutyMemberVO; import com.hnac.hzims.operational.duty.vo.ImsDutyGroupPVO; import com.hnac.hzims.operational.main.vo.DutyPersonalReportVO; import com.hnac.hzims.operational.report.vo.DutyReportVO; @@ -55,5 +56,5 @@ public interface ImsDutyGroupPMapper extends BaseMapper { */ void deleteByGroupIdAndPersonId(@Param("groupId") Long groupId,@Param("personId") Long personId); - + List member(@Param("groupId") Long groupId); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.xml index ca66a40..358a702 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.xml +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyGroupPMapper.xml @@ -159,4 +159,9 @@ + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyGroupService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyGroupService.java index 292a84e..334435b 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyGroupService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyGroupService.java @@ -3,6 +3,7 @@ package com.hnac.hzims.operational.duty.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.operational.duty.entity.ImsDutyGroupEntity; import com.hnac.hzims.operational.duty.entity.ImsDutyMainEntity; +import com.hnac.hzims.operational.duty.vo.DutyGroupMemberVo; import com.hnac.hzims.operational.duty.vo.ImsDutyGroupPersonVO; import com.hnac.hzims.operational.duty.vo.ImsDutyGroupVO; import org.springblade.core.mp.base.BaseService; @@ -60,4 +61,6 @@ public interface IImsDutyGroupService extends BaseService { R> getListManager(Long createDept); List getDutyGroupJoinDutyMain(String startDate,String endDate); + + List groupMember(Long deptId); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java index 17d4e0b..f6f090d 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java @@ -10,9 +10,7 @@ import com.hnac.hzims.operational.duty.mapper.ImsDutyMainPersonMapper; import com.hnac.hzims.operational.duty.service.IImsDutyGroupPService; import com.hnac.hzims.operational.duty.service.IImsDutyGroupService; import com.hnac.hzims.operational.duty.service.IImsDutyMainService; -import com.hnac.hzims.operational.duty.vo.ImsDutyGroupPVO; -import com.hnac.hzims.operational.duty.vo.ImsDutyGroupPersonVO; -import com.hnac.hzims.operational.duty.vo.ImsDutyGroupVO; +import com.hnac.hzims.operational.duty.vo.*; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; @@ -358,6 +356,25 @@ public class ImsDutyGroupServiceImpl extends BaseServiceImpl groupMember(Long deptId) { + List groupMembers = this.baseMapper.groupMember(deptId); + return groupMembers.stream().peek(group->{ + List members = group.getMember().stream().peek(member->{ + User person = UserCache.getUser(member.getPersonId()); + if (ObjectUtil.isNotEmpty(person)) { + member.setPersonName(person.getName()); + } + }).collect(Collectors.toList()); + group.setMember(members.stream().filter(o->StringUtil.isNotBlank(o.getPersonName())).collect(Collectors.toList())); + }).filter(o-> CollectionUtil.isNotEmpty(o.getMember())).collect(Collectors.toList()); + } + /** * 获取某个月的天数 diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationVideoTypeController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationVideoTypeController.java index 4c47925..e1cac85 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationVideoTypeController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationVideoTypeController.java @@ -301,4 +301,14 @@ public class StationVideoTypeController extends BladeController { return R.success("视频监控处理成功"); } + @GetMapping("/getWsUrlByPointCode") + @ApiOperationSupport(order = 140) + @ApiOperation(value = "根据摄像头设备编码获取ws地址", notes = "根据摄像头设备编码获取ws地址") + public R> getWsUrlByPointCode(@RequestParam(value = "pointCodes",required = false) String pointCodes, + @RequestParam(value = "host",required = false) String host, + @RequestParam(value = "appKey",required = false) String appKey, + @RequestParam(value = "appSecret",required = false) String appSecret) { + return R.data(stationVideoTypeService.getWsUrlByPointCode(pointCodes,host,appKey,appSecret)); + } + } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IRealMonitorService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IRealMonitorService.java index af3d89f..3b5cf12 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IRealMonitorService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IRealMonitorService.java @@ -9,23 +9,7 @@ import org.springframework.web.socket.TextMessage; */ public interface IRealMonitorService { - /** - * 站点实时数据 - * @param param - */ - void realTimeData(String param); - /** - * 获取站点数量 - * @param param - */ - void stationDataCount(String param); - - /** - * 集中监控数据处理 - * @param param - */ - void centralizedMonitoring(String param); /** * 获取发送前端文本消息 diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationVideoTypeService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationVideoTypeService.java index 3a57ea4..01d55b1 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationVideoTypeService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationVideoTypeService.java @@ -69,4 +69,11 @@ public interface IStationVideoTypeService extends BaseService> getMonitorsByStation(String stationId); + /** + * 根据摄像头设备编码获取ws地址 + * @param pointCodes 摄像头设备编码 + * @return ws地址 + */ + Map getWsUrlByPointCode(String pointCodes,String host,String appKey,String appSecret); + } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java index cd7b49f..7da8cc2 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java @@ -1,26 +1,18 @@ package com.hnac.hzims.operational.station.service.impl; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.TypeReference; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; -import com.hnac.hzims.fdp.vo.FdpFaultStatusVo; import com.hnac.hzims.hzimsweather.response.weather.Daily; import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherDailyResponse; import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherNowResponse; import com.hnac.hzims.hzimsweather.response.weather.Now; -import com.hnac.hzims.operational.alert.service.AbnormalAlarmService; -import com.hnac.hzims.operational.config.entity.StAlarmRecordEntity; -import com.hnac.hzims.operational.config.enume.ConfigStatus; import com.hnac.hzims.operational.config.service.StAlamRecordService; import com.hnac.hzims.operational.config.service.StFocusPropertiesService; import com.hnac.hzims.operational.config.vo.MessageParamVo; -import com.hnac.hzims.operational.config.vo.StationRealVo; import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.service.IMainSystemMonitoringService; import com.hnac.hzims.operational.main.service.IWeatherService; import com.hnac.hzims.operational.main.vo.*; -import com.hnac.hzims.operational.station.entity.StationAttributeEntity; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.service.IRealMonitorService; import com.hnac.hzims.operational.station.service.IStationAttrConfigService; @@ -31,7 +23,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; -import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.ObjectUtil; @@ -47,9 +38,7 @@ import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.*; -import java.util.concurrent.*; import java.util.stream.Collectors; -import java.util.stream.Stream; /** @@ -80,9 +69,6 @@ public class RealMonitorServiceImpl implements IRealMonitorService { private final IMainSystemMonitoringService systemMonitoringService; - @NotNull - private final AbnormalAlarmService abnormalAlarmService; - private final RedisClient redisClient; @NotNull @@ -128,86 +114,6 @@ public class RealMonitorServiceImpl implements IRealMonitorService { private final static String loadwater_level_key = "hzims:operation:loadwater:level:key"; - - @Override - public void realTimeData(String param) { - Long beginTime = System.currentTimeMillis(); - // 获取设备 - List devices = systemMonitoringService.getEmInfoList(); - // 设备开关机集合监测点 - List switchOnOff = devices.stream().map(o->{ - Map points = o.getPoint(); - if(CollectionUtil.isEmpty(points)){ - return ""; - } - String jointRelay = points.get(HomePageConstant.JOINT_RELAY); - if(!StringUtil.isEmpty(jointRelay)){ - return jointRelay; - } - String onOff = points.get(HomePageConstant.SWITCH_ON_OFF); - if(!StringUtil.isEmpty(onOff)){ - return onOff; - } - return ""; - }).collect(Collectors.toList()); - // 获取站点缓存数据 - List stationRealVos = (List) redisTemplate.opsForValue().get(moniter_realId_key); - if(CollectionUtil.isEmpty(stationRealVos)){ - return; - } - // 数据切割 - int limit = countStep(stationRealVos.size()); - List> list = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> stationRealVos.stream().skip((long) a * MAX_SEND).limit(MAX_SEND).parallel().collect(Collectors.toList())).collect(Collectors.toList()); - ExecutorService pool = Executors.newFixedThreadPool(limit); - // - Map valueMap = new ConcurrentHashMap<>(); - // > - Map> keyMap = new ConcurrentHashMap<>(); - CountDownLatch countDownLatch = new CountDownLatch(limit); - pool.execute(()-> list.forEach(stations -> { - stations.forEach(stationReal -> { - String[] realIdArr = stationReal.getRealId(); - List realIds = Stream.of(realIdArr).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(realIds)){ - return; - } - log.error("real_time_data: {},{}",stationReal.getStation(),realIds); - List objects = redisClient.getBatchRealDataByRealId(stationReal.getStation(),realIds); - for(int i = 0; i < realIds.size() ;i++){ - if(ObjectUtil.isEmpty(objects.get(i))){ - log.error(realIds.get(i) + "is null"); - }else{ - Map attribute = (Map) JSONObject.parse(objects.get(i)); - attribute.put("realId",attribute.get("k")); - attribute.put("value",attribute.get("v")); - attribute.put("time",attribute.get("t")); - attribute.remove("v"); - attribute.remove("k"); - attribute.remove("t"); - this.getCheckMap(attribute,switchOnOff); - valueMap.put(realIdArr[i],attribute.get("value")); - keyMap.put(realIdArr[i],attribute); - } - } - }); - countDownLatch.countDown(); - })); - // 等待所有线程执行完成 - try { - countDownLatch.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - Thread.currentThread().interrupt(); - } - pool.shutdown(); - // redis 存储 - redisTemplate.opsForValue().set(real_id_key_path,JSONObject.toJSONString(valueMap)); - redisTemplate.opsForValue().set(real_id_key_gather_path,JSONObject.toJSONString(keyMap)); - Long endTime = System.currentTimeMillis(); - Long time = endTime - beginTime; - log.error("处理redis实时数据 耗时 : {}",time); - } - /** * 监测点过期数据检查 * @param value @@ -241,53 +147,6 @@ public class RealMonitorServiceImpl implements IRealMonitorService { */ private final static String SIGNAGE = "active_power"; - /** - * 站点数据统计 - * @param param - */ - @Override - public void stationDataCount(String param) { - // realId实时数据 - Object json = redisTemplate.opsForValue().get(real_id_key_path); - if(ObjectUtil.isEmpty(json)){ - return; - } - Map map = JSONObject.parseObject(json.toString(), new TypeReference>() { - }); - if(MapUtils.isEmpty(map)){ - return; - } - // 站点实时功率 key - stationCode,value - sumPower - Map realPowerMap = this.getPowerConversionMap(map); - if(MapUtils.isNotEmpty(realPowerMap)){ - redisTemplate.opsForValue().set(active_power_key, realPowerMap); - } - // 站点开关机状态 - List devices = systemMonitoringService.getEmInfoList(); - if(CollectionUtil.isEmpty(devices)){ - return; - } - // key->机构编号 value -> 设备集合 - Map> deviceMap = devices.stream().collect(Collectors.groupingBy(EminfoAndEmParamVo::getCreateDept)); - Map data = new HashMap<>(); - deviceMap.forEach((key, value) -> { - JointRelayVo jointRelay = new JointRelayVo(); - List relays = value.stream().filter(o -> MapUtils.isNotEmpty(o.getPoint()) && !StringUtil.isEmpty(o.getPoint().get(HomePageConstant.JOINT_RELAY))).map(relay -> map.get(relay.getPoint().get(HomePageConstant.JOINT_RELAY))).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(relays)) { - jointRelay.setUnitSum(0); - jointRelay.setShutdownCount(0); - jointRelay.setStartingUpCount(0); - } else { - jointRelay.setUnitSum(relays.size()); - Optional> off = Optional.ofNullable(relays.stream().filter("0"::equals).collect(Collectors.toList())); - jointRelay.setShutdownCount(off.map(List::size).orElse(0)); - Optional> on = Optional.ofNullable(relays.stream().filter("1"::equals).collect(Collectors.toList())); - jointRelay.setStartingUpCount(on.map(List::size).orElse(0)); - } - data.put(key, jointRelay); - }); - redisTemplate.opsForValue().set(joint_relay_key, data); - } /** * 获取所有有功功率的realId及其他信息 @@ -349,495 +208,6 @@ public class RealMonitorServiceImpl implements IRealMonitorService { return result; } - - /** - * 集中监控数据处理 - * @param param - */ - @Override - public void centralizedMonitoring(String param) { - long beginTime = System.currentTimeMillis(); - Thread thread = Thread.currentThread(); - Object json = redisTemplate.opsForValue().get(real_id_key_gather_path); - if (ObjectUtil.isEmpty(json)) { - return; - } - Map> map = JSONObject.parseObject(json.toString(), new TypeReference>>() { - }); - if (MapUtils.isEmpty(map)) { - return; - } - log.info(thread.getName() + "步骤1获取检测点数据耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 获取所有设备重点属性 - List list = attbtService.list(new LambdaQueryWrapper() {{ - isNotNull(StationAttributeEntity::getStationId); - eq(StationAttributeEntity::getIsDeleted, "0"); - orderByAsc(StationAttributeEntity::getSort); - }}); - if (CollectionUtil.isEmpty(list)) { - return; - } - log.info(thread.getName() + "步骤2获取监控配置监测点 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 获取所有告警记录 - List alertList = alertService.list(new LambdaQueryWrapper() {{ - orderByDesc(StAlarmRecordEntity::getCreateTime); - }}); - log.info(thread.getName() + "步骤3获取告警记录 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - List alarmList = abnormalAlarmService.getAbnormalAlarmList(); - log.info(thread.getName() + "步骤4获取数据中断告警记录 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 获取所有故障记录 - List faultList = this.getFdpFaultAll(); - log.info(thread.getName() + "步骤5获取故障记录 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 所有设备分类 - Map> deviceClassifyMap = (Map>) redisTemplate.opsForValue().get(device_classify_key); - log.info(thread.getName() + "步骤6获取设备分类 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 所有设备 - List emList = maintenanceTaskService.getEmInfoList(); - log.info(thread.getName() + "步骤7获取设备信息 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 根据站点分组 - Map> stationAttbtMap = list.stream().collect(Collectors.groupingBy(StationAttributeEntity::getStationId)); - // 获取站点列表 - List stationEntityList = stationService.getStationByInCode(new ArrayList<>(stationAttbtMap.keySet())); - log.info(thread.getName() + "步骤8站点列表 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 隐藏设备列表 - List hideList = stationAttrConfigService.getHideList(); - // 分割,每个map限制10个长度 - List>> handleList = this.mapChunk(stationAttbtMap); - log.info(thread.getName() + "步骤9监测点数据切割 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 创建线程池 - ExecutorService pool = Executors.newFixedThreadPool(handleList.size()); - CountDownLatch countDownLatch = new CountDownLatch(handleList.size()); - log.info(thread.getName() +"步骤10创建线程 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 所有机构 - R> deptAll = sysClient. getDeptList(); - // 存储数据节点 - List stationList = new CopyOnWriteArrayList<>(); - pool.execute(()->{ - // 线程处理数据 - for(Map> item : handleList){ - item.forEach((key,value)->{ - RealStationVo station = new RealStationVo(); - // 站点编码 - station.setStationCode(key); - // 名称、限制水位、服务类型、机构、排序 - this.stationParam(stationEntityList,station,deptAll.getData()); - // 根据设备名称分组 - Map> deviceAttbtMap = value.stream().filter(o -> !hideList.contains(o.getEmName())).collect(Collectors.groupingBy(StationAttributeEntity::getEmName)); - List deviceList = new ArrayList<>(); - // device - 设备,arrbt - 设备重点属性 - deviceAttbtMap.forEach((device, attbt) -> { - RealDeviceVo deviceVo = new RealDeviceVo(); - // 设备名称 - deviceVo.setDeviceName(device); - deviceVo.setDeviceCode(attbt.get(0).getEmCode()); - // 设备处理 - this.handleDevice(attbt, map, deviceVo, alertList, faultList); - deviceList.add(deviceVo); - }); - // 设备状态 - this.getDeviceParam(emList, deviceClassifyMap, deviceList); - // 运行设备状态设置 - this.deviceState(deviceList); - // 设置站点状态 - this.setStationStatus(alarmList,station,key,deviceList); - station.setDeviceList(deviceList.stream().sorted(Comparator.comparing((RealDeviceVo::getDeviceName))).collect(Collectors.toList())); - stationList.add(station); - }); - countDownLatch.countDown(); - } - }); - log.info(thread.getName() + "步骤11线程数据处理 耗时 : {}",System.currentTimeMillis() - beginTime); - beginTime = System.currentTimeMillis(); - // 等待所有线程执行完成 - try { - countDownLatch.await(); - } catch (InterruptedException e) { - e.printStackTrace(); - Thread.currentThread().interrupt(); - } - pool.shutdown(); - log.info(thread.getName() + "步骤12所有线程完成 耗时 : {}",System.currentTimeMillis() - beginTime); - redisTemplate.opsForValue().set(moniter_station_key, stationList); - } - - /** - * 设备状态 - * @param deviceList - */ - private void deviceState(List deviceList) { - deviceList.forEach(device->{ - // 设备属性列表 - List attbts = device.getAttbtList(); - if(CollectionUtil.isEmpty(attbts)){ - return; - } - // 功率属性记录 - List powers = attbts.stream().filter(att-> HomePageConstant.powerList.contains(att.getName())).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(powers)){ - return; - } - if("0.000000".equals(powers.get(0).getValue()) || "-".equals(powers.get(0).getValue()) || HomePageConstant.ON.equals(powers.get(0).getValue())){ - return; - } - device.setState(1); - }); - } - - /** - * 设置站点状态 - * @param alarmList - * @param station - * @param key - */ - private void setStationStatus(List alarmList, RealStationVo station, String key,List deviceList) { - station.setStatus(0); - // 站点功率大于0为正常上送数据 - double powerSum = deviceList.stream().mapToDouble(o->{ - List attbts = o.getAttbtList(); - if(CollectionUtil.isEmpty(attbts)){ - return 0; - } - // 功率属性记录 - List powers = attbts.stream().filter(att-> HomePageConstant.powerList.contains(att.getName())).collect(Collectors.toList()); - if(CollectionUtil.isEmpty(powers)){ - return 0; - } - return powers.stream().filter(power-> !"0.000000".equals(power.getValue()) && !"-".equals(power.getValue()) && !HomePageConstant.ON.equals(power.getValue())).mapToDouble(value->Double.parseDouble(value.getValue())).sum(); - }).sum(); - if(powerSum > 0){ - return; - } - if(alarmList.contains(key)){ - station.setStatus(1); - } - } - - /** - * map分割 - * - * @param - * @param - * @param chunkMap - * @return - */ - private List> mapChunk(Map chunkMap) { - if (chunkMap == null || RealMonitorServiceImpl.MAX_SEND <= 0) { - List> list = new ArrayList<>(); - list.add(chunkMap); - return list; - } - Set keySet = chunkMap.keySet(); - Iterator iterator = keySet.iterator(); - int i = 1; - List> total = new ArrayList<>(); - Map tem = new HashMap<>(); - while (iterator.hasNext()) { - k next = iterator.next(); - tem.put(next, chunkMap.get(next)); - if (i == RealMonitorServiceImpl.MAX_SEND) { - total.add(tem); - tem = new HashMap<>(); - i = 0; - } - i++; - } - if (!CollectionUtil.isEmpty(tem)) { - total.add(tem); - } - return total; - } - - /** - * 获取所有告警记录 - * - * @return - */ - private List getFdpFaultAll() { - Object json = redisTemplate.opsForValue().get(fdp_fault_data_key); - if (ObjectUtil.isEmpty(json)) { - return new ArrayList<>(); - } - return (List) json; - } - - /** - * 设备处理 - * - * @param list - * @param map - * @param device - */ - private void handleDevice(List list, Map> map, - RealDeviceVo device, List alertList, - List faultList) { - if (CollectionUtil.isEmpty(list) || MapUtils.isEmpty(map)) { - return; - } - List attbtList = new ArrayList<>(); - list.forEach(item -> { - RealAttributeVo realAttributeVo = new RealAttributeVo(); - // 设备重点属性处理 : 单条-item - Map real = map.get(item.getMonitorId()); - if(MapUtils.isEmpty(real)){ - realAttributeVo.setName(item.getAttributes()); - realAttributeVo.setType(item.getAttributeType()); - realAttributeVo.setRealId(item.getMonitorId()); - realAttributeVo.setQuality(-1); - realAttributeVo.setStatus(0); - realAttributeVo.setValue("0"); - realAttributeVo.setUnit(item.getUnit()); - attbtList.add(realAttributeVo); - return; - } - realAttributeVo = handleAttbt(item, real, alertList, faultList); - if (ObjectUtil.isEmpty(realAttributeVo)) { - return; - } - attbtList.add(realAttributeVo); - }); - device.setAttbtList(attbtList); - } - - /** - * 设备参数设置 - * - * @param emList - * @param deviceClassifyMap - * @param deviceList - */ - private void getDeviceParam(List emList, Map> deviceClassifyMap, List deviceList) { - if (CollectionUtil.isEmpty(emList) || CollectionUtil.isEmpty(deviceList) || MapUtils.isEmpty(deviceClassifyMap)) { - return; - } - List faultList = deviceClassifyMap.get(HomePageConstant.FAULT); - List maintaintList = deviceClassifyMap.get(HomePageConstant.MAINTAIN); - List overhaultList = deviceClassifyMap.get(HomePageConstant.OVERHAUL); - List runtList = deviceClassifyMap.get(HomePageConstant.RUN); - List sparetList = deviceClassifyMap.get(HomePageConstant.SPARE); - deviceList.forEach(device -> { - if (StringUtil.isBlank(device.getDeviceCode())) { - device.setState(-1); - return; - } - List list = emList.stream().filter(o -> null != o.getId() && o.getId().toString().equals(device.getDeviceCode())).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(list)) { - device.setState(-1); - return; - } - String deviceCode = list.get(0).getEmCode(); - if (StringUtil.isBlank(deviceCode)) { - device.setState(-1); - return; - } - // 故障 - if (CollectionUtil.isNotEmpty(faultList) && faultList.contains(deviceCode)) { - device.setState(4); - // 保养 - } else if (CollectionUtil.isNotEmpty(maintaintList) && maintaintList.contains(deviceCode)) { - device.setState(3); - // 备用 - } else if (CollectionUtil.isNotEmpty(sparetList) && sparetList.contains(deviceCode)) { - device.setState(2); - // 运行 - } else if (CollectionUtil.isNotEmpty(runtList) && runtList.contains(deviceCode)) { - device.setState(1); - // 检修 - } else if (CollectionUtil.isNotEmpty(overhaultList) && overhaultList.contains(deviceCode)) { - device.setState(0); - // 未知 - } else { - device.setState(-1); - } - }); - } - - /** - * 设备单条重点属性处理 - * - * @param item - * @param real - * @return - */ - private RealAttributeVo handleAttbt(StationAttributeEntity item, Map real, - List alertList, List faultList) { - RealAttributeVo attest = new RealAttributeVo(); - this.setAttbtParam(attest, real); - attest.setRealId(item.getMonitorId()); - attest.setName(item.getAttributes()); - attest.setUnit(item.getUnit()); - attest.setType(item.getAttributeType()); - String value = Optional.ofNullable(attest.getValue()).orElse("-"); - // 正常状态 - attest.setStatus(ConfigStatus.ConfigStatusEnum.NORMAL.getStatus()); - int quality = Optional.ofNullable(attest.getQuality()).orElse(-1); - String time = Optional.ofNullable(attest.getTime()).orElse(""); - // 延时状态 :质量为空 && 时间为空 - if (-1 == quality && StringUtil.isEmpty(time)) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.GRAY.getStatus()); - } - int type = item.getAttributeType(); - switch (type) { - case 1://遥测 - // 预警状态 :value值为"1" && quality值为0 - if ("1".equals(value) && 0 == quality) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.RED.getStatus()); - } - break; - case 2://遥信 - signalyRemote(item, attest, quality, value, alertList); - //处理 - break; - default: - throw new IllegalStateException("Unexpected type: " + type); - } - // 故障信息设置 - accidentDetails(attest, faultList, value); - return attest; - } - - /** - * 设置重点属性参数 - * - * @param attest - * @param real - */ - private void setAttbtParam(RealAttributeVo attest, Map real) { - if (CollectionUtil.isEmpty(real)) { - return; - } - real.forEach((key, value) -> { - if (StringUtil.isBlank(value)) { - return; - } - switch (key) { - case "q": - attest.setQuality(Integer.parseInt(value)); - break; - case "realId": - attest.setRealId(value); - break; - case "value": - attest.setValue(Optional.ofNullable(value).orElse("-")); - break; - case "time": - attest.setTime(value); - break; - } - }); - } - - /** - * 重点属性类型-遥信 :数据逻辑处理 - * - * @param attest - */ - private void signalyRemote(StationAttributeEntity item, RealAttributeVo attest, int quality, String strValue, List alertList) { - //需要所有值的数据不为null,并且满足条件才会进去添加数据返回id - if (null == item.getUpUpLimit() || null == item.getDownDownLimit() || null == item.getUpLimit() || null == item.getDownLimit()) { - return; - } - if (-1 == quality) { - return; - } - if (quality != 0) { - return; - } - if ("-".equals(strValue)) { - return; - } - double upup = item.getUpUpLimit(); - double lwlw = item.getDownDownLimit(); - double up = item.getUpLimit(); - double lw = item.getDownLimit(); - //查询出来已处理告警记录 - List handleList = alertList.stream().filter(o -> o.getStationId().equals(item.getStationId()) && o.getRealId().equals(attest.getRealId()) && o.getStatus() == 1).collect(Collectors.toList()); - //查询出来未处理告警记录 - List recordList = alertList.stream().filter(o -> o.getStationId().equals(item.getStationId()) && o.getRealId().equals(attest.getRealId()) && o.getStatus() == 0).collect(Collectors.toList()); - long past = 0L; - double value = Double.parseDouble(strValue); - if (value > upup || value < lwlw) { - if (CollectionUtil.isNotEmpty(handleList)) { - // 现在时间 - 处理时间 - past = System.currentTimeMillis() - handleList.get(0).getProcessTime().getTime(); - } - boolean isOverrun = ((CollectionUtil.isEmpty(handleList) && CollectionUtil.isEmpty(recordList)) || (past / 1000 / 60 > 30 && CollectionUtil.isEmpty(recordList))); - if (isOverrun) { - Long alertId = alertService.insertAlert(item.getStationId(), item.getMonitorId()); - attest.setId(alertId); - attest.setStatus(ConfigStatus.ConfigStatusEnum.YELLOW.getStatus()); - } else if (CollectionUtil.isNotEmpty(recordList)) { - StAlarmRecordEntity record = recordList.get(0); - attest.setId(record.getId()); - // 告警处理完成 - if (record.getProcessTime() != null && record.getStatus() == (byte) 1) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.NORMAL.getStatus()); - // 告警未处理 - } else if (record.getProcessTime() == null && record.getStatus() == (byte) 0) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.HAND_DELAY_STATUS.getStatus()); - } - } - } else if (value > up && value < upup || value < lw && value > lwlw) { - if (CollectionUtil.isNotEmpty(handleList)) { - // 现在时间 - 处理时间 - past = System.currentTimeMillis() - handleList.get(0).getProcessTime().getTime(); - } - boolean exist = ((CollectionUtil.isEmpty(handleList) && CollectionUtil.isEmpty(recordList)) || (past / 1000 / 60 > 30 && CollectionUtil.isEmpty(recordList))); - if (exist){ - Long alertId = alertService.insertAlert(item.getStationId(), item.getMonitorId()); - attest.setId(alertId); - attest.setStatus(ConfigStatus.ConfigStatusEnum.YELLOW.getStatus()); - // 存在告警记录 - } else if (CollectionUtil.isNotEmpty(recordList)) { - StAlarmRecordEntity record = recordList.get(0); - if (recordList.get(0).getStatus() == (byte) 0 && recordList.get(0).getCreateTime() != null) { - attest.setId(record.getId()); - attest.setStatus(ConfigStatus.ConfigStatusEnum.RED.getStatus()); - } else { - attest.setId(recordList.get(0).getId()); - attest.setStatus(ConfigStatus.ConfigStatusEnum.NORMAL.getStatus()); - } - } - } - } - - /** - * 故障信息设置 - * - * @param attest - * @param faultList - * @param value - */ - private void accidentDetails(RealAttributeVo attest, List faultList, String value) { - if (CollectionUtil.isEmpty(faultList) || "-".equals(value)) { - return; - } - List fault = faultList.stream().filter(o -> o.getRealId().equals(attest.getRealId())).collect(Collectors.toList()); - if (CollectionUtil.isEmpty(fault)) { - return; - } - FdpFaultStatusVo fdpFaultStatusVo = fault.get(0); - // 黄色 - if (fdpFaultStatusVo.getValue() > greater_than && fdpFaultStatusVo.getValue() < less_than) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.YELLOW.getStatus()); - // 橙色 - } else if (fdpFaultStatusVo.getValue() >= be_equal_or_greater_than) { - attest.setStatus(ConfigStatus.ConfigStatusEnum.ORANGE.getStatus()); - } - attest.setFdpRate(fdpFaultStatusVo.getValue()); - attest.setFdpFaultId(fdpFaultStatusVo.getFaultId()); - attest.setFdpMonitorId(fdpFaultStatusVo.getMonitorId()); - } - /** * 根据websocket传入的用户信息,返回对应站点数据 * @param message diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java index fd50c95..b4ffcce 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationVideoTypeServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.hnac.hzims.common.utils.HiKUtil; import com.hnac.hzims.operational.config.HikPathConfiguration; import com.hnac.hzims.operational.station.StationConstants; import com.hnac.hzims.operational.station.dto.StationVideoTypeDTO; @@ -35,10 +36,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.Assert; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -56,6 +54,16 @@ public class StationVideoTypeServiceImpl extends BaseServiceImpl getWsUrlByPointCode(String pointCodes,String host,String appKey,String appSecret) { + Map result = new HashMap<>(); + pointCodes = StringUtil.isNotBlank(pointCodes) ? pointCodes : "7eaf556c7d3e429d89cd622256898776,43ee17dafde94c4ba40ad313ebefe6d2,98f51c998acf4dd2951e0484d265710e,6bb1f8ad552444309b68677b8ac3fbaf"; + final String finalHost = StringUtil.isNotBlank(host) ? host : videoHost; + final String finalAppKey = StringUtil.isNotBlank(appKey) ? appKey : videoAppKey; + final String finalAppSecret = StringUtil.isNotBlank(appSecret) ? appSecret : videoAppSecret; + Map param = new HashMap(6){{ + put("streamType",0); + put("protocol","ws"); + put("transmode",1); + put("expand","transcode=0"); + put("streamform","ps"); + }}; + Arrays.stream(pointCodes.split(",")).forEach(pointCode -> { + param.put("cameraIndexCode",pointCode); + try{ + String data = HiKUtil.send("/api/video/v2/cameras/previewURLs", param, finalHost, finalAppKey, finalAppSecret); + if(StringUtil.isNotBlank(data)) { + Map url = new HashMap() {{ + put("url",data); + }}; + result.put(pointCode,url); + } + } + catch (Exception e) { + e.printStackTrace(); + } + }); + return result; + } + + @Override public StationVideoTypeEntity getById(Long id,int streamType){ StationVideoTypeEntity stationVideoTypeEntity = this.getById(id); if(ObjectUtil.isNotEmpty(stationVideoTypeEntity.getIsHikvideo()) && stationVideoTypeEntity.getIsHikvideo() == 1){ diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java new file mode 100644 index 0000000..d12e30b --- /dev/null +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/PdfUtils.java @@ -0,0 +1,320 @@ +package com.hnac.hzims.operational.util; + +import com.documents4j.api.DocumentType; +import com.documents4j.api.IConverter; +import com.documents4j.job.LocalConverter; +import com.hnac.hzims.operational.annotation.DefaultValue; +import com.hnac.hzims.ticket.constants.TicketConstants; +import com.spire.xls.FileFormat; +import com.spire.xls.Workbook; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.lang.reflect.Field; +import java.net.URLEncoder; +import java.nio.file.Files; +import java.time.LocalDateTime; +import java.util.*; + +/** + * @author hx + */ +@Slf4j +public class PdfUtils { + + /** 文件后缀名 **/ + public static String DOC_SUFFIX = ".doc"; + public static String DOCX_SUFFIX = ".docx"; + public static String XLS_SUFFIX = ".xls"; + public static String XLSX_SUFFIX = ".xlsx"; + public static String PDF_SUFFIX = ".pdf"; + + /*** + * 各文件转换为pdf + * @param templatePath 待转换的文件路径 + * @param templateFileName 待转换的文件名 + * @param savePath 转换为pdf后的文件路径 + * @param saveFileName 转换为pdf后的文件名称 + * @return + */ + public static void convertPdf(String templatePath, String templateFileName, String savePath, String saveFileName) { + String templateFilePath = templatePath + templateFileName; + String saveFilePath = savePath + saveFileName; + log.info("转换前的文件为:{};转换后的路径为:{}", templateFilePath, saveFilePath); + File templateFile = new File(templateFilePath); + File saveFile = new File(saveFilePath); + //获取文件类型 + String fileType = templateFileName.substring(templateFileName.lastIndexOf(".")); + InputStream inputStream = null; + OutputStream outputStream = null; + try { + try { + inputStream = Files.newInputStream(templateFile.toPath()); + outputStream = Files.newOutputStream(saveFile.toPath()); + //document4j 转换 pdf linux环境下不支持 + if (DOCX_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (DOC_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.DOC).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (XLS_SUFFIX.equals(fileType)) { + IConverter converter = LocalConverter.builder().build(); + converter.convert(inputStream).as(DocumentType.XLS).to(outputStream).as(DocumentType.PDF).execute(); + converter.shutDown(); + } else if (XLSX_SUFFIX.equals(fileType)) { + //此方式行不通 + //converter.convert(inputStream).as(DocumentType.XLSX).to(outputStream).as(DocumentType.PDF).execute(); + Workbook wb = new Workbook(); + wb.loadFromFile(templateFilePath); + wb.saveToFile(saveFilePath, FileFormat.PDF); + } + } catch (Exception e) { + log.error("转换失败,错误信息为:{}", e.getMessage()); + throw new ServiceException(e.getMessage()); + } finally { + inputStream.close(); + outputStream.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMap(Object obj) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj)) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + //如果value为空直接跳出 + // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ + // return; + // } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); + + } + }); + } + return result; + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMap(Object obj, boolean isWordFlag) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj)) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + //如果value为空直接跳出 + // if ((ObjectUtils.isEmpty(value) || value == "") && StringUtil.isNoneBlank(field.getName())){ + // return; + // } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + if (isWordFlag) { + //如果导出word为null会出现{{ ,value设置"\u00A0" + result.put(field.getName(), Optional.ofNullable(value).orElse("\u00A0")); + } else { + result.put(field.getName(), Optional.ofNullable(value).orElse(" ")); + } + } + }); + } + return result; + } + + + /** + * 对象转化为Map 并设置默认值 + * + * @param obj + * @return + * @throws Exception + */ + public static Map objectToMapResult(Object obj, Map map) { + Map result = new HashMap<>(); + if (ObjectUtil.isNotEmpty(obj)) { + Class clazz = obj.getClass(); + List fieldList = new ArrayList<>(); + while (clazz != null) { + fieldList.addAll(Arrays.asList(clazz.getDeclaredFields())); + clazz = clazz.getSuperclass(); + } + fieldList.forEach(field -> { + field.setAccessible(true); + DefaultValue defaultValue = field.getAnnotation(DefaultValue.class); + Object value; + try { + value = field.get(obj); + } catch (IllegalAccessException e) { + throw new ServiceException("获取属性性出错"); + } + //若为list则不处理 + if (value instanceof List) { + return; + } + //若为时间格式则进行格式化 + if (value instanceof LocalDateTime) { + value = DateUtil.format((LocalDateTime) value, TicketConstants.TICKET_DATE_PATTERN); + } + if (value instanceof Date) { + value = DateUtil.format((Date) value, TicketConstants.TICKET_DATE_PATTERN); + } + + if (map.containsKey(field.getName())) { + return; + } + + //属性上是否加入DefaultValue注解 若加入 则判断是否定义属性名以及值 若未定义则取原属性名及值 + if (ObjectUtil.isNotEmpty(defaultValue)) { + result.put(StringUtil.isNoneBlank(defaultValue.name()) ? defaultValue.name() : field.getName(), + ObjectUtil.isNotEmpty(defaultValue.value()) ? defaultValue.value() : value); + } else { + //如果导出word为null会出现{{ ,value设置"\u00A0" + result.put(field.getName(), Optional.ofNullable(value).orElse("")); + } + }); + } + return result; + } + + + /** + * 读取本地pdf,这里设置的是预览 + */ + public static void readPdf(HttpServletResponse response, String filePath) { + response.reset(); + response.setContentType("application/pdf"); + FileInputStream fileInputStream = null; + OutputStream outputStream = null; + try { + File file = new File(filePath); + fileInputStream = new FileInputStream(file); + outputStream = response.getOutputStream(); + IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); + response.setHeader("Content-Disposition", + "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); + outputStream.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + fileInputStream.close(); + outputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 读取本地pdf,这里设置的是导出 + */ + public static void exportPdf(HttpServletResponse response, String filePath) { + response.reset(); + response.setContentType("application/pdf"); + FileInputStream fileInputStream = null; + OutputStream outputStream = null; + try { + File file = new File(filePath); + fileInputStream = new FileInputStream(file); + outputStream = response.getOutputStream(); + IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream); + response.setHeader("Content-Disposition", "inline; filename= " + URLEncoder.encode(file.getName(), "UTF-8")); + outputStream.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + fileInputStream.close(); + outputStream.close(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + } +} diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/WordUtils.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/WordUtils.java index 5b28ec5..eafafad 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/WordUtils.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/util/WordUtils.java @@ -6,17 +6,16 @@ import cn.hutool.core.lang.Assert; import com.hnac.hzims.operational.util.pojo.HttpResponse; import freemarker.cache.StringTemplateLoader; import freemarker.template.Configuration; -import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.apache.poi.xwpf.usermodel.XWPFTable; -import org.apache.poi.xwpf.usermodel.XWPFTableCell; -import org.apache.poi.xwpf.usermodel.XWPFTableRow; +import org.apache.poi.xwpf.usermodel.*; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; -import java.io.File; -import java.io.FileOutputStream; -import java.io.UnsupportedEncodingException; +import java.awt.image.BufferedImage; +import java.io.*; import java.net.URLEncoder; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.List; import java.util.Map; @@ -91,7 +90,7 @@ public abstract class WordUtils { public static XWPFDocument exportWordV2(String templatePath, Map params) { try { XWPFDocument doc = WordExportUtil.exportWord07(templatePath, params); -// 合并第一列相同行的数据 + //合并第一列相同行的数据 tableIfSame(doc); return doc; } catch (Exception e) { diff --git a/hzims-service/operational/src/main/resources/log/logback-dev.xml b/hzims-service/operational/src/main/resources/log/logback-dev.xml deleted file mode 100644 index c67cdd9..0000000 --- a/hzims-service/operational/src/main/resources/log/logback-dev.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - utf8 - - - - - - - - - log/info.log - - - log/info/info-%d{yyyy-MM-dd_HH}.%i.log - - 240 - - 20MB - 10GB - true - - - ${log.pattern} - - - - INFO - ACCEPT - DENY - - - - - - log/error.log - - - log/error/error-%d{yyyy-MM-dd_HH}.%i.log - - 360 - - 20MB - 10GB - true - - - ${log.pattern} - - - - ERROR - ACCEPT - DENY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/hzims-service/operational/src/main/resources/log/logback-prod.xml b/hzims-service/operational/src/main/resources/log/logback-prod.xml deleted file mode 100644 index 3083e23..0000000 --- a/hzims-service/operational/src/main/resources/log/logback-prod.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - utf8 - - - - - - - - - log/info.log - - - log/info/info-%d{yyyy-MM-dd_HH}.%i.log - - 240 - - 20MB - 10GB - true - - - ${log.pattern} - - - - INFO - ACCEPT - DENY - - - - - - log/error.log - - - log/error/error-%d{yyyy-MM-dd_HH}.%i.log - - 360 - - 20MB - 10GB - true - - - ${log.pattern} - - - - ERROR - ACCEPT - DENY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/hzims-service/operational/src/main/resources/log/logback-test.xml b/hzims-service/operational/src/main/resources/log/logback-test.xml deleted file mode 100644 index fb3de3c..0000000 --- a/hzims-service/operational/src/main/resources/log/logback-test.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - utf8 - - - - - - - - - - - log/error.log - - - log/error/error-%d{yyyy-MM-dd_HH}.%i.log - - 360 - - 20MB - 10GB - true - - - ${log.pattern} - - - - ERROR - ACCEPT - DENY - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx b/hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx deleted file mode 100644 index 201df42..0000000 Binary files a/hzims-service/operational/src/main/resources/template/excel/constructio_template.xlsx and /dev/null differ diff --git a/hzims-service/operational/src/main/resources/template/word/constructio_template.docx b/hzims-service/operational/src/main/resources/template/word/constructio_template.docx new file mode 100644 index 0000000..c59be0b Binary files /dev/null and b/hzims-service/operational/src/main/resources/template/word/constructio_template.docx differ diff --git a/hzims-service/safeproduct/lib/aspose-words-15.8.0-jdk16.jar b/hzims-service/safeproduct/lib/aspose-words-15.8.0-jdk16.jar new file mode 100644 index 0000000..c0e699f Binary files /dev/null and b/hzims-service/safeproduct/lib/aspose-words-15.8.0-jdk16.jar differ diff --git a/hzims-service/safeproduct/pom.xml b/hzims-service/safeproduct/pom.xml index c33eae4..a048dd1 100644 --- a/hzims-service/safeproduct/pom.xml +++ b/hzims-service/safeproduct/pom.xml @@ -132,6 +132,14 @@ com.hnac.hzims ticket-api + + + com.aspose + aspose-words + 15.8.0 + system + ${project.basedir}/lib/aspose-words-15.8.0-jdk16.jar + diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java index 6d83610..20ce27e 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java @@ -3,9 +3,9 @@ package com.hnac.hzims.safeproduct.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.common.utils.Condition; +import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO; import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; -import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; import com.hnac.hzims.safeproduct.entity.CarEntity; import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; @@ -25,6 +25,7 @@ import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.Map; @@ -84,7 +85,8 @@ public class CarController extends BladeController { @ApiOperation(value = "车辆分页") @ApiOperationSupport(order = 5) public R> carPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = carService.page(Condition.getPage(query), Condition.getQueryWrapper(param, CarEntity.class)); + IPage page = carService.page(Condition.getPage(query), Condition.getQueryWrapper(param, CarEntity.class) + .lambda().orderByDesc(CarEntity::getCreateTime)); return R.data(page); } @@ -133,8 +135,8 @@ public class CarController extends BladeController { @PostMapping("/confirmCarMaintenance") @ApiOperation(value = "车辆维保记录确认") @ApiOperationSupport(order = 11) - public R confirmCarMaintenance(@RequestBody CarMaintenanceConfirmationDTO confirmationDTO) { - return R.status(carMaintenanceService.confirmCarMaintenance(confirmationDTO)); + public R confirmCarMaintenance(@Valid @RequestBody CarMaintenanceConfirmationDTO confirmationDTO) { + return carMaintenanceService.confirmCarMaintenance(confirmationDTO); } @PostMapping("/saveCarUsedRecord") @@ -148,7 +150,7 @@ public class CarController extends BladeController { @ApiOperation(value = "修改用车记录") @ApiOperationSupport(order = 13) public R updateCarUsedRecord(@Valid @RequestBody CarUsedRecordEntity carUsedRecordEntity) { - return R.status(carUsedRecordService.updateById(carUsedRecordEntity)); + return R.status(carUsedRecordService.updateCarUsedRecord(carUsedRecordEntity)); } @PostMapping("/removeCarUsedRecord") @@ -167,9 +169,10 @@ public class CarController extends BladeController { @GetMapping("/carUsedRecordPage") @ApiImplicitParams({ - @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string") + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string") }) - @ApiOperation(value = "车辆维保记录分页") + @ApiOperation(value = "用车记录分页") @ApiOperationSupport(order = 16) public R> carUsedRecordPage(@ApiIgnore @RequestParam Map param, Query query) { IPage page = carUsedRecordService.getCarUsedRecordPage(param, query); @@ -179,8 +182,8 @@ public class CarController extends BladeController { @PostMapping("/confirmCarUsedRecord") @ApiOperation(value = "用车记录确认") @ApiOperationSupport(order = 17) - public R confirmCarUsedRecord(@RequestBody CarUsedRecordConfirmationDTO confirmationDTO) { - return R.status(carUsedRecordService.confirmCarUsedRecord(confirmationDTO)); + public R confirmCarUsedRecord(@Valid @RequestBody CarUsedRecordConfirmationDTO confirmationDTO) { + return carUsedRecordService.confirmCarUsedRecord(confirmationDTO); } @GetMapping("/milesDataByYear") @@ -194,39 +197,61 @@ public class CarController extends BladeController { @PostMapping("/saveCarCheckRecord") @ApiOperation(value = "新增车检记录") @ApiOperationSupport(order = 19) - public R saveCarCheckRecord(@Valid @RequestBody CarCheckRecordEntity carCheckRecordEntity) { - return R.status(carCheckRecordService.saveCarCheckRecord(carCheckRecordEntity)); + public R saveCarCheckRecord(@Valid @RequestBody CarCheckRecordDTO carCheckRecordDTO) { + return R.status(carCheckRecordService.saveCarCheckRecord(carCheckRecordDTO)); } @PostMapping("/updateCarCheckRecord") @ApiOperation(value = "修改车检记录") @ApiOperationSupport(order = 20) - public R updateCarCheckRecord(@Valid @RequestBody CarCheckRecordEntity carCheckRecordEntity) { - return R.status(carCheckRecordService.updateById(carCheckRecordEntity)); + public R updateCarCheckRecord(@Valid @RequestBody CarCheckRecordDTO carCheckRecordDTO) { + return R.status(carCheckRecordService.updateCarCheckRecord(carCheckRecordDTO)); } @PostMapping("/removeCarCheckRecord") @ApiOperation(value = "删除车检记录") @ApiOperationSupport(order = 21) public R removeCarCheckRecord(@RequestParam Long id) { - return R.status(carCheckRecordService.removeById(id)); + return R.status(carCheckRecordService.removeCarCheckRecord(id)); } @GetMapping("/carCheckRecordDetail") @ApiOperation(value = "车检记录详情") - @ApiOperationSupport(order = 15) + @ApiOperationSupport(order = 22) public R carCheckRecordDetail(@RequestParam Long id) { return R.data(carCheckRecordService.getCarCheckRecord(id)); } @GetMapping("/carCheckRecordPage") @ApiImplicitParams({ - @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string") + @ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"), + @ApiImplicitParam(name = "carId", value = "车辆id", dataType = "query", paramType = "string") }) - @ApiOperation(value = "车辆维保记录分页") - @ApiOperationSupport(order = 16) - public R> carCheckRecordPage(@ApiIgnore @RequestParam Map param, Query query) { - IPage page = carUsedRecordService.getCarUsedRecordPage(param, query); + @ApiOperation(value = "车检记录分页") + @ApiOperationSupport(order = 23) + public R> carCheckRecordPage(@ApiIgnore @RequestParam Map param, Query query) { + IPage page = carCheckRecordService.getCarCheckRecordPage(param, query); return R.data(page); } + + @GetMapping("/exportCarMaintenanceData") + @ApiOperation(value = "导出车辆维保记录单") + @ApiOperationSupport(order = 24) + public void exportCarMaintenanceData(@RequestParam Long id, HttpServletResponse response) { + carMaintenanceService.exportCarMaintenanceData(id, response); + } + + @GetMapping("/exportCarUsedRecordData") + @ApiOperation(value = "导出用车记录单") + @ApiOperationSupport(order = 25) + public void exportCarUsedRecordData() { + + } + + @GetMapping("/exportCarCheckRecordData") + @ApiOperation(value = "导出车检记录单") + @ApiOperationSupport(order = 26) + public void exportCarCheckRecordData() { + + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java index aea0139..38e48e4 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java @@ -148,4 +148,11 @@ public class RehearsalController extends BladeController { public void exportRehearsalData(@ApiIgnore @RequestParam Map param, HttpServletResponse response) { rehearsalPlanService.exportRehearsalPlanData(param, response); } + + @GetMapping("/exportRecordDetailData") + @ApiOperation(value = "演练记录表导出") + @ApiOperationSupport(order = 14) + public void exportRecordDetailData(@RequestParam Long id) { + rehearsalRecordService.exportRecordDetailData(id); + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/dto/SafetyToolBatchRecheckDTO.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/dto/SafetyToolBatchRecheckDTO.java index 2f26f6f..d952ab3 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/dto/SafetyToolBatchRecheckDTO.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/dto/SafetyToolBatchRecheckDTO.java @@ -1,8 +1,11 @@ package com.hnac.hzims.safeproduct.dto; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.StringUtil; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; @@ -27,6 +30,8 @@ public class SafetyToolBatchRecheckDTO implements Serializable { private Set toolIds; @ApiModelProperty(value = "复核时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) private Date checkTime; @ApiModelProperty(value = "备注") diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/CarJob.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/CarJob.java new file mode 100644 index 0000000..86c7e55 --- /dev/null +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/jobs/CarJob.java @@ -0,0 +1,41 @@ +package com.hnac.hzims.safeproduct.jobs; + +import com.hnac.hzims.safeproduct.entity.CarEntity; +import com.hnac.hzims.safeproduct.service.ICarService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +/** + * 车辆模块定时任务 + * + * @author liwen + * @date 2024-01-11 + */ +@Component +public class CarJob { + + @Autowired + ICarService carService; + + /** + * 车辆台账自动变更 + */ + @XxlJob("autoChangeCarStatus") + public ReturnT autoChangeCarStatus(String param) { + // 获取时间范围 + Date current = DateUtil.now(); + Date before = DateUtil.minusDays(current, 1); + String today = DateUtil.format(current, "yyyy-mm-dd"); + String yesterday = DateUtil.format(before, "yyyy-mm-dd"); + List uninsuredCarList = carService.getCarListByInsuranceTime(today, yesterday); +// uninsuredCarList.forEach(car -> car.setInsuranceStatus()); +// List carListByMaintenanceTime = carService.getCarListByMaintenanceTime(today, yesterday); + return ReturnT.SUCCESS; + } +} diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java index 608b499..3f63ae6 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.java @@ -1,9 +1,13 @@ package com.hnac.hzims.safeproduct.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; +import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO; import org.apache.ibatis.annotations.Mapper; +import java.util.Map; + /** * 车检记录Mapper类 * @@ -13,4 +17,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface CarCheckRecordMapper extends BaseMapper { + /** + * 车检记录分页 + * @param param 入参 + * @param page 分页类 + * @return 分页数据 + */ + IPage getCarCheckRecordPage(IPage page, Map param); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml index f372a67..3678e62 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckRecordMapper.xml @@ -2,4 +2,21 @@ + \ No newline at end of file diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml index 86c1564..33ba901 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMaintenanceMapper.xml @@ -10,7 +10,7 @@ hzims_car_maintenance t1 LEFT JOIN hzims_car t2 ON t1.car_id = t2.id WHERE - is_deleted = 0 + t1.is_deleted = 0 AND t1.id = #{carMaintenanceId} @@ -18,12 +18,13 @@ SELECT - t1.unit, t1.car_brand, t1.plate_number, DATE_FORMAT(t1.confirmation_time, '%m') as dateTime, sum(t2.miles) as miles + t1.unit, t1.car_brand, t1.plate_number, DATE_FORMAT(t2.end_time, '%m') as dateTime, sum(t2.miles) as miles FROM hzims_car t1 LEFT JOIN hzims_car_used_record t2 ON t1.id = t2.car_id WHERE t1.is_deleted = 0 - AND t2.confirmation_time like concat('%', #{year}, '%') + AND t2.end_time like concat('%', #{year}, '%') - AND t2.used_status = 'CONFIRMED' + AND t2.used_status = 'USED' AND t1.plate_number in #{car} GROUP BY - t1.plate_number, DATE_FORMAT(t1.confirmation_time, '%m') + t1.plate_number, DATE_FORMAT(t2.end_time, '%m') ORDER BY - t1.end_time DESC + t1.create_time DESC SELECT - t1.unit, t1.start_time, t1.user, t1.remark, t1.start_miles, t1.end_miles, t1.miles, - t2.car_brand, t2.plate_number + t1.id, t1.unit, t1.start_time, t1.user, t1.remark, t1.start_miles, t1.end_miles, t1.miles, + t2.car_brand, t2.plate_number, t1.used_location, t1.confirmation_time, t1.used_location FROM hzims_car_used_record t1 LEFT JOIN hzims_car t2 ON t1.car_id = t2.id @@ -28,6 +28,9 @@ AND t1.unit = #{param.unit} + + AND t1.car_id = #{param.carId} + ORDER BY t1.create_time DESC diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml index 18fdba8..ce87bbb 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygienePlanMapper.xml @@ -22,11 +22,11 @@ SELECT unit, count(1) as finished_task_num FROM - hzims_hygiene_plan + hzims_hygiene_record WHERE is_deleted = 0 AND scheduled_end_time like concat('%', #{month}, '%') - AND hygiene_status = 'FINISHED' + AND hygiene_plan_status = 'FINISHED' AND unit like concat('%', #{unit}, '%') diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java index 9bd0042..934bb38 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckItemService.java @@ -3,6 +3,8 @@ package com.hnac.hzims.safeproduct.service; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; +import java.util.List; + /** * 车检项服务类 * @@ -11,4 +13,24 @@ import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; */ public interface ICarCheckItemService extends IService { + /** + * 根据检查项获取数据 + * @param checkContent 检查内容 + * @return 检查项数据 + */ + CarCheckItemEntity getDetailByCheckContent(String checkContent); + + /** + * 删除关联检查项数据 + * @param carCheckRecordId 车检记录id + * @return true-成功,false-失败 + */ + boolean removeRelativeCarCheckItem(Long carCheckRecordId); + + /** + * 根据车检记录id查询检查项数据 + * @param carCheckRecordId 车检记录id + * @return 检查项数据 + */ + List getListByCarCheckRecordId(Long carCheckRecordId); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java index 0337b44..e9dfc26 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckRecordService.java @@ -1,8 +1,14 @@ package com.hnac.hzims.safeproduct.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO; import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO; +import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO; +import org.springblade.core.mp.support.Query; + +import java.util.Map; /** * 车检记录服务类 @@ -14,10 +20,10 @@ public interface ICarCheckRecordService extends IService { /** * 新增车检记录 - * @param carCheckRecordEntity 车检记录实体类 + * @param carCheckRecordDTO 车检记录DTO类 * @return true-成功,false-失败 */ - boolean saveCarCheckRecord(CarCheckRecordEntity carCheckRecordEntity); + boolean saveCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO); /** * 车检记录详情 @@ -25,4 +31,33 @@ public interface ICarCheckRecordService extends IService { * @return 车检记录详情VO类 */ CarCheckRecordDetailVO getCarCheckRecord(Long id); + + /** + * 车检记录分页 + * @param param 入参 + * @param query 分页类 + * @return 分页数据 + */ + IPage getCarCheckRecordPage(Map param, Query query); + + /** + * 根据编码查询车检记录 + * @param code 编码 + * @return 车检记录实体类 + */ + CarCheckRecordEntity getCarCheckRecordByCode(String code); + + /** + * 修改车检记录 + * @param carCheckRecordDTO 车检记录DTO类 + * @return true-成功,false-失败 + */ + boolean updateCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO); + + /** + * 删除车检记录 + * @param id 车检记录id + * @return true-成功,false-失败 + */ + boolean removeCarCheckRecord(Long id); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java index f85ba53..a925669 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarMaintenanceService.java @@ -7,7 +7,9 @@ import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import javax.servlet.http.HttpServletResponse; import java.util.Map; /** @@ -43,7 +45,14 @@ public interface ICarMaintenanceService extends IService { /** * 车辆维保记录确认 * @param confirmationDTO 车辆维保记录确认DTO类 - * @return true-成功,false-失败 + * @return 封装结果类 + */ + R confirmCarMaintenance(CarMaintenanceConfirmationDTO confirmationDTO); + + /** + * 导出车辆维保记录单 + * @param id 车辆维保记录id + * @param response 响应类 */ - boolean confirmCarMaintenance(CarMaintenanceConfirmationDTO confirmationDTO); + void exportCarMaintenanceData(Long id, HttpServletResponse response); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java index 43c815f..ce6daed 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarService.java @@ -1,12 +1,13 @@ package com.hnac.hzims.safeproduct.service; - import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.safeproduct.entity.CarEntity; import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; import org.springblade.core.mp.support.Query; +import java.util.List; + /** * 车辆管理服务类 * @@ -23,4 +24,12 @@ public interface ICarService extends IService { * @return 分页数据 */ IPage milesDataByYear(String year, String unit, Query query); + + /** + * 根据参保时间查询车辆列表 + * @param today 当天 + * @param yesterday 昨天 + * @return 车辆列表数据 + */ + List getCarListByInsuranceTime(String today, String yesterday); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java index b8ba1f9..53af9f1 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarUsedRecordService.java @@ -4,10 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; -import com.hnac.hzims.safeproduct.vo.CarMilesYearVO; import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; import java.util.Map; @@ -44,7 +44,14 @@ public interface ICarUsedRecordService extends IService { /** * 用车记录确认 * @param confirmationDTO 用车记录确认DTO类 + * @return 封装结果类 + */ + R confirmCarUsedRecord(CarUsedRecordConfirmationDTO confirmationDTO); + + /** + * 更新用车记录 + * @param carUsedRecordEntity 用车记录实体类 * @return true-成功,false-失败 */ - boolean confirmCarUsedRecord(CarUsedRecordConfirmationDTO confirmationDTO); + boolean updateCarUsedRecord(CarUsedRecordEntity carUsedRecordEntity); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java index 6d3e98d..0846fbb 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java @@ -66,11 +66,11 @@ public interface IHygienePlanService extends IService { HygienePlanDetailVO getPlan(Long id); /** - * 根据编码查询卫生自查计划 - * @param code 编码 + * 根据名称查询卫生自查计划 + * @param name 名称 * @return 卫生自查计划实体类 */ - HygienePlanEntity getPlanByCode(String code); + HygienePlanEntity getPlanByName(String name); /** * 月度数据导出 diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalRecordService.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalRecordService.java index 0fab88d..f1092da 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalRecordService.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalRecordService.java @@ -31,4 +31,10 @@ public interface IRehearsalRecordService extends IService * @return true-成功,false-失败 */ boolean removeRelativeRehearsalRecord(Long rehearsalPlanId); + + /** + * 演练记录表导出 + * @param id 演练记录id + */ + void exportRecordDetailData(Long id); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java index ede8a3a..17da3e5 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckItemServiceImpl.java @@ -1,11 +1,16 @@ package com.hnac.hzims.safeproduct.service.impl; +import com.alibaba.excel.util.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; import com.hnac.hzims.safeproduct.mapper.CarCheckItemMapper; import com.hnac.hzims.safeproduct.service.ICarCheckItemService; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.stream.Collectors; + /** * 车检项服务实现类 * @@ -15,4 +20,40 @@ import org.springframework.stereotype.Service; @Service public class CarCheckItemServiceImpl extends ServiceImpl implements ICarCheckItemService { + /** + * 根据检查项获取数据 + */ + @Override + public CarCheckItemEntity getDetailByCheckContent(String checkContent) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(CarCheckItemEntity::getCheckContent, checkContent); + return this.getOne(queryWrapper); + } + + /** + * 删除关联检查项数据 + */ + @Override + public boolean removeRelativeCarCheckItem(Long carCheckRecordId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(CarCheckItemEntity::getCarCheckRecordId, carCheckRecordId); + List list = this.list(queryWrapper); + // 若无相关检查项,返回true + if (CollectionUtils.isEmpty(list)) { + return true; + } + List ids = list.stream().map(CarCheckItemEntity::getId).collect(Collectors.toList()); + return this.removeByIds(ids); + } + + /** + * 根据车检记录id查询检查项数据 + */ + @Override + public List getListByCarCheckRecordId(Long carCheckRecordId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(CarCheckItemEntity::getCarCheckRecordId, carCheckRecordId) + .orderByDesc(CarCheckItemEntity::getCheckItem); + return this.list(queryWrapper); + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java index 60a876a..5e6db20 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java @@ -1,10 +1,12 @@ package com.hnac.hzims.safeproduct.service.impl; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import com.alibaba.excel.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO; import com.hnac.hzims.safeproduct.entity.CarCheckItemEntity; import com.hnac.hzims.safeproduct.entity.CarCheckRecordEntity; import com.hnac.hzims.safeproduct.entity.CarEntity; @@ -15,14 +17,19 @@ import com.hnac.hzims.safeproduct.service.ICarCheckRecordService; import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.vo.CarCheckItemVO; import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO; +import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.utils.BeanUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; /** * 车检记录服务实现类 @@ -42,16 +49,28 @@ public class CarCheckRecordServiceImpl extends ServiceImpl itemList = carCheckRecordDTO.getItemList(); + itemList.forEach(x -> x.setCarCheckRecordId(recordEntity.getId())); + return carCheckItemService.saveBatch(itemList); + } + return false; } /** @@ -77,31 +96,29 @@ public class CarCheckRecordServiceImpl extends ServiceImpl checkList = new ArrayList<>(); - String[] checkItemIds = carCheckRecord.getCheckItemIds().split(",|,"); - String[] checkItemResults = carCheckRecord.getCheckItemResults().split(",|,"); - for (int i = 0; i < checkItemIds.length; i++) { - CarCheckItemEntity checkItemEntity = carCheckItemService.getById(checkItemIds[i]); - CarCheckItemVO carCheckItemVO = new CarCheckItemVO(); - carCheckItemVO.setCheckItem(checkItemEntity.getCheckItem()); - carCheckItemVO.setCheckContent(checkItemEntity.getCheckContent()); - carCheckItemVO.setCheckResult(checkItemResults[i]); - checkList.add(carCheckItemVO); - } - carCheckRecordDetailVO.setCheckItemList(checkList); + List itemList = carCheckItemService.getListByCarCheckRecordId(id); + carCheckRecordDetailVO.setCheckItemList(itemList); return carCheckRecordDetailVO; } return null; } /** + * 车检记录分页 + */ + @Override + public IPage getCarCheckRecordPage(Map param, Query query) { + IPage page = new Page<>(query.getCurrent(), query.getSize()); + return baseMapper.getCarCheckRecordPage(page, param); + } + + /** * 查询是否存在同月编号 * @param currentMonth 当月 * @return 存在则返回上一编号,否则返回null */ private String getLastCode(String currentMonth) { - String month = currentMonth.substring(currentMonth.length() - 2); - List list = getCarCheckRecordByMonth(month); + List list = getCarCheckRecordByMonth(currentMonth); if (CollectionUtils.isEmpty(list)) { return null; } @@ -109,9 +126,9 @@ public class CarCheckRecordServiceImpl extends ServiceImpl getCarCheckRecordByMonth(String month) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -119,4 +136,45 @@ public class CarCheckRecordServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(CarCheckRecordEntity::getCode, code); + return this.getOne(queryWrapper); + } + + /** + * 修改车检记录 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean updateCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO) { + // 更新检查项 + List itemList = carCheckRecordDTO.getItemList(); + boolean updateItem = carCheckItemService.updateBatchById(itemList); + // 若更新检查项成功,则更新车检记录 + if (updateItem) { + CarCheckRecordEntity carCheckRecordEntity = new CarCheckRecordEntity(); + BeanUtil.copyProperties(carCheckRecordDTO, carCheckRecordEntity); + return this.updateById(carCheckRecordEntity); + } + return false; + } + + /** + * 删除车检记录 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean removeCarCheckRecord(Long id) { + boolean remove = this.removeById(id); + if (remove) { + return carCheckItemService.removeRelativeCarCheckItem(id); + } + return false; + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java index 3aa1cf3..79836c5 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarMaintenanceServiceImpl.java @@ -1,24 +1,41 @@ package com.hnac.hzims.safeproduct.service.impl; import cn.hutool.core.date.DatePattern; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.util.CollectionUtils; +import com.alibaba.excel.write.metadata.WriteSheet; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO; +import com.hnac.hzims.safeproduct.entity.CarEntity; import com.hnac.hzims.safeproduct.entity.CarMaintenanceEntity; +import com.hnac.hzims.safeproduct.enums.CarMaintenanceStatusEnum; import com.hnac.hzims.safeproduct.mapper.CarMaintenanceMapper; -import com.hnac.hzims.safeproduct.mapper.CarMapper; import com.hnac.hzims.safeproduct.service.ICarMaintenanceService; +import com.hnac.hzims.safeproduct.service.ICarService; import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.vo.CarMaintenanceDetailVO; import com.hnac.hzims.safeproduct.vo.CarMaintenancePageVO; +import com.hnac.hzims.ticket.constants.WorkTicketConstants; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -32,8 +49,8 @@ import java.util.Map; @Service public class CarMaintenanceServiceImpl extends ServiceImpl implements ICarMaintenanceService { - @Resource - CarMapper carMapper; + @Autowired + ICarService carService; /** * 新增车辆维保记录 @@ -41,12 +58,13 @@ public class CarMaintenanceServiceImpl extends ServiceImpl params = BaseUtil.convertObjectToMap(carMaintenanceEntity); +// String templateFile = "" + try { + List res = new ArrayList<>(); + XWPFDocument document = BaseUtil.fillDocument("template/", params); + res.add(document); + BaseUtil.exportWord(res, ""); + } catch (Exception e) { + throw new RuntimeException(e); + } +// String pdfPath = this.getFileSavePath() + params.get("code") + "_" + params.get("addressEquName") +".pdf"; +// AsposeUtil.wordToPdf(wordPath, pdfPath); +// PdfUtils.readPdf(response,pdfPath); +// ServletOutputStream outputStream = null; +// try { +// outputStream = response.getOutputStream(); +// CarMaintenanceDetailVO carMaintenance = getCarMaintenance(id); +// // 设置响应头 +// // URLEncoder.encode防止中文乱码 +// String fileName = URLEncoder.encode("车辆维保记录单", "UTF-8"); +// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); +// response.setContentType("application/vnd.ms-excel"); +// response.setCharacterEncoding("UTF-8"); +// List dataList = new ArrayList<>(); +// dataList.add(carMaintenance); +// String templatePath = "template/车辆维保记录单.xlsx"; +// Resource resource = new ClassPathResource(templatePath); +// // ExcelWriter初始化 +// ExcelWriter excelWriter = EasyExcel +// .write(response.getOutputStream(), CarMaintenanceDetailVO.class) +// .autoCloseStream(Boolean.TRUE) +// .withTemplate(resource.getInputStream()) +// .build(); +// WriteSheet writeSheet = EasyExcel.writerSheet(1, "车辆维保记录单").build(); +// excelWriter.write(dataList, writeSheet); +// excelWriter.finish(); +// } catch (Exception e) { +// // 重置response +// response.reset(); +// response.setContentType("application/json"); +// response.setCharacterEncoding("utf-8"); +// throw new ServiceException("车辆维保记录单导出异常: " + e.getMessage()); +// } finally { +// if (outputStream != null) { +// try { +// outputStream.close(); +// } catch (IOException e) { +// log.error("车辆维保记录单导出响应头输出流关闭异常: " + e.getMessage()); +// } +// } +// } } /** @@ -85,8 +178,7 @@ public class CarMaintenanceServiceImpl extends ServiceImpl list = getHygieneByMonth(month); + List list = getCarMaintenanceByMonth(currentMonth); if (CollectionUtils.isEmpty(list)) { return null; } @@ -98,7 +190,7 @@ public class CarMaintenanceServiceImpl extends ServiceImpl getHygieneByMonth(String month) { + private List getCarMaintenanceByMonth(String month) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(CarMaintenanceEntity::getCreateTime, month) .orderByDesc(CarMaintenanceEntity::getCode); diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java index 64c55cd..d9e8adf 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarServiceImpl.java @@ -1,5 +1,6 @@ package com.hnac.hzims.safeproduct.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -102,4 +103,15 @@ public class CarServiceImpl extends ServiceImpl implements carPage.setRecords(res); return carPage; } + + /** + * 根据参保时间查询车辆列表 + */ + @Override + public List getCarListByInsuranceTime(String today, String yesterday) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().le(CarEntity::getInsurancePayLastTime, today) + .ge(CarEntity::getInsurancePayNextTime, today); + return this.list(queryWrapper); + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java index 2b35beb..d8f2295 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarUsedRecordServiceImpl.java @@ -8,14 +8,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO; import com.hnac.hzims.safeproduct.entity.CarUsedRecordEntity; +import com.hnac.hzims.safeproduct.enums.CarUsedRecordEnum; import com.hnac.hzims.safeproduct.mapper.CarUsedRecordMapper; import com.hnac.hzims.safeproduct.service.ICarUsedRecordService; import com.hnac.hzims.safeproduct.utils.BaseUtil; import com.hnac.hzims.safeproduct.vo.CarUsedRecordDetailVO; import com.hnac.hzims.safeproduct.vo.CarUsedRecordPageVO; import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Map; @@ -35,14 +39,18 @@ public class CarUsedRecordServiceImpl extends ServiceImpl list = getHygieneByMonth(month); + List list = getCarUsedRecordByMonth(currentMonth); if (CollectionUtils.isEmpty(list)) { return null; } @@ -87,11 +111,11 @@ public class CarUsedRecordServiceImpl extends ServiceImpl getHygieneByMonth(String month) { + private List getCarUsedRecordByMonth(String month) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(CarUsedRecordEntity::getCreateTime, month) .orderByDesc(CarUsedRecordEntity::getCode); diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java index 7299e93..d9a787f 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java @@ -95,14 +95,20 @@ public class HygienePlanServiceImpl extends ServiceImpl zoneList = hygienePlanDTO.getZoneList(); // 若计划新增成功,新增关联责任区数据 if (savePlan) { - HygienePlanEntity hygienePlan = getPlanByCode(hygienePlanDTO.getCode()); + hygienePlan = getPlanByName(hygienePlanDTO.getName()); for (HygieneZoneEntity zone : zoneList) { // 传计划id if (hygienePlan != null) { @@ -126,6 +132,14 @@ public class HygienePlanServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().ne(HygienePlanEntity::getId, hygienePlanDTO.getId()); + queryWrapper.lambda().eq(HygienePlanEntity::getName, hygienePlanDTO.getName()); + HygienePlanEntity hygienePlan = this.getOne(queryWrapper); + if (hygienePlan != null) { + return R.fail("名称不可重复"); + } // 修改卫生自查计划 HygienePlanEntity hygienePlanEntity = new HygienePlanEntity(); BeanUtils.copyProperties(hygienePlanDTO, hygienePlanEntity); @@ -211,9 +225,9 @@ public class HygienePlanServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(HygienePlanEntity::getCode, code); + queryWrapper.lambda().eq(HygienePlanEntity::getName, name); return this.getOne(queryWrapper); } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneRecordServiceImpl.java index ccc7785..2baeec5 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneRecordServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygieneRecordServiceImpl.java @@ -12,10 +12,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hnac.hzims.safeproduct.constants.SafeProductConstant; import com.hnac.hzims.safeproduct.dto.HygieneRecordDTO; import com.hnac.hzims.safeproduct.entity.HygienePlanEntity; import com.hnac.hzims.safeproduct.entity.HygieneRecordEntity; import com.hnac.hzims.safeproduct.entity.HygieneZoneEntity; +import com.hnac.hzims.safeproduct.entity.RehearsalPlanEntity; +import com.hnac.hzims.safeproduct.enums.RehearsalStatusEnum; import com.hnac.hzims.safeproduct.mapper.HygienePlanMapper; import com.hnac.hzims.safeproduct.mapper.HygieneRecordMapper; import com.hnac.hzims.safeproduct.service.IHygieneRecordService; @@ -101,7 +104,13 @@ public class HygieneRecordServiceImpl extends ServiceImpl list = getRehearsalByMonth(month); + List list = getRehearsalByMonth(currentMonth); if (CollectionUtils.isEmpty(list)) { return null; } @@ -118,4 +125,16 @@ public class RehearsalRecordServiceImpl extends ServiceImpl ids = rehearsalRecordList.stream().map(RehearsalRecordEntity::getId).collect(Collectors.toList()); return this.removeByIds(ids); } + + /** + * 演练记录表导出 + */ + @Override + public void exportRecordDetailData(Long id) { + RehearsalRecordEntity rehearsalRecordEntity = this.getById(id); + String tempFileName = "演练记录表.xlsx"; + Assert.isTrue(StringUtil.isNotBlank(tempFileName),() -> { + throw new ServiceException("未找到模板文件,预览失败!"); + }); + } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java index 3255a0d..1e9e002 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/SafetyToolServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.zxing.BarcodeFormat; import com.hnac.hzims.message.dto.PlanMsgRecordDto; +import com.hnac.hzims.safeproduct.constants.RedisConstants; import com.hnac.hzims.safeproduct.dto.SafetyToolBatchRecheckDTO; import com.hnac.hzims.safeproduct.dto.SafetyToolDTO; import com.hnac.hzims.safeproduct.entity.SafeProductPdf; @@ -44,6 +45,7 @@ import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ZSetOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; @@ -126,7 +128,6 @@ public class SafetyToolServiceImpl extends BaseServiceImpl safetyToolRechecks = new ArrayList<>(safetyTools.size()); - for (SafetyToolEntity item : safetyTools) { + super.updateById(item); SafetyToolRecheckEntity entity = new SafetyToolRecheckEntity(); entity.setCheckUserName(userName); entity.setCheckUserId(userId); entity.setToolId(item.getId()); entity.setCheckTime(checkTime); entity.setRemark(req.getRemark()); - safetyToolRechecks.add(entity); - } - if (safetyToolRecheckMapper.insertBatch(safetyToolRechecks) == 0) { - throw new ServiceException("数据库insert操作失败!"); + safetyToolRecheckMapper.insert(entity); + // 计算下次推送时间 + Date noticeDate = DateUtil.minusDays(item.getNextCheckTime(), item.getAdvanceNoticeDays()); + String redisKey = RedisConstants.TOOLS_REMIND_MSG + ":" + item.getId(); + // 删除提醒记录 + redisTemplate.delete(redisKey); + // 创建新的提醒记录 + redisTemplate.opsForZSet().add(redisKey,item,noticeDate.getTime()); + log.info("key为:"+redisTemplate.keys(RedisConstants.TOOLS_REMIND_MSG+"*")); } } diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java index 58cfad5..e36ac90 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java @@ -1,6 +1,17 @@ package com.hnac.hzims.safeproduct.utils; +import cn.afterturn.easypoi.word.WordExportUtil; import com.hnac.hzims.common.logs.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.xwpf.usermodel.XWPFDocument; + +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 公用工具类 @@ -8,6 +19,7 @@ import com.hnac.hzims.common.logs.utils.StringUtils; * @author liwen * @date 2024-01-02 */ +@Slf4j public class BaseUtil { /** @@ -36,4 +48,65 @@ public class BaseUtil { } return code; } + + /** + * 对象转map + * @param entity 对象 + * @return map + */ + public static Map convertObjectToMap(Object entity) { + Map map = new HashMap<>(); + Field[] fields = entity.getClass().getFields(); + try { + for (Field field : fields) { + field.setAccessible(true); + Object value = field.get(entity); + map.put(field.getName(), value); + } + } catch (IllegalAccessException e) { + log.info("对象转map异常: {}", e.getMessage()); + } + return map; + } + + /** + * 文件导出 + * @param documents doc文件 + * @param savePath 存储路径 + */ + public static void exportWord(List documents, String savePath) { + FileOutputStream out = null; + try { + out = new FileOutputStream(savePath); + for (XWPFDocument document : documents) { + document.write(out); + } + out.close(); + } catch (IOException e) { + log.error("文件导出异常: {}", e.getMessage()); + } finally { + if (out != null) { + try { + out.close(); + } catch (IOException e) { + log.error("文件导出-输出流关闭异常: {}", e.getMessage()); + } + } + } + } + + /** + * 数据写入模板文件 + * @param templatePath 模板路径 + * @param params 数据 + */ + public static XWPFDocument fillDocument(String templatePath, Map params) { + XWPFDocument xwpfDocument = null; + try { + xwpfDocument = WordExportUtil.exportWord07(templatePath, params); + } catch (Exception e) { + log.error("数据写入异常: {}", e.getMessage()); + } + return xwpfDocument; + } } diff --git a/hzims-service/safeproduct/src/main/resources/db/1.0.1.sql b/hzims-service/safeproduct/src/main/resources/db/1.0.1.sql index 419e469..ef3b5b4 100644 --- a/hzims-service/safeproduct/src/main/resources/db/1.0.1.sql +++ b/hzims-service/safeproduct/src/main/resources/db/1.0.1.sql @@ -37,10 +37,10 @@ CREATE TABLE `hzims_rehearsal_record` ( `code` varchar(50) NOT NULL COMMENT '编号', `people_num` int(10) NOT NULL DEFAULT '0' COMMENT '参演人数', `people_name` varchar(5000) DEFAULT '' COMMENT '参演人员', - `actual_start_time` datetime DEFAULT NULL COMMENT '演练实际开始时间', - `actual_end_time` datetime DEFAULT NULL COMMENT '演练实际结束时间', - `record` varchar(250) DEFAULT '' COMMENT '演练记录', - `comment` varchar(250) DEFAULT '' DEFAULT '' COMMENT '演练评价', + `actual_start_time` datetime NOT NULL COMMENT '演练实际开始时间', + `actual_end_time` datetime NOT NULL COMMENT '演练实际结束时间', + `record` varchar(250) NOT NULL DEFAULT '' COMMENT '演练记录', + `comment` varchar(250) NOT NULL DEFAULT '' COMMENT '演练评价', `img_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '演练图片', `file_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '演练附件', `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', @@ -183,6 +183,7 @@ CREATE TABLE `hzims_hygiene_plan` ( `standard_score` int(10) NOT NULL DEFAULT '100' COMMENT '标准总分值', `scheduled_start_time` date NOT NULL COMMENT '计划开始时间', `scheduled_end_time` date NOT NULL COMMENT '计划结束时间', + `hygiene_plan_status` varchar(50) NOT NULL DEFAULT 'WAITING' COMMENT '自查计划状态', `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', @@ -231,4 +232,121 @@ CREATE TABLE `hzims_hygiene_record` ( `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', PRIMARY KEY (`id`) USING BTREE -) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='卫生自查记录表' ROW_FORMAT=Dynamic; \ No newline at end of file +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='卫生自查记录表' ROW_FORMAT=Dynamic; + +CREATE TABLE `hzims_car` ( + `id` bigint(20) NOT NULL COMMENT '主键id', + `unit` varchar(50) NOT NULL COMMENT '单位', + `car_brand` varchar(50) NOT NULL COMMENT '品牌', + `car_type` varchar(50) NOT NULL COMMENT '型号', + `plate_number` varchar(50) NOT NULL COMMENT '车牌号', + `registration_time` date NOT NULL COMMENT '上牌时间', + `insurance_pay_last_time` date NOT NULL COMMENT '上期缴车保时间', + `insurance_pay_next_time` date NOT NULL COMMENT '下期缴车保时间', + `annual_inspection_time` date NOT NULL COMMENT '年检时间', + `annual_inspection_status` varchar(50) NOT NULL COMMENT '年检状态', + `insurance_status` varchar(50) NOT NULL COMMENT '保险状态', + `maintenance_last_time` date DEFAULT NULL COMMENT '上期保养时间', + `maintenance_next_time` date DEFAULT NULL COMMENT '下期保养时间', + `maintenance_mileage` decimal(10, 2) DEFAULT NULL COMMENT '保养里程', + `maintenance_status` varchar(50) DEFAULT NULL COMMENT '保养状态', + `manager` varchar(50) NOT NULL COMMENT '车辆管理人', + `img_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '车辆图片', + `file_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '车辆附件', + `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', + `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_user` bigint(20) DEFAULT '-1' COMMENT '更新人', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', + `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', + `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='车辆台账表' ROW_FORMAT=Dynamic; + +CREATE TABLE `hzims_car_maintenance` ( + `id` bigint(20) NOT NULL COMMENT '主键id', + `car_id` bigint(20) NOT NULL COMMENT '车辆id', + `code` varchar(50) NOT NULL COMMENT '编号', + `maintenance_type` varchar(50) NOT NULL COMMENT '维保类型', + `content` mediumtext NOT NULL COMMENT '维保内容', + `start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '维保开始时间', + `end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '维保结束时间', + `location` varchar(255) NOT NULL COMMENT '维保地点', + `cost` bigint(20) NOT NULL COMMENT '维保费用', + `maintainer` varchar(20) NOT NULL COMMENT '维保人', + `manager_advice` varchar(500) DEFAULT NULL COMMENT '车辆管理人意见', + `maintenance_status` varchar(50) DEFAULT NULL COMMENT '维保状态', + `confirmation_time` datetime DEFAULT NULL COMMENT '确认时间', + `img_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '维保图片', + `file_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '维保附件', + `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', + `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_user` bigint(20) DEFAULT '-1' COMMENT '更新人', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', + `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', + `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='车辆维保记录表' ROW_FORMAT=Dynamic; + +CREATE TABLE `hzims_car_used_record` ( + `id` bigint(20) NOT NULL COMMENT '主键id', + `car_id` bigint(20) NOT NULL COMMENT '车辆id', + `code` varchar(50) NOT NULL COMMENT '编号', + `unit` varchar(50) NOT NULL COMMENT '用车单位', + `used_location` varchar(255) NOT NULL COMMENT '使用地点', + `user` varchar(20) NOT NULL COMMENT '使用人', + `remark` mediumtext DEFAULT NULL COMMENT '使用详情', + `start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '使用时间', + `end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收车时间', + `start_miles` decimal(10, 2) NOT NULL COMMENT '出车公里数', + `end_miles` decimal(10, 2) NOT NULL COMMENT '收车公里数', + `miles` decimal(10, 2) NOT NULL COMMENT '行驶公里数', + `used_status` varchar(50) DEFAULT NULL COMMENT '用车状态', + `confirmation_time` datetime DEFAULT NULL COMMENT '确认时间', + `img_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '里程图片', + `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', + `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_user` bigint(20) DEFAULT '-1' COMMENT '更新人', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', + `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', + `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用车记录表' ROW_FORMAT=Dynamic; + +CREATE TABLE `hzims_car_check_record` ( + `id` bigint(20) NOT NULL COMMENT '主键id', + `car_id` bigint(20) NOT NULL COMMENT '车辆id', + `code` varchar(50) NOT NULL COMMENT '编号', + `checker` varchar(50) NOT NULL COMMENT '检查人', + `check_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '检查时间', + `conclusion` mediumtext NOT NULL COMMENT '检查结论', + `remark` varchar(500) NOT NULL DEFAULT '' COMMENT '填报备注', + `confirmation_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '确认时间', + `img_path` varchar(1000) NOT NULL DEFAULT '' COMMENT '里程图片', + `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', + `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_user` bigint(20) DEFAULT '-1' COMMENT '更新人', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', + `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', + `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='车检记录表' ROW_FORMAT=Dynamic; + +CREATE TABLE `hzims_car_check_item` ( + `id` bigint(20) NOT NULL COMMENT '主键id', + `car_check_record_id` bigint(20) NOT NULL COMMENT '车检记录id', + `check_item` varchar(500) NOT NULL COMMENT '检查项目', + `check_content` mediumtext NOT NULL COMMENT '检查内容', + `check_result` mediumtext NOT NULL COMMENT '检查结果', + `create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人', + `create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_user` bigint(20) DEFAULT '-1' COMMENT '更新人', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间', + `status` int(2) NOT NULL DEFAULT '1' COMMENT '状态', + `is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=INNODB CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='车检项表' ROW_FORMAT=Dynamic; \ No newline at end of file diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java index 4ca1e79..062489b 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/controller/WorkTaskController.java @@ -5,7 +5,9 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.hnac.hzims.common.logs.annotation.OperationAnnotation; import com.hnac.hzims.common.logs.enums.BusinessType; import com.hnac.hzims.common.logs.enums.OperatorType; +import com.hnac.hzims.operational.access.vo.ConstructionVo; import com.hnac.hzims.ticket.repair.entity.RepairEntity; +import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; import com.hnac.hzims.ticket.repair.service.IOperRepairService; import com.hnac.hzims.ticket.repair.service.IWorkTaskService; import com.hnac.hzims.ticket.repair.service.impl.WorkTaskServiceImpl; @@ -16,6 +18,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.flow.core.vo.ComleteTask; @@ -39,6 +42,13 @@ public class WorkTaskController extends BladeController { private final IWorkTaskService workTaskService; + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页") + public R> list(WorkTaskVO workTask, Query query) { + return R.data(workTaskService.workTaskService(Condition.getPage(query), workTask)); + } + /** * 工作任务单-开启流程 * @param workTask diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java index aab73e2..fce0901 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/IWorkTaskService.java @@ -1,9 +1,11 @@ package com.hnac.hzims.ticket.repair.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.middle.process.to.ProcessWorkFlowResponse; import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; import com.hnac.hzims.ticket.repair.vo.WorkTaskVO; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; /** * @author ysj @@ -14,4 +16,5 @@ public interface IWorkTaskService extends BaseService { boolean listener(ProcessWorkFlowResponse processWorkFlowResponse); + IPage workTaskService(IPage page, WorkTaskVO workTask); } \ No newline at end of file diff --git a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java index 392ff00..88869be 100644 --- a/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java +++ b/hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/service/impl/WorkTaskServiceImpl.java @@ -2,6 +2,8 @@ package com.hnac.hzims.ticket.repair.service.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.middle.process.to.ProcessWorkFlowResponse; import com.hnac.hzims.ticket.repair.entity.WorkTaskEntity; import com.hnac.hzims.ticket.repair.mapper.WorkTaskMapper; @@ -11,15 +13,18 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; import org.springblade.flow.core.entity.BladeFlow; import org.springblade.flow.core.feign.IFlowClient; import org.springblade.flow.core.utils.FlowUtil; import org.springblade.flow.core.utils.TaskUtil; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.Map; /** @@ -32,6 +37,31 @@ public class WorkTaskServiceImpl extends BaseServiceImpl workTaskService(IPage page, WorkTaskVO workTask) { + QueryWrapper wrapper = Condition.getQueryWrapper(workTask); + if(StringUtil.isNotBlank(workTask.getStartTime())){ + wrapper.ge("CREATE_TIME",workTask.getStartTime()); + } + if(StringUtil.isNotBlank(workTask.getEndTime())){ + wrapper.le("CREATE_TIME",workTask.getEndTime()); + } + if(ObjectUtil.isNotEmpty(workTask.getGroupId())){ + wrapper.eq("GROUP_ID",workTask.getGroupId()); + } + if(ObjectUtil.isNotEmpty(workTask.getGroupId())){ + wrapper.eq("CREATE_DEPT",workTask.getDeptId()); + } + return super.page(page, wrapper); + } + /** * 工作任务单-开启流程 * @param workTask @@ -49,7 +79,12 @@ public class WorkTaskServiceImpl extends BaseServiceImpl variables = JSONObject.parseObject(JSONObject.toJSONStringWithDateFormat(workTask, DateUtil.PATTERN_DATETIME), Map.class); - variables.put("creator", TaskUtil.getTaskUser(String.valueOf(AuthUtil.getUserId()))); + variables.put("head", TaskUtil.getTaskUser(String.valueOf(workTask.getHead()))); + // 班组成员 + String[] member = workTask.getMember().split(","); + for(int i = 1;i <= member.length ; i++){ + variables.put("duty" + i, TaskUtil.getTaskUser(member[i-1])); + } R result = flowClient.startProcessInstanceContainNameByKey("work_task", FlowUtil.getBusinessKey("work_task_v4",String.valueOf(workTask.getId())), workTask.getCode(), variables); log.error("work_task_start_process_result :{}",result); // 更新任务流程Id @@ -58,7 +93,7 @@ public class WorkTaskServiceImpl extends BaseServiceImpl