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 88931382a7a4e23e93d575657e187d07fe8ab7c8..c938e562f6395027a5d937f7145975cd1a840d20 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 605dec1e541a73ffcfb28051f1846c8a775ccbd6..cf05925d81b1436dec374fc3e5e6d5781b4062f2 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 febd9a2cee0c5fe0e7a90f5adbd6005d13671c23..0000000000000000000000000000000000000000 --- 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 0000000000000000000000000000000000000000..375171444021480282fb0da692953b93082fc853 --- /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 1e1c0663af0a330aec3e39da0f10698768580787..40027dfb2f2a6f692f6f2f46ac75a307dd764b40 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 d987eb737e6bf3a67cccb24d641b8aa8c926874f..732ca742b1c03afa4ccf0bceb57ce303ae1062e0 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 97657cbec38acade32ba9ccc4d01d6a2abbc9e71..7bc10e94f5c5463e0ac5c6a1dee3a30eeb9307f2 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 cb6cdd98f832c9a794a25c9fe0750a83ef81e147..f0adc07852170810a13246916ced977a202226e3 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 39cd7e37b97ad21973e0dacf825ee183d6a33002..604e500e2e3cb5c49c1a84ff24a085fb37a46890 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 455dc6bc82c232d598e229a794c82737f9405174..f9c7d34e63ba8683ef6cfdcdbcd4f1b463faa428 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 250f29fc08049195ad3a3898b4ddea6493fb79de..5bc4f985a5ef3be8d77da6e4e0daf6b2ae8f80ad 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 5e5779a8abc7027eed4bb9b5f8f13e1d5a7a028c..74bb63244f92646f51cfadea3a4ad77aaf19828c 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 850a539144712fb8851815b1dc5c8aac8dec53eb..c69adcf76dc1b00c3e72525c2d849e67f36ed9a8 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 6eab59fdfc58a12e98e759214874313fcb6bec1e..181a02a9f9e83e6e8f768372d13473f0ce2f1b99 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 09f78f23f861acfc15c1cfc08de2e2dc58217cbe..09593cf56f6d60158380e603b9291716f8ac823d 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 0c4403f0814462051e12d64dd911d022e7e83781..62a9b7e6b48ffbfb306b03794266bb14263a46cf 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 936eb1dd1915a7ee508f489080d9e7f593cafd50..f3299a71fbf7ccff8b7a6b0ec0012272b324fa72 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 4ef894ce5b2b25989b424db7cf70e28ebd0ea48e..64ecb6df58b8347912c9c53331e8e497ee11070f 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 94b9a50cf3dc793f2caf82e4688e0baa0e928d7c..452da489c7fe458440bb5a56a8913fc505a8874b 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}) + +