Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
operation-control-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王锦盛
operation-control-platform
Commits
8f9e47ea
Commit
8f9e47ea
authored
Mar 11, 2022
by
王锦盛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
模型导入功能
parent
659df783
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
603 additions
and
197 deletions
+603
-197
src/main/java/com/pms/ocp/common/constants/ExportUtils.java
src/main/java/com/pms/ocp/common/constants/ExportUtils.java
+8
-5
src/main/java/com/pms/ocp/common/constants/ResultCode.java
src/main/java/com/pms/ocp/common/constants/ResultCode.java
+2
-2
src/main/java/com/pms/ocp/common/constants/ServiceException.java
...n/java/com/pms/ocp/common/constants/ServiceException.java
+0
-36
src/main/java/com/pms/ocp/common/exception/ServiceException.java
...n/java/com/pms/ocp/common/exception/ServiceException.java
+64
-0
src/main/java/com/pms/ocp/common/utils/ExcelUtils.java
src/main/java/com/pms/ocp/common/utils/ExcelUtils.java
+182
-4
src/main/java/com/pms/ocp/controller/ModelBaseController.java
...main/java/com/pms/ocp/controller/ModelBaseController.java
+15
-2
src/main/java/com/pms/ocp/mapper/ModelMapper.java
src/main/java/com/pms/ocp/mapper/ModelMapper.java
+6
-0
src/main/java/com/pms/ocp/model/Response.java
src/main/java/com/pms/ocp/model/Response.java
+2
-2
src/main/java/com/pms/ocp/model/entity/Model.java
src/main/java/com/pms/ocp/model/entity/Model.java
+93
-47
src/main/java/com/pms/ocp/model/vo/ModelVO.java
src/main/java/com/pms/ocp/model/vo/ModelVO.java
+157
-2
src/main/java/com/pms/ocp/service/ModelIssueService.java
src/main/java/com/pms/ocp/service/ModelIssueService.java
+1
-1
src/main/java/com/pms/ocp/service/ModelPropertyService.java
src/main/java/com/pms/ocp/service/ModelPropertyService.java
+1
-1
src/main/java/com/pms/ocp/service/ModelRelationService.java
src/main/java/com/pms/ocp/service/ModelRelationService.java
+1
-1
src/main/java/com/pms/ocp/service/ModelService.java
src/main/java/com/pms/ocp/service/ModelService.java
+11
-0
src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
.../java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
+1
-1
src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
...va/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
+1
-1
src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java
...va/com/pms/ocp/service/impl/ModelRelationServiceImpl.java
+1
-1
src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java
src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java
+40
-1
src/main/resources/mapper/ModelMapper.xml
src/main/resources/mapper/ModelMapper.xml
+17
-90
No files found.
src/main/java/com/pms/ocp/common/constants/ExportUtils.java
View file @
8f9e47ea
package
com.pms.ocp.common.constants
;
import
com.pms.ocp.common.exception.ServiceException
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
javax.servlet.ServletOutputStream
;
...
...
@@ -16,11 +17,12 @@ public class ExportUtils {
/**
* 校验Header Manipulation
*
* @param header 参数
* @return 数据
*/
public
static
String
headerManipulation
(
String
header
)
{
if
(
StringUtils
.
isNullOrEmpty
(
header
))
{
if
(
StringUtils
.
isNullOrEmpty
(
header
))
{
return
header
;
}
String
regex
=
"[`~!@#$%^&*()\\+\\=\\{}|:\"?><【】\\/r\\/n]"
;
...
...
@@ -55,9 +57,9 @@ public class ExportUtils {
out
.
flush
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
throw
new
ServiceException
(
com
.
pms
.
ocp
.
common
.
constants
.
ResultCode
e
.
INTERNAL_SERVER_ERROR
);
throw
new
ServiceException
(
ResultCod
e
.
INTERNAL_SERVER_ERROR
);
}
finally
{
if
(
out
!=
null
){
if
(
out
!=
null
)
{
try
{
out
.
close
();
}
catch
(
IOException
e
)
{
...
...
@@ -78,6 +80,7 @@ public class ExportUtils {
/**
* Workbook导出浏览器
* 文件导出添加跨域 Access-Control-Allow-Origin
*
* @param response
* @param fileName
* @param workbook
...
...
@@ -94,7 +97,7 @@ public class ExportUtils {
workbook
.
write
(
outputStream
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
throw
new
ServiceException
(
com
.
pms
.
ocp
.
common
.
constants
.
ResultCode
e
.
INTERNAL_SERVER_ERROR
);
throw
new
ServiceException
(
ResultCod
e
.
INTERNAL_SERVER_ERROR
);
}
}
...
...
@@ -142,7 +145,7 @@ public class ExportUtils {
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
throw
new
ServiceException
(
ResultCode
e
.
INTERNAL_SERVER_ERROR
);
throw
new
ServiceException
(
ResultCode
.
INTERNAL_SERVER_ERROR
);
}
}
}
src/main/java/com/pms/ocp/common/constants/ResultCode
e
.java
→
src/main/java/com/pms/ocp/common/constants/ResultCode.java
View file @
8f9e47ea
...
...
@@ -3,7 +3,7 @@ package com.pms.ocp.common.constants;
/**
* 异常枚举类
*/
public
enum
ResultCode
e
{
public
enum
ResultCode
{
/* ============================ 通用错误码 ========================== **/
/**
* 禁止访问 303
...
...
@@ -154,7 +154,7 @@ public enum ResultCodee {
public
final
int
statusCode
;
public
String
msg
;
ResultCode
e
(
int
statusCode
,
String
msg
)
{
ResultCode
(
int
statusCode
,
String
msg
)
{
this
.
statusCode
=
statusCode
;
this
.
msg
=
msg
;
}
...
...
src/main/java/com/pms/ocp/common/constants/ServiceException.java
deleted
100644 → 0
View file @
659df783
package
com.pms.ocp.common.constants
;
public
class
ServiceException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
-
6914996666319154848L
;
/**
* 状态编码
*/
public
final
int
statusCode
;
/**
* message信息
*/
public
final
String
msg
;
/**
* 数据对象
*/
public
Object
data
;
public
ServiceException
(
String
message
,
ResultCodee
resultCode
)
{
super
(
message
);
this
.
statusCode
=
resultCode
.
statusCode
;
this
.
msg
=
message
;
}
public
ServiceException
(
String
message
,
ResultCodee
resultCode
,
Object
data
)
{
this
(
message
,
resultCode
);
this
.
data
=
data
;
}
public
ServiceException
(
ResultCodee
resultCode
)
{
this
(
resultCode
.
msg
,
resultCode
);
}
public
ServiceException
(
ResultCodee
resultCode
,
Object
data
)
{
this
(
resultCode
.
msg
,
resultCode
,
data
);
}
}
src/main/java/com/pms/ocp/common/exception/ServiceException.java
0 → 100644
View file @
8f9e47ea
package
com.pms.ocp.common.exception
;
import
com.pms.ocp.common.constants.ResultCode
;
/**
* @Auther: wangjian
* @Date: 2022/3/11 16:31
* @Description:
*/
public
class
ServiceException
extends
RuntimeException
{
/**
* 自定义异常枚举类
*/
private
ResultCode
resultCode
;
/**
* 错误码
*/
private
int
code
;
/**
* 错误信息
*/
private
String
errorMsg
;
public
ServiceException
()
{
super
();
}
public
ServiceException
(
ResultCode
resultCode
)
{
super
(
"{code:"
+
resultCode
.
getStatusCode
()
+
",errorMsg:"
+
resultCode
.
getMessage
()
+
"}"
);
this
.
resultCode
=
resultCode
;
this
.
code
=
resultCode
.
getStatusCode
();
this
.
errorMsg
=
resultCode
.
getMessage
();
}
public
ServiceException
(
int
code
,
String
errorMsg
)
{
super
(
"{code:"
+
code
+
",errorMsg:"
+
errorMsg
+
"}"
);
this
.
code
=
code
;
this
.
errorMsg
=
errorMsg
;
}
public
ResultCode
getErrorEnum
()
{
return
resultCode
;
}
public
String
getErrorMsg
()
{
return
errorMsg
;
}
public
void
setErrorMsg
(
String
errorMsg
)
{
this
.
errorMsg
=
errorMsg
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
}
src/main/java/com/pms/ocp/common/utils/ExcelUtils.java
View file @
8f9e47ea
package
com.pms.ocp.common.utils
;
import
cn.afterturn.easypoi.excel.ExcelExportUtil
;
import
cn.afterturn.easypoi.excel.ExcelImportUtil
;
import
cn.afterturn.easypoi.excel.entity.ExportParams
;
import
cn.afterturn.easypoi.excel.entity.ImportParams
;
import
cn.afterturn.easypoi.excel.entity.enmus.ExcelType
;
import
com.pms.ocp.common.constants.ResultCode
;
import
com.pms.ocp.common.exception.BeagleException
;
import
com.pms.ocp.common.exception.ServiceException
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.poi.ss.usermodel.Workbook
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URLEncoder
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.*
;
/**
* @author huxiuwu
...
...
@@ -24,6 +29,12 @@ import java.util.List;
*/
public
class
ExcelUtils
{
//xls 后缀
private
static
final
String
XLS
=
".xls"
;
//xlsx 后缀
private
static
final
String
XLS_X
=
".xlsx"
;
/**
* 导出excel通用方法
*
...
...
@@ -129,4 +140,171 @@ public class ExcelUtils {
out
.
flush
();
}
/**
* 下载
*
* @param fileName 文件名称
* @param response
* @param workbook excel数据
*/
private
static
void
downLoadExcel
(
String
fileName
,
HttpServletResponse
response
,
Workbook
workbook
)
throws
IOException
{
try
{
response
.
setCharacterEncoding
(
"UTF-8"
);
response
.
setHeader
(
"content-Type"
,
"application/vnd.ms-excel"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
URLEncoder
.
encode
(
fileName
+
"."
+
ExcelTypeEnum
.
XLSX
.
getValue
(),
"UTF-8"
));
workbook
.
write
(
response
.
getOutputStream
());
}
catch
(
Exception
e
)
{
throw
new
IOException
(
e
.
getMessage
());
}
}
/**
* excel 导入
*
* @param filePath excel文件路径
* @param titleRows 标题行
* @param headerRows 表头行
* @param pojoClass pojo类型
* @param <T>
* @return
*/
public
static
<
T
>
List
<
T
>
importExcel
(
String
filePath
,
Integer
titleRows
,
Integer
headerRows
,
Class
<
T
>
pojoClass
)
throws
IOException
{
if
(
StringUtils
.
isBlank
(
filePath
))
{
return
null
;
}
ImportParams
params
=
new
ImportParams
();
params
.
setTitleRows
(
titleRows
);
params
.
setHeadRows
(
headerRows
);
params
.
setNeedSave
(
true
);
params
.
setSaveUrl
(
"/excel/"
);
try
{
return
ExcelImportUtil
.
importExcel
(
new
File
(
filePath
),
pojoClass
,
params
);
}
catch
(
NoSuchElementException
e
)
{
throw
new
IOException
(
"模板不能为空"
);
}
catch
(
Exception
e
)
{
throw
new
IOException
(
e
.
getMessage
());
}
}
/**
* excel 导入
*
* @param file excel文件
* @param pojoClass pojo类型
* @param <T>
* @return
*/
public
static
<
T
>
List
<
T
>
importExcel
(
MultipartFile
file
,
Class
<
T
>
pojoClass
)
throws
IOException
{
return
importExcel
(
file
,
0
,
1
,
pojoClass
);
}
/**
* excel 导入
*
* @param file excel文件
* @param titleRows 标题行
* @param headerRows 表头行
* @param pojoClass pojo类型
* @param <T>
* @return
*/
public
static
<
T
>
List
<
T
>
importExcel
(
MultipartFile
file
,
Integer
titleRows
,
Integer
headerRows
,
Class
<
T
>
pojoClass
)
throws
IOException
{
return
importExcel
(
file
,
titleRows
,
headerRows
,
false
,
pojoClass
);
}
/**
* excel 导入
*
* @param file 上传的文件
* @param titleRows 标题行
* @param headerRows 表头行
* @param needVerfiy 是否检验excel内容
* @param pojoClass pojo类型
* @param <T>
* @return
*/
public
static
<
T
>
List
<
T
>
importExcel
(
MultipartFile
file
,
Integer
titleRows
,
Integer
headerRows
,
boolean
needVerfiy
,
Class
<
T
>
pojoClass
)
throws
IOException
{
if
(
file
==
null
)
{
return
null
;
}
try
{
return
importExcel
(
file
.
getInputStream
(),
titleRows
,
headerRows
,
needVerfiy
,
pojoClass
);
}
catch
(
Exception
e
)
{
throw
new
IOException
(
e
.
getMessage
());
}
}
/**
* excel 导入
*
* @param inputStream 文件输入流
* @param titleRows 标题行
* @param headerRows 表头行
* @param needVerfiy 是否检验excel内容
* @param pojoClass pojo类型
* @param <T>
* @return
*/
public
static
<
T
>
List
<
T
>
importExcel
(
InputStream
inputStream
,
Integer
titleRows
,
Integer
headerRows
,
boolean
needVerfiy
,
Class
<
T
>
pojoClass
)
throws
IOException
{
if
(
inputStream
==
null
)
{
return
null
;
}
ImportParams
params
=
new
ImportParams
();
params
.
setTitleRows
(
titleRows
);
params
.
setHeadRows
(
headerRows
);
params
.
setSaveUrl
(
"/excel/"
);
params
.
setNeedSave
(
true
);
params
.
setNeedVerify
(
needVerfiy
);
try
{
return
ExcelImportUtil
.
importExcel
(
inputStream
,
pojoClass
,
params
);
}
catch
(
NoSuchElementException
e
)
{
throw
new
IOException
(
"excel文件不能为空"
);
}
catch
(
Exception
e
)
{
throw
new
IOException
(
e
.
getMessage
());
}
}
/**
* 检查文件
*
* @param file
*/
public
static
void
checkFile
(
MultipartFile
file
)
{
if
(
file
==
null
)
{
throw
new
ServiceException
(
ResultCode
.
FILE_NOT_EXISTS
);
}
String
fileName
=
file
.
getOriginalFilename
();
assert
fileName
!=
null
;
if
(!
fileName
.
endsWith
(
XLS
)
&&
!
fileName
.
endsWith
(
XLS_X
))
{
throw
new
ServiceException
(
ResultCode
.
FILE_NOT_EXISTS
);
}
}
/**
* Excel 类型枚举
*/
enum
ExcelTypeEnum
{
XLS
(
"xls"
),
XLSX
(
"xlsx"
);
private
String
value
;
ExcelTypeEnum
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
}
}
src/main/java/com/pms/ocp/controller/ModelBaseController.java
View file @
8f9e47ea
...
...
@@ -14,7 +14,9 @@ import lombok.extern.slf4j.Slf4j;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.util.List
;
import
static
com
.
pms
.
ocp
.
common
.
constants
.
CodeEnum
.
REQUIRED_PARAMETER_EMPTY
;
...
...
@@ -143,6 +145,17 @@ public class ModelBaseController {
return
modelService
.
updateModel
(
model
);
}
/**
* 模型-导入
*
* @return
*/
@ApiOperation
(
"模型-导入"
)
@PostMapping
(
"/import/model"
)
public
ResponseVO
importModel
(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
IOException
{
return
ResponseVO
.
ok
(
modelService
.
importModel
(
file
));
}
/**
* 模型-下发/批量下发
* TODO
...
...
@@ -185,7 +198,7 @@ public class ModelBaseController {
@ApiOperation
(
"模型订阅-删除/批量删除"
)
@PostMapping
(
"/delete/model/subscribe"
)
public
ResponseVO
deleteModelSubscribe
(
@ApiParam
(
value
=
"订阅编号集合"
)
@RequestBody
List
<
String
>
ids
)
{
return
ResponseVO
.
ok
(
modelIssueService
.
delete
P
atchModelIssue
(
ids
));
return
ResponseVO
.
ok
(
modelIssueService
.
delete
B
atchModelIssue
(
ids
));
}
/**
...
...
@@ -273,7 +286,7 @@ public class ModelBaseController {
@ApiOperation
(
"模型属性-删除/批量删除"
)
@PostMapping
(
"/delete/model/property"
)
public
ResponseVO
deleteModelProperty
(
@ApiParam
(
value
=
"属性ID集合"
)
@RequestBody
List
<
String
>
ids
)
{
return
ResponseVO
.
ok
(
modelPropertyService
.
delete
P
atchModelProperty
(
ids
));
return
ResponseVO
.
ok
(
modelPropertyService
.
delete
B
atchModelProperty
(
ids
));
}
/**
...
...
src/main/java/com/pms/ocp/mapper/ModelMapper.java
View file @
8f9e47ea
...
...
@@ -3,6 +3,9 @@ package com.pms.ocp.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.pms.ocp.model.entity.Model
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @Auther: wangjian
...
...
@@ -12,4 +15,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public
interface
ModelMapper
extends
BaseMapper
<
Model
>
{
boolean
insertBatchModel
(
@Param
(
"modelList"
)
List
<
Model
>
modelList
);
}
src/main/java/com/pms/ocp/model/Response.java
View file @
8f9e47ea
...
...
@@ -2,7 +2,7 @@ package com.pms.ocp.model;
public
interface
Response
{
public
static
final
boolean
SUCCESS
=
true
;
public
static
final
int
SUCCESS_CODE
=
0
;
boolean
SUCCESS
=
true
;
int
SUCCESS_CODE
=
0
;
}
src/main/java/com/pms/ocp/model/entity/Model.java
View file @
8f9e47ea
package
com.pms.ocp.model.entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
...
...
@@ -9,7 +8,6 @@ import lombok.experimental.Accessors;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
/**
* @Auther: wangjian
...
...
@@ -23,9 +21,9 @@ import java.util.Date;
public
class
Model
{
/**
* 模型编号
* 模型关系编号
* 主键
*/
@TableId
private
String
objId
;
/**
...
...
@@ -44,47 +42,41 @@ public class Model {
private
String
equipType
;
/**
* 所属专业
* 所属专业
ts:输电,t:变电, dc:直流,ds配电,tc:技术,pl计划 im综合
*/
private
String
professional
K
ind
;
private
String
professional
_k
ind
;
/**
* 模型分类编码
*/
private
String
model
GroupC
ode
;
private
String
model
_group_c
ode
;
/**
* 模型表
* 模型表
名称
*/
private
String
model
T
able
;
private
String
model
_t
able
;
/**
* 是否启用
* 是否启用
0:未启用,1:启用
*/
private
String
isUse
;
@TableField
(
value
=
"is_use"
)
private
Integer
boolUse
;
/**
* 模型推广类型
* 0:统推,1:自建
* 模型推广类型 0:统推,1:自建
*/
private
String
modelPromotion
;
private
Integer
modelPromotion
;
/**
* 公司
code
* 公司
编码
*/
private
String
ownerCompanyCode
;
/**
* 公司名称
*/
private
String
ownerCompanyName
;
/**
* 排列顺序
*/
private
String
modelOrderNo
;
private
Integer
modelOrderNo
;
/**
* 提交人id
...
...
@@ -100,36 +92,90 @@ public class Model {
/**
* 模型创建时间
*/
@TableField
(
value
=
"model_ctime"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
modelCreateT
ime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
modelCt
ime
;
/**
* 模型修改时间
*/
@TableField
(
value
=
"model_mtime"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
modelUpdateTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
modelMtime
;
/**
* 是否已删除0:未删除 1:已删除
*/
@TableField
(
value
=
"is_delete"
)
private
Integer
boolDelete
;
/**
* 所属区域1:生成控制大区 2:信息关联大区3:互联网大区
*/
private
Integer
modelZone
;
/**
* 所属层级1:应用层 2:平台层3:网络层 4:感知层
*/
private
Integer
modelLayer
;
/**
* 模型版本模型版本(最新版本)
*/
private
String
modelVersion
;
/**
* 建设厂商
*/
private
String
apiUnit
;
}
// 字段名称 字段描述 字段类型 允许为NULL 备注
// model_id 主键 varchar(40) 否
// model_name 模型名称 varchar(50) 否
// model_code 模型编码 varchar(42) 否
// equip_type 设备类型 varchar(42) 是
// domain_type 所属专业 int4 是 0:输电,1:变电,2:配电,3:直流,4:计划,5:技术
// model_group_id 模型分类id varchar(42) 否
// model_group_name 模型分类名称 varchar(50) 否
// model_table 模型表 varchar(50) 否
// model_relation 模型关联关系 text 是 存储模型之间的关系json格式;例如[{ model_group_id : t_public_manage_model_group.group_id}]
// Is_use 是否启用 int4 否 0:不启用,1:启用
// model_promotion 推广类型 int4 否 0:统推,1:自建
// company_id 省公司ID varchar(42) 是
// company_name 省公司名称 varchar(50) 是
// model_dispidx 显示顺序 int4 是
// model_user_id 提交人id varchar(42) 是
// model_user_name 提交人姓名 varchar(64) 是
// model_ctime 创建时间 timestamp(6) 是
// model_mtime 修改时间 timestamp(6) 是
// create table ocp_model_base
// (
// obj_id varchar(42) not null
// constraint ocp_model_base_pkey
// primary key,
// model_name varchar(50) default ''::character varying not null,
// model_code varchar(42) default ''::character varying not null,
// equip_type varchar(42) default ''::character varying,
// professional_kind varchar(10) default ''::character varying,
// model_group_code varchar(42) default ''::character varying,
// model_table varchar(50) default ''::character varying,
// is_use smallint default '-1'::integer,
// model_promotion smallint default '-1'::integer,
// owner_company_code varchar(42) default ''::character varying not null,
// model_order_no integer default '-1'::integer,
// model_user_id varchar(42) default ''::character varying,
// model_user_name varchar(64) default ''::character varying,
// model_ctime timestamp(6) default '2000-01-01 00:00:00'::timestamp(0) without time zone,
// model_mtime timestamp(6) default '2000-01-01 00:00:00'::timestamp(0) without time zone,
// is_delete smallint default '-1'::integer,
// model_zone smallint default '-1'::integer,
// model_layer smallint default '-1'::integer,
// model_version varchar(10) default ''::character varying,
// api_unit varchar(50) default ''::character varying
// );
//
// comment on table ocp_model_base is '模型基础信息表';
// comment on column ocp_model_base.obj_id is '主键';
// comment on column ocp_model_base.model_name is '模型名称';
// comment on column ocp_model_base.model_code is '模型编码';
// comment on column ocp_model_base.equip_type is '设备类型';
// comment on column ocp_model_base.professional_kind is '所属专业ts:输电,t:变电, dc:直流,ds配电,tc:技术,pl计划 im综合';
// comment on column ocp_model_base.model_group_code is '模型分类编码';
// comment on column ocp_model_base.model_table is '模型表(表的英文名称)表的英文名称';
// comment on column ocp_model_base.is_use is '是否启用0:未启用,1:启用';
// comment on column ocp_model_base.model_promotion is '推广类型0:统推 1自建';
// comment on column ocp_model_base.owner_company_code is '公司code';
// comment on column ocp_model_base.model_order_no is '排列顺序';
// comment on column ocp_model_base.model_user_id is '提交人id';
// comment on column ocp_model_base.model_user_name is '提交人姓名';
// comment on column ocp_model_base.model_ctime is '创建时间';
// comment on column ocp_model_base.model_mtime is '修改时间';
// comment on column ocp_model_base.is_delete is '是否已删除0:未删除 1:已删除';
// comment on column ocp_model_base.model_zone is '所属区域1:生成控制大区 2:信息关联大区3:互联网大区';
// comment on column ocp_model_base.model_layer is '所属层级1:应用层 2:平台层3:网络层 4:感知层';
// comment on column ocp_model_base.model_version is '模型版本模型版本(最新版本)';
// comment on column ocp_model_base.api_unit is '建设厂商';
src/main/java/com/pms/ocp/model/vo/ModelVO.java
View file @
8f9e47ea
package
com.pms.ocp.model.vo
;
import
cn.afterturn.easypoi.excel.annotation.Excel
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.time.LocalDateTime
;
/**
* @Auther: wangjian
...
...
@@ -14,6 +20,155 @@ import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
//@AllArgsConstructor
@ApiModel
(
value
=
"中台
服务运营看板_网省切换数据_服务表"
,
description
=
"中台服务运营看板_网省切换数据_服务
表"
)
@ApiModel
(
value
=
"中台
运营管控_模型表"
,
description
=
"中台运营管控_模型
表"
)
public
class
ModelVO
{
/**
* 模型编号
* 主键
*/
@Excel
(
name
=
"模型编号"
)
@ApiModelProperty
(
value
=
"模型编号"
)
private
String
objId
;
/**
* 模型名称
*/
@Excel
(
name
=
"模型名称"
)
@ApiModelProperty
(
value
=
"模型名称"
)
private
String
modelName
;
/**
* 模型编码
*/
@Excel
(
name
=
"模型编码"
)
@ApiModelProperty
(
value
=
"模型编码"
)
private
String
modelCode
;
/**
* 设备类型
*/
@Excel
(
name
=
"设备类型"
)
@ApiModelProperty
(
value
=
"设备类型"
)
private
String
equipType
;
/**
* 所属专业 ts:输电,t:变电, dc:直流,ds:配电,tc:技术,pl:计划 im:综合
*/
@Excel
(
name
=
"所属专业"
,
replace
=
{
"输电_ts"
,
"变电_t"
,
"直流_ds"
,
"配电_ds"
,
"技术_tc"
,
"计划_pl"
,
"综合_im"
})
@ApiModelProperty
(
value
=
"所属专业 ts:输电,t:变电, dc:直流,ds:配电,tc:技术,pl:计划 im:综合"
)
private
String
professional_kind
;
/**
* 模型分类编码
*/
@Excel
(
name
=
"模型分类编码"
)
@ApiModelProperty
(
value
=
"模型分类编码"
)
private
String
model_group_code
;
/**
* 模型表名称
*/
@Excel
(
name
=
"模型表名称"
)
@ApiModelProperty
(
value
=
"模型表名称"
)
private
String
model_table
;
/**
* 是否启用 0:未启用,1:启用
*/
@Excel
(
name
=
"是否启用"
,
replace
=
{
"未启用_0"
,
"启用_1"
})
@ApiModelProperty
(
value
=
"是否启用"
)
private
Integer
boolUse
;
/**
* 推广类型 0:统推,1:自建
*/
@Excel
(
name
=
"推广类型"
,
replace
=
{
"统推_0"
,
"自建_1"
})
@ApiModelProperty
(
value
=
"推广类型"
)
private
Integer
modelPromotion
;
/**
* 公司编码
*/
@Excel
(
name
=
"公司编码"
)
@ApiModelProperty
(
value
=
"公司编码"
)
private
String
ownerCompanyCode
;
/**
* 排列顺序
*/
@Excel
(
name
=
"排列顺序"
)
@ApiModelProperty
(
value
=
"排列顺序"
)
private
Integer
modelOrderNo
;
/**
* 提交人编号
*/
@Excel
(
name
=
"提交人编号"
)
@ApiModelProperty
(
value
=
"提交人编号"
)
private
String
modelUserId
;
/**
* 提交人姓名
*/
@Excel
(
name
=
"提交人姓名"
)
@ApiModelProperty
(
value
=
"提交人姓名"
)
private
String
modelUserName
;
/**
* 模型创建时间
*/
@Excel
(
name
=
"创建时间"
)
@ApiModelProperty
(
value
=
"创建时间"
)
@TableField
(
value
=
"model_ctime"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
modelCtime
;
/**
* 模型修改时间
*/
@Excel
(
name
=
"修改时间"
)
@ApiModelProperty
(
value
=
"修改时间"
)
@TableField
(
value
=
"model_mtime"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
LocalDateTime
modelMtime
;
/**
* 是否删除 0:未删除 1:已删除
*/
@Excel
(
name
=
"是否删除"
,
replace
=
{
"未删除_1"
,
"已删除_2"
})
@ApiModelProperty
(
value
=
"是否删除"
)
private
Integer
boolDelete
;
/**
* 所属区域 1:生成控制大区 2:信息关联大区 3:互联网大区
*/
@Excel
(
name
=
"所属区域"
,
replace
=
{
"生成控制大区_1"
,
"信息关联大区_2"
,
"互联网大区_3"
})
@ApiModelProperty
(
value
=
"所属区域"
)
private
Integer
modelZone
;
/**
* 所属层级 1:应用层 2:平台层 3:网络层 4:感知层
*/
@Excel
(
name
=
"方机构类型"
,
replace
=
{
"应用层_1"
,
"平台层_2"
,
"网络层_3"
,
"感知层_4"
})
@ApiModelProperty
(
value
=
"所属层级 1:应用层 2:平台层3:网络层 4:感知层"
)
private
Integer
modelLayer
;
/**
* 模型版本(最新版本)
*/
@Excel
(
name
=
"模型版本"
)
@ApiModelProperty
(
value
=
"模型版本"
)
private
String
modelVersion
;
/**
* 建设厂商
*/
@Excel
(
name
=
"建设厂商"
)
@ApiModelProperty
(
value
=
"建设厂商"
)
private
String
apiUnit
;
}
src/main/java/com/pms/ocp/service/ModelIssueService.java
View file @
8f9e47ea
...
...
@@ -34,7 +34,7 @@ public interface ModelIssueService {
* @param ids
* @return
*/
Integer
delete
P
atchModelIssue
(
List
<
String
>
ids
);
Integer
delete
B
atchModelIssue
(
List
<
String
>
ids
);
/**
* 更新模型订阅
...
...
src/main/java/com/pms/ocp/service/ModelPropertyService.java
View file @
8f9e47ea
...
...
@@ -35,7 +35,7 @@ public interface ModelPropertyService {
* @param ids
* @return
*/
Integer
delete
P
atchModelProperty
(
List
<
String
>
ids
);
Integer
delete
B
atchModelProperty
(
List
<
String
>
ids
);
/**
* 更新模型属性
...
...
src/main/java/com/pms/ocp/service/ModelRelationService.java
View file @
8f9e47ea
...
...
@@ -37,7 +37,7 @@ public interface ModelRelationService {
* @param ids
* @return
*/
Integer
delete
P
atchModelRelation
(
List
<
String
>
ids
);
Integer
delete
B
atchModelRelation
(
List
<
String
>
ids
);
/**
* 更新模型关系
...
...
src/main/java/com/pms/ocp/service/ModelService.java
View file @
8f9e47ea
...
...
@@ -2,6 +2,9 @@ package com.pms.ocp.service;
import
com.pms.ocp.model.entity.Model
;
import
com.pms.ocp.model.vo.ResponseVO
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
/**
* @Auther: wangjian
...
...
@@ -34,6 +37,14 @@ public interface ModelService {
*/
ResponseVO
updateModel
(
Model
model
);
/**
* 导入模型
*
* @param file
* @return
*/
Boolean
importModel
(
MultipartFile
file
)
throws
IOException
;
/**
* 获取模型
*
...
...
src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java
View file @
8f9e47ea
...
...
@@ -49,7 +49,7 @@ public class ModelIssueServiceImpl implements ModelIssueService {
* @return
*/
@Override
public
Integer
delete
P
atchModelIssue
(
List
<
String
>
ids
)
{
public
Integer
delete
B
atchModelIssue
(
List
<
String
>
ids
)
{
return
modelIssueMapper
.
deleteBatchIds
(
ids
);
}
...
...
src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java
View file @
8f9e47ea
...
...
@@ -54,7 +54,7 @@ public class ModelPropertyServiceImpl implements ModelPropertyService {
}
@Override
public
Integer
delete
P
atchModelProperty
(
List
<
String
>
ids
)
{
public
Integer
delete
B
atchModelProperty
(
List
<
String
>
ids
)
{
return
modelPropertyMapper
.
deleteBatchIds
(
ids
);
}
...
...
src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java
View file @
8f9e47ea
...
...
@@ -57,7 +57,7 @@ public class ModelRelationServiceImpl implements ModelRelationService {
}
@Override
public
Integer
delete
P
atchModelRelation
(
List
<
String
>
ids
)
{
public
Integer
delete
B
atchModelRelation
(
List
<
String
>
ids
)
{
return
modelRelationMapper
.
deleteBatchIds
(
ids
);
}
...
...
src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java
View file @
8f9e47ea
package
com.pms.ocp.service.impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.pms.ocp.common.constants.CodeEnum
;
import
com.pms.ocp.common.utils.ExcelUtils
;
import
com.pms.ocp.mapper.ModelMapper
;
import
com.pms.ocp.model.entity.Model
;
import
com.pms.ocp.model.vo.ModelVO
;
import
com.pms.ocp.model.vo.ResponseVO
;
import
com.pms.ocp.service.ModelService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.IOException
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -19,7 +28,8 @@ import java.util.List;
*/
@Service
public
class
ModelServiceImpl
implements
ModelService
{
public
class
ModelServiceImpl
extends
ServiceImpl
<
ModelMapper
,
Model
>
implements
ModelService
{
@Autowired
private
ModelMapper
modelMapper
;
...
...
@@ -73,6 +83,35 @@ public class ModelServiceImpl implements ModelService {
}
}
/**
* 导入模型
*
* @param file
* @return
*/
@Override
public
Boolean
importModel
(
MultipartFile
file
)
throws
IOException
{
//校验Excel文件
ExcelUtils
.
checkFile
(
file
);
List
<
ModelVO
>
modelVOList
=
ExcelUtils
.
importExcel
(
file
,
ModelVO
.
class
);
List
<
Model
>
modelList
=
new
ArrayList
<>(
modelVOList
.
size
());
if
(!
modelVOList
.
isEmpty
())
{
for
(
ModelVO
modelVO
:
modelVOList
)
{
Model
model
=
new
Model
();
BeanUtils
.
copyProperties
(
modelVO
,
model
);
model
.
setModelCtime
(
LocalDateTime
.
now
());
modelList
.
add
(
model
);
}
}
//校验Excel数据
// checkData(excelCps);
return
modelMapper
.
insertBatchModel
(
modelList
);
}
/**
* 获取模型列表
*
...
...
src/main/resources/mapper/ModelMapper.xml
View file @
8f9e47ea
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.pms.ocp.mapper.ModelMapper"
>
<!-- <!–<select id="getPlatformServiceSortVo" resultType="com.beagle.base.model.vo.PlatformServiceSortVo">–>-->
<!-- <!–SELECT–>-->
<!-- <!–*–>-->
<!-- <!–FROM–>-->
<!-- <!–( SELECT COUNT ( api_code ) AS total, api_code AS apiCode, api_name AS apiName FROM pms_zy_api GROUP BY api_code, api_name ) T–>-->
<!-- <!–where T.total > 0–>-->
<!-- <!–ORDER BY–>-->
<!-- <!–total DESC–>-->
<!-- <!–</select>–>-->
<!-- <select id="getPlatformServiceNotSortVo" resultType="com.beagle.base.model.vo.PlatformServiceSortVo">-->
<!-- SELECT COUNT ( api_code ) AS total, api_code AS apiCode, api_name AS apiName FROM pms_zy_api GROUP BY api_code, api_name-->
<!-- </select>-->
<!-- <select id="getCountCompanyCodeIsNull" resultType="int">-->
<!-- SELECT COUNT( * ) FROM pms_zy_api WHERE company_code is null-->
<!-- </select>-->
<!-- <select id="selectApiInfoList" resultType="com.beagle.base.model.dto.AcceptApiInfoDto"-->
<!-- parameterType="java.util.Map">-->
<!-- select-->
<!-- api.api_id as apiId,-->
<!-- api.api_code as api_code,-->
<!-- api.api_name as apiName,-->
<!-- api.api_url as apiUrl,-->
<!-- api.api_ctime as apiCtime,-->
<!-- gro.group_name as groupName,-->
<!-- api.company_code as companyCode,-->
<!-- api.company_name as companyName-->
<!-- from pms_zy_api api-->
<!-- left join pms_zy_api_group gro-->
<!-- on api.group_id = gro.group_id-->
<!-- <where>-->
<!-- api.company_code = #{companyCode}-->
<!-- <if test="apiName !=null and apiName != '' ">-->
<!-- and api.api_name like CONCAT('%', #{apiName}::text,'%')-->
<!-- </if>-->
<!-- <if test="groupName != null and groupName != '' ">-->
<!-- and gro.group_name = #{groupName}-->
<!-- </if>-->
<!-- <if test="isBind != null and isBind == 0">-->
<!-- and api.api_id not in-->
<!-- <foreach collection="apiIds" separator="," item="item" open="(" close=")" index="index" >-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="isBind != null and isBind == 1">-->
<!-- and api.api_id in-->
<!-- <foreach collection="apiIds" separator="," item="item" open="(" close=")" index="index" >-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- </where>-->
<!-- order by api.api_ctime desc-->
<!-- </select>-->
<!-- <select id="selectPlanInvokeApiList" resultType="com.beagle.base.model.dto.PlanInvokeApiCountDTO">-->
<!-- select pc2.company_code, pc2.company_name,pc2.company_short_name, eee.tenant_code, eee.tenant_name , eee.api_plan_invoke_count from pms_company pc2-->
<!-- left join (select pc.company_code, pc.company_name, pzt.tenant_id, pzt.tenant_code, pzt.tenant_name , count(pztar.api_id) as api_plan_invoke_count-->
<!-- from pms_company pc-->
<!-- left join pms_zy_tenant pzt on pc.company_code = pzt.company_code-->
<!-- join pms_zy_tenant_api_rel pztar on pzt.tenant_id = pztar.tenant_id-->
<!-- group by pzt.tenant_id ,pc.company_code, pc.company_name,pzt.tenant_name,pzt.tenant_code) as eee on pc2.company_code = eee.company_code-->
<!-- <where>-->
<!-- <if test="tenantCode != null and tenantCode != '' ">-->
<!-- and tenant_code = #{tenantCode}-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<!-- <select id="selectGroupApiQuantity" resultType="com.beagle.base.model.dto.GroupInvokeApiSituationDTO">-->
<!-- select pzag.group_id, pzag.group_name, pza.api_code, pza.api_name-->
<!-- from pms_zy_api_group pzag-->
<!-- left join pms_zy_api pza on pzag.group_id = pza.group_id-->
<!-- <where>-->
<!-- <if test="groupLvl != null and groupLvl != '' ">-->
<!-- and pzag.group_lvl = #{groupLvl}-->
<!-- </if>-->
<!-- <if test="groupNamePre != null and groupNamePre != '' ">-->
<!-- and pzag.group_name like CONCAT('%', #{groupNamePre}::text,'%')-->
<!-- </if>-->
<!-- </where>-->
<!-- </select>-->
<!--
collection:表示遍历的数组或者集合,填写对应 key 的值
item:集合中被遍历的元素名,自己随意起的名字
separator:每次遍历元素后用于拼接字符串
open:遍历开始拼接的字符串
close:遍历结束拼接字符串
index:遍历索引
例如本条 SQL 语句,拼接后的结果为:
insert into user(username, password) values (?, ?), (?, ?), ...
-->
<insert
id=
"insertBatchModel"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into user(username, password)
values
<foreach
collection=
"users"
item=
"user"
separator=
","
>
(#{user.username}, #{user.password})
</foreach>
</insert>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment