diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 8fe3833..d3c9f3a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -43,7 +43,7 @@ ReturnDTO> equipmentLabelReadList(Set strSet); - EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; + EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; List allCertificate(Long equipmentId, String equipmentType); diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 8fe3833..d3c9f3a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -43,7 +43,7 @@ ReturnDTO> equipmentLabelReadList(Set strSet); - EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; + EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; List allCertificate(Long equipmentId, String equipmentType); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 4e532a7..fef1e36 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -1,11 +1,15 @@ package com.casic.missiles.service.equipment; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.baomidou.mybatisplus.extension.service.IService; import liquibase.pro.packaged.S; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -34,4 +38,6 @@ String defaultCheckDestination(Long modelId,Long companyId); + EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException; + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 8fe3833..d3c9f3a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -43,7 +43,7 @@ ReturnDTO> equipmentLabelReadList(Set strSet); - EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; + EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; List allCertificate(Long equipmentId, String equipmentType); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 4e532a7..fef1e36 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -1,11 +1,15 @@ package com.casic.missiles.service.equipment; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.baomidou.mybatisplus.extension.service.IService; import liquibase.pro.packaged.S; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -34,4 +38,6 @@ String defaultCheckDestination(Long modelId,Long companyId); + EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 78f4360..5501550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -309,7 +309,7 @@ } @Override - public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { + public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { InputStream inputStream = file.getInputStream(); List list = EasyExcel.read(inputStream) //调用read方法 //注册自定义监听器,字段校验可以在监听器内实现 @@ -319,7 +319,7 @@ .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 validImport(list); - EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); + EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ saveImport(checkResult.getUnDuplicationResult(), equipmentType); } @@ -495,7 +495,7 @@ } } - private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + private EquipmentImportDuplicationResult checkImportDuplication(List importList){ //根据设备名称、型号规格、辅助字段、出厂编号、生产厂家 判重; importList.forEach(i->{ i.setCheckDuplication(String.format("%s%s%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction(),i.getManufactureNo(),i.getManufacturer())); @@ -512,6 +512,8 @@ ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) + .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) + ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) .filter(e-> (StrUtil.isBlank(e.getManufactureNo())&&StrUtil.isBlank(importDTO.getManufactureNo())) ||(StrUtil.isNotBlank(e.getManufactureNo())&&e.getManufactureNo().equals(importDTO.getManufactureNo()))) .filter(e-> (StrUtil.isBlank(e.getManufacturer())&&StrUtil.isBlank(importDTO.getManufacturer())) @@ -525,7 +527,7 @@ } } - EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult(); + EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult<>(); checkResult.setUnDuplicationResult(unDuplicationResult); checkResult.setTableDuplication(tableDuplication); checkResult.setHasExist(hasExist); diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 8fe3833..d3c9f3a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -43,7 +43,7 @@ ReturnDTO> equipmentLabelReadList(Set strSet); - EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; + EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; List allCertificate(Long equipmentId, String equipmentType); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 4e532a7..fef1e36 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -1,11 +1,15 @@ package com.casic.missiles.service.equipment; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.baomidou.mybatisplus.extension.service.IService; import liquibase.pro.packaged.S; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -34,4 +38,6 @@ String defaultCheckDestination(Long modelId,Long companyId); + EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 78f4360..5501550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -309,7 +309,7 @@ } @Override - public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { + public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { InputStream inputStream = file.getInputStream(); List list = EasyExcel.read(inputStream) //调用read方法 //注册自定义监听器,字段校验可以在监听器内实现 @@ -319,7 +319,7 @@ .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 validImport(list); - EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); + EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ saveImport(checkResult.getUnDuplicationResult(), equipmentType); } @@ -495,7 +495,7 @@ } } - private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + private EquipmentImportDuplicationResult checkImportDuplication(List importList){ //根据设备名称、型号规格、辅助字段、出厂编号、生产厂家 判重; importList.forEach(i->{ i.setCheckDuplication(String.format("%s%s%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction(),i.getManufactureNo(),i.getManufacturer())); @@ -512,6 +512,8 @@ ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) + .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) + ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) .filter(e-> (StrUtil.isBlank(e.getManufactureNo())&&StrUtil.isBlank(importDTO.getManufactureNo())) ||(StrUtil.isNotBlank(e.getManufactureNo())&&e.getManufactureNo().equals(importDTO.getManufactureNo()))) .filter(e-> (StrUtil.isBlank(e.getManufacturer())&&StrUtil.isBlank(importDTO.getManufacturer())) @@ -525,7 +527,7 @@ } } - EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult(); + EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult<>(); checkResult.setUnDuplicationResult(unDuplicationResult); checkResult.setTableDuplication(tableDuplication); checkResult.setHasExist(hasExist); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 6510618..48c32b4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -1,22 +1,30 @@ package com.casic.missiles.service.impl.equipment; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.enums.PrefixCodeEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.equipment.EquipmentInfo; -import com.casic.missiles.model.equipment.EquipmentInfoApproval; -import com.casic.missiles.model.equipment.EquipmentModelInfo; +import com.casic.missiles.listeners.CommonExcelListener; +import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentModelInfoMapper; -import com.casic.missiles.model.equipment.EquipmentModelTechnicalTarget; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import com.casic.missiles.service.equipment.IEquipmentModelInfoService; @@ -28,10 +36,15 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; @@ -52,6 +65,7 @@ private final IEquipmentInfoService equipmentInfoService; private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; private final String XC_INSPECTABLE = "1"; // 西昌可检 private final String HK_INSPECTABLE = "2"; // 海口可检 @@ -189,4 +203,153 @@ } return null; } + + @Override + public EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List list = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(EquipmentModelImportDTO.class) + .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 + .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 + .doReadSync(); + validImport(list); + EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); + if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ + saveImport(checkResult.getUnDuplicationResult()); + } + return checkResult; + } + + private void validImport(List importList){ + List equipmentTypeDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_TYPE); + List equipmentCategoryDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_CATEGORY); + Pattern checkCycelPattern = Pattern.compile("^[1-9]\\d*$"); // 大于0的整数 + Pattern inspectablePattern = Pattern.compile("^(1|2|1,2|2,1)$"); // 1或2或两个拼接 + String validMsg = "第%d行数据校验失败:%s"; + + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + // 设备类型 + if(StrUtil.isBlank(importDTO.getEquipmentType())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空")); + }else { + if(equipmentTypeDicts.stream().noneMatch(d->d.getCode().equals(importDTO.getEquipmentType()))){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不合法")); + } + } + // 设备名称 + if (StrUtil.isBlank(importDTO.getEquipmentName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备名称不能为空")); + } + // 规格型号 + if (StrUtil.isBlank(importDTO.getModel())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "规格型号不能为空")); + } + if (StrUtil.isBlank(importDTO.getHelpInstruction())){ + importDTO.setHelpInstruction("/"); + } + + // 设备分类 + if(StrUtil.isBlank(importDTO.getCategory())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备分类不能为空")); + }else { + if(equipmentCategoryDicts.stream().noneMatch(d->d.getCode().equals(importDTO.getCategory()))){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备分类不合法")); + } + } + + // 检定周期 + if(StrUtil.isBlank(importDTO.getCheckCycle())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "检定周期不能为空")); + }else { + if(!checkCycelPattern.matcher(importDTO.getCheckCycle()).matches()){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "检定周期不合法")); + } + } + + // 计量站是否可检 + if(StrUtil.isNotBlank(importDTO.getInspectable())){ + importDTO.setInspectable(importDTO.getInspectable().replace(",",",").trim()); + if(!inspectablePattern.matcher(importDTO.getInspectable()).matches()){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "计量站是否可检不合法")); + } + if(StrUtil.isBlank(importDTO.getCategory())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "计量站可检,设备分类必填")); + } + } + } + } + + private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + //根据设备名称、型号规格、辅助字段 判重; + importList.forEach(i->{ + i.setCheckDuplication(String.format("%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction())); + }); + List modelInfoList = this.list(); + + List unDuplicationResult = new ArrayList<>(); + List hasExist = new ArrayList<>(); + List tableDuplication = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + if(modelInfoList.stream() + .filter(e-> (StrUtil.isBlank(e.getEquipmentName())&&StrUtil.isBlank(importDTO.getEquipmentName())) + ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) + .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) + ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) + .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) + ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) + .count()>0){ + hasExist.add(i+1); + }else if(importList.stream().filter(e->e.getCheckDuplication().equals(importDTO.getCheckDuplication())).count()>1){ + tableDuplication.add(i+1); + }else { + unDuplicationResult.add(importDTO); + } + } + + EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult<>(); + checkResult.setUnDuplicationResult(unDuplicationResult); + checkResult.setTableDuplication(tableDuplication); + checkResult.setHasExist(hasExist); + return checkResult; + + } + + private void saveImport(List importList){ + AuthUser user = permissionContext.getAuthService().getLoginUser(); + List modelInfoList = new ArrayList<>(); + List technicalTargetList = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + EquipmentModelInfo modelInfo = new EquipmentModelInfo(); + BeanUtil.copyProperties(importDTO, modelInfo); + modelInfo.setId(IdWorker.getId()); + modelInfo.setCheckCycle(Integer.parseInt(importDTO.getCheckCycle())); + modelInfo.setCreateUserId(user.getId()); + modelInfo.setCreateDeptId(user.getDeptId()); + modelInfo.setCreateTime(new Date()); + modelInfo.setUpdateTime(new Date()); + + modelInfoList.add(modelInfo); + + if (!StrUtil.isAllBlank(importDTO.getUncertainty(), importDTO.getMeasureRange())) { + EquipmentModelTechnicalTarget technicalTarget = new EquipmentModelTechnicalTarget(); + technicalTarget.setModelId(modelInfo.getId()); + technicalTarget.setUncertainty(importDTO.getUncertainty()); + technicalTarget.setMeasureRange(importDTO.getMeasureRange()); + technicalTarget.setCreateTime(new Date()); + technicalTarget.setUpdateTime(new Date()); + technicalTargetList.add(technicalTarget); + } + + } + if (CollUtil.isNotEmpty(modelInfoList)) { + this.saveBatch(modelInfoList); + } + if(CollUtil.isNotEmpty(technicalTargetList)){ + technicalTargetService.saveBatch(technicalTargetList); + } + } } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 39bb0ac..947a8a6 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.github.oshi diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index f02dc44..fadc9e4 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index 9037230..3da8a13 100644 --- a/casic-metering-eqpt-api/pom.xml +++ b/casic-metering-eqpt-api/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-job - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index 9f213eb..d35e7a7 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,7 +112,7 @@ @PostMapping("/info/import") @ResponseBody public ReturnDTO infoImport(@RequestParam("file") MultipartFile file, @RequestParam("equipmentType")String equipmentType) throws IOException { - EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); + EquipmentImportDuplicationResult result = equipmentInfoService.infoImport(file,equipmentType); List messages = new ArrayList<>(); if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java index ccbd668..0342eb8 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentModelInfoController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -8,6 +9,9 @@ import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.casic.missiles.model.response.ResponseData; @@ -17,8 +21,10 @@ import lombok.RequiredArgsConstructor; import org.docx4j.wml.R; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.ArrayList; import java.util.List; /** @@ -119,7 +125,24 @@ return ReturnUtil.success(modelInfoService.defaultCheckDestination(modelId,companyId)); } - + @ApiOperation("设备导入") + @PostMapping("/import") + @ResponseBody + public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + EquipmentImportDuplicationResult result = modelInfoService.batchImport(file); + List messages = new ArrayList<>(); + if(CollUtil.isNotEmpty(result.getUnDuplicationResult())){ + messages.add(String.format("成功导入%d条数据",result.getUnDuplicationResult().size())); + } + if(CollUtil.isNotEmpty(result.getHasExist())){ + messages.add(String.format("第%s行规格型号信息已存在", StrUtil.join("、",result.getHasExist()))); + } + if(CollUtil.isNotEmpty(result.getTableDuplication())){ + messages.add(String.format("第%s行规格型号信息在导入表中重复", StrUtil.join("、",result.getTableDuplication()))); + } + String message = StrUtil.join(",",messages); + return CollUtil.isNotEmpty(result.getUnDuplicationResult()) ? ReturnUtil.success(200,message) : ReturnUtil.failed(message); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 2f01d4d..d500e06 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.2.0.5 + 1.2.0.6 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index 7f16a1c..0c81de6 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java index e4fa828..9682122 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDuplicationResult.java @@ -7,9 +7,9 @@ @Getter @Setter -public class EquipmentImportDuplicationResult { +public class EquipmentImportDuplicationResult { private List hasExist; private List tableDuplication; - private List unDuplicationResult; + private List unDuplicationResult; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java new file mode 100644 index 0000000..deb399c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentModelImportDTO.java @@ -0,0 +1,52 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; + +@Getter +@Setter +public class EquipmentModelImportDTO { + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_TYPE, needValid = true, message = "设备类型不合法") + private String equipmentType; + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + private String equipmentName; + /** + * 型号规格 + */ + @ExcelProperty("规格型号") + private String model; + + @ExcelProperty("辅助字段") + private String helpInstruction; + + @ExcelProperty("设备分类") + private String category; + + @ExcelProperty("检定周期") + private String checkCycle; + + @ExcelProperty("计量站是否可检") + private String inspectable; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("测量范围") + private String measureRange; + + @ExcelProperty("不确定度或允许误差或准确度等级") + private String uncertainty; + + @ExcelIgnore + private String checkDuplication; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java index bd6f907..c47b2fc 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentModelTechnicalTarget.java @@ -48,7 +48,6 @@ */ @ApiModelProperty("不确定度或允许误差极限或准确度等级") @TableField("uncertainty") - private String uncertainty; /** diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index 58c4e62..da4807d 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.2.0.5 + 1.2.0.6 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-model - 1.2.0.5 + 1.2.0.6 com.casic casic-metering-common - 1.2.0.5 + 1.2.0.6 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 8fe3833..d3c9f3a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -43,7 +43,7 @@ ReturnDTO> equipmentLabelReadList(Set strSet); - EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; + EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException; List allCertificate(Long equipmentId, String equipmentType); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java index 4e532a7..fef1e36 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentModelInfoService.java @@ -1,11 +1,15 @@ package com.casic.missiles.service.equipment; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.model.equipment.EquipmentModelInfo; import com.baomidou.mybatisplus.extension.service.IService; import liquibase.pro.packaged.S; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; /** @@ -34,4 +38,6 @@ String defaultCheckDestination(Long modelId,Long companyId); + EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException; + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 78f4360..5501550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -309,7 +309,7 @@ } @Override - public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { + public EquipmentImportDuplicationResult infoImport(MultipartFile file, String equipmentType) throws IOException { InputStream inputStream = file.getInputStream(); List list = EasyExcel.read(inputStream) //调用read方法 //注册自定义监听器,字段校验可以在监听器内实现 @@ -319,7 +319,7 @@ .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 .doReadSync(); //开始读Excel,返回一个List集合,继续后续入库操作 validImport(list); - EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); + EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ saveImport(checkResult.getUnDuplicationResult(), equipmentType); } @@ -495,7 +495,7 @@ } } - private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + private EquipmentImportDuplicationResult checkImportDuplication(List importList){ //根据设备名称、型号规格、辅助字段、出厂编号、生产厂家 判重; importList.forEach(i->{ i.setCheckDuplication(String.format("%s%s%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction(),i.getManufactureNo(),i.getManufacturer())); @@ -512,6 +512,8 @@ ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) + .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) + ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) .filter(e-> (StrUtil.isBlank(e.getManufactureNo())&&StrUtil.isBlank(importDTO.getManufactureNo())) ||(StrUtil.isNotBlank(e.getManufactureNo())&&e.getManufactureNo().equals(importDTO.getManufactureNo()))) .filter(e-> (StrUtil.isBlank(e.getManufacturer())&&StrUtil.isBlank(importDTO.getManufacturer())) @@ -525,7 +527,7 @@ } } - EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult(); + EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult<>(); checkResult.setUnDuplicationResult(unDuplicationResult); checkResult.setTableDuplication(tableDuplication); checkResult.setHasExist(hasExist); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java index 6510618..48c32b4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentModelInfoServiceImpl.java @@ -1,22 +1,30 @@ package com.casic.missiles.service.impl.equipment; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.datascope.ScopeEnums; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.equipment.EquipmentImportDuplicationResult; +import com.casic.missiles.dto.equipment.EquipmentModelImportDTO; import com.casic.missiles.dto.equipment.EquipmentModelQueryForm; import com.casic.missiles.enums.PrefixCodeEnum; import com.casic.missiles.exception.BusinessException; -import com.casic.missiles.model.equipment.EquipmentInfo; -import com.casic.missiles.model.equipment.EquipmentInfoApproval; -import com.casic.missiles.model.equipment.EquipmentModelInfo; +import com.casic.missiles.listeners.CommonExcelListener; +import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentModelInfoMapper; -import com.casic.missiles.model.equipment.EquipmentModelTechnicalTarget; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; import com.casic.missiles.service.equipment.IEquipmentInfoService; import com.casic.missiles.service.equipment.IEquipmentModelInfoService; @@ -28,10 +36,15 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +import java.util.regex.Pattern; import java.util.stream.Collectors; import static com.casic.missiles.enums.equipment.EquipmentTypeEnum.EQUIPMENT_TYPE_NORMAL; @@ -52,6 +65,7 @@ private final IEquipmentInfoService equipmentInfoService; private final IEquipmentInfoApprovalService equipmentInfoApprovalService; private final AbstractPermissionContext permissionContext; + private final AbstractDictService dictService; private final String XC_INSPECTABLE = "1"; // 西昌可检 private final String HK_INSPECTABLE = "2"; // 海口可检 @@ -189,4 +203,153 @@ } return null; } + + @Override + public EquipmentImportDuplicationResult batchImport(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List list = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(EquipmentModelImportDTO.class) + .sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据 + .headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行 + .doReadSync(); + validImport(list); + EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); + if(CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())){ + saveImport(checkResult.getUnDuplicationResult()); + } + return checkResult; + } + + private void validImport(List importList){ + List equipmentTypeDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_TYPE); + List equipmentCategoryDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_CATEGORY); + Pattern checkCycelPattern = Pattern.compile("^[1-9]\\d*$"); // 大于0的整数 + Pattern inspectablePattern = Pattern.compile("^(1|2|1,2|2,1)$"); // 1或2或两个拼接 + String validMsg = "第%d行数据校验失败:%s"; + + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + // 设备类型 + if(StrUtil.isBlank(importDTO.getEquipmentType())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不能为空")); + }else { + if(equipmentTypeDicts.stream().noneMatch(d->d.getCode().equals(importDTO.getEquipmentType()))){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备类型不合法")); + } + } + // 设备名称 + if (StrUtil.isBlank(importDTO.getEquipmentName())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备名称不能为空")); + } + // 规格型号 + if (StrUtil.isBlank(importDTO.getModel())) { + throw new BusinessException(1500, String.format(validMsg, i + 1, "规格型号不能为空")); + } + if (StrUtil.isBlank(importDTO.getHelpInstruction())){ + importDTO.setHelpInstruction("/"); + } + + // 设备分类 + if(StrUtil.isBlank(importDTO.getCategory())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备分类不能为空")); + }else { + if(equipmentCategoryDicts.stream().noneMatch(d->d.getCode().equals(importDTO.getCategory()))){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "设备分类不合法")); + } + } + + // 检定周期 + if(StrUtil.isBlank(importDTO.getCheckCycle())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "检定周期不能为空")); + }else { + if(!checkCycelPattern.matcher(importDTO.getCheckCycle()).matches()){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "检定周期不合法")); + } + } + + // 计量站是否可检 + if(StrUtil.isNotBlank(importDTO.getInspectable())){ + importDTO.setInspectable(importDTO.getInspectable().replace(",",",").trim()); + if(!inspectablePattern.matcher(importDTO.getInspectable()).matches()){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "计量站是否可检不合法")); + } + if(StrUtil.isBlank(importDTO.getCategory())){ + throw new BusinessException(1500, String.format(validMsg, i + 1, "计量站可检,设备分类必填")); + } + } + } + } + + private EquipmentImportDuplicationResult checkImportDuplication(List importList){ + //根据设备名称、型号规格、辅助字段 判重; + importList.forEach(i->{ + i.setCheckDuplication(String.format("%s%s%s",i.getEquipmentName(),i.getModel(),i.getHelpInstruction())); + }); + List modelInfoList = this.list(); + + List unDuplicationResult = new ArrayList<>(); + List hasExist = new ArrayList<>(); + List tableDuplication = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + if(modelInfoList.stream() + .filter(e-> (StrUtil.isBlank(e.getEquipmentName())&&StrUtil.isBlank(importDTO.getEquipmentName())) + ||(StrUtil.isNotBlank(e.getEquipmentName())&&e.getEquipmentName().equals(importDTO.getEquipmentName()))) + .filter(e-> (StrUtil.isBlank(e.getModel())&&StrUtil.isBlank(importDTO.getModel())) + ||(StrUtil.isNotBlank(e.getModel())&&e.getModel().equals(importDTO.getModel()))) + .filter(e-> (StrUtil.isBlank(e.getHelpInstruction())&&StrUtil.isBlank(importDTO.getHelpInstruction())) + ||(StrUtil.isNotBlank(e.getHelpInstruction())&&e.getHelpInstruction().equals(importDTO.getHelpInstruction()))) + .count()>0){ + hasExist.add(i+1); + }else if(importList.stream().filter(e->e.getCheckDuplication().equals(importDTO.getCheckDuplication())).count()>1){ + tableDuplication.add(i+1); + }else { + unDuplicationResult.add(importDTO); + } + } + + EquipmentImportDuplicationResult checkResult = new EquipmentImportDuplicationResult<>(); + checkResult.setUnDuplicationResult(unDuplicationResult); + checkResult.setTableDuplication(tableDuplication); + checkResult.setHasExist(hasExist); + return checkResult; + + } + + private void saveImport(List importList){ + AuthUser user = permissionContext.getAuthService().getLoginUser(); + List modelInfoList = new ArrayList<>(); + List technicalTargetList = new ArrayList<>(); + for (int i = 0; i < importList.size(); i++) { + EquipmentModelImportDTO importDTO = importList.get(i); + EquipmentModelInfo modelInfo = new EquipmentModelInfo(); + BeanUtil.copyProperties(importDTO, modelInfo); + modelInfo.setId(IdWorker.getId()); + modelInfo.setCheckCycle(Integer.parseInt(importDTO.getCheckCycle())); + modelInfo.setCreateUserId(user.getId()); + modelInfo.setCreateDeptId(user.getDeptId()); + modelInfo.setCreateTime(new Date()); + modelInfo.setUpdateTime(new Date()); + + modelInfoList.add(modelInfo); + + if (!StrUtil.isAllBlank(importDTO.getUncertainty(), importDTO.getMeasureRange())) { + EquipmentModelTechnicalTarget technicalTarget = new EquipmentModelTechnicalTarget(); + technicalTarget.setModelId(modelInfo.getId()); + technicalTarget.setUncertainty(importDTO.getUncertainty()); + technicalTarget.setMeasureRange(importDTO.getMeasureRange()); + technicalTarget.setCreateTime(new Date()); + technicalTarget.setUpdateTime(new Date()); + technicalTargetList.add(technicalTarget); + } + + } + if (CollUtil.isNotEmpty(modelInfoList)) { + this.saveBatch(modelInfoList); + } + if(CollUtil.isNotEmpty(technicalTargetList)){ + technicalTargetService.saveBatch(technicalTargetList); + } + } } diff --git a/pom.xml b/pom.xml index d746842..862573c 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.casic casic-metering-eqpt-xichang - 1.2.0.5 + 1.2.0.6 casic-metering-eqpt-xichang pom