diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceLibraryEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceLibraryEntity.java index fdd0378..5f7260e 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceLibraryEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceLibraryEntity.java @@ -35,13 +35,23 @@ public class OperMaintenanceLibraryEntity extends TenantEntity { @ApiModelProperty(value = "库编码,后台自动生成") @QueryField(condition = SqlCondition.LIKE) private String libraryCode; + + @ApiModelProperty(value = "站点编号") + @QueryField(condition = SqlCondition.EQUAL) + private String stationCode; + + @ApiModelProperty(value = "站点名称") + private String stationName; /** * 设备编码 */ @ApiModelProperty(value = "设备编码,多个按,分隔") - @QueryField(condition = SqlCondition.EQUAL) + @QueryField(condition = SqlCondition.LIKE) private String emCode; + @ApiModelProperty(value = "设备名称,多个按,分隔") + private String emName; + @ApiModelProperty(value = "维护模式 01=人员 02=值班") @JsonSerialize(nullsUsing = NullSerializer.class) private Integer maintenanceModel; diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenancePlanEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenancePlanEntity.java index d1f9a3f..e473eba 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenancePlanEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenancePlanEntity.java @@ -8,6 +8,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; import org.springblade.core.tenant.mp.TenantEntity; import java.util.Date; @@ -26,6 +28,16 @@ public class OperMaintenancePlanEntity extends TenantEntity { private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "站点编号") + private String stationCode; + + @ApiModelProperty(value = "站点名称") + @QueryField(condition = SqlCondition.EQUAL) + private String stationName; + + @ApiModelProperty(value = "设备名称,多个按,分隔") + private String emName; + /** * 设备编码 */ @@ -115,11 +127,9 @@ public class OperMaintenancePlanEntity extends TenantEntity { @JsonSerialize(nullsUsing = NullSerializer.class) private Long messageTemplateId; - - /** - * 站点code - */ - private String stationCode; + @ApiModelProperty(value = "周期(单位:小时)") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer period; @ApiModelProperty(value = "创建用户名称") private String createUserName; diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceTaskEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceTaskEntity.java index a06949a..2a94015 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceTaskEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/maintenance/entity/OperMaintenanceTaskEntity.java @@ -10,6 +10,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.Getter; +import org.springblade.core.mp.support.QueryField; +import org.springblade.core.mp.support.SqlCondition; import org.springblade.core.tenant.mp.TenantEntity; import org.springblade.core.tool.utils.DateUtil; import org.springframework.format.annotation.DateTimeFormat; @@ -31,6 +33,16 @@ public class OperMaintenanceTaskEntity extends TenantEntity { private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "站点编号") + private String stationCode; + + @ApiModelProperty(value = "站点名称") + @QueryField(condition = SqlCondition.EQUAL) + private String stationName; + + @ApiModelProperty(value = "设备名称,多个按,分隔") + private String emName; + /** * 设备编码 */ @@ -107,6 +119,9 @@ public class OperMaintenanceTaskEntity extends TenantEntity { */ @ApiModelProperty(value = "维护内容") private String content; + @ApiModelProperty(value = "周期(单位:小时)") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer period; /** * 操作规范 */ diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/scheduled/MaintenanceTaskSchedule.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/scheduled/MaintenanceTaskSchedule.java index c318d5a..fe22696 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/scheduled/MaintenanceTaskSchedule.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/maintenance/scheduled/MaintenanceTaskSchedule.java @@ -3,6 +3,7 @@ package com.hnac.hzims.operational.maintenance.scheduled; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.operational.constants.FlowKeyConstants; import com.hnac.hzims.operational.constants.RedisKeyConstants; @@ -61,6 +62,7 @@ public class MaintenanceTaskSchedule { private final IFlowClient flowClient; private final IImsDutyMainService dutyMainService; private final RedisTemplate redisTemplate; + private final IEmInfoClient emInfoClient; @XxlJob(GENERATE_MAINTENANCE_TASK_SCHEDULE) public ReturnT execute(String param) throws Exception { @@ -87,24 +89,24 @@ public class MaintenanceTaskSchedule { OperMaintenanceTaskEntity taskEntity = BeanUtil.copy(plan,OperMaintenanceTaskEntity.class); taskEntity.setPlanId(plan.getId()); taskEntity.setDisposer(Optional.ofNullable(plan.getDisposer()).map(String::valueOf).orElse(null)); - taskEntity.setDisposerName(Optional.ofNullable(plan.getDisposer()).map(s -> - { - User user = UserCache.getUser(s); - if (ObjectUtil.isNotEmpty(user)){ - return user.getName(); - }else { - return ""; - } - }).filter(s->StringUtils.isNotBlank(s)).orElse(null)); + String disposerName = Optional.ofNullable(plan.getDisposer()).map(UserCache::getUser).map(User::getName).orElse(null); + taskEntity.setDisposerName(disposerName); LocalDateTime disposeTime = taskEntity.getDisposeTime().toInstant() .atZone(ZoneId.systemDefault()).toLocalDateTime(); taskEntity.setPlanEndTime(disposeTime.plusHours(taskEntity.getHours())); if(StringUtil.isNotBlank(plan.getEmCode())){ - String[] emCodeList = plan.getEmCode().split(","); - for(String emCode : emCodeList){ + List emCodeList = Func.toStrList(",", plan.getEmCode()); + emCodeList.stream().filter(StringUtil::isNotBlank).forEach(emCode -> { + EmInfoEntity emInfoEntity = emInfoClient.getByCode(emCode); + if(ObjectUtil.isEmpty(emInfoEntity)) { + log.error( "[{}]设备编号未查询到相关设备,生成任务失败!",emCode); + XxlJobLogger.log("[" + emCode + "]设备编号未查询到相关设备,生成任务失败!"); + return; + } taskEntity.setEmCode(emCode); + taskEntity.setEmName(emInfoEntity.getName()); this.createTask(taskEntity,plan); - } + }); } else { this.createTask(taskEntity,plan); @@ -139,7 +141,7 @@ public class MaintenanceTaskSchedule { Instant instant = task.getDisposeTime().toInstant(); ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime disposeTime = instant.atZone(zoneId).toLocalDateTime(); - task.setPlanEndTime(disposeTime.plusHours(task.getHours())); + task.setPlanEndTime(disposeTime.plusHours(task.getPeriod())); // 当模式为班次时 Integer maintenanceModel = plan.getMaintenanceModel(); if(Func.isNotEmpty(maintenanceModel) && maintenanceModel == 2 ) { @@ -149,20 +151,11 @@ public class MaintenanceTaskSchedule { ImsDutyMainEntity entity = dutyMainService.getOne(dutyQuery); if (ObjectUtil.isNotEmpty(entity) && StringUtils.isNotEmpty(entity.getDutyPersonIds())) { String userId = entity.getDutyPersonIds(); - String[] split = userId.split("\\^"); task.setDisposer(userId.replaceAll("\\^", ",")); - if (ArrayUtils.isNotEmpty(split)){ - List list = Arrays.asList(split); - String disposerName= list.stream().map(s->{ - User user = UserCache.getUser(Long.valueOf(s)); - if (ObjectUtil.isNotEmpty(user)){ - return user.getName();} - return ""; - }).filter(s->StringUtils.isNotBlank(s)).collect(Collectors.joining(",")); - if (StringUtils.isNotBlank(disposerName)) { - task.setDisposerName(disposerName); - } - } + List userIdList = Func.toLongList("\\^", userId); + String disposerName = userIdList.stream().map(UserCache::getUser).filter(Func::isNotEmpty) + .map(User::getName).filter(StringUtil::isNotBlank).collect(Collectors.joining(",")); + task.setDisposerName(Optional.ofNullable(disposerName).filter(StringUtil::isNotBlank).orElse(null)); } else { XxlJobLogger.log("ID为:"+plan.getId()+"的日常维护计划未获取到值班人员,未生成任务。"); @@ -205,5 +198,4 @@ public class MaintenanceTaskSchedule { R flowResult = flowClient.startProcessInstanceContainNameByKey(FlowKeyConstants.MAINTENANCE_TASK_FLOW_KEY, String.valueOf(task.getId()), task.getTitle(), params); return Optional.ofNullable(flowResult).filter(r -> r.isSuccess()).map(R::getData).map(BladeFlow::getProcessInstanceId).orElse(null); } - } diff --git a/hzims-service/operational/src/main/resources/db/1.0.0.sql b/hzims-service/operational/src/main/resources/db/1.0.0.sql index 31fa6f7..c060a25 100644 --- a/hzims-service/operational/src/main/resources/db/1.0.0.sql +++ b/hzims-service/operational/src/main/resources/db/1.0.0.sql @@ -789,7 +789,7 @@ CREATE TABLE IF NOT EXISTS `HZIMS_FLV_VIDEO_CONFIG` ( `ID` BIGINT(20) NOT NULL COMMENT '主键ID', `NAME` VARCHAR(255) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '视频源名称', `TIME` VARCHAR(50) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '时间间隔', - `CONFIG_ENTITY` VARCHAR(1000) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '配置JSON', + `CONFIG_ENTITY` TEXT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '配置JSON', `TYPE` TINYINT(4) NULL DEFAULT 1 COMMENT '类型', `SAVE_PEOPLE` VARCHAR(100) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '保存人姓名', `TENANT_ID` VARCHAR(12) CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI NULL DEFAULT NULL COMMENT '租户ID', @@ -800,9 +800,9 @@ CREATE TABLE IF NOT EXISTS `HZIMS_FLV_VIDEO_CONFIG` ( `IS_DELETED` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '是否删除', `STATUS` TINYINT(4) NULL DEFAULT NULL COMMENT '状态 ', `CREATE_DEPT` BIGINT(20) NULL DEFAULT NULL COMMENT '创建部门', - PRIMARY KEY (`ID`) USING BTREE, - INDEX ```XCONFIG_ENTITY```(`CONFIG_ENTITY`) USING BTREE -) ENGINE = INNODB CHARACTER SET = UTF8 COLLATE = UTF8_GENERAL_CI ROW_FORMAT = DYNAMIC; + PRIMARY KEY (`ID`) USING BTREE + ) ENGINE = INNODB CHARACTER SET = UTF8 COLLATE = UTF8_GENERAL_CI ROW_FORMAT = DYNAMIC; +ALTER TABLE HZIMS_FLV_VIDEO_CONFIG ADD FULLTEXT(`CONFIG_ENTITY`); -- ---------------------------- -- TABLE STRUCTURE FOR HZIMS_FOCUS_ATTRIBUTE diff --git a/hzims-service/operational/src/main/resources/db/2.0.3.sql b/hzims-service/operational/src/main/resources/db/2.0.3.sql new file mode 100644 index 0000000..c8df871 --- /dev/null +++ b/hzims-service/operational/src/main/resources/db/2.0.3.sql @@ -0,0 +1,14 @@ +-- 设备维护库添加站点、设备名称 +alter table `hzims_oper_maintenance_library` add column `station_code` varchar(20) comment '站点编号'; +alter table `hzims_oper_maintenance_library` add column `station_name` varchar(100) comment '站点名称'; +alter table `hzims_oper_maintenance_library` add column `em_name` varchar(255) comment '设备名称'; +-- 日常维护计划添加站点、设备名称 +alter table `hzims_oper_maintenance_plan` add column `station_name` varchar(100) comment '站点名称'; +alter table `hzims_oper_maintenance_plan` add column `em_name` varchar(255) comment '设备名称'; +-- 日常维护任务添加站点、设备名称 +alter table `hzims_oper_maintenance_task` add column `station_code` varchar(20) comment '站点编号'; +alter table `hzims_oper_maintenance_task` add column `station_name` varchar(100) comment '站点名称'; +alter table `hzims_oper_maintenance_task` add column `em_name` varchar(255) comment '设备名称'; +-- 日常维护计划、任务添加周期字段 +alter table `hzims_oper_maintenance_plan` add column `period` int(11) comment '周期(单位:小时)'; +alter table `hzims_oper_maintenance_task` add column `period` int(11) comment '周期(单位:小时)'; \ No newline at end of file