From 8f9e47ead27e2b6fa310cd24be25611f0d161297 Mon Sep 17 00:00:00 2001 From: wangjingsheng Date: Fri, 11 Mar 2022 17:18:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=AF=BC=E5=85=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/ocp/common/constants/ExportUtils.java | 13 +- .../{ResultCodee.java => ResultCode.java} | 4 +- .../common/constants/ServiceException.java | 36 ---- .../common/exception/ServiceException.java | 64 ++++++ .../com/pms/ocp/common/utils/ExcelUtils.java | 186 +++++++++++++++++- .../ocp/controller/ModelBaseController.java | 17 +- .../java/com/pms/ocp/mapper/ModelMapper.java | 6 + src/main/java/com/pms/ocp/model/Response.java | 4 +- .../java/com/pms/ocp/model/entity/Model.java | 140 ++++++++----- .../java/com/pms/ocp/model/vo/ModelVO.java | 159 ++++++++++++++- .../pms/ocp/service/ModelIssueService.java | 2 +- .../pms/ocp/service/ModelPropertyService.java | 2 +- .../pms/ocp/service/ModelRelationService.java | 2 +- .../com/pms/ocp/service/ModelService.java | 11 ++ .../service/impl/ModelIssueServiceImpl.java | 2 +- .../impl/ModelPropertyServiceImpl.java | 2 +- .../impl/ModelRelationServiceImpl.java | 2 +- .../ocp/service/impl/ModelServiceImpl.java | 41 +++- src/main/resources/mapper/ModelMapper.xml | 107 ++-------- 19 files changed, 603 insertions(+), 197 deletions(-) rename src/main/java/com/pms/ocp/common/constants/{ResultCodee.java => ResultCode.java} (98%) delete mode 100644 src/main/java/com/pms/ocp/common/constants/ServiceException.java create mode 100644 src/main/java/com/pms/ocp/common/exception/ServiceException.java diff --git a/src/main/java/com/pms/ocp/common/constants/ExportUtils.java b/src/main/java/com/pms/ocp/common/constants/ExportUtils.java index 8893138..c938e56 100644 --- a/src/main/java/com/pms/ocp/common/constants/ExportUtils.java +++ b/src/main/java/com/pms/ocp/common/constants/ExportUtils.java @@ -1,6 +1,7 @@ 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.ResultCodee.INTERNAL_SERVER_ERROR); + throw new ServiceException(ResultCode.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.ResultCodee.INTERNAL_SERVER_ERROR); + throw new ServiceException(ResultCode.INTERNAL_SERVER_ERROR); } } @@ -142,7 +145,7 @@ public class ExportUtils { } } catch (IOException e) { e.printStackTrace(); - throw new ServiceException(ResultCodee.INTERNAL_SERVER_ERROR); + throw new ServiceException(ResultCode.INTERNAL_SERVER_ERROR); } } } diff --git a/src/main/java/com/pms/ocp/common/constants/ResultCodee.java b/src/main/java/com/pms/ocp/common/constants/ResultCode.java similarity index 98% rename from src/main/java/com/pms/ocp/common/constants/ResultCodee.java rename to src/main/java/com/pms/ocp/common/constants/ResultCode.java index 605dec1..cf05925 100644 --- a/src/main/java/com/pms/ocp/common/constants/ResultCodee.java +++ b/src/main/java/com/pms/ocp/common/constants/ResultCode.java @@ -3,7 +3,7 @@ package com.pms.ocp.common.constants; /** * 异常枚举类 */ -public enum ResultCodee { +public enum ResultCode { /* ============================ 通用错误码 ========================== **/ /** * 禁止访问 303 @@ -154,7 +154,7 @@ public enum ResultCodee { public final int statusCode; public String msg; - ResultCodee(int statusCode, String msg) { + ResultCode(int statusCode, String msg) { this.statusCode = statusCode; this.msg = msg; } diff --git a/src/main/java/com/pms/ocp/common/constants/ServiceException.java b/src/main/java/com/pms/ocp/common/constants/ServiceException.java deleted file mode 100644 index febd9a2..0000000 --- a/src/main/java/com/pms/ocp/common/constants/ServiceException.java +++ /dev/null @@ -1,36 +0,0 @@ -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); - } -} diff --git a/src/main/java/com/pms/ocp/common/exception/ServiceException.java b/src/main/java/com/pms/ocp/common/exception/ServiceException.java new file mode 100644 index 0000000..3751714 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/exception/ServiceException.java @@ -0,0 +1,64 @@ +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; + } +} diff --git a/src/main/java/com/pms/ocp/common/utils/ExcelUtils.java b/src/main/java/com/pms/ocp/common/utils/ExcelUtils.java index 1e1c066..40027df 100644 --- a/src/main/java/com/pms/ocp/common/utils/ExcelUtils.java +++ b/src/main/java/com/pms/ocp/common/utils/ExcelUtils.java @@ -1,21 +1,26 @@ 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 + * @return + */ + public static List importExcel(String filePath, Integer titleRows, Integer headerRows, Class 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 + * @return + */ + public static List importExcel(MultipartFile file, Class pojoClass) + throws IOException { + return importExcel(file, 0, 1, pojoClass); + } + + /** + * excel 导入 + * + * @param file excel文件 + * @param titleRows 标题行 + * @param headerRows 表头行 + * @param pojoClass pojo类型 + * @param + * @return + */ + public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass) + throws IOException { + return importExcel(file, titleRows, headerRows, false, pojoClass); + } + + /** + * excel 导入 + * + * @param file 上传的文件 + * @param titleRows 标题行 + * @param headerRows 表头行 + * @param needVerfiy 是否检验excel内容 + * @param pojoClass pojo类型 + * @param + * @return + */ + public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, boolean needVerfiy, Class 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 + * @return + */ + public static List importExcel(InputStream inputStream, Integer titleRows, Integer headerRows, boolean needVerfiy, Class 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; + } + } + } diff --git a/src/main/java/com/pms/ocp/controller/ModelBaseController.java b/src/main/java/com/pms/ocp/controller/ModelBaseController.java index d987eb7..732ca74 100644 --- a/src/main/java/com/pms/ocp/controller/ModelBaseController.java +++ b/src/main/java/com/pms/ocp/controller/ModelBaseController.java @@ -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 ids) { - return ResponseVO.ok(modelIssueService.deletePatchModelIssue(ids)); + return ResponseVO.ok(modelIssueService.deleteBatchModelIssue(ids)); } /** @@ -273,7 +286,7 @@ public class ModelBaseController { @ApiOperation("模型属性-删除/批量删除") @PostMapping("/delete/model/property") public ResponseVO deleteModelProperty(@ApiParam(value = "属性ID集合") @RequestBody List ids) { - return ResponseVO.ok(modelPropertyService.deletePatchModelProperty(ids)); + return ResponseVO.ok(modelPropertyService.deleteBatchModelProperty(ids)); } /** diff --git a/src/main/java/com/pms/ocp/mapper/ModelMapper.java b/src/main/java/com/pms/ocp/mapper/ModelMapper.java index 97657cb..7bc10e9 100644 --- a/src/main/java/com/pms/ocp/mapper/ModelMapper.java +++ b/src/main/java/com/pms/ocp/mapper/ModelMapper.java @@ -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 { + + boolean insertBatchModel(@Param("modelList") List modelList); + } diff --git a/src/main/java/com/pms/ocp/model/Response.java b/src/main/java/com/pms/ocp/model/Response.java index cb6cdd9..f0adc07 100644 --- a/src/main/java/com/pms/ocp/model/Response.java +++ b/src/main/java/com/pms/ocp/model/Response.java @@ -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; } diff --git a/src/main/java/com/pms/ocp/model/entity/Model.java b/src/main/java/com/pms/ocp/model/entity/Model.java index 39cd7e3..604e500 100644 --- a/src/main/java/com/pms/ocp/model/entity/Model.java +++ b/src/main/java/com/pms/ocp/model/entity/Model.java @@ -1,7 +1,6 @@ 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 professionalKind; + private String professional_kind; /** * 模型分类编码 */ - private String modelGroupCode; + private String model_group_code; /** - * 模型表 + * 模型表名称 */ - private String modelTable; + private String model_table; /** - * 是否启用 + * 是否启用 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 modelCreateTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime modelCtime; /** * 模型修改时间 */ - @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 '建设厂商'; diff --git a/src/main/java/com/pms/ocp/model/vo/ModelVO.java b/src/main/java/com/pms/ocp/model/vo/ModelVO.java index 455dc6b..f9c7d34 100644 --- a/src/main/java/com/pms/ocp/model/vo/ModelVO.java +++ b/src/main/java/com/pms/ocp/model/vo/ModelVO.java @@ -1,9 +1,15 @@ 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; } diff --git a/src/main/java/com/pms/ocp/service/ModelIssueService.java b/src/main/java/com/pms/ocp/service/ModelIssueService.java index 250f29f..5bc4f98 100644 --- a/src/main/java/com/pms/ocp/service/ModelIssueService.java +++ b/src/main/java/com/pms/ocp/service/ModelIssueService.java @@ -34,7 +34,7 @@ public interface ModelIssueService { * @param ids * @return */ - Integer deletePatchModelIssue(List ids); + Integer deleteBatchModelIssue(List ids); /** * 更新模型订阅 diff --git a/src/main/java/com/pms/ocp/service/ModelPropertyService.java b/src/main/java/com/pms/ocp/service/ModelPropertyService.java index 5e5779a..74bb632 100644 --- a/src/main/java/com/pms/ocp/service/ModelPropertyService.java +++ b/src/main/java/com/pms/ocp/service/ModelPropertyService.java @@ -35,7 +35,7 @@ public interface ModelPropertyService { * @param ids * @return */ - Integer deletePatchModelProperty(List ids); + Integer deleteBatchModelProperty(List ids); /** * 更新模型属性 diff --git a/src/main/java/com/pms/ocp/service/ModelRelationService.java b/src/main/java/com/pms/ocp/service/ModelRelationService.java index 850a539..c69adcf 100644 --- a/src/main/java/com/pms/ocp/service/ModelRelationService.java +++ b/src/main/java/com/pms/ocp/service/ModelRelationService.java @@ -37,7 +37,7 @@ public interface ModelRelationService { * @param ids * @return */ - Integer deletePatchModelRelation(List ids); + Integer deleteBatchModelRelation(List ids); /** * 更新模型关系 diff --git a/src/main/java/com/pms/ocp/service/ModelService.java b/src/main/java/com/pms/ocp/service/ModelService.java index 6eab59f..181a02a 100644 --- a/src/main/java/com/pms/ocp/service/ModelService.java +++ b/src/main/java/com/pms/ocp/service/ModelService.java @@ -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; + /** * 获取模型 * diff --git a/src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java index 09f78f2..09593cf 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelIssueServiceImpl.java @@ -49,7 +49,7 @@ public class ModelIssueServiceImpl implements ModelIssueService { * @return */ @Override - public Integer deletePatchModelIssue(List ids) { + public Integer deleteBatchModelIssue(List ids) { return modelIssueMapper.deleteBatchIds(ids); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java index 0c4403f..62a9b7e 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelPropertyServiceImpl.java @@ -54,7 +54,7 @@ public class ModelPropertyServiceImpl implements ModelPropertyService { } @Override - public Integer deletePatchModelProperty(List ids) { + public Integer deleteBatchModelProperty(List ids) { return modelPropertyMapper.deleteBatchIds(ids); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java index 936eb1d..f3299a7 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelRelationServiceImpl.java @@ -57,7 +57,7 @@ public class ModelRelationServiceImpl implements ModelRelationService { } @Override - public Integer deletePatchModelRelation(List ids) { + public Integer deleteBatchModelRelation(List ids) { return modelRelationMapper.deleteBatchIds(ids); } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java index 4ef894c..64ecb6d 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelServiceImpl.java @@ -1,15 +1,24 @@ 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 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 modelVOList = ExcelUtils.importExcel(file, ModelVO.class); + List 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); + + } + /** * 获取模型列表 * diff --git a/src/main/resources/mapper/ModelMapper.xml b/src/main/resources/mapper/ModelMapper.xml index 94b9a50..452da48 100644 --- a/src/main/resources/mapper/ModelMapper.xml +++ b/src/main/resources/mapper/ModelMapper.xml @@ -1,95 +1,22 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + insert into user(username, password) + values + + (#{user.username}, #{user.password}) + + -- 2.26.0