diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java index 2c16ea5..f7a69e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.dto.status.EquipmentBorrowQueryForm; import com.casic.missiles.dto.subcontract.SubcontractorQueryForm; import com.casic.missiles.enums.ApprovalStatusEnum; @@ -22,11 +24,13 @@ import com.casic.missiles.service.system.ISystemDeptService; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.RequiredArgsConstructor; +import org.docx4j.wml.R; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; import static com.casic.missiles.enums.PrefixCodeEnum.EQUIPMENT_STATUS_BORROW_PREFIX; import static com.casic.missiles.enums.equipment.StatusApprovalTypeEnum.DELAY; import static com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum.EQUIPMENT_BORROW_BEAN_NAME; @@ -50,7 +54,6 @@ private final IEquipmentBorrowRelationService relationService; public String getFormId(Long borrowDeptId){ - // todo 有问题:连-连 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); Long userDeptId = authUser.getDeptId(); @@ -121,6 +124,21 @@ } @Override + public Page listPage(Page page, EquipmentBorrowQueryForm queryForm) { + QueryWrapper queryWrapper = commonQuery(queryForm); + if(StrUtil.isNotEmpty(queryForm.getApprovalStatus())){ + queryWrapper.eq("approval_status",queryForm.getApprovalStatus()); + }else { + queryWrapper.ne("approval_status",ApprovalStatusEnum.DRAFT); + } + AuthUser user = permissionContext.getAuthService().getLoginUser(); + queryWrapper.eq("approval_user_id",user.getId()); + page = this.page(page,queryWrapper); + page.getRecords().forEach(this::warpper); + return page; + } + + @Override public > E page(E page, Wrapper queryWrapper) { List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); page.setRecords(list); @@ -130,11 +148,48 @@ @Override public Page allPage(Page page, EquipmentBorrowQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + queryWrapper.in("dept_id",dataScope.getDeptIds()); + } page = this.page(page,queryWrapper); page.getRecords().forEach(this::warpper); return page; } + private List getToBeApprovedList(){ + List toBeApprovedList = baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + toBeApprovedList.addAll(baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return toBeApprovedList; + } + + @Override + public Page toApprovalListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.toApprovalListPage(page, queryForm, getToBeApprovedList()); + } + + @Override + public List toApprovalList(String formId) { + return super.toApprovalList(getToBeApprovedList()); + } + + private List getAlreadyApprovalList(){ + List approvedIds = baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + approvedIds.addAll( baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return approvedIds; + } + + @Override + public Page approvedListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.approvedListPage(page, queryForm,getAlreadyApprovalList()); + } + + @Override + public List approvedList(String formId) { + return super.approvedList(getAlreadyApprovalList()); + } + @Override public void setBizNo(EquipmentBorrow obj) { obj.setBizNo(obj.getApprovalNo()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java index 67b62bc..200f29e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java @@ -64,7 +64,7 @@ dataScope.setScopeName("e.dept_id"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java index 2c16ea5..f7a69e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.dto.status.EquipmentBorrowQueryForm; import com.casic.missiles.dto.subcontract.SubcontractorQueryForm; import com.casic.missiles.enums.ApprovalStatusEnum; @@ -22,11 +24,13 @@ import com.casic.missiles.service.system.ISystemDeptService; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.RequiredArgsConstructor; +import org.docx4j.wml.R; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; import static com.casic.missiles.enums.PrefixCodeEnum.EQUIPMENT_STATUS_BORROW_PREFIX; import static com.casic.missiles.enums.equipment.StatusApprovalTypeEnum.DELAY; import static com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum.EQUIPMENT_BORROW_BEAN_NAME; @@ -50,7 +54,6 @@ private final IEquipmentBorrowRelationService relationService; public String getFormId(Long borrowDeptId){ - // todo 有问题:连-连 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); Long userDeptId = authUser.getDeptId(); @@ -121,6 +124,21 @@ } @Override + public Page listPage(Page page, EquipmentBorrowQueryForm queryForm) { + QueryWrapper queryWrapper = commonQuery(queryForm); + if(StrUtil.isNotEmpty(queryForm.getApprovalStatus())){ + queryWrapper.eq("approval_status",queryForm.getApprovalStatus()); + }else { + queryWrapper.ne("approval_status",ApprovalStatusEnum.DRAFT); + } + AuthUser user = permissionContext.getAuthService().getLoginUser(); + queryWrapper.eq("approval_user_id",user.getId()); + page = this.page(page,queryWrapper); + page.getRecords().forEach(this::warpper); + return page; + } + + @Override public > E page(E page, Wrapper queryWrapper) { List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); page.setRecords(list); @@ -130,11 +148,48 @@ @Override public Page allPage(Page page, EquipmentBorrowQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + queryWrapper.in("dept_id",dataScope.getDeptIds()); + } page = this.page(page,queryWrapper); page.getRecords().forEach(this::warpper); return page; } + private List getToBeApprovedList(){ + List toBeApprovedList = baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + toBeApprovedList.addAll(baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return toBeApprovedList; + } + + @Override + public Page toApprovalListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.toApprovalListPage(page, queryForm, getToBeApprovedList()); + } + + @Override + public List toApprovalList(String formId) { + return super.toApprovalList(getToBeApprovedList()); + } + + private List getAlreadyApprovalList(){ + List approvedIds = baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + approvedIds.addAll( baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return approvedIds; + } + + @Override + public Page approvedListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.approvedListPage(page, queryForm,getAlreadyApprovalList()); + } + + @Override + public List approvedList(String formId) { + return super.approvedList(getAlreadyApprovalList()); + } + @Override public void setBizNo(EquipmentBorrow obj) { obj.setBizNo(obj.getApprovalNo()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java index 67b62bc..200f29e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java @@ -64,7 +64,7 @@ dataScope.setScopeName("e.dept_id"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index cf3cea5..cf592a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -286,7 +286,7 @@ queryWrapper.like("info.equipment_no", queryForm.getEquipmentNo()); } if (StrUtil.isNotEmpty(queryForm.getEquipmentName())) { - queryWrapper.like("info.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq("info.equipment_name", queryForm.getEquipmentName()); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getApprovalReason()),"approval.approval_reason",queryForm.getApprovalReason()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"info.model",queryForm.getModel()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index fd88c31..a3cc46c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -19,6 +19,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.system.RfidImportDTO; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -49,6 +50,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.text.MessageFormat; import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -125,7 +127,7 @@ EasyExcel.read(excelFile.getInputStream(), SubcontractCertificateImportDTO.class, listener) .headRowNumber(1).autoTrim(true).sheet(0).doReadSync(); List certificateImportList = listener.getList(); - validImport(certificateImportList); + validImport(certificateImportList,true); List minioNameList = minioUtil.upload(multipartFileList.toArray(new MultipartFile[multipartFileList.size()])); @@ -149,7 +151,7 @@ return ReturnUtil.success(); } - void validImport(List list) { + void validImport(List list,boolean validReport) { if (CollectionUtils.isEmpty(list)) { throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } @@ -231,7 +233,7 @@ } } // 证书文件 - if (StrUtil.isBlank(importDTO.getCertificateReport())) { + if (validReport && StrUtil.isBlank(importDTO.getCertificateReport())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "证书报告附件不能为空")); } @@ -242,18 +244,33 @@ AuthUser user = permissionContext.getAuthService().getLoginUser(); List resultList = new ArrayList<>(); list.forEach(cert -> { - List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); - excelFileList.forEach(f -> { + if(StrUtil.isNotEmpty(cert.getCertificateReport())){ + List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); + excelFileList.forEach(f -> { + SubcontractCertificate certificate = new SubcontractCertificate(); + BeanUtil.copyProperties(cert, certificate); + if(ObjectUtil.isNotEmpty(minioMap)){ + certificate.setCertificateReport(minioMap.get(f)); + } + + certificate.setCreateUserId(user.getId()); + certificate.setCreateUserName(user.getName()); + certificate.setCreateDeptId(user.getDeptId()); + certificate.setCreateTime(new Date()); + certificate.setUpdateTime(new Date()); + resultList.add(certificate); + }); + }else { SubcontractCertificate certificate = new SubcontractCertificate(); BeanUtil.copyProperties(cert, certificate); - certificate.setCertificateReport(minioMap.get(f)); certificate.setCreateUserId(user.getId()); certificate.setCreateUserName(user.getName()); certificate.setCreateDeptId(user.getDeptId()); certificate.setCreateTime(new Date()); certificate.setUpdateTime(new Date()); resultList.add(certificate); - }); + } + }); // 保存证书信息 this.saveBatch(resultList); @@ -265,10 +282,144 @@ subList.sort(Comparator.comparing(SubcontractCertificate::getCertificateValid)); } SubcontractCertificate latest = subList.get(subList.size() - 1); - equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify()); + equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify(),latest.getLimitInstruction()); } } + @Override + public void batchImportInfo(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List certificateImportList = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(SubcontractCertificateImportDTO.class) + .sheet(0) + .headRowNumber(1) + .doReadSync(); + validImport(certificateImportList,false); + saveImport(certificateImportList,null); + } + + @Override + public void batchImportFiles(MultipartFile file) throws IOException{ + //获取文件输入流,压缩文件直接读取 + InputStream in = new BufferedInputStream(file.getInputStream()); + ZipInputStream zin = new ZipInputStream(in, Charset.forName("GBK")); + //MultipartFile转File,外层zip + File realFile = FileUtil.multipartFileToFile(file); + ZipFile zipFile = new ZipFile(realFile, Charset.forName("GBK")); + BufferedInputStream bs = new BufferedInputStream(zin); + ZipEntry ze; + List multipartFileList = new ArrayList<>(); + try { + //读取zip包中pdf证书文件 + while ((ze = zin.getNextEntry()) != null) { + if (ze.isDirectory()) { + continue; + } + if (ze.toString().endsWith("pdf")) { + InputStream inputStream = zipFile.getInputStream(ze); + //File转MultipartFile,zip内部文件 + MultipartFile multipartFile = FileUtil.getMultipartFile(inputStream, ze.getName()); + multipartFileList.add(multipartFile); + } + } + if (CollectionUtils.isEmpty(multipartFileList)) { + //无证书或证书文件非pdf或无Excel + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_CERTIFICATE_NO_FILES); + } + + Map> fileMap = validAndConvertFiles(multipartFileList); + List allFiles = new ArrayList<>(); + List allFileNames = new ArrayList<>(); + Map> fileNameMap = new HashMap<>(); + for (Long certId : fileMap.keySet()) { + List itemFiles = fileMap.get(certId); + +// int fileCount = 1; + for (MultipartFile itemFile : itemFiles) { + String newFileName = itemFile.getOriginalFilename(); +// String[] split = oldName.split("\\."); +// String newFileName = split[0] + "_附件" + String.valueOf(fileCount++) + "." + split[1]; + + if(fileNameMap.containsKey(certId)){ + fileNameMap.get(certId).add(newFileName); + }else { + List itemFileNames = new ArrayList<>(); + itemFileNames.add(newFileName); + fileNameMap.put(certId, itemFileNames); + } + + allFiles.add(itemFile); + allFileNames.add(newFileName); + } + } + + + List minioNameList = minioUtil.upload(allFiles.toArray(new MultipartFile[allFiles.size()]),allFileNames); + + List certificateList = this.list(new QueryWrapper().in("id",fileNameMap.keySet())); + for (SubcontractCertificate certificate : certificateList) { + List fileNames = fileNameMap.get(certificate.getId()); + certificate.setCertificateReport(StrUtil.join(";",fileNames)); + } + this.updateBatchById(certificateList); + + } catch (ExcelDataConvertException ex) { + log.error(ex.getMessage()); + throw new BusinessException(1500, String.format("第%d行,第%d列数据转换失败:日期格式不正确", ex.getRowIndex(), ex.getColumnIndex() + 1)); + + } finally { + in.close(); + zin.closeEntry(); + zin.close(); + bs.close(); + } + } + + private Map> validAndConvertFiles(List multipartFileList){ + List list = this.baseMapper.listScope(null,null); + Map> fileMaps = new HashMap<>(); + for (MultipartFile multipartFile : multipartFileList) { + String fileFullName = multipartFile.getOriginalFilename(); + + if(StrUtil.isBlank(fileFullName)){ + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + // 移除文件扩展名 + String baseName = fileFullName.substring(0, fileFullName.lastIndexOf('.')); + // 分割字符串 + String[] parts = baseName.split("_"); + if (parts.length < 4) { + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + String certificateNo = parts[parts.length - 1]; // 证书编号 + String manufactureNo = parts[parts.length - 2]; // 出厂编号 + String model = String.join("_", Arrays.copyOfRange(parts, 1, parts.length - 2)); // 规格型号 + String equipmentName = parts[0]; // 设备名称 + + List certificates = list.stream().filter(c->certificateNo.equals(c.getCertificateNo()) + &&manufactureNo.equals(c.getEquipmentManufactureNo())&&model.equals(c.getEquipmentModel())&&equipmentName.equals(c.getEquipmentName())).collect(Collectors.toList()); + + if(CollUtil.isEmpty(certificates)||certificates.size()<1){ + throw new BusinessException(501,MessageFormat.format("{0} 找不到证书信息",fileFullName)); + }else if(certificates.size()>1){ + throw new BusinessException(501,MessageFormat.format("{0} 找到多个证书信息",fileFullName)); + } + + Long certificateId = certificates.get(0).getId(); + if(fileMaps.containsKey(certificateId)){ + fileMaps.get(certificateId).add(multipartFile); + }else { + List mapList = new ArrayList<>(); + mapList.add(multipartFile); + fileMaps.put(certificateId, mapList); + } + + } + return fileMaps; + } @Override @Transactional @@ -372,7 +523,7 @@ queryWrapper.like("e.equipment_no", equipmentNo); } if (StrUtil.isNotEmpty(equipmentName)) { - queryWrapper.like("e.equipment_name", equipmentName); + queryWrapper.eq("e.equipment_name", equipmentName); } if (StrUtil.isNotEmpty(equipmentManufactureNo)) { queryWrapper.like("e.manufacture_no", equipmentManufactureNo); @@ -395,4 +546,9 @@ queryWrapper.le(StrUtil.isNotEmpty(checkDateEnd), "c.check_date", checkDateEnd); return queryWrapper; } + + @Override + public String getLastSubcontractor(Long equipmentId) { + return this.baseMapper.getLastSubcontractor(equipmentId); + } } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java index 2c16ea5..f7a69e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.dto.status.EquipmentBorrowQueryForm; import com.casic.missiles.dto.subcontract.SubcontractorQueryForm; import com.casic.missiles.enums.ApprovalStatusEnum; @@ -22,11 +24,13 @@ import com.casic.missiles.service.system.ISystemDeptService; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.RequiredArgsConstructor; +import org.docx4j.wml.R; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; import static com.casic.missiles.enums.PrefixCodeEnum.EQUIPMENT_STATUS_BORROW_PREFIX; import static com.casic.missiles.enums.equipment.StatusApprovalTypeEnum.DELAY; import static com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum.EQUIPMENT_BORROW_BEAN_NAME; @@ -50,7 +54,6 @@ private final IEquipmentBorrowRelationService relationService; public String getFormId(Long borrowDeptId){ - // todo 有问题:连-连 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); Long userDeptId = authUser.getDeptId(); @@ -121,6 +124,21 @@ } @Override + public Page listPage(Page page, EquipmentBorrowQueryForm queryForm) { + QueryWrapper queryWrapper = commonQuery(queryForm); + if(StrUtil.isNotEmpty(queryForm.getApprovalStatus())){ + queryWrapper.eq("approval_status",queryForm.getApprovalStatus()); + }else { + queryWrapper.ne("approval_status",ApprovalStatusEnum.DRAFT); + } + AuthUser user = permissionContext.getAuthService().getLoginUser(); + queryWrapper.eq("approval_user_id",user.getId()); + page = this.page(page,queryWrapper); + page.getRecords().forEach(this::warpper); + return page; + } + + @Override public > E page(E page, Wrapper queryWrapper) { List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); page.setRecords(list); @@ -130,11 +148,48 @@ @Override public Page allPage(Page page, EquipmentBorrowQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + queryWrapper.in("dept_id",dataScope.getDeptIds()); + } page = this.page(page,queryWrapper); page.getRecords().forEach(this::warpper); return page; } + private List getToBeApprovedList(){ + List toBeApprovedList = baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + toBeApprovedList.addAll(baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return toBeApprovedList; + } + + @Override + public Page toApprovalListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.toApprovalListPage(page, queryForm, getToBeApprovedList()); + } + + @Override + public List toApprovalList(String formId) { + return super.toApprovalList(getToBeApprovedList()); + } + + private List getAlreadyApprovalList(){ + List approvedIds = baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + approvedIds.addAll( baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return approvedIds; + } + + @Override + public Page approvedListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.approvedListPage(page, queryForm,getAlreadyApprovalList()); + } + + @Override + public List approvedList(String formId) { + return super.approvedList(getAlreadyApprovalList()); + } + @Override public void setBizNo(EquipmentBorrow obj) { obj.setBizNo(obj.getApprovalNo()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java index 67b62bc..200f29e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java @@ -64,7 +64,7 @@ dataScope.setScopeName("e.dept_id"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index cf3cea5..cf592a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -286,7 +286,7 @@ queryWrapper.like("info.equipment_no", queryForm.getEquipmentNo()); } if (StrUtil.isNotEmpty(queryForm.getEquipmentName())) { - queryWrapper.like("info.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq("info.equipment_name", queryForm.getEquipmentName()); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getApprovalReason()),"approval.approval_reason",queryForm.getApprovalReason()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"info.model",queryForm.getModel()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index fd88c31..a3cc46c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -19,6 +19,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.system.RfidImportDTO; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -49,6 +50,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.text.MessageFormat; import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -125,7 +127,7 @@ EasyExcel.read(excelFile.getInputStream(), SubcontractCertificateImportDTO.class, listener) .headRowNumber(1).autoTrim(true).sheet(0).doReadSync(); List certificateImportList = listener.getList(); - validImport(certificateImportList); + validImport(certificateImportList,true); List minioNameList = minioUtil.upload(multipartFileList.toArray(new MultipartFile[multipartFileList.size()])); @@ -149,7 +151,7 @@ return ReturnUtil.success(); } - void validImport(List list) { + void validImport(List list,boolean validReport) { if (CollectionUtils.isEmpty(list)) { throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } @@ -231,7 +233,7 @@ } } // 证书文件 - if (StrUtil.isBlank(importDTO.getCertificateReport())) { + if (validReport && StrUtil.isBlank(importDTO.getCertificateReport())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "证书报告附件不能为空")); } @@ -242,18 +244,33 @@ AuthUser user = permissionContext.getAuthService().getLoginUser(); List resultList = new ArrayList<>(); list.forEach(cert -> { - List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); - excelFileList.forEach(f -> { + if(StrUtil.isNotEmpty(cert.getCertificateReport())){ + List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); + excelFileList.forEach(f -> { + SubcontractCertificate certificate = new SubcontractCertificate(); + BeanUtil.copyProperties(cert, certificate); + if(ObjectUtil.isNotEmpty(minioMap)){ + certificate.setCertificateReport(minioMap.get(f)); + } + + certificate.setCreateUserId(user.getId()); + certificate.setCreateUserName(user.getName()); + certificate.setCreateDeptId(user.getDeptId()); + certificate.setCreateTime(new Date()); + certificate.setUpdateTime(new Date()); + resultList.add(certificate); + }); + }else { SubcontractCertificate certificate = new SubcontractCertificate(); BeanUtil.copyProperties(cert, certificate); - certificate.setCertificateReport(minioMap.get(f)); certificate.setCreateUserId(user.getId()); certificate.setCreateUserName(user.getName()); certificate.setCreateDeptId(user.getDeptId()); certificate.setCreateTime(new Date()); certificate.setUpdateTime(new Date()); resultList.add(certificate); - }); + } + }); // 保存证书信息 this.saveBatch(resultList); @@ -265,10 +282,144 @@ subList.sort(Comparator.comparing(SubcontractCertificate::getCertificateValid)); } SubcontractCertificate latest = subList.get(subList.size() - 1); - equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify()); + equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify(),latest.getLimitInstruction()); } } + @Override + public void batchImportInfo(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List certificateImportList = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(SubcontractCertificateImportDTO.class) + .sheet(0) + .headRowNumber(1) + .doReadSync(); + validImport(certificateImportList,false); + saveImport(certificateImportList,null); + } + + @Override + public void batchImportFiles(MultipartFile file) throws IOException{ + //获取文件输入流,压缩文件直接读取 + InputStream in = new BufferedInputStream(file.getInputStream()); + ZipInputStream zin = new ZipInputStream(in, Charset.forName("GBK")); + //MultipartFile转File,外层zip + File realFile = FileUtil.multipartFileToFile(file); + ZipFile zipFile = new ZipFile(realFile, Charset.forName("GBK")); + BufferedInputStream bs = new BufferedInputStream(zin); + ZipEntry ze; + List multipartFileList = new ArrayList<>(); + try { + //读取zip包中pdf证书文件 + while ((ze = zin.getNextEntry()) != null) { + if (ze.isDirectory()) { + continue; + } + if (ze.toString().endsWith("pdf")) { + InputStream inputStream = zipFile.getInputStream(ze); + //File转MultipartFile,zip内部文件 + MultipartFile multipartFile = FileUtil.getMultipartFile(inputStream, ze.getName()); + multipartFileList.add(multipartFile); + } + } + if (CollectionUtils.isEmpty(multipartFileList)) { + //无证书或证书文件非pdf或无Excel + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_CERTIFICATE_NO_FILES); + } + + Map> fileMap = validAndConvertFiles(multipartFileList); + List allFiles = new ArrayList<>(); + List allFileNames = new ArrayList<>(); + Map> fileNameMap = new HashMap<>(); + for (Long certId : fileMap.keySet()) { + List itemFiles = fileMap.get(certId); + +// int fileCount = 1; + for (MultipartFile itemFile : itemFiles) { + String newFileName = itemFile.getOriginalFilename(); +// String[] split = oldName.split("\\."); +// String newFileName = split[0] + "_附件" + String.valueOf(fileCount++) + "." + split[1]; + + if(fileNameMap.containsKey(certId)){ + fileNameMap.get(certId).add(newFileName); + }else { + List itemFileNames = new ArrayList<>(); + itemFileNames.add(newFileName); + fileNameMap.put(certId, itemFileNames); + } + + allFiles.add(itemFile); + allFileNames.add(newFileName); + } + } + + + List minioNameList = minioUtil.upload(allFiles.toArray(new MultipartFile[allFiles.size()]),allFileNames); + + List certificateList = this.list(new QueryWrapper().in("id",fileNameMap.keySet())); + for (SubcontractCertificate certificate : certificateList) { + List fileNames = fileNameMap.get(certificate.getId()); + certificate.setCertificateReport(StrUtil.join(";",fileNames)); + } + this.updateBatchById(certificateList); + + } catch (ExcelDataConvertException ex) { + log.error(ex.getMessage()); + throw new BusinessException(1500, String.format("第%d行,第%d列数据转换失败:日期格式不正确", ex.getRowIndex(), ex.getColumnIndex() + 1)); + + } finally { + in.close(); + zin.closeEntry(); + zin.close(); + bs.close(); + } + } + + private Map> validAndConvertFiles(List multipartFileList){ + List list = this.baseMapper.listScope(null,null); + Map> fileMaps = new HashMap<>(); + for (MultipartFile multipartFile : multipartFileList) { + String fileFullName = multipartFile.getOriginalFilename(); + + if(StrUtil.isBlank(fileFullName)){ + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + // 移除文件扩展名 + String baseName = fileFullName.substring(0, fileFullName.lastIndexOf('.')); + // 分割字符串 + String[] parts = baseName.split("_"); + if (parts.length < 4) { + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + String certificateNo = parts[parts.length - 1]; // 证书编号 + String manufactureNo = parts[parts.length - 2]; // 出厂编号 + String model = String.join("_", Arrays.copyOfRange(parts, 1, parts.length - 2)); // 规格型号 + String equipmentName = parts[0]; // 设备名称 + + List certificates = list.stream().filter(c->certificateNo.equals(c.getCertificateNo()) + &&manufactureNo.equals(c.getEquipmentManufactureNo())&&model.equals(c.getEquipmentModel())&&equipmentName.equals(c.getEquipmentName())).collect(Collectors.toList()); + + if(CollUtil.isEmpty(certificates)||certificates.size()<1){ + throw new BusinessException(501,MessageFormat.format("{0} 找不到证书信息",fileFullName)); + }else if(certificates.size()>1){ + throw new BusinessException(501,MessageFormat.format("{0} 找到多个证书信息",fileFullName)); + } + + Long certificateId = certificates.get(0).getId(); + if(fileMaps.containsKey(certificateId)){ + fileMaps.get(certificateId).add(multipartFile); + }else { + List mapList = new ArrayList<>(); + mapList.add(multipartFile); + fileMaps.put(certificateId, mapList); + } + + } + return fileMaps; + } @Override @Transactional @@ -372,7 +523,7 @@ queryWrapper.like("e.equipment_no", equipmentNo); } if (StrUtil.isNotEmpty(equipmentName)) { - queryWrapper.like("e.equipment_name", equipmentName); + queryWrapper.eq("e.equipment_name", equipmentName); } if (StrUtil.isNotEmpty(equipmentManufactureNo)) { queryWrapper.like("e.manufacture_no", equipmentManufactureNo); @@ -395,4 +546,9 @@ queryWrapper.le(StrUtil.isNotEmpty(checkDateEnd), "c.check_date", checkDateEnd); return queryWrapper; } + + @Override + public String getLastSubcontractor(Long equipmentId) { + return this.baseMapper.getLastSubcontractor(equipmentId); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java index 5f68411..ad702af 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java @@ -7,6 +7,9 @@ import com.casic.missiles.model.subcontract.SubcontractReviewRelation; import com.casic.missiles.service.subcontract.ISubcontractOrderRelationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.DictCodeUtils; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; @@ -20,8 +23,10 @@ * @since 2024-01-18 */ @Service +@RequiredArgsConstructor public class SubcontractOrderRelationServiceImpl extends ServiceImpl implements ISubcontractOrderRelationService { + private final ISystemDeptService deptService; @Override public void saveByOrder(Long orderId, List list) { this.removeByOrder(orderId); @@ -40,6 +45,15 @@ @Override public List listByOrder(Long orderId) { - return this.baseMapper.listByOrder(orderId); + List list = this.baseMapper.listByOrder(orderId); + for (SubcontractOrderRelation relation : list) { + relation.setDeptName(deptService.getParentsDeptName(relation.getDeptId())); + try { + DictCodeUtils.convertDictCodeToName(relation); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return list; } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java index 8ef870c..be7554b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java @@ -131,6 +131,7 @@ if(StrUtil.isNotEmpty(queryForm.getCreateTimeEnd())){ queryWrapper.le("create_time",queryForm.getCreateTimeEnd()); } + queryWrapper.eq("is_del","0"); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCreateDeptName()),"create_dept_name",queryForm.getCreateDeptName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getTestAbility()),"test_ability",queryForm.getTestAbility()); return queryWrapper; @@ -149,6 +150,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); //queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); queryWrapper.like("test_ability",equipmentName); + queryWrapper.eq("is_del","0"); return this.list(queryWrapper); } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java index 2c16ea5..f7a69e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.dto.status.EquipmentBorrowQueryForm; import com.casic.missiles.dto.subcontract.SubcontractorQueryForm; import com.casic.missiles.enums.ApprovalStatusEnum; @@ -22,11 +24,13 @@ import com.casic.missiles.service.system.ISystemDeptService; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.RequiredArgsConstructor; +import org.docx4j.wml.R; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; import static com.casic.missiles.enums.PrefixCodeEnum.EQUIPMENT_STATUS_BORROW_PREFIX; import static com.casic.missiles.enums.equipment.StatusApprovalTypeEnum.DELAY; import static com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum.EQUIPMENT_BORROW_BEAN_NAME; @@ -50,7 +54,6 @@ private final IEquipmentBorrowRelationService relationService; public String getFormId(Long borrowDeptId){ - // todo 有问题:连-连 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); Long userDeptId = authUser.getDeptId(); @@ -121,6 +124,21 @@ } @Override + public Page listPage(Page page, EquipmentBorrowQueryForm queryForm) { + QueryWrapper queryWrapper = commonQuery(queryForm); + if(StrUtil.isNotEmpty(queryForm.getApprovalStatus())){ + queryWrapper.eq("approval_status",queryForm.getApprovalStatus()); + }else { + queryWrapper.ne("approval_status",ApprovalStatusEnum.DRAFT); + } + AuthUser user = permissionContext.getAuthService().getLoginUser(); + queryWrapper.eq("approval_user_id",user.getId()); + page = this.page(page,queryWrapper); + page.getRecords().forEach(this::warpper); + return page; + } + + @Override public > E page(E page, Wrapper queryWrapper) { List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); page.setRecords(list); @@ -130,11 +148,48 @@ @Override public Page allPage(Page page, EquipmentBorrowQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + queryWrapper.in("dept_id",dataScope.getDeptIds()); + } page = this.page(page,queryWrapper); page.getRecords().forEach(this::warpper); return page; } + private List getToBeApprovedList(){ + List toBeApprovedList = baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + toBeApprovedList.addAll(baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return toBeApprovedList; + } + + @Override + public Page toApprovalListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.toApprovalListPage(page, queryForm, getToBeApprovedList()); + } + + @Override + public List toApprovalList(String formId) { + return super.toApprovalList(getToBeApprovedList()); + } + + private List getAlreadyApprovalList(){ + List approvedIds = baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + approvedIds.addAll( baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return approvedIds; + } + + @Override + public Page approvedListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.approvedListPage(page, queryForm,getAlreadyApprovalList()); + } + + @Override + public List approvedList(String formId) { + return super.approvedList(getAlreadyApprovalList()); + } + @Override public void setBizNo(EquipmentBorrow obj) { obj.setBizNo(obj.getApprovalNo()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java index 67b62bc..200f29e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java @@ -64,7 +64,7 @@ dataScope.setScopeName("e.dept_id"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index cf3cea5..cf592a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -286,7 +286,7 @@ queryWrapper.like("info.equipment_no", queryForm.getEquipmentNo()); } if (StrUtil.isNotEmpty(queryForm.getEquipmentName())) { - queryWrapper.like("info.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq("info.equipment_name", queryForm.getEquipmentName()); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getApprovalReason()),"approval.approval_reason",queryForm.getApprovalReason()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"info.model",queryForm.getModel()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index fd88c31..a3cc46c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -19,6 +19,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.system.RfidImportDTO; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -49,6 +50,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.text.MessageFormat; import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -125,7 +127,7 @@ EasyExcel.read(excelFile.getInputStream(), SubcontractCertificateImportDTO.class, listener) .headRowNumber(1).autoTrim(true).sheet(0).doReadSync(); List certificateImportList = listener.getList(); - validImport(certificateImportList); + validImport(certificateImportList,true); List minioNameList = minioUtil.upload(multipartFileList.toArray(new MultipartFile[multipartFileList.size()])); @@ -149,7 +151,7 @@ return ReturnUtil.success(); } - void validImport(List list) { + void validImport(List list,boolean validReport) { if (CollectionUtils.isEmpty(list)) { throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } @@ -231,7 +233,7 @@ } } // 证书文件 - if (StrUtil.isBlank(importDTO.getCertificateReport())) { + if (validReport && StrUtil.isBlank(importDTO.getCertificateReport())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "证书报告附件不能为空")); } @@ -242,18 +244,33 @@ AuthUser user = permissionContext.getAuthService().getLoginUser(); List resultList = new ArrayList<>(); list.forEach(cert -> { - List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); - excelFileList.forEach(f -> { + if(StrUtil.isNotEmpty(cert.getCertificateReport())){ + List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); + excelFileList.forEach(f -> { + SubcontractCertificate certificate = new SubcontractCertificate(); + BeanUtil.copyProperties(cert, certificate); + if(ObjectUtil.isNotEmpty(minioMap)){ + certificate.setCertificateReport(minioMap.get(f)); + } + + certificate.setCreateUserId(user.getId()); + certificate.setCreateUserName(user.getName()); + certificate.setCreateDeptId(user.getDeptId()); + certificate.setCreateTime(new Date()); + certificate.setUpdateTime(new Date()); + resultList.add(certificate); + }); + }else { SubcontractCertificate certificate = new SubcontractCertificate(); BeanUtil.copyProperties(cert, certificate); - certificate.setCertificateReport(minioMap.get(f)); certificate.setCreateUserId(user.getId()); certificate.setCreateUserName(user.getName()); certificate.setCreateDeptId(user.getDeptId()); certificate.setCreateTime(new Date()); certificate.setUpdateTime(new Date()); resultList.add(certificate); - }); + } + }); // 保存证书信息 this.saveBatch(resultList); @@ -265,10 +282,144 @@ subList.sort(Comparator.comparing(SubcontractCertificate::getCertificateValid)); } SubcontractCertificate latest = subList.get(subList.size() - 1); - equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify()); + equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify(),latest.getLimitInstruction()); } } + @Override + public void batchImportInfo(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List certificateImportList = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(SubcontractCertificateImportDTO.class) + .sheet(0) + .headRowNumber(1) + .doReadSync(); + validImport(certificateImportList,false); + saveImport(certificateImportList,null); + } + + @Override + public void batchImportFiles(MultipartFile file) throws IOException{ + //获取文件输入流,压缩文件直接读取 + InputStream in = new BufferedInputStream(file.getInputStream()); + ZipInputStream zin = new ZipInputStream(in, Charset.forName("GBK")); + //MultipartFile转File,外层zip + File realFile = FileUtil.multipartFileToFile(file); + ZipFile zipFile = new ZipFile(realFile, Charset.forName("GBK")); + BufferedInputStream bs = new BufferedInputStream(zin); + ZipEntry ze; + List multipartFileList = new ArrayList<>(); + try { + //读取zip包中pdf证书文件 + while ((ze = zin.getNextEntry()) != null) { + if (ze.isDirectory()) { + continue; + } + if (ze.toString().endsWith("pdf")) { + InputStream inputStream = zipFile.getInputStream(ze); + //File转MultipartFile,zip内部文件 + MultipartFile multipartFile = FileUtil.getMultipartFile(inputStream, ze.getName()); + multipartFileList.add(multipartFile); + } + } + if (CollectionUtils.isEmpty(multipartFileList)) { + //无证书或证书文件非pdf或无Excel + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_CERTIFICATE_NO_FILES); + } + + Map> fileMap = validAndConvertFiles(multipartFileList); + List allFiles = new ArrayList<>(); + List allFileNames = new ArrayList<>(); + Map> fileNameMap = new HashMap<>(); + for (Long certId : fileMap.keySet()) { + List itemFiles = fileMap.get(certId); + +// int fileCount = 1; + for (MultipartFile itemFile : itemFiles) { + String newFileName = itemFile.getOriginalFilename(); +// String[] split = oldName.split("\\."); +// String newFileName = split[0] + "_附件" + String.valueOf(fileCount++) + "." + split[1]; + + if(fileNameMap.containsKey(certId)){ + fileNameMap.get(certId).add(newFileName); + }else { + List itemFileNames = new ArrayList<>(); + itemFileNames.add(newFileName); + fileNameMap.put(certId, itemFileNames); + } + + allFiles.add(itemFile); + allFileNames.add(newFileName); + } + } + + + List minioNameList = minioUtil.upload(allFiles.toArray(new MultipartFile[allFiles.size()]),allFileNames); + + List certificateList = this.list(new QueryWrapper().in("id",fileNameMap.keySet())); + for (SubcontractCertificate certificate : certificateList) { + List fileNames = fileNameMap.get(certificate.getId()); + certificate.setCertificateReport(StrUtil.join(";",fileNames)); + } + this.updateBatchById(certificateList); + + } catch (ExcelDataConvertException ex) { + log.error(ex.getMessage()); + throw new BusinessException(1500, String.format("第%d行,第%d列数据转换失败:日期格式不正确", ex.getRowIndex(), ex.getColumnIndex() + 1)); + + } finally { + in.close(); + zin.closeEntry(); + zin.close(); + bs.close(); + } + } + + private Map> validAndConvertFiles(List multipartFileList){ + List list = this.baseMapper.listScope(null,null); + Map> fileMaps = new HashMap<>(); + for (MultipartFile multipartFile : multipartFileList) { + String fileFullName = multipartFile.getOriginalFilename(); + + if(StrUtil.isBlank(fileFullName)){ + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + // 移除文件扩展名 + String baseName = fileFullName.substring(0, fileFullName.lastIndexOf('.')); + // 分割字符串 + String[] parts = baseName.split("_"); + if (parts.length < 4) { + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + String certificateNo = parts[parts.length - 1]; // 证书编号 + String manufactureNo = parts[parts.length - 2]; // 出厂编号 + String model = String.join("_", Arrays.copyOfRange(parts, 1, parts.length - 2)); // 规格型号 + String equipmentName = parts[0]; // 设备名称 + + List certificates = list.stream().filter(c->certificateNo.equals(c.getCertificateNo()) + &&manufactureNo.equals(c.getEquipmentManufactureNo())&&model.equals(c.getEquipmentModel())&&equipmentName.equals(c.getEquipmentName())).collect(Collectors.toList()); + + if(CollUtil.isEmpty(certificates)||certificates.size()<1){ + throw new BusinessException(501,MessageFormat.format("{0} 找不到证书信息",fileFullName)); + }else if(certificates.size()>1){ + throw new BusinessException(501,MessageFormat.format("{0} 找到多个证书信息",fileFullName)); + } + + Long certificateId = certificates.get(0).getId(); + if(fileMaps.containsKey(certificateId)){ + fileMaps.get(certificateId).add(multipartFile); + }else { + List mapList = new ArrayList<>(); + mapList.add(multipartFile); + fileMaps.put(certificateId, mapList); + } + + } + return fileMaps; + } @Override @Transactional @@ -372,7 +523,7 @@ queryWrapper.like("e.equipment_no", equipmentNo); } if (StrUtil.isNotEmpty(equipmentName)) { - queryWrapper.like("e.equipment_name", equipmentName); + queryWrapper.eq("e.equipment_name", equipmentName); } if (StrUtil.isNotEmpty(equipmentManufactureNo)) { queryWrapper.like("e.manufacture_no", equipmentManufactureNo); @@ -395,4 +546,9 @@ queryWrapper.le(StrUtil.isNotEmpty(checkDateEnd), "c.check_date", checkDateEnd); return queryWrapper; } + + @Override + public String getLastSubcontractor(Long equipmentId) { + return this.baseMapper.getLastSubcontractor(equipmentId); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java index 5f68411..ad702af 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java @@ -7,6 +7,9 @@ import com.casic.missiles.model.subcontract.SubcontractReviewRelation; import com.casic.missiles.service.subcontract.ISubcontractOrderRelationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.DictCodeUtils; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; @@ -20,8 +23,10 @@ * @since 2024-01-18 */ @Service +@RequiredArgsConstructor public class SubcontractOrderRelationServiceImpl extends ServiceImpl implements ISubcontractOrderRelationService { + private final ISystemDeptService deptService; @Override public void saveByOrder(Long orderId, List list) { this.removeByOrder(orderId); @@ -40,6 +45,15 @@ @Override public List listByOrder(Long orderId) { - return this.baseMapper.listByOrder(orderId); + List list = this.baseMapper.listByOrder(orderId); + for (SubcontractOrderRelation relation : list) { + relation.setDeptName(deptService.getParentsDeptName(relation.getDeptId())); + try { + DictCodeUtils.convertDictCodeToName(relation); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return list; } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java index 8ef870c..be7554b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java @@ -131,6 +131,7 @@ if(StrUtil.isNotEmpty(queryForm.getCreateTimeEnd())){ queryWrapper.le("create_time",queryForm.getCreateTimeEnd()); } + queryWrapper.eq("is_del","0"); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCreateDeptName()),"create_dept_name",queryForm.getCreateDeptName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getTestAbility()),"test_ability",queryForm.getTestAbility()); return queryWrapper; @@ -149,6 +150,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); //queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); queryWrapper.like("test_ability",equipmentName); + queryWrapper.eq("is_del","0"); return this.list(queryWrapper); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java index 02a7dda..cad7c72 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java @@ -186,7 +186,7 @@ queryWrapper.like("e.equipment_no",equipmentNo); } if(StrUtil.isNotEmpty(equipmentName)){ - queryWrapper.like("e.equipment_name",equipmentName); + queryWrapper.eq("e.equipment_name",equipmentName); } if(StrUtil.isNotEmpty(useStatus)){ if("0".equals(useStatus)){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java index 81076fc..b83620b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java @@ -20,8 +20,24 @@ */ public interface ISubcontractCertificateService extends IService { + /** + * 批量导入(信息+证书) + * @param file zip文件:一个excel文件,以及文件”附件“列对应的pdf文件 + */ ReturnDTO batchImport(MultipartFile file) throws IOException; + /** + * 批量导入(信息) + * @param file excel文件,导入基础信息 + */ + void batchImportInfo(MultipartFile file) throws IOException; + + /** + * 批量导入(证书文件) + * @param file zip文件,多个pdf文件,文件命名方式为:设备名称_规格型号_出厂编号_证书编号 + */ + void batchImportFiles(MultipartFile file) throws IOException; + void saveOrUpdateInfo(SubcontractCertificate subcontractCertificate); void removeInfo(Long id); @@ -46,4 +62,6 @@ List listByEquipment(Long equipmentId); + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-common/pom.xml b/casic-metering-common/pom.xml index 64aef87..a31f9c1 100644 --- a/casic-metering-common/pom.xml +++ b/casic-metering-common/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -17,12 +17,12 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.github.oshi diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java index 72b1c7a..e9bb934 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/equipment/EquipmentCheckConsts.java @@ -10,4 +10,6 @@ String CHECK_DESTINATION_METER = "1"; // 检定去向:计量室 String CHECK_DESTINATION_DELIVERY = "2"; // 检定去向:外送 + + String METER_IDENTITY_LIMIT = "1"; // 计量标识:限用 } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java index d406e4b..9a4a021 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/FileUtil.java @@ -10,6 +10,9 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.*; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Comparator; /** * @Description: @@ -113,4 +116,17 @@ return item; } + public static void deleteRecursively(Path tempDir) throws IOException { + // 遍历tempDir目录及其子目录,对遍历到的每一个路径执行删除操作 + Files.walk(tempDir) + .sorted(Comparator.reverseOrder()) // 重要:首先删除子目录和文件,最后删除根目录 + .forEach(path -> { + try { + Files.delete(path); // 删除当前路径指向的文件或目录 + } catch (IOException e) { + e.printStackTrace(); // 在实际应用中应该处理这个异常 + } + }); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java index 40fea08..9940c80 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/MinioUtil.java @@ -148,6 +148,39 @@ return names; } + public List upload(MultipartFile[] multipartFile,List fileNames) { + List names = new ArrayList<>(multipartFile.length); + for (int i = 0; i < multipartFile.length; i++) { + MultipartFile file = multipartFile[i]; + String fileName = fileNames.get(i); + + InputStream in = null; + try { + in = file.getInputStream(); + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(fileName) + .stream(in, in.available(), -1) + .contentType(file.getContentType()) + .build() + ); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (in != null) { + try { + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + names.add(fileName); + } + return names; + } + + /** * description: 下载文件 * diff --git a/casic-metering-dao/pom.xml b/casic-metering-dao/pom.xml index 6bc0a98..d52996f 100644 --- a/casic-metering-dao/pom.xml +++ b/casic-metering-dao/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,7 +16,7 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java index 38dbdc9..b49f917 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/subcontract/SubcontractCertificateMapper.java @@ -8,6 +8,7 @@ import com.casic.missiles.model.subcontract.SubcontractCertificate; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -32,4 +33,9 @@ List listByEquipment(@Param("equipmentId") Long equipmentId); + @Select("SELECT company_name FROM `eqpt_subcontractor`\n" + + "where id = (SELECT subcontractor_id from eqpt_subcontract_certificate\n" + + "where equipment_id = #{equipmentId} ORDER BY check_date desc limit 1)") + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml index e65b78e..e4a103f 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BizBusinessOrderListResponseMapper.xml @@ -41,8 +41,8 @@ select * from ( SELECT - * , - (select dept_id from sys_user where id = create_user_id) as dept_id + * +-- ,(select dept_id from sys_user where id = create_user_id) as dept_id FROM biz_business_order_info ) t diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml index e413d44..264f094 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractCertificateMapper.xml @@ -49,6 +49,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as originalRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -87,6 +88,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.original_record as origianlRecord, c.certificate_report as certificateReport, c.create_time as createTime, @@ -112,6 +114,7 @@ c.check_date as checkDate, c.certificate_valid as certificateValid, c.meter_identify as meterIdentify, + c.limit_instruction as limitInstruction, c.certificate_report as minioFileName, c.create_time as createTime, c.update_time as updateTime diff --git a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml index efa7b3d..b907752 100644 --- a/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/subcontract/SubcontractOrderRelationMapper.xml @@ -21,7 +21,7 @@ SELECT r.id as id, r.order_id as orderId, - r.equipment_id as equpimentId, + r.equipment_id as equipmentId, r.special_require as specialRequire, r.create_time as createTime, r.update_time as updateTime, @@ -31,7 +31,9 @@ e.manufacture_no as manufactureNo, e.manufacturer as manufacturer, e.check_organization as checkOrganization, - e.certificate_valid as certificateValid + e.certificate_valid as certificateValid, + e.dept_id as deptId, + e.meter_identify as meterIdentify FROM eqpt_subcontract_order_relation r INNER JOIN eqpt_equipment_info_view e ON r.equipment_id = e.id diff --git a/casic-metering-eqpt-api/pom.xml b/casic-metering-eqpt-api/pom.xml index c43ce5a..3335fec 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.3.1.2 + 1.3.2.0 4.0.0 @@ -18,13 +18,13 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-job - 1.3.1.2 + 1.3.2.0 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 88c418a..be673b8 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 @@ -77,13 +77,13 @@ @ResponseBody public void listExport(@RequestBody EquipmentQueryForm queryForm) throws IOException { List list = equipmentInfoService.list(queryForm); - List exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); for (EquipmentInfo equipmentInfo : list) { - EquipmentImportDTO export = new EquipmentImportDTO(); + EquipmentExportDTO export = new EquipmentExportDTO(); BeanUtil.copyProperties(equipmentInfo,export); exportList.add(export); } - super.exportExcel(EquipmentImportDTO.class,exportList,""); + super.exportExcel(EquipmentExportDTO.class,exportList,""); } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java index d7f394b..21310ce 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/resource/BizResourceCustomerSuggestFormController.java @@ -20,6 +20,7 @@ import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.resource.IBizResourceCustomerSuggestFormService; import com.casic.missiles.service.resource.IEqptResourceCustomerSuggestFormService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -75,4 +76,13 @@ return ReturnUtil.success(service.saveOrUpdateApproval(request)); } + @ApiOperation("委托方意见登记表详情") + @GetMapping("/detail") + @ResponseBody + public ReturnDTO detail(Long id) throws Exception { + EqptResourceCustomerSuggestForm form = service.getById(id); + DictCodeUtils.convertDictCodeToName(form); + return ReturnUtil.success(form); + } + } diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java index 269dbed..3dcc2aa 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/subcontract/SubcontractCertificateController.java @@ -83,14 +83,44 @@ super.exportExcel(SubcontractCertificate.class, list, ""); } - @ApiOperation("批量导入") + @ApiOperation("批量导入(信息+证书)") @PostMapping("/import") @ResponseBody - public ReturnDTO infoImport(@RequestParam("file") MultipartFile file) throws IOException { + public ReturnDTO batchImport(@RequestParam("file") MultipartFile file) throws IOException { if(Objects.isNull(file)){ throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); } certificateService.batchImport(file); return ReturnUtil.success(); } + + @ApiOperation("批量导入(信息,excel文件)") + @PostMapping("/importInfo") + @ResponseBody + public ReturnDTO batchImportInfo(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportInfo(file); + return ReturnUtil.success(); + } + + @ApiOperation("批量导入(证书,pdf压缩包)") + @PostMapping("/importFiles") + @ResponseBody + public ReturnDTO batchImportFiles(@RequestParam("file") MultipartFile file) throws IOException { + if(Objects.isNull(file)){ + throw new BusinessException(BusinessExceptionEnum.UPLOAD_FILE_NULL); + } + certificateService.batchImportFiles(file); + return ReturnUtil.success(); + } + + @ApiOperation("查询上次送检单位(仅新增时显示)") + @GetMapping("/lastSubcontractor") + @ResponseBody + public ReturnDTO getLastSubcontractor(Long equipmentId){ + String companyName = certificateService.getLastSubcontractor(equipmentId); + return ReturnUtil.success(companyName); + } } diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 48bc0da..0411c27 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -14,12 +14,12 @@ com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.github.oshi @@ -61,7 +61,7 @@ com.casic casic-metering-service - 1.3.1.2 + 1.3.2.0 compile diff --git a/casic-metering-model/pom.xml b/casic-metering-model/pom.xml index c9237cb..a18b82c 100644 --- a/casic-metering-model/pom.xml +++ b/casic-metering-model/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java index ebb18d9..8296d60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java @@ -38,6 +38,8 @@ String EQUIPMENT_REMIND_CHECK_STATUS = DICT_PREFIX + "remindCheckStatus"; // 设备在用信息 String EQUIPMENT_IN_USE = DICT_PREFIX + "DeviceInUse"; + + String EQUIPMENT_CHECK_DESTINATION = DICT_PREFIX + "CheckDirection"; // 计量计划计划分类 String PLAN_CATEGORY = DICT_PREFIX + "PlanType"; // 计量计划执行情况 diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java index 2f3877b..36bcd02 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/certificate/SubcontractCertificateImportDTO.java @@ -54,6 +54,9 @@ @ExcelProperty("计量标识") private String meterIdentify; + @ExcelProperty("限用说明") + private String limitInstruction; + @ExcelProperty("证书报告附件") private String certificateReport; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java new file mode 100644 index 0000000..ec6dd69 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentExportDTO.java @@ -0,0 +1,230 @@ +package com.casic.missiles.dto.equipment; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import com.casic.missiles.converter.DateExcelConverter; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; +import java.util.Date; + +@Getter +@Setter +@ColumnWidth(35) +@HeadRowHeight(20) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, + verticalAlignment = VerticalAlignmentEnum.CENTER) +public class EquipmentExportDTO { + + /** + * 设备名称 + */ + @NotBlank(message = "设备名称不能为空") + @ExcelProperty(value = "设备名称", order = 1) + private String equipmentName; + /** + * 型号规格 + */ + @NotBlank(message = "型号规格不能为空") + @ExcelProperty(value = "型号规格", order = 2) + private String model; + @ExcelProperty(value = "辅助字段", order = 3) + private String helpInstruction; + /** + * 出厂编号 + */ + @ExcelProperty(value = "出厂编号", order = 4) + private String manufactureNo; + /** + * 生产国家 + */ + @ExcelProperty(value = "生产国家", order = 5) + private String productCountry; + /** + * 生产厂家 + */ + @ExcelProperty(value = "生产厂家", order = 6) + private String manufacturer; + /** + * 生产日期 + */ + @ExcelProperty(value = "生产日期", order = 7, converter = DateExcelConverter.class) + private Date productDate; + /** + * 购进日期 + */ + @ExcelProperty(value = "购进日期", order = 8, converter = DateExcelConverter.class) + private Date purchaseDate; + /** + * 单价(万元) + */ + @ExcelProperty(value = "设备单价", order = 9) + private BigDecimal unitPrice; + /** + * 使用状态(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_USAGE_STATUS, needValid = true, message = "使用状态不合法") + @ExcelIgnore + private String usageStatus; + + @ExcelProperty(value = "使用状态", order = 10) + private String usageStatusName; + /** + * 质量状况 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_QUALITY, needValid = true, message = "质量状况不合法") + @ExcelIgnore + private String qualityCondition; + + @ExcelProperty(value = "质量状况", order = 11) + private String qualityConditionName; + /** + * 所在单位id + */ + @ExcelIgnore + private Long companyId; + @ExcelProperty(value = "所在单位", order = 12) + private String companyName; + /** + * 使用部门id + */ + @ExcelIgnore + private Long deptId; + + @ExcelProperty(value = "使用部门", order = 13) + private String deptName; + /** + * 设备分类(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CATEGORY, needValid = true, message = "设备分类不合法") + @ExcelIgnore + private String category; + + @ExcelProperty(value = "设备分类", order = 14) + private String categoryName; + /** + * 检定周期(月) + */ + @ExcelProperty(value = "检定周期", order = 15) + private Integer checkCycle; + /** + * 等级(字典code) + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_LEVEL, needValid = true, message = "重要等级不合法") + @ExcelIgnore + private String level; + + @ExcelProperty(value = "重要等级", order = 16) + private String levelName; + /** + * 备注 + */ + @ExcelProperty(value = "备注", order = 17) + private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelIgnore + private String checkDestination; + + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestinationName; + /** + * 检定机构 + */ + @ExcelProperty(value = "检定(校准)机构", order = 19) + private String checkOrganization; + /** + * 检定日期 + */ + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class, order = 20) + private Date checkDate; + /** + * 证书有效期 + */ + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class, order = 21) + private Date certificateValid; + + /** + * 计量标识 + */ + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") + @ExcelIgnore + private String meterIdentify; + + @ExcelProperty(value = "计量标识", order = 21) + private String meterIdentifyName; + + @ExcelProperty(value = "限用说明", order = 23) + private String limitInstruction; + + /** + * 使用岗位 + */ + @ExcelProperty(value = "使用岗位", order = 24) + private String usePosition; + + @ExcelIgnore + private String usePositionId; + /** + * 负责人 + */ + @ExcelProperty(value = "负责人", order = 25) + private String directorName; + + @ExcelIgnore + private Long directorId; + + @ExcelProperty(value = "RFID标签绑定", order = 26) + private String rfid; + /** + * 在用信息(字典code) + */ + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") + @ExcelIgnore + private String useSign; + + @ExcelProperty(value = "在用信息", order = 27) + private String useSignName; + + @ExcelIgnore + private Long installLocationId; + + /** + * 安装位置(选择) + */ + @ExcelProperty(value = "安装位置", order = 28) + private String installLocation; + /** + * 安装位置(自定义编写) + */ + @ExcelProperty(value = "详细位置", order = 29) + private String installLocationExt; + /** + * 备注(扩展) + */ + @ExcelProperty(value = "备注", order = 30) + private String remarkExt; + + @ExcelIgnore + private Long modelId; + + @ExcelIgnore + private String checkDuplication; + + @ExcelIgnore + private String equipmentType; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java index 29b7b23..eabea4c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentImportDTO.java @@ -8,9 +8,11 @@ import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; import com.alibaba.excel.enums.poi.VerticalAlignmentEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.casic.missiles.annotation.DictCodeField; import com.casic.missiles.constants.MeterDictCode; import com.casic.missiles.converter.DateExcelConverter; +import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -118,33 +120,40 @@ /** * 备注 */ - @ExcelProperty(value = "备注",order = 17) + @ExcelProperty(value = "备注",order = 17, index = 16) private String remark; + + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") + @ExcelProperty(value = "检定去向",order = 18) + private String checkDestination; /** * 检定机构 */ - @ExcelProperty(value = "检定(校准)机构",order = 18) + @ExcelProperty(value = "检定(校准)机构",order = 19) private String checkOrganization; /** * 检定日期 */ - @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 19) + @ExcelProperty(value = "检定(校准)日期", converter = DateExcelConverter.class,order = 20) private Date checkDate; /** * 证书有效期 */ - @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 20) + @ExcelProperty(value = "证书有效期", converter = DateExcelConverter.class,order = 21) private Date certificateValid; /** * 计量标识 */ @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY, needValid = true, message = "计量标识不合法") - @ExcelProperty(value = "计量标识",order = 21) + @ExcelProperty(value = "计量标识",order = 22) private String meterIdentify; + + @ExcelProperty(value = "限用说明",order = 23) + private String limitInstruction; /** * 使用岗位 */ - @ExcelProperty(value = "使用岗位",order = 22) + @ExcelProperty(value = "使用岗位",order = 24) private String usePosition; @ExcelIgnore @@ -152,18 +161,18 @@ /** * 负责人 */ - @ExcelProperty(value = "负责人",order = 23) + @ExcelProperty(value = "负责人",order = 25) private String directorName; @ExcelIgnore - private String directorId; + private Long directorId; - @ExcelProperty(value = "RFID标签绑定",order =24 ) + @ExcelProperty(value = "RFID标签绑定",order =26 ) private String rfid; /** * 在用信息(字典code) */ - @ExcelProperty(value = "在用信息",order =25 ) + @ExcelProperty(value = "在用信息",order =27 ) @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_IN_USE, needValid = true, message = "在用信息不合法") private String useSign; @@ -173,17 +182,17 @@ /** * 安装位置(选择) */ - @ExcelProperty(value = "安装位置",order = 26) + @ExcelProperty(value = "安装位置",order = 28) private String installLocation; /** * 安装位置(自定义编写) */ - @ExcelProperty(value = "详细位置",order = 27) + @ExcelProperty(value = "详细位置",order = 29) private String installLocationExt; /** * 备注(扩展) */ - @ExcelProperty(value = "备注",order = 28) + @ExcelProperty(value = "备注",order = 30,index = 29) private String remarkExt; @ExcelIgnore diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java index 7d9691e..3990cf2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentQueryForm.java @@ -59,7 +59,10 @@ private String useSign; @ApiModelProperty("安装位置") - private String installLocation; + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; @ApiModelProperty("分组id") private Long groupId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java index c2352d0..5a10c67 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/EquipmentRemindQueryForm.java @@ -83,8 +83,20 @@ @ApiModelProperty("检定状态") private String checkStatus; - @ApiModelProperty("(检定(校准)单位)") - private String measureCompany; + @ApiModelProperty("检定机构") + private String checkOrganization; + + @ApiModelProperty("安装位置") + private Long installLocationId; + + @ApiModelProperty("详细位置") + private String installLocationExt; + + @ApiModelProperty("分组id") + private Long groupId; + + @ApiModelProperty("计量标识") + private String meterIdentify; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 186cf5d..b26f704 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -121,8 +121,12 @@ @TableField("set_top") private Integer setTop; + @TableField(exist = false) private String formId; + @TableField(exist = false) private String processId; + @TableField(exist = false) private String taskId; + @TableField(exist = false) private Integer decisionItem; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java index 448c160..74e2d2a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BizBusinessOrderInfo.java @@ -68,6 +68,16 @@ @TableField("customer_name") private String customerName; + @ApiModelProperty(value = "使用部门id(受检设备)", dataType = "String") + @TableField("dept_id") + private Long deptId; + + /** + * 委托方名称 + */ + @ApiModelProperty(value = "使用部门(受检设备)", dataType = "String") + @TableField("dept_name") + private String deptName; /** * 送样人电话 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java index ec37f01..6555f29 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfo.java @@ -368,10 +368,14 @@ @TableField("help_instruction") private String helpInstruction; + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_CHECK_DESTINATION,needValid = true,message = "检定去向不合法") @ApiModelProperty(value = "检定去向",notes = "检定去向") @TableField("check_destination") private String checkDestination; + @TableField(exist = false) + private String checkDestinationName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") @TableField("limit_instruction") private String limitInstruction; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java index 060aa33..25c256b 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentInfoApproval.java @@ -274,7 +274,7 @@ */ @ApiModelProperty("负责人id") @TableField("director_id") - private String directorId; + private Long directorId; /** * 负责人 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java index 3e72827..7b00ab4 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractCertificate.java @@ -159,6 +159,11 @@ @ExcelProperty(value = "计量标识", index = 8) private String meterIdentifyName; + @ApiModelProperty(value = "限用说明",notes = "限用说明") + @TableField("limit_instruction") + @ExcelProperty(value = "限用说明", index = 9) + private String limitInstruction; + /** * 原始记录附件 */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java index a5f5333..a453e01 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrder.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -166,5 +167,4 @@ - } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java index a6c52fe..ee6aa60 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/SubcontractOrderRelation.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,8 @@ import java.time.LocalDateTime; import java.util.Date; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -84,10 +87,28 @@ @TableField("special_require") private String specialRequire; + @ApiModelProperty(value = "使用部门id",notes = "使用部门id") + @TableField(exist = false) + private Long deptId; + + @ApiModelProperty("使用部门名称") + @TableField(exist = false) + private String deptName; + + @ApiModelProperty(value = "计量标识",notes = "计量标识code") + @TableField(exist = false) + @DictCodeField(cacheName = MeterDictCode.EQUIPMENT_METER_IDENTITY) + private String meterIdentify; + + @ApiModelProperty("计量标识名称") + @TableField(exist = false) + private String meterIdentifyName; + + /** * 创建时间 */ - @ApiModelProperty("特殊要求") + @ApiModelProperty("创建时间") @TableField("create_time") private Date createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java index 40158aa..6f53efb 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/subcontract/Subcontractor.java @@ -1,8 +1,10 @@ package com.casic.missiles.model.subcontract; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; @@ -279,4 +281,11 @@ @ExcelProperty(value = "创建单位",index = 6) private String createDeptName; + + @ApiModelProperty("删除标记") + @TableField("is_del") + @TableLogic(value = "0",delval = "1") + @ExcelIgnore + private Integer isDel; + } diff --git a/casic-metering-service/pom.xml b/casic-metering-service/pom.xml index e28aca4..cbe6893 100644 --- a/casic-metering-service/pom.xml +++ b/casic-metering-service/pom.xml @@ -5,7 +5,7 @@ casic-metering-eqpt-xichang com.casic - 1.3.1.2 + 1.3.2.0 4.0.0 @@ -16,19 +16,19 @@ com.casic casic-metering-dao - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-model - 1.3.1.2 + 1.3.2.0 com.casic casic-metering-common - 1.3.1.2 + 1.3.2.0 org.springframework.boot diff --git a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java index 5327988..c628d39 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/aop/EquipmentLogAop.java @@ -34,6 +34,7 @@ import java.beans.Expression; import java.lang.reflect.Method; import java.util.Date; +import java.util.Optional; @Aspect @Component @@ -110,7 +111,11 @@ if(StrUtil.isNotBlank(filedName)){ String oldValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("oldVal")); String newValue = equipmentInfoService.getFieldValue(item.getString("field"),item.getString("newVal")); - String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); + + String msg = String.format("[%s]由 %s 变更为 %s;\n\r",filedName, + StrUtil.isNotBlank(oldValue) ? oldValue : "空值", + StrUtil.isNotBlank(newValue) ? newValue : "空值"); +// String msg = String.format("字段名=%s,变更前=%s,变更后=%s;",filedName,oldValue,newValue); stringBuilder.append(msg); } } 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 3cd9a2d..fc34d54 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 @@ -54,6 +54,9 @@ void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify); + void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date + certificateValid, String meterIdentify,String limitInstruction); + void updateLimitInstruction(Long equipmentId, String limitInstruction); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 7690903..51c7b10 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableException; import org.flowable.engine.runtime.ProcessInstance; +import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; @@ -186,46 +187,50 @@ @Override public Page toApprovalListPage(Page page, Q queryForm) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(queryForm.getFormId()); + return toApprovalListPage(page, queryForm, toBeApprovedList); + } + + protected Page toApprovalListPage(Page page, Q queryForm, List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return page; } - QueryWrapper queryWrapper = commonQuery(queryForm); - List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); page = this.page(page, queryWrapper); for (T approval : page.getRecords()) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return page; } + private void wrapperToApproval(List toBeApprovedList, T approval) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + @Override public List toApprovalList(String formId) { List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + return toApprovalList(toBeApprovedList); + } + + + protected List toApprovalList(List toBeApprovedList) { if (CollUtil.isEmpty(toBeApprovedList)) { return new ArrayList<>(); } - QueryWrapper queryWrapper = new QueryWrapper<>(); List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); queryWrapper.in("id", toApprovalIds); List list = this.list(queryWrapper); for (T approval : list) { - Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); - if (toBeApprovedOpt.isPresent()) { - ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); - approval.setTaskId(toBeApprovedDTO.getTaskId()); - approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); - } - warpper(approval); + wrapperToApproval(toBeApprovedList, approval); } return list; } @@ -233,6 +238,10 @@ @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); + return approvedListPage(page, queryForm, approvedIds); + } + + protected Page approvedListPage(Page page, Q queryForm, List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return page; } @@ -246,6 +255,11 @@ @Override public List approvedList(String formId) { List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + return approvedList(approvedIds); + } + + @NotNull + protected List approvedList(List approvedIds) { if (CollUtil.isEmpty(approvedIds)) { return new ArrayList<>(); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java index 88e876f..7117130 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/business/EqptBusinessOrderInfoServiceImpl.java @@ -94,6 +94,8 @@ BizBusinessOrderInfo businessOrderInfo = new BizBusinessOrderInfo(); BeanUtil.copyProperties(eqptBusinessOrderInfo,businessOrderInfo); + businessOrderInfo.setDeptId(eqptBusinessOrderInfo.getDeptId()); + businessOrderInfo.setDeptName(systemDeptService.getParentsDeptName(eqptBusinessOrderInfo.getDeptId())); businessOrderInfo.setCreateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getCreateTime())); businessOrderInfo.setUpdateTime(DateUtil.formatDateTime(eqptBusinessOrderInfo.getUpdateTime())); if(ObjectUtil.isNotEmpty(eqptBusinessOrderInfo.getUndertakeTime())){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 5284fee..11537ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -282,7 +282,7 @@ "equipmentNo", "equipmentName", "equipmentType", "usageStatus", "level", "productCountry", "manufacturer", "manufactureNo", "productDate", "unitPrice", "purchaseDate", "model", "qualityCondition", "companyId", "deptId", "category", - "checkCycle", "remark", "instructionsFile" + "checkCycle", "remark", "instructionsFile","helpInstruction","modelId" )); } return true; @@ -380,7 +380,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()),"use_position_id",queryForm.getUsePositionId()); @@ -394,8 +394,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()),"director_id",queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); - +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); if(ObjectUtil.isNotEmpty(queryForm.getGroupId())){ String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_equipment_info_approval_view.id)",queryForm.getGroupId()); queryWrapper.exists(existSql); 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 789d9d3..4ab20ae 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 @@ -221,7 +221,7 @@ //queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDeptId()), "dept_id", queryForm.getDeptId()); queryWrapper.in(CollUtil.isNotEmpty(queryForm.getDeptIds()), "dept_id", queryForm.getDeptIds()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "equipment_name", queryForm.getEquipmentName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentType()), "equipment_type", queryForm.getEquipmentType()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getUsePositionId()), "use_position_id", queryForm.getUsePositionId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getUsePosition()), "use_position", queryForm.getUsePosition()); @@ -236,7 +236,9 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getDirectorId()), "director_id", queryForm.getDirectorId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()), "director_name", queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()), "use_sign", queryForm.getUseSign()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); +// queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()), "CONCAT(install_location,install_location_ext)", queryForm.getInstallLocation()); + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { @@ -356,7 +358,9 @@ validImport(list); EquipmentImportDuplicationResult checkResult = checkImportDuplication(list); if (CollUtil.isNotEmpty(checkResult.getUnDuplicationResult())) { - saveImport(checkResult.getUnDuplicationResult(), equipmentType); + List unDuplicationList = checkResult.getUnDuplicationResult(); + filledImport(unDuplicationList); + saveImport(unDuplicationList, equipmentType); } return checkResult; } @@ -504,7 +508,7 @@ if (ObjectUtil.isNotEmpty(importDTO.getDirectorName())) { Optional userOpt = userList.stream().filter(p -> p.getName().trim().equals(importDTO.getDirectorName().trim())).findFirst(); if (userOpt.isPresent()) { - importDTO.setDirectorId(userOpt.get().getId().toString()); + importDTO.setDirectorId(userOpt.get().getId()); } else { throw new BusinessException(1500, String.format(validMsg, i + 1, "负责人不存在")); } @@ -582,6 +586,21 @@ } + public void filledImport(List list){ + List companyIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getCompanyId).distinct().collect(Collectors.toList()); + List modelIds = list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).map(EquipmentImportDTO::getModelId).distinct().collect(Collectors.toList()); + Map defaultLabMap = getDefaultLabMap(companyIds); + List modelInfos = modelInfoService.list(new QueryWrapper().in("id",modelIds)); + Map inspectableMap = new HashMap<>(); + modelInfos.forEach(modelInfo -> { + inspectableMap.put(modelInfo.getId(),modelInfo.getInspectable()); + }); + list.stream().filter(i->StrUtil.isBlank(i.getCheckDestination())).forEach(i->{ + String defaultDest = modelInfoService.classifyCheckDestination(defaultLabMap.get(i.getCompanyId()),inspectableMap.get(i.getModelId())); + i.setCheckDestination(defaultDest); + }); + } + @Transactional public void saveImport(List list, String equipmentType) { Long maxNo = this.baseMapper.selectMaxNo(equipmentType); @@ -638,6 +657,11 @@ @Override @Transactional public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify) { + this.updateCertificateInfo(equipmentId, checkOrganization, checkDate, certificateValid, meterIdentify,null); + } + + @Override + public void updateCertificateInfo(Long equipmentId, String checkOrganization, Date checkDate, Date certificateValid, String meterIdentify, String limitInstruction) { EquipmentInfo equipmentInfo = this.getById(equipmentId); if (ObjectUtil.isNotEmpty(equipmentInfo)) { if (ObjectUtil.isEmpty(equipmentInfo.getCertificateValid()) || equipmentInfo.getCertificateValid().before(certificateValid)) { @@ -646,15 +670,21 @@ equipmentInfo.setCertificateValid(certificateValid); if (StrUtil.isNotEmpty(meterIdentify)) { equipmentInfo.setMeterIdentify(meterIdentify); + if(METER_IDENTITY_LIMIT.equals(meterIdentify)){ + if(StrUtil.isNotEmpty(limitInstruction)){ + equipmentInfo.setLimitInstruction(limitInstruction); + } + }else { + equipmentInfo.setLimitInstruction(null); + } } //当设备证书有效期更新且未到期时,设备状态自动变更为启封 if (!EquipmentStatusTypeEnum.UNSEAL.equals(equipmentInfo.getUsageStatus()) && !EquipmentStatusTypeEnum.SCRAP.equals(equipmentInfo.getUsageStatus()) && certificateValid.after(new Date())) { - String usageStatus = EquipmentStatusTypeEnum.UNSEAL; - equipmentInfo.setUsageStatus(usageStatus); - statusLogService.saveLog(equipmentId, usageStatus, "设备证书更新"); + equipmentInfo.setUsageStatus(EquipmentStatusTypeEnum.UNSEAL); + statusLogService.saveLog(equipmentId, StatusApprovalTypeEnum.UNSEAL, "设备证书更新"); } this.updateById(equipmentInfo); } @@ -786,10 +816,18 @@ queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "certificate_valid", queryForm.getCertificateValidEnd()); - + queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getInstallLocationId()),"install_location_id",queryForm.getInstallLocationId()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocationExt()),"installLocationExt",queryForm.getInstallLocationExt()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckDestination()), "check_destination", queryForm.getCheckDestination()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getCheckStatus()), "check_status", queryForm.getCheckStatus()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getMeterIdentify()), "meter_identify", queryForm.getMeterIdentify()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "check_organization", queryForm.getCheckOrganization()); + if (ObjectUtil.isNotEmpty(queryForm.getGroupId())) { + String existSql = String.format("(select id from eqpt_equipment_group_relation where group_id = %d and equipment_id = eqpt_ext.id)", queryForm.getGroupId()); + queryWrapper.exists(existSql); + } + queryWrapper.in(CollUtil.isNotEmpty(queryForm.getUsageStatusList()), "usage_status", queryForm.getUsageStatusList()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufacturer()), "manufacturer", queryForm.getManufacturer()); queryWrapper.like(ObjectUtil.isNotEmpty(queryForm.getTaskId()), "taskIds", queryForm.getTaskId()); @@ -817,12 +855,12 @@ EquipmentStatusTypeEnum.DELAY, EquipmentStatusTypeEnum.SEAL)); queryWrapper.eq("check_status", 0); //未送检设备 - queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); - if (StrUtil.isNotEmpty(queryForm.getMeasureCompany())) { - if (queryForm.getMeasureCompany().contains(XC_LAB)) { +// queryWrapper.eq("check_destination", CHECK_DESTINATION_METER); + if (StrUtil.isNotEmpty(queryForm.getCheckOrganization())) { + if (queryForm.getCheckOrganization().contains(XC_LAB)) { queryWrapper.like("inspectable", XC_INSPECTABLE); } - if (queryForm.getMeasureCompany().contains(HK_LAB)) { + if (queryForm.getCheckOrganization().contains(HK_LAB)) { queryWrapper.like("inspectable", HK_INSPECTABLE); } } @@ -953,7 +991,7 @@ queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateNo()), "c.certificate_no", queryForm.getCertificateNo()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCertificateName()), "c.certificate_name", queryForm.getCertificateName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentNo()), "e.equipment_no", queryForm.getEquipmentNo()); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()), "e.equipment_name", queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCheckOrganization()), "c.check_organization", queryForm.getCheckOrganization()); queryWrapper.ge(StrUtil.isNotEmpty(queryForm.getCertificateValidStart()), "c.certificate_valid", queryForm.getCertificateValidStart()); queryWrapper.le(StrUtil.isNotEmpty(queryForm.getCertificateValidEnd()), "c.certificate_valid", queryForm.getCertificateValidEnd()); @@ -1092,15 +1130,7 @@ List equipmentInfos = this.list(queryWrapper); if (CollUtil.isNotEmpty(equipmentInfos)) { List companyIds = equipmentInfos.stream().map(EquipmentInfo::getCompanyId).distinct().collect(Collectors.toList()); - List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); - Map defaultLabMap = new HashMap<>(); - defaultLabs.forEach(item -> { - if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); - } else { - defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); - } - }); + Map defaultLabMap = getDefaultLabMap(companyIds); EquipmentModelInfo modelInfo = modelInfoService.getById(modelId); @@ -1114,4 +1144,18 @@ } } } + + @NotNull + private Map getDefaultLabMap(List companyIds) { + List> defaultLabs = modelInfoService.getDefaultLabs(companyIds); + Map defaultLabMap = new HashMap<>(); + defaultLabs.forEach(item -> { + if (ObjectUtil.isNotEmpty(item.get("default_lab"))) { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), item.get("default_lab").toString()); + } else { + defaultLabMap.put(Long.valueOf(item.get("dept_id").toString()), null); + } + }); + return defaultLabMap; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java index 2c16ea5..f7a69e4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentBorrowServiceImpl.java @@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.application.context.AbstractPermissionContext; +import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.dto.flowable.ToBeApprovedDTO; import com.casic.missiles.dto.status.EquipmentBorrowQueryForm; import com.casic.missiles.dto.subcontract.SubcontractorQueryForm; import com.casic.missiles.enums.ApprovalStatusEnum; @@ -22,11 +24,13 @@ import com.casic.missiles.service.system.ISystemDeptService; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.RequiredArgsConstructor; +import org.docx4j.wml.R; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; import static com.casic.missiles.enums.PrefixCodeEnum.EQUIPMENT_STATUS_BORROW_PREFIX; import static com.casic.missiles.enums.equipment.StatusApprovalTypeEnum.DELAY; import static com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum.EQUIPMENT_BORROW_BEAN_NAME; @@ -50,7 +54,6 @@ private final IEquipmentBorrowRelationService relationService; public String getFormId(Long borrowDeptId){ - // todo 有问题:连-连 AuthUser authUser = permissionContext.getAuthService().getLoginUser(); Long userDeptId = authUser.getDeptId(); @@ -121,6 +124,21 @@ } @Override + public Page listPage(Page page, EquipmentBorrowQueryForm queryForm) { + QueryWrapper queryWrapper = commonQuery(queryForm); + if(StrUtil.isNotEmpty(queryForm.getApprovalStatus())){ + queryWrapper.eq("approval_status",queryForm.getApprovalStatus()); + }else { + queryWrapper.ne("approval_status",ApprovalStatusEnum.DRAFT); + } + AuthUser user = permissionContext.getAuthService().getLoginUser(); + queryWrapper.eq("approval_user_id",user.getId()); + page = this.page(page,queryWrapper); + page.getRecords().forEach(this::warpper); + return page; + } + + @Override public > E page(E page, Wrapper queryWrapper) { List list = this.baseMapper.selectListPage((Page) page, (QueryWrapper) queryWrapper); page.setRecords(list); @@ -130,11 +148,48 @@ @Override public Page allPage(Page page, EquipmentBorrowQueryForm queryForm) { QueryWrapper queryWrapper = commonQuery(queryForm); + queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); + DataScope dataScope = permissionContext.getAuthService().getLoginUserDataScope(); + if(!ALL_TYPE.equals(dataScope.getScopeEnums())){ + queryWrapper.in("dept_id",dataScope.getDeptIds()); + } page = this.page(page,queryWrapper); page.getRecords().forEach(this::warpper); return page; } + private List getToBeApprovedList(){ + List toBeApprovedList = baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + toBeApprovedList.addAll(baseApprovalService.getToBeApprovedList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return toBeApprovedList; + } + + @Override + public Page toApprovalListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.toApprovalListPage(page, queryForm, getToBeApprovedList()); + } + + @Override + public List toApprovalList(String formId) { + return super.toApprovalList(getToBeApprovedList()); + } + + private List getAlreadyApprovalList(){ + List approvedIds = baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_INTERNAL.getCode()); + approvedIds.addAll( baseApprovalService.getAlreadyApprovalList(EQUIPMENT_BORROW_APPROVAL_EXTERNAL.getCode())); + return approvedIds; + } + + @Override + public Page approvedListPage(Page page, EquipmentBorrowQueryForm queryForm) { + return super.approvedListPage(page, queryForm,getAlreadyApprovalList()); + } + + @Override + public List approvedList(String formId) { + return super.approvedList(getAlreadyApprovalList()); + } + @Override public void setBizNo(EquipmentBorrow obj) { obj.setBizNo(obj.getApprovalNo()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java index 67b62bc..200f29e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentMaintainServiceImpl.java @@ -64,7 +64,7 @@ dataScope.setScopeName("e.dept_id"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.like(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); + queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getEquipmentName()),"e.equipment_name",queryForm.getEquipmentName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"e.model",queryForm.getModel()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getManufactureNo()),"e.manufacture_no",queryForm.getManufactureNo()); queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"e.company_id",queryForm.getCompanyId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index cf3cea5..cf592a5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -286,7 +286,7 @@ queryWrapper.like("info.equipment_no", queryForm.getEquipmentNo()); } if (StrUtil.isNotEmpty(queryForm.getEquipmentName())) { - queryWrapper.like("info.equipment_name", queryForm.getEquipmentName()); + queryWrapper.eq("info.equipment_name", queryForm.getEquipmentName()); } queryWrapper.like(StrUtil.isNotEmpty(queryForm.getApprovalReason()),"approval.approval_reason",queryForm.getApprovalReason()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getModel()),"info.model",queryForm.getModel()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index fd88c31..a3cc46c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -19,6 +19,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.dto.system.RfidImportDTO; import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; @@ -49,6 +50,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.text.MessageFormat; import java.util.*; import java.util.stream.Collectors; import java.util.zip.ZipEntry; @@ -125,7 +127,7 @@ EasyExcel.read(excelFile.getInputStream(), SubcontractCertificateImportDTO.class, listener) .headRowNumber(1).autoTrim(true).sheet(0).doReadSync(); List certificateImportList = listener.getList(); - validImport(certificateImportList); + validImport(certificateImportList,true); List minioNameList = minioUtil.upload(multipartFileList.toArray(new MultipartFile[multipartFileList.size()])); @@ -149,7 +151,7 @@ return ReturnUtil.success(); } - void validImport(List list) { + void validImport(List list,boolean validReport) { if (CollectionUtils.isEmpty(list)) { throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } @@ -231,7 +233,7 @@ } } // 证书文件 - if (StrUtil.isBlank(importDTO.getCertificateReport())) { + if (validReport && StrUtil.isBlank(importDTO.getCertificateReport())) { throw new BusinessException(1500, String.format(validMsg, i + 1, "证书报告附件不能为空")); } @@ -242,18 +244,33 @@ AuthUser user = permissionContext.getAuthService().getLoginUser(); List resultList = new ArrayList<>(); list.forEach(cert -> { - List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); - excelFileList.forEach(f -> { + if(StrUtil.isNotEmpty(cert.getCertificateReport())){ + List excelFileList = Arrays.asList(cert.getCertificateReport().split(";")); + excelFileList.forEach(f -> { + SubcontractCertificate certificate = new SubcontractCertificate(); + BeanUtil.copyProperties(cert, certificate); + if(ObjectUtil.isNotEmpty(minioMap)){ + certificate.setCertificateReport(minioMap.get(f)); + } + + certificate.setCreateUserId(user.getId()); + certificate.setCreateUserName(user.getName()); + certificate.setCreateDeptId(user.getDeptId()); + certificate.setCreateTime(new Date()); + certificate.setUpdateTime(new Date()); + resultList.add(certificate); + }); + }else { SubcontractCertificate certificate = new SubcontractCertificate(); BeanUtil.copyProperties(cert, certificate); - certificate.setCertificateReport(minioMap.get(f)); certificate.setCreateUserId(user.getId()); certificate.setCreateUserName(user.getName()); certificate.setCreateDeptId(user.getDeptId()); certificate.setCreateTime(new Date()); certificate.setUpdateTime(new Date()); resultList.add(certificate); - }); + } + }); // 保存证书信息 this.saveBatch(resultList); @@ -265,10 +282,144 @@ subList.sort(Comparator.comparing(SubcontractCertificate::getCertificateValid)); } SubcontractCertificate latest = subList.get(subList.size() - 1); - equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify()); + equipmentInfoService.updateCertificateInfo(equipmentId, latest.getSubcontractorName(), latest.getCheckDate(), latest.getCertificateValid(), latest.getMeterIdentify(),latest.getLimitInstruction()); } } + @Override + public void batchImportInfo(MultipartFile file) throws IOException { + InputStream inputStream = file.getInputStream(); + List certificateImportList = EasyExcel.read(inputStream) + .registerReadListener(new CommonExcelListener<>()) + .head(SubcontractCertificateImportDTO.class) + .sheet(0) + .headRowNumber(1) + .doReadSync(); + validImport(certificateImportList,false); + saveImport(certificateImportList,null); + } + + @Override + public void batchImportFiles(MultipartFile file) throws IOException{ + //获取文件输入流,压缩文件直接读取 + InputStream in = new BufferedInputStream(file.getInputStream()); + ZipInputStream zin = new ZipInputStream(in, Charset.forName("GBK")); + //MultipartFile转File,外层zip + File realFile = FileUtil.multipartFileToFile(file); + ZipFile zipFile = new ZipFile(realFile, Charset.forName("GBK")); + BufferedInputStream bs = new BufferedInputStream(zin); + ZipEntry ze; + List multipartFileList = new ArrayList<>(); + try { + //读取zip包中pdf证书文件 + while ((ze = zin.getNextEntry()) != null) { + if (ze.isDirectory()) { + continue; + } + if (ze.toString().endsWith("pdf")) { + InputStream inputStream = zipFile.getInputStream(ze); + //File转MultipartFile,zip内部文件 + MultipartFile multipartFile = FileUtil.getMultipartFile(inputStream, ze.getName()); + multipartFileList.add(multipartFile); + } + } + if (CollectionUtils.isEmpty(multipartFileList)) { + //无证书或证书文件非pdf或无Excel + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_CERTIFICATE_NO_FILES); + } + + Map> fileMap = validAndConvertFiles(multipartFileList); + List allFiles = new ArrayList<>(); + List allFileNames = new ArrayList<>(); + Map> fileNameMap = new HashMap<>(); + for (Long certId : fileMap.keySet()) { + List itemFiles = fileMap.get(certId); + +// int fileCount = 1; + for (MultipartFile itemFile : itemFiles) { + String newFileName = itemFile.getOriginalFilename(); +// String[] split = oldName.split("\\."); +// String newFileName = split[0] + "_附件" + String.valueOf(fileCount++) + "." + split[1]; + + if(fileNameMap.containsKey(certId)){ + fileNameMap.get(certId).add(newFileName); + }else { + List itemFileNames = new ArrayList<>(); + itemFileNames.add(newFileName); + fileNameMap.put(certId, itemFileNames); + } + + allFiles.add(itemFile); + allFileNames.add(newFileName); + } + } + + + List minioNameList = minioUtil.upload(allFiles.toArray(new MultipartFile[allFiles.size()]),allFileNames); + + List certificateList = this.list(new QueryWrapper().in("id",fileNameMap.keySet())); + for (SubcontractCertificate certificate : certificateList) { + List fileNames = fileNameMap.get(certificate.getId()); + certificate.setCertificateReport(StrUtil.join(";",fileNames)); + } + this.updateBatchById(certificateList); + + } catch (ExcelDataConvertException ex) { + log.error(ex.getMessage()); + throw new BusinessException(1500, String.format("第%d行,第%d列数据转换失败:日期格式不正确", ex.getRowIndex(), ex.getColumnIndex() + 1)); + + } finally { + in.close(); + zin.closeEntry(); + zin.close(); + bs.close(); + } + } + + private Map> validAndConvertFiles(List multipartFileList){ + List list = this.baseMapper.listScope(null,null); + Map> fileMaps = new HashMap<>(); + for (MultipartFile multipartFile : multipartFileList) { + String fileFullName = multipartFile.getOriginalFilename(); + + if(StrUtil.isBlank(fileFullName)){ + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + // 移除文件扩展名 + String baseName = fileFullName.substring(0, fileFullName.lastIndexOf('.')); + // 分割字符串 + String[] parts = baseName.split("_"); + if (parts.length < 4) { + throw new BusinessException(501,MessageFormat.format("{0} 文件格式不正确",fileFullName)); + } + + String certificateNo = parts[parts.length - 1]; // 证书编号 + String manufactureNo = parts[parts.length - 2]; // 出厂编号 + String model = String.join("_", Arrays.copyOfRange(parts, 1, parts.length - 2)); // 规格型号 + String equipmentName = parts[0]; // 设备名称 + + List certificates = list.stream().filter(c->certificateNo.equals(c.getCertificateNo()) + &&manufactureNo.equals(c.getEquipmentManufactureNo())&&model.equals(c.getEquipmentModel())&&equipmentName.equals(c.getEquipmentName())).collect(Collectors.toList()); + + if(CollUtil.isEmpty(certificates)||certificates.size()<1){ + throw new BusinessException(501,MessageFormat.format("{0} 找不到证书信息",fileFullName)); + }else if(certificates.size()>1){ + throw new BusinessException(501,MessageFormat.format("{0} 找到多个证书信息",fileFullName)); + } + + Long certificateId = certificates.get(0).getId(); + if(fileMaps.containsKey(certificateId)){ + fileMaps.get(certificateId).add(multipartFile); + }else { + List mapList = new ArrayList<>(); + mapList.add(multipartFile); + fileMaps.put(certificateId, mapList); + } + + } + return fileMaps; + } @Override @Transactional @@ -372,7 +523,7 @@ queryWrapper.like("e.equipment_no", equipmentNo); } if (StrUtil.isNotEmpty(equipmentName)) { - queryWrapper.like("e.equipment_name", equipmentName); + queryWrapper.eq("e.equipment_name", equipmentName); } if (StrUtil.isNotEmpty(equipmentManufactureNo)) { queryWrapper.like("e.manufacture_no", equipmentManufactureNo); @@ -395,4 +546,9 @@ queryWrapper.le(StrUtil.isNotEmpty(checkDateEnd), "c.check_date", checkDateEnd); return queryWrapper; } + + @Override + public String getLastSubcontractor(Long equipmentId) { + return this.baseMapper.getLastSubcontractor(equipmentId); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java index 5f68411..ad702af 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractOrderRelationServiceImpl.java @@ -7,6 +7,9 @@ import com.casic.missiles.model.subcontract.SubcontractReviewRelation; import com.casic.missiles.service.subcontract.ISubcontractOrderRelationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.DictCodeUtils; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; @@ -20,8 +23,10 @@ * @since 2024-01-18 */ @Service +@RequiredArgsConstructor public class SubcontractOrderRelationServiceImpl extends ServiceImpl implements ISubcontractOrderRelationService { + private final ISystemDeptService deptService; @Override public void saveByOrder(Long orderId, List list) { this.removeByOrder(orderId); @@ -40,6 +45,15 @@ @Override public List listByOrder(Long orderId) { - return this.baseMapper.listByOrder(orderId); + List list = this.baseMapper.listByOrder(orderId); + for (SubcontractOrderRelation relation : list) { + relation.setDeptName(deptService.getParentsDeptName(relation.getDeptId())); + try { + DictCodeUtils.convertDictCodeToName(relation); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + return list; } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java index 8ef870c..be7554b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java @@ -131,6 +131,7 @@ if(StrUtil.isNotEmpty(queryForm.getCreateTimeEnd())){ queryWrapper.le("create_time",queryForm.getCreateTimeEnd()); } + queryWrapper.eq("is_del","0"); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getCreateDeptName()),"create_dept_name",queryForm.getCreateDeptName()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getTestAbility()),"test_ability",queryForm.getTestAbility()); return queryWrapper; @@ -149,6 +150,7 @@ QueryWrapper queryWrapper = new QueryWrapper<>(); //queryWrapper.eq("approval_status",ApprovalStatusEnum.PASSED); queryWrapper.like("test_ability",equipmentName); + queryWrapper.eq("is_del","0"); return this.list(queryWrapper); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java index 02a7dda..cad7c72 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemRfidServiceImpl.java @@ -186,7 +186,7 @@ queryWrapper.like("e.equipment_no",equipmentNo); } if(StrUtil.isNotEmpty(equipmentName)){ - queryWrapper.like("e.equipment_name",equipmentName); + queryWrapper.eq("e.equipment_name",equipmentName); } if(StrUtil.isNotEmpty(useStatus)){ if("0".equals(useStatus)){ diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java index 81076fc..b83620b 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractCertificateService.java @@ -20,8 +20,24 @@ */ public interface ISubcontractCertificateService extends IService { + /** + * 批量导入(信息+证书) + * @param file zip文件:一个excel文件,以及文件”附件“列对应的pdf文件 + */ ReturnDTO batchImport(MultipartFile file) throws IOException; + /** + * 批量导入(信息) + * @param file excel文件,导入基础信息 + */ + void batchImportInfo(MultipartFile file) throws IOException; + + /** + * 批量导入(证书文件) + * @param file zip文件,多个pdf文件,文件命名方式为:设备名称_规格型号_出厂编号_证书编号 + */ + void batchImportFiles(MultipartFile file) throws IOException; + void saveOrUpdateInfo(SubcontractCertificate subcontractCertificate); void removeInfo(Long id); @@ -46,4 +62,6 @@ List listByEquipment(Long equipmentId); + String getLastSubcontractor(Long equipmentId); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractOrderRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractOrderRelationService.java index 08ac271..dd12989 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractOrderRelationService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/subcontract/ISubcontractOrderRelationService.java @@ -20,5 +20,5 @@ boolean removeByOrder(Long orderId); - List listByOrder(Long orderId); + List listByOrder(Long orderId) ; } diff --git a/pom.xml b/pom.xml index 9ba7f80..5e6c7a1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.casic casic-metering-eqpt-xichang - 1.3.1.2 + 1.3.2.0 casic-metering-eqpt-xichang pom