diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List ids);
+ List addDeviceBatch(List results);
+
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List ids);
+ List addDeviceBatch(List results);
+
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
index 22a3732..6041b7f 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
@@ -22,4 +22,6 @@
Page pageList(Page page, BusLedgerDTO request, DataScope dataScope);
Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope);
+
+ List ledgerIdsByTagNumber(String tagNumber,String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List ids);
+ List addDeviceBatch(List results);
+
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
index 22a3732..6041b7f 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
@@ -22,4 +22,6 @@
Page pageList(Page page, BusLedgerDTO request, DataScope dataScope);
Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope);
+
+ List ledgerIdsByTagNumber(String tagNumber,String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
index 0e08ee3..861b402 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
@@ -1,11 +1,14 @@
package com.casic.missiles.modular.device.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.device.dao.BaseDeviceTypeMapper;
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.casic.missiles.modular.device.service.IBaseDeviceTypeService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 设备类型管理 服务实现类
@@ -25,4 +28,11 @@
baseDeviceType.setTypeCode((typeCodeMax + 1) + "");
return this.baseMapper.insert(baseDeviceType) > 0 ? true : false;
}
+
+ @Override
+ public List getList() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("IS_USED",1);
+ return this.list(queryWrapper);
+ }
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List ids);
+ List addDeviceBatch(List results);
+
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
index 22a3732..6041b7f 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
@@ -22,4 +22,6 @@
Page pageList(Page page, BusLedgerDTO request, DataScope dataScope);
Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope);
+
+ List ledgerIdsByTagNumber(String tagNumber,String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
index 0e08ee3..861b402 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
@@ -1,11 +1,14 @@
package com.casic.missiles.modular.device.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.device.dao.BaseDeviceTypeMapper;
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.casic.missiles.modular.device.service.IBaseDeviceTypeService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 设备类型管理 服务实现类
@@ -25,4 +28,11 @@
baseDeviceType.setTypeCode((typeCodeMax + 1) + "");
return this.baseMapper.insert(baseDeviceType) > 0 ? true : false;
}
+
+ @Override
+ public List getList() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("IS_USED",1);
+ return this.list(queryWrapper);
+ }
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
index 6ec692d..6b539f5 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,15 +8,12 @@
import com.casic.missiles.core.application.service.AbstractDeptService;
import com.casic.missiles.core.application.service.AbstractDictService;
import com.casic.missiles.core.datascope.DataScope;
-import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.modular.device.dao.BusDeviceMapper;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
-import com.casic.missiles.modular.device.entity.BusDevice;
-import com.casic.missiles.modular.device.entity.BusDeviceLog;
-import com.casic.missiles.modular.device.service.IBusDeviceLedgerService;
-import com.casic.missiles.modular.device.service.IBusDeviceLogService;
-import com.casic.missiles.modular.device.service.IBusDeviceService;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
+import com.casic.missiles.modular.device.entity.*;
+import com.casic.missiles.modular.device.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
@@ -41,6 +39,9 @@
private final IBusDeviceLogService iBusDeviceLogService;
private final AbstractDictService abstractDictService;
private final AbstractDeptService abstractDeptService;
+ private final IBaseProductService baseProductService;
+ private final IBusLedgerService iBusLedgerService;
+ private final IBaseDeviceTypeService deviceTypeService;
@Transactional
@Override
@@ -50,7 +51,7 @@
this.baseMapper.insert(busDevice);
//存储绑定关系
if (ObjectUtil.isNotEmpty(busDevice.getLedgerIds())) {
- busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(),busDevice.getWatchObject());
+ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject());
}
//添加设备操作日志
iBusDeviceLogService.saveBusDeviceLog(busDevice.getDevcode(), "1", busDevice.getTagNumber());
@@ -65,7 +66,7 @@
@Override
public Page listPage(Page page, BusDeviceDTO request, DataScope dataScope) {
- Page busDevicePage = this.baseMapper.pageList(page, request,dataScope,getDeptIds(request.getDeptId()));
+ Page busDevicePage = this.baseMapper.pageList(page, request, dataScope, getDeptIds(request.getDeptId()));
List busDeviceList = busDevicePage.getRecords();
busDeviceList.forEach(busDevice -> {
busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject()));
@@ -93,6 +94,63 @@
return true;
}
+
+ @Transactional
+ @Override
+ public List addDeviceBatch(List results) {
+ List list = new ArrayList<>();
+ if (!CollectionUtil.isEmpty(results)) {
+ List baseDeviceTypes = deviceTypeService.list();
+ final Integer[] index = {0};
+ results.forEach(deviceImportDTO -> {
+ index[0]++;
+ //产品编号校验
+ BaseProduct baseProduct = baseProductService.getById(deviceImportDTO.getProductId());
+ if (null == baseProduct) {
+ list.add("第" + index[0] + "行,产品编号不存在!");
+ return;
+ }
+ //设置设备相关信息
+ deviceImportDTO.setDeviceType(baseProduct.getDeviceType());
+ baseDeviceTypes.forEach(baseDeviceType -> {
+ if(baseProduct.getDeviceType().equals(baseDeviceType.getId())){
+ deviceImportDTO.setWatchObject(baseDeviceType.getWatchObject());
+ }
+ });
+ //若安装位号不为空,检查是否存在
+ if(ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())){
+ List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(),deviceImportDTO.getWatchObject());
+ if(null==ledgerIds||ledgerIds.size()<1){
+ list.add("第" + index[0] + "行,安装位号不存在!");
+ return;
+ }
+ deviceImportDTO.setLedgerIds(ledgerIds);
+ }
+ });
+
+ if (CollectionUtil.isNotEmpty(list)) {
+ return list;
+ }
+
+ List busDeviceList = BusDevice.convertDeviceList(results);
+ //保存设备信息
+ this.saveBatch(busDeviceList);
+
+ List busDeviceLedgers = new ArrayList<>();
+
+ busDeviceList.forEach(device -> {
+ busDeviceLedgers.add(new BusDeviceLedger(device.getId(),device.getDeviceType(),device.getWatchObject()));
+
+ });
+ if (CollectionUtil.isNotEmpty(busDeviceLedgers)) {
+ this.busDeviceLedgerService.saveBatch(busDeviceLedgers);
+ }
+ } else {
+ list.add("导入数据不能为空");
+ }
+ return list;
+ }
+
public String getDeptIds(Long deptId) {
if (ObjectUtil.isNotEmpty(deptId)) {
//获取子级单位
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List ids);
+ List addDeviceBatch(List results);
+
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
index 22a3732..6041b7f 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusLedgerService.java
@@ -22,4 +22,6 @@
Page pageList(Page page, BusLedgerDTO request, DataScope dataScope);
Page pageGridList(Page page, BusLedgerDTO request, DataScope dataScope);
+
+ List ledgerIdsByTagNumber(String tagNumber,String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
index 0e08ee3..861b402 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BaseDeviceTypeServiceImpl.java
@@ -1,11 +1,14 @@
package com.casic.missiles.modular.device.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.modular.device.dao.BaseDeviceTypeMapper;
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.casic.missiles.modular.device.service.IBaseDeviceTypeService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 设备类型管理 服务实现类
@@ -25,4 +28,11 @@
baseDeviceType.setTypeCode((typeCodeMax + 1) + "");
return this.baseMapper.insert(baseDeviceType) > 0 ? true : false;
}
+
+ @Override
+ public List getList() {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("IS_USED",1);
+ return this.list(queryWrapper);
+ }
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
index 6ec692d..6b539f5 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusDeviceServiceImpl.java
@@ -1,5 +1,6 @@
package com.casic.missiles.modular.device.service.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,15 +8,12 @@
import com.casic.missiles.core.application.service.AbstractDeptService;
import com.casic.missiles.core.application.service.AbstractDictService;
import com.casic.missiles.core.datascope.DataScope;
-import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.modular.device.dao.BusDeviceMapper;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
-import com.casic.missiles.modular.device.entity.BusDevice;
-import com.casic.missiles.modular.device.entity.BusDeviceLog;
-import com.casic.missiles.modular.device.service.IBusDeviceLedgerService;
-import com.casic.missiles.modular.device.service.IBusDeviceLogService;
-import com.casic.missiles.modular.device.service.IBusDeviceService;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
+import com.casic.missiles.modular.device.entity.*;
+import com.casic.missiles.modular.device.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Service;
@@ -41,6 +39,9 @@
private final IBusDeviceLogService iBusDeviceLogService;
private final AbstractDictService abstractDictService;
private final AbstractDeptService abstractDeptService;
+ private final IBaseProductService baseProductService;
+ private final IBusLedgerService iBusLedgerService;
+ private final IBaseDeviceTypeService deviceTypeService;
@Transactional
@Override
@@ -50,7 +51,7 @@
this.baseMapper.insert(busDevice);
//存储绑定关系
if (ObjectUtil.isNotEmpty(busDevice.getLedgerIds())) {
- busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(),busDevice.getWatchObject());
+ busDeviceLedgerService.saveDeviceLedger(busDevice.getId(), busDevice.getLedgerIds(), busDevice.getWatchObject());
}
//添加设备操作日志
iBusDeviceLogService.saveBusDeviceLog(busDevice.getDevcode(), "1", busDevice.getTagNumber());
@@ -65,7 +66,7 @@
@Override
public Page listPage(Page page, BusDeviceDTO request, DataScope dataScope) {
- Page busDevicePage = this.baseMapper.pageList(page, request,dataScope,getDeptIds(request.getDeptId()));
+ Page busDevicePage = this.baseMapper.pageList(page, request, dataScope, getDeptIds(request.getDeptId()));
List busDeviceList = busDevicePage.getRecords();
busDeviceList.forEach(busDevice -> {
busDevice.setWatchObject(abstractDictService.getDictNameByCode("watchObject", busDevice.getWatchObject()));
@@ -93,6 +94,63 @@
return true;
}
+
+ @Transactional
+ @Override
+ public List addDeviceBatch(List results) {
+ List list = new ArrayList<>();
+ if (!CollectionUtil.isEmpty(results)) {
+ List baseDeviceTypes = deviceTypeService.list();
+ final Integer[] index = {0};
+ results.forEach(deviceImportDTO -> {
+ index[0]++;
+ //产品编号校验
+ BaseProduct baseProduct = baseProductService.getById(deviceImportDTO.getProductId());
+ if (null == baseProduct) {
+ list.add("第" + index[0] + "行,产品编号不存在!");
+ return;
+ }
+ //设置设备相关信息
+ deviceImportDTO.setDeviceType(baseProduct.getDeviceType());
+ baseDeviceTypes.forEach(baseDeviceType -> {
+ if(baseProduct.getDeviceType().equals(baseDeviceType.getId())){
+ deviceImportDTO.setWatchObject(baseDeviceType.getWatchObject());
+ }
+ });
+ //若安装位号不为空,检查是否存在
+ if(ObjectUtil.isNotEmpty(deviceImportDTO.getTagNumber())){
+ List ledgerIds = iBusLedgerService.ledgerIdsByTagNumber(deviceImportDTO.getTagNumber(),deviceImportDTO.getWatchObject());
+ if(null==ledgerIds||ledgerIds.size()<1){
+ list.add("第" + index[0] + "行,安装位号不存在!");
+ return;
+ }
+ deviceImportDTO.setLedgerIds(ledgerIds);
+ }
+ });
+
+ if (CollectionUtil.isNotEmpty(list)) {
+ return list;
+ }
+
+ List busDeviceList = BusDevice.convertDeviceList(results);
+ //保存设备信息
+ this.saveBatch(busDeviceList);
+
+ List busDeviceLedgers = new ArrayList<>();
+
+ busDeviceList.forEach(device -> {
+ busDeviceLedgers.add(new BusDeviceLedger(device.getId(),device.getDeviceType(),device.getWatchObject()));
+
+ });
+ if (CollectionUtil.isNotEmpty(busDeviceLedgers)) {
+ this.busDeviceLedgerService.saveBatch(busDeviceLedgers);
+ }
+ } else {
+ list.add("导入数据不能为空");
+ }
+ return list;
+ }
+
public String getDeptIds(Long deptId) {
if (ObjectUtil.isNotEmpty(deptId)) {
//获取子级单位
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java
index d7b574b..666bc37 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/impl/BusLedgerServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.service.AbstractDeptService;
@@ -55,6 +56,14 @@
return pageGridList;
}
+
+
+ public List ledgerIdsByTagNumber(String tagNumber,String type) {
+
+ return this.baseMapper.ledgerIdsByTagNumber(tagNumber,type);
+
+ }
+
public String getDeptIds(Long deptId) {
if (ObjectUtil.isNotEmpty(deptId)) {
//获取子级单位
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
index 275a1ee..75afeda 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/controller/BusDeviceController.java
@@ -1,6 +1,7 @@
package com.casic.missiles.modular.device.controller;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.casic.missiles.core.application.context.AbstractPermissionContext;
@@ -13,18 +14,23 @@
import com.casic.missiles.enums.BusinessExceptionEnum;
import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.response.ErrorResponseData;
+import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import com.casic.missiles.modular.device.service.IBusDeviceService;
import com.casic.missiles.util.ReturnUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
+import org.springframework.dao.DataAccessException;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.Objects;
+import java.util.*;
/**
*
@@ -52,7 +58,7 @@
public ReturnDTO listPage(@RequestBody BusDeviceDTO request) {
DataScope dataScope = iCommonPermissionService.getAuthService().getLoginUserDataScope();
Page page = PageFactory.defaultPage();
- return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page,request,dataScope)));
+ return ReturnUtil.success(super.packForBT(iBusDeviceService.listPage(page, request, dataScope)));
}
@ApiOperation("新增")
@@ -83,13 +89,52 @@
return ReturnUtil.success(iBusDeviceService.batchDeleteDevice(idsDTO.getIds()));
}
+
+ @ApiOperation("批量导入")
+ @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
+ @ResponseBody
+ public Object batchImport(@RequestParam("file") MultipartFile file) {
+ List results = new ArrayList<>();
+ //设置表头与字段映射,可通过反射获取
+ Map mapper = new HashMap<>();
+ //判断唯一
+ mapper.put("设备编号", "devcode");
+ mapper.put("产品编号", "productId");
+ mapper.put("安装位号", "tagNumber");
+ mapper.put("在用情况", "valid");
+ mapper.put("安装日期", "installDate");
+ try {
+ results = this.importExcel(BusDeviceImportDTO.class, file, null, null);
+ List list = iBusDeviceService.addDeviceBatch(results);
+ if (!CollectionUtil.isEmpty(list)) {
+ //获取校验报错信息
+ return new ErrorResponseData(list.get(0));
+ }
+ } catch (Exception e) {
+ return catchMybatisPlusException(e, "导入设备失败");
+ }
+ return ResponseData.success();
+ }
+
+ private ResponseData catchMybatisPlusException(Exception e, String errorMsg) {
+ if (e instanceof DataAccessException) {
+ DataAccessException mybatisPlusException = (DataAccessException) e;
+ String message = mybatisPlusException.getRootCause().getMessage();
+ if (message.contains("Duplicate entry '")) {
+ return new ErrorResponseData("设备编号重复:" + message.replaceAll("Duplicate entry '", "").replaceAll("' for key 'DEVCODE'", ""));
+ }
+ }
+ return new ErrorResponseData(errorMsg);
+ }
+
+
@ApiOperation("导出列表")
@RequestMapping(value = "/batchExport", method = RequestMethod.GET)
- public void batchExport(@RequestBody BusDeviceDTO request,HttpServletResponse response) throws IOException {
+ public void batchExport(@RequestBody BusDeviceDTO request, HttpServletResponse response) throws IOException {
Page page = PageFactory.defaultPage();
page.setSize(Integer.MAX_VALUE);
- Page devicePage = iBusDeviceService.listPage(page,request,iCommonPermissionService.getAuthService().getLoginUserDataScope());
+ Page devicePage = iBusDeviceService.listPage(page, request, iCommonPermissionService.getAuthService().getLoginUserDataScope());
try {
iBaseExportService.exportExcel(response, BusDevice.class, devicePage.getRecords(), ExportEnum.DEVICE_EXPORT.getSheetName());
} catch (Exception e) {
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
index 0149cc1..743ff7a 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dao/BusLedgerMapper.java
@@ -8,6 +8,7 @@
import com.casic.missiles.modular.device.entity.BusLedger;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
import java.util.List;
@@ -26,4 +27,7 @@
@Param("deptStrs") String deptStrs);
Page pageGridList(@Param("scope") DataScope dataScope, Page page, @Param("request") BusLedgerDTO request);
+
+ @Select("SELECT id FROM bus_ledger_all_view WHERE tagNumber = #{tagNumber} and type= #{type} ")
+ List ledgerIdsByTagNumber(@Param("tagNumber") String tagNumber ,@Param("type") String type);
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
new file mode 100644
index 0000000..fcf777f
--- /dev/null
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/dto/BusDeviceImportDTO.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.modular.device.dto;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+@Data
+public class BusDeviceImportDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ExcelProperty("设备编号")
+ private String devCode;
+
+ @ExcelProperty("产品编号")
+ private Long productId;
+
+ @ExcelProperty("安装位号")
+ private String tagNumber;
+
+ @ExcelProperty("安装日期")
+ private Date installDate;
+
+ @ExcelProperty("在用情况")
+ private String valid;
+
+ private String watchObject;
+
+ private Long deviceType;
+
+ private List ledgerIds;
+
+}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
index d272a30..e0afae6 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/entity/BusDevice.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -61,6 +63,7 @@
@TableField("VALID")
private String valid;
+ @com.alibaba.excel.annotation.format.DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "安装时间", order = 12)
@ApiModelProperty("安装时间")
@TableField("INSTALL_DATE")
@@ -138,4 +141,31 @@
@TableField(exist = false)
private String position;
+ public BusDevice() {
+ }
+
+ public BusDevice(String devcode, Long deviceType, Long productId, String valid, Date installDate, String watchObject, List ledgerIds) {
+ this.devcode = devcode;
+ this.deviceType = deviceType;
+ this.productId = productId;
+ this.valid = valid;
+ this.installDate = installDate;
+ this.watchObject = watchObject;
+ this.ledgerIds = ledgerIds;
+ }
+
+ public static List convertDeviceList(List dtoList){
+ List busDeviceList = new ArrayList<>();
+ dtoList.forEach(deviceImportDTO -> {
+ busDeviceList.add(new BusDevice(deviceImportDTO.getDevCode(),
+ deviceImportDTO.getDeviceType(),
+ deviceImportDTO.getProductId(),
+ deviceImportDTO.getValid(),
+ deviceImportDTO.getInstallDate(),
+ deviceImportDTO.getWatchObject(),
+ deviceImportDTO.getLedgerIds()));
+ });
+ return busDeviceList;
+ }
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
index 5c8982d..68eefad 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBaseDeviceTypeService.java
@@ -3,6 +3,8 @@
import com.casic.missiles.modular.device.entity.BaseDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 设备类型管理 服务类
@@ -15,4 +17,6 @@
boolean saveBaseDeviceType(BaseDeviceType baseDeviceType);
+ List getList();
+
}
diff --git a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
index 6ff3639..7be03a3 100644
--- a/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
+++ b/casic-device/src/main/java/com/casic/missiles/modular/device/service/IBusDeviceService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.core.datascope.DataScope;
import com.casic.missiles.modular.device.dto.BusDeviceDTO;
+import com.casic.missiles.modular.device.dto.BusDeviceImportDTO;
import com.casic.missiles.modular.device.entity.BusDevice;
import java.util.List;
@@ -24,4 +25,7 @@
boolean batchDeleteDevice(List