Browse Source

#离线代码还原

zhongwei
yang_shj 1 year ago
parent
commit
16a68c5ec2
  1. 92
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/service/impl/InspectOfflineServiceImpl.java
  2. 16
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/sync/EventRecordSyncBO.java
  3. 9
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/sync/SyncBO.java
  4. 4
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java
  5. 34
      hzims-service/operational/src/main/resources/db/1.0.1.sql
  6. 5
      hzims-service/operational/src/main/resources/db/1.0.2.sql
  7. 32
      hzims-service/operational/src/main/resources/db/2.0.0.sql
  8. 1
      hzims-service/operational/src/main/resources/db/2.0.1.sql
  9. 39
      hzims-service/operational/src/main/resources/db/2.0.2.sql
  10. 2
      hzims-service/operational/src/main/resources/db/2.0.3.sql
  11. 9
      hzims-service/operational/src/main/resources/db/2.0.4.sql

92
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/service/impl/InspectOfflineServiceImpl.java

@ -27,7 +27,7 @@ import com.hnac.hzinfo.inspect.plan.vo.PlanOfflineVO;
import com.hnac.hzinfo.inspect.task.entity.*;
import com.hnac.hzinfo.inspect.task.service.*;
import com.hnac.hzinfo.inspect.task.vo.TaskObjectOfflineVO;
import com.hnac.hzinfo.inspect.areamonthly.vo.TaskObjectProjectOfflineVO;
import com.hnac.hzinfo.inspect.task.vo.TaskObjectProjectOfflineVO;
import com.hnac.hzinfo.inspect.task.vo.TaskOfflineVO;
import com.hnac.hzinfo.inspect.utils.JsonFileUtil;
import lombok.RequiredArgsConstructor;
@ -430,7 +430,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
eq(ContentEntity::getTenantId, tenantId);
}});
// 返回数据
return contents.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return contents.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -447,7 +447,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
eq(ObjectDangerEntity::getTenantId, tenantId);
}});
// 返回数据
return dangers.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return dangers.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
@ -466,7 +466,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
eq(OfflineTaskEntity::getId, taskId);
}});
// 返回数据
return tasks.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return tasks.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
@ -482,7 +482,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
List<TaskUserEntity> taskUsers = this.taskUserService.getOfflineTaskUser(taskIds);
// 返回数据
return taskUsers.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return taskUsers.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -496,7 +496,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
// 查询巡检任务
List<TaskOfflineVO> tasks = taskService.getTaskData(taskId,currentDate);
// 返回数据
return tasks.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return tasks.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -510,7 +510,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
}
List<PlanOfflineVO> tasks = planService.getPlans(planIds);
// 返回数据
return tasks.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return tasks.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
@ -527,7 +527,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
List<EventEntity> events = eventService.list(new LambdaQueryWrapper<EventEntity>() {{
in(EventEntity::getTaskId, taskIds);
}});
return events.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return events.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -543,7 +543,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
List<EventAttachmentEntity> eventAttachments = eventAttachmentService.list(new LambdaQueryWrapper<EventAttachmentEntity>() {{
in(EventAttachmentEntity::getEventId, eventIds);
}});
return eventAttachments.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return eventAttachments.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -559,7 +559,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
in(EventRecordEntity::getEventId, eventIds);
}});
// 返回数据
return eventRecords.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return eventRecords.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -574,7 +574,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
// 查询巡检任务对象
List<TaskObjectOfflineVO> taskObjects = taskObjectService.getExObjectData(taskIds);
// 返回数据
return taskObjects.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
return taskObjects.stream().map(item -> this.convertFileOrVideo(item)).collect(Collectors.toList());
}
/**
@ -603,9 +603,9 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
}
// 查询巡检任务内容
List<TaskObjectProjectContentEntity> contents = taskObjectProjectContentService.list(
new LambdaQueryWrapper<TaskObjectProjectContentEntity>() {{
in(TaskObjectProjectContentEntity::getTaskId, taskIds);
}});
new LambdaQueryWrapper<TaskObjectProjectContentEntity>() {{
in(TaskObjectProjectContentEntity::getTaskId, taskIds);
}});
// 返回数据
return contents.stream().map(this::convertFileOrVideo).collect(Collectors.toList());
}
@ -687,12 +687,12 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
}
/**
* 下载文件
* @param fileUrl
* @param downloadFileDir
* @return
*/
/**
* 下载文件
* @param fileUrl
* @param downloadFileDir
* @return
*/
private String downloadFileByUrl(String fileUrl, String downloadFileDir){
URL url = null;
String fileName = null;
@ -832,6 +832,9 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
List<TaskObjectSyncBO> taskObjects = JsonFileUtil.readJsonFile(upload + "/HZ_ST_EX_OBJECT.json", TaskObjectSyncBO.class);
List<TaskObjectProjectContentBO> projectContents = JsonFileUtil.readJsonFile(upload + "/HZ_ST_EX_OBJECT_PROJECT_CONTENT.json", TaskObjectProjectContentBO.class);
// 内容图片
this.batchCurrentImg(upload, eventRecords);
// 文件上传
this.batchUploadImg(upload, eventRecords);
this.batchUploadImg(upload, eventAttachments);
@ -873,6 +876,49 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
}
/**
* 上传内容文件
*
* @param sourceDir
* @param data
*/
private void batchCurrentImg(String sourceDir, List<? extends SyncBO> data) {
if (CollectionUtil.isEmpty(data)) {
return;
}
data.forEach(bo -> {
if (CollectionUtil.isEmpty(bo.getCurrentValues())) {
return;
}
List<String> urls = bo.getCurrentValues().stream().map(o -> {
if (StringUtils.isBlank(o) || !o.contains("file:")) {
return null;
}
/**wxq begin**/
String fileName = o.substring(o.lastIndexOf("/") >= 0 ? o.lastIndexOf("/") + 1 : 0);
File file = new File(sourceDir + "/" + fileName);
if (!file.exists()) {
throw new RuntimeException("文件名称为:" + fileName + "不存在,上传失败!");
}
R<BladeFile> r = null;
try {
MultipartFile multipartFile = this.getMultipartFile(file);
r = ossClient.putFile(multipartFile);
if (!r.isSuccess()) {
throw new RuntimeException("上传文件["+fileName+"]失败,bladex-resource报错:" + r.toString());
}
BladeFile bladeFile = r.getData();
return bladeFile != null ? bladeFile.getLink() : null;
} catch (Exception ex) {
throw new RuntimeException("上传文件["+fileName+"]失败,bladex-resource报错:" + r.toString(), ex);
}
}).filter(StringUtils::isNotBlank).collect(Collectors.toList());
bo.setCurrentValues(urls);
});
}
/**
* 上传文件
*
* @param sourceDir
@ -909,10 +955,9 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
} catch (Exception ex) {
throw new RuntimeException("上传文件["+fileName+"]失败,bladex-resource报错:" + r.toString(), ex);
}
}).filter(o -> StringUtils.isNotBlank(o)).collect(Collectors.toList());
}).filter(StringUtils::isNotBlank).collect(Collectors.toList());
bo.setFiles(urls);
});
}
private MultipartFile getMultipartFile(File file) {
@ -926,7 +971,7 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "file";
FileItem item = factory.createItem(textFieldName, "text/plain", false,
file.getName());
file.getName());
int bytesRead = 0;
byte[] buffer = new byte[1024];
FileInputStream fis = null;
@ -958,3 +1003,4 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
}
}

16
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/sync/EventRecordSyncBO.java

@ -40,4 +40,20 @@ public class EventRecordSyncBO extends EventRecordEntity implements SyncBO {
super.setFileUrl(urls.get(0));
}
}
@Override
public List<String> getCurrentValues() {
return new ArrayList<String>() {{
if (StringUtil.isNotBlank(getCurrentValue())) {
add(getCurrentValue());
}
}};
}
@Override
public void setCurrentValues(List<String> urls) {
if (CollectionUtil.isNotEmpty(urls)) {
super.setCurrentValue(urls.get(0));
}
}
}

9
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/sync/SyncBO.java

@ -15,6 +15,15 @@ public interface SyncBO {
default void setFiles(List<String> urls) {
}
default List<String> getCurrentValues() {
return null;
}
default void setCurrentValues(List<String> urls) {
}
Object getPrimaryKey();
Integer getOfflineFlag();

4
hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java

@ -213,7 +213,7 @@ public class HistoryAbnormalAlarmServiceImpl extends BaseServiceImpl<HistoryAbno
*/
@Override
public AlarmReustVo alarms(AlarmParamVo param) {
AlarmReustVo alarmReustVo = (AlarmReustVo) redisTemplate.opsForValue().get(param.getCode() + param.getType() + param.getSize() + param.getCurrent());
AlarmReustVo alarmReustVo = (AlarmReustVo) redisTemplate.opsForValue().get(param.getType() + param.getSize() + param.getCurrent());
if(ObjectUtil.isNotEmpty(alarmReustVo)){
return alarmReustVo;
}
@ -274,7 +274,7 @@ public class HistoryAbnormalAlarmServiceImpl extends BaseServiceImpl<HistoryAbno
response.setCount((int) (result.getData().getTotal() - handles.size()));
response.setSoeList(datas);
response.setTotal(result.getData().getTotal());
redisTemplate.opsForValue().set(param.getCode() + param.getType() + param.getSize() + param.getCurrent(),response,1, TimeUnit.MINUTES);
redisTemplate.opsForValue().set(param.getType() + param.getSize() + param.getCurrent(),response,1, TimeUnit.MINUTES);
return response;
}

34
hzims-service/operational/src/main/resources/db/1.0.1.sql

@ -1,34 +0,0 @@
-- 站点表添加是否为国外
alter table `hzims_station` add column `is_abroad` TINYINT(1) NULL comment '站点是否为国外 1:是;0:否';
-- 添加站点推送FDP配置表
CREATE TABLE IF NOT EXISTS `hzims_station_push_configuration` (
`ID` bigint(20) NOT NULL COMMENT '主键ID',
`station_type` TINYINT(2) NULL DEFAULT NULL COMMENT '站点类型',
`station_type_name` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '站点类型名称',
`is_push` TINYINT(2) NULL DEFAULT NULL COMMENT '是否推送至FDP',
`TENANT_ID` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '租户ID',
`CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATE_TIME` datetime NULL DEFAULT NULL COMMENT '更新时间',
`CREATE_USER` bigint(20) NOT NULL COMMENT '创建人',
`UPDATE_USER` bigint(20) NULL DEFAULT NULL COMMENT '更新人',
`IS_DELETED` tinyint(4) NOT NULL COMMENT '是否删除',
`STATUS` tinyint(4) NULL DEFAULT NULL COMMENT '状态 ',
`CREATE_DEPT` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic comment='站点类型推送FDP配置表';
SET FOREIGN_KEY_CHECKS = 1;
-- 新增FDP站点类型
alter table `hzims_station_push_configuration` add COLUMN `fdp_station_type` TINYINT comment 'FDP站点类型';
-- 站点类型配置导入
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1676388588253700097, 0, '水电站', 1, '200000', '2023-07-05 08:32:40', '2023-07-05 08:32:40', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, 1);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458050905264129, 1, '风电场', 0, '200000', '2023-07-13 19:49:37', '2023-07-13 19:49:37', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458136703946754, 2, '水利', 0, '200000', '2023-07-13 19:49:57', '2023-07-13 19:49:57', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458400022351873, 3, '储能站', 0, '200000', '2023-07-13 19:51:00', '2023-07-13 19:51:00', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458474366390273, 4, '配网', 0, '200000', '2023-07-13 19:51:18', '2023-07-13 19:51:18', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458557384249346, 5, '光伏站', 0, '200000', '2023-07-13 19:51:38', '2023-07-13 19:51:38', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458617685757954, 6, '水务', 0, '200000', '2023-07-13 19:51:52', '2023-07-13 19:51:52', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458692029796354, 7, '充电站', 0, '200000', '2023-07-13 19:52:10', '2023-07-13 19:52:10', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458773470597121, 8, '泵站', 0, '200000', '2023-07-13 19:52:29', '2023-07-13 19:52:29', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
INSERT INTO `hzims_station_push_configuration` (`ID`, `station_type`, `station_type_name`, `is_push`, `TENANT_ID`, `CREATE_TIME`, `UPDATE_TIME`, `CREATE_USER`, `UPDATE_USER`, `IS_DELETED`, `STATUS`, `CREATE_DEPT`, `fdp_station_type`) VALUES (1679458845390327809, 9, '闸门', 0, '200000', '2023-07-13 19:52:46', '2023-07-13 19:52:46', 1434782836098891778, 1434782836098891778, 0, 1, 20000001, NULL);
-- 交接班中新增当前处理环节字段
alter table `hz_ims_duty_rec` add COLUMN `deal_chain` varchar(100) comment '当前处理环节';

5
hzims-service/operational/src/main/resources/db/1.0.2.sql

@ -1,5 +0,0 @@
update hzims_oper_maintenance_task set flow_task_name = '待领用' where STATUS =1;
update hzims_oper_maintenance_task set flow_task_name = '待执行' where STATUS =2;
update hzims_oper_maintenance_task set flow_task_name = '待确认' where STATUS =3;
update hzims_oper_maintenance_task set flow_task_name = '待归档' where STATUS =4;
update hzims_oper_maintenance_task set flow_task_name = '结束' where STATUS =5;

32
hzims-service/operational/src/main/resources/db/2.0.0.sql

@ -1,32 +0,0 @@
alter table hzims_station add discharge_facilities varchar(100) null comment '生态流量泄放设施';
alter table hzims_station add monitoring_mode varchar(100) null comment '监测方式';
alter table hzims_station add is_power_station tinyint(0) comment '是否绿色小水电示范电站 0 否 1 是';
create table video_station(
id bigint primary key auto_increment comment '图片id',
video varchar(300) not null comment '视频地址',
station_id bigint not null comment '站点ID',
create_time datetime default CURRENT_TIMESTAMP,
update_time datetime default current_timestamp on update current_timestamp,
is_deleted tinyint default 0 comment '0 正常 1 删除'
) comment '电站视频';
create table image_station(
id bigint primary key auto_increment comment '图片id',
image varchar(300) not null comment '图片地址',
station_id bigint not null comment '站点ID',
create_time datetime default CURRENT_TIMESTAMP,
update_time datetime default current_timestamp on update current_timestamp,
is_deleted tinyint default 0 comment '0 正常 1 删除'
) comment '电站图片';
create table file_station(
id bigint primary key auto_increment comment '图片id',
file varchar(300) not null comment '文件地址',
station_id bigint not null comment '站点ID',
create_time datetime default CURRENT_TIMESTAMP,
update_time datetime default current_timestamp on update current_timestamp,
is_deleted tinyint default 0 comment '0 正常 1 删除'
) comment '电站文件';

1
hzims-service/operational/src/main/resources/db/2.0.1.sql

@ -1 +0,0 @@
alter table hzims_station add discharge_value varchar(60) comment '核定值';

39
hzims-service/operational/src/main/resources/db/2.0.2.sql

@ -1,39 +0,0 @@
create table station_evaluation
(
id bigint primary key auto_increment comment '编号',
evaluation_name varchar(50) comment '类别',
station_id bigint comment '站点id',
parent_id bigint comment '父级',
level int comment '等级',
minute int comment '分数',
score int comment '得分',
description text comment '描述',
create_time datetime default current_timestamp comment '创建时间',
update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
is_deleted tinyint(1) default 0 comment '逻辑删除'
) comment '电站评分表';
create table evaluation_details
(
id bigint primary key auto_increment comment '编号',
station_evaluation_id bigint comment '电站评分id',
title varchar(100) comment '选择题目',
checked tinyint(1) comment '是否选中 1 选中 0 不选中',
grade int comment '分数',
create_time datetime default current_timestamp comment '创建时间',
update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
is_deleted tinyint(1) default 0 comment '逻辑删除'
) comment '得分事项简述';
create table evaluation_details_option
(
id bigint primary key auto_increment comment '编号',
option_title varchar(100) comment '题目',
option_checked tinyint(1) comment '是否选中 1 选中 0 不选中',
option_grade int comment '分数',
create_time datetime default current_timestamp comment '创建时间',
update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
is_deleted tinyint(1) default 0 comment '逻辑删除'
) comment '选择表';

2
hzims-service/operational/src/main/resources/db/2.0.3.sql

@ -1,2 +0,0 @@
alter table evaluation_details_option add evaluation_details_id bigint comment '得分事项简述id';

9
hzims-service/operational/src/main/resources/db/2.0.4.sql

@ -1,9 +0,0 @@
create table estimate(
id bigint primary key auto_increment,
name varchar(200) comment '基本条件',
checked tinyint(1) comment '0 为选择 1 为选中',
create_time datetime default current_timestamp comment '创建时间',
update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
is_deleted tinyint(1) default 0 comment '逻辑删除'
) comment '总体评分附表';
Loading…
Cancel
Save