diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java index fa9d7db..67023c1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.service.Impl.resource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeFileMapper; import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务实现类 @@ -17,4 +20,11 @@ @Service public class BizResourceFileGrantNoticeFileServiceImpl extends ServiceImpl implements IBizResourceFileGrantNoticeFileService { + @Override + public List getListByNoteId(Long noteId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("notice_id",noteId); + queryWrapper.eq("origin","1"); + return this.baseMapper.selectList(queryWrapper); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java index fa9d7db..67023c1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.service.Impl.resource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeFileMapper; import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务实现类 @@ -17,4 +20,11 @@ @Service public class BizResourceFileGrantNoticeFileServiceImpl extends ServiceImpl implements IBizResourceFileGrantNoticeFileService { + @Override + public List getListByNoteId(Long noteId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("notice_id",noteId); + queryWrapper.eq("origin","1"); + return this.baseMapper.selectList(queryWrapper); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java index 3d59434..09509ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.Impl.resource; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,15 +9,25 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.resource.file.SystemFileListRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.NoGenerateFileCodeEnum; +import com.casic.missiles.enums.NoGenerateRecordTypeCodeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.resource.BizResourceSystemFileMapper; +import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.model.resource.BizResourceSystemFile; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeService; import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.NoGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** *

* 资源管理-体系文件 服务实现类 @@ -29,14 +40,16 @@ public class BizResourceSystemFileServiceImpl extends ServiceImpl implements IBizResourceSystemFileService { @Autowired private BizResourceSystemFileMapper systemFileMapper; + @Autowired + private IBizResourceFileGrantNoticeFileService fileService; @Override public Page listPage(Page page, SystemFileListRequest request) throws Exception { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getFileNo()),"file_no", request.getFileNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()),"file_distribute_no", request.getFileDistributeNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileName()),"file_name", request.getFileName()); - wrapper.eq(StringUtils.isNotBlank(request.getFileType()),"file_type", request.getFileType()); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()), "file_distribute_no", request.getFileDistributeNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.eq(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); wrapper.eq("history", request.getHistory()); wrapper.orderByDesc("create_time"); Page systemFilePage = systemFileMapper.selectPage(page, wrapper); @@ -79,4 +92,50 @@ } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + + @Override + public void addFileByGrantNotice(Long grantNoticeId) { + List fileList = fileService.getListByNoteId(grantNoticeId); + if (null != fileList && fileList.size() > 0) { + List systemFileList = new ArrayList<>(); + for (BizResourceFileGrantNoticeFile bizResourceFileGrantNoticeFile : fileList) { + //生成发放号 + String labCode = bizResourceFileGrantNoticeFile.getLabCode(); + Integer fileType = bizResourceFileGrantNoticeFile.getFileCategory(); + String classificationCode = "D"; + switch (fileType) { + case 1: + classificationCode = "A"; + break; + case 2: + classificationCode = "B"; + break; + case 3: + classificationCode = "C"; + break; + } + Long maxNo = this.baseMapper.selectMaxNo(labCode + "-" + classificationCode + DateUtil.thisYear()); + String fileDistributeNo = NoGeneratorUtil.generateFileDistributeNo(labCode, classificationCode, maxNo); + bizResourceFileGrantNoticeFile.setFileDistributeNo(fileDistributeNo); + systemFileList.add(new BizResourceSystemFile(bizResourceFileGrantNoticeFile.getId(), + bizResourceFileGrantNoticeFile.getFileNo(), + bizResourceFileGrantNoticeFile.getLabCode(), + bizResourceFileGrantNoticeFile.getGroupCode(), + bizResourceFileGrantNoticeFile.getFileDistributeNo(), + bizResourceFileGrantNoticeFile.getFileName(), + bizResourceFileGrantNoticeFile.getFileVersion(), + bizResourceFileGrantNoticeFile.getFileCategory() + "", + bizResourceFileGrantNoticeFile.getPromulgateTime(), + bizResourceFileGrantNoticeFile.getExecuteTime(), + 0, + DateUtil.formatDateTime(new Date()))); + } + //更新发放号至文件列表 + fileService.updateBatchById(fileList); + + //生成体系文件 + this.saveBatch(systemFileList); + } + + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java index fa9d7db..67023c1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.service.Impl.resource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeFileMapper; import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务实现类 @@ -17,4 +20,11 @@ @Service public class BizResourceFileGrantNoticeFileServiceImpl extends ServiceImpl implements IBizResourceFileGrantNoticeFileService { + @Override + public List getListByNoteId(Long noteId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("notice_id",noteId); + queryWrapper.eq("origin","1"); + return this.baseMapper.selectList(queryWrapper); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java index 3d59434..09509ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.Impl.resource; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,15 +9,25 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.resource.file.SystemFileListRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.NoGenerateFileCodeEnum; +import com.casic.missiles.enums.NoGenerateRecordTypeCodeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.resource.BizResourceSystemFileMapper; +import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.model.resource.BizResourceSystemFile; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeService; import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.NoGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** *

* 资源管理-体系文件 服务实现类 @@ -29,14 +40,16 @@ public class BizResourceSystemFileServiceImpl extends ServiceImpl implements IBizResourceSystemFileService { @Autowired private BizResourceSystemFileMapper systemFileMapper; + @Autowired + private IBizResourceFileGrantNoticeFileService fileService; @Override public Page listPage(Page page, SystemFileListRequest request) throws Exception { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getFileNo()),"file_no", request.getFileNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()),"file_distribute_no", request.getFileDistributeNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileName()),"file_name", request.getFileName()); - wrapper.eq(StringUtils.isNotBlank(request.getFileType()),"file_type", request.getFileType()); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()), "file_distribute_no", request.getFileDistributeNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.eq(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); wrapper.eq("history", request.getHistory()); wrapper.orderByDesc("create_time"); Page systemFilePage = systemFileMapper.selectPage(page, wrapper); @@ -79,4 +92,50 @@ } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + + @Override + public void addFileByGrantNotice(Long grantNoticeId) { + List fileList = fileService.getListByNoteId(grantNoticeId); + if (null != fileList && fileList.size() > 0) { + List systemFileList = new ArrayList<>(); + for (BizResourceFileGrantNoticeFile bizResourceFileGrantNoticeFile : fileList) { + //生成发放号 + String labCode = bizResourceFileGrantNoticeFile.getLabCode(); + Integer fileType = bizResourceFileGrantNoticeFile.getFileCategory(); + String classificationCode = "D"; + switch (fileType) { + case 1: + classificationCode = "A"; + break; + case 2: + classificationCode = "B"; + break; + case 3: + classificationCode = "C"; + break; + } + Long maxNo = this.baseMapper.selectMaxNo(labCode + "-" + classificationCode + DateUtil.thisYear()); + String fileDistributeNo = NoGeneratorUtil.generateFileDistributeNo(labCode, classificationCode, maxNo); + bizResourceFileGrantNoticeFile.setFileDistributeNo(fileDistributeNo); + systemFileList.add(new BizResourceSystemFile(bizResourceFileGrantNoticeFile.getId(), + bizResourceFileGrantNoticeFile.getFileNo(), + bizResourceFileGrantNoticeFile.getLabCode(), + bizResourceFileGrantNoticeFile.getGroupCode(), + bizResourceFileGrantNoticeFile.getFileDistributeNo(), + bizResourceFileGrantNoticeFile.getFileName(), + bizResourceFileGrantNoticeFile.getFileVersion(), + bizResourceFileGrantNoticeFile.getFileCategory() + "", + bizResourceFileGrantNoticeFile.getPromulgateTime(), + bizResourceFileGrantNoticeFile.getExecuteTime(), + 0, + DateUtil.formatDateTime(new Date()))); + } + //更新发放号至文件列表 + fileService.updateBatchById(fileList); + + //生成体系文件 + this.saveBatch(systemFileList); + } + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java index 403519a..54c960d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java @@ -9,6 +9,7 @@ import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeMapper; import com.casic.missiles.model.resource.BizResourceFileGrantNotice; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -33,16 +34,20 @@ }); BizResourceFileGrantNoticeMapper grantNoticeMapper = SpringContextUtil.getBean(BizResourceFileGrantNoticeMapper.class); + IBizResourceSystemFileService systemFileService = SpringContextUtil.getBean(IBizResourceSystemFileService.class); + BizResourceFileGrantNotice grantNotice = new BizResourceFileGrantNotice(); grantNotice.setId(id); grantNotice.setApprovalStatus(ApprovalStatusEnum.PASSED); int updateFlag = grantNoticeMapper.updateById(grantNotice); - //toDo:生成文件发放号 + if (updateFlag <= 0) { log.error("文件发放通知单审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + //toDo:生成文件发放号,生成体系文件 + systemFileService.addFileByGrantNotice(id); } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java index fa9d7db..67023c1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.service.Impl.resource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeFileMapper; import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务实现类 @@ -17,4 +20,11 @@ @Service public class BizResourceFileGrantNoticeFileServiceImpl extends ServiceImpl implements IBizResourceFileGrantNoticeFileService { + @Override + public List getListByNoteId(Long noteId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("notice_id",noteId); + queryWrapper.eq("origin","1"); + return this.baseMapper.selectList(queryWrapper); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java index 3d59434..09509ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.Impl.resource; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,15 +9,25 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.resource.file.SystemFileListRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.NoGenerateFileCodeEnum; +import com.casic.missiles.enums.NoGenerateRecordTypeCodeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.resource.BizResourceSystemFileMapper; +import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.model.resource.BizResourceSystemFile; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeService; import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.NoGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** *

* 资源管理-体系文件 服务实现类 @@ -29,14 +40,16 @@ public class BizResourceSystemFileServiceImpl extends ServiceImpl implements IBizResourceSystemFileService { @Autowired private BizResourceSystemFileMapper systemFileMapper; + @Autowired + private IBizResourceFileGrantNoticeFileService fileService; @Override public Page listPage(Page page, SystemFileListRequest request) throws Exception { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getFileNo()),"file_no", request.getFileNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()),"file_distribute_no", request.getFileDistributeNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileName()),"file_name", request.getFileName()); - wrapper.eq(StringUtils.isNotBlank(request.getFileType()),"file_type", request.getFileType()); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()), "file_distribute_no", request.getFileDistributeNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.eq(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); wrapper.eq("history", request.getHistory()); wrapper.orderByDesc("create_time"); Page systemFilePage = systemFileMapper.selectPage(page, wrapper); @@ -79,4 +92,50 @@ } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + + @Override + public void addFileByGrantNotice(Long grantNoticeId) { + List fileList = fileService.getListByNoteId(grantNoticeId); + if (null != fileList && fileList.size() > 0) { + List systemFileList = new ArrayList<>(); + for (BizResourceFileGrantNoticeFile bizResourceFileGrantNoticeFile : fileList) { + //生成发放号 + String labCode = bizResourceFileGrantNoticeFile.getLabCode(); + Integer fileType = bizResourceFileGrantNoticeFile.getFileCategory(); + String classificationCode = "D"; + switch (fileType) { + case 1: + classificationCode = "A"; + break; + case 2: + classificationCode = "B"; + break; + case 3: + classificationCode = "C"; + break; + } + Long maxNo = this.baseMapper.selectMaxNo(labCode + "-" + classificationCode + DateUtil.thisYear()); + String fileDistributeNo = NoGeneratorUtil.generateFileDistributeNo(labCode, classificationCode, maxNo); + bizResourceFileGrantNoticeFile.setFileDistributeNo(fileDistributeNo); + systemFileList.add(new BizResourceSystemFile(bizResourceFileGrantNoticeFile.getId(), + bizResourceFileGrantNoticeFile.getFileNo(), + bizResourceFileGrantNoticeFile.getLabCode(), + bizResourceFileGrantNoticeFile.getGroupCode(), + bizResourceFileGrantNoticeFile.getFileDistributeNo(), + bizResourceFileGrantNoticeFile.getFileName(), + bizResourceFileGrantNoticeFile.getFileVersion(), + bizResourceFileGrantNoticeFile.getFileCategory() + "", + bizResourceFileGrantNoticeFile.getPromulgateTime(), + bizResourceFileGrantNoticeFile.getExecuteTime(), + 0, + DateUtil.formatDateTime(new Date()))); + } + //更新发放号至文件列表 + fileService.updateBatchById(fileList); + + //生成体系文件 + this.saveBatch(systemFileList); + } + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java index 403519a..54c960d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java @@ -9,6 +9,7 @@ import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeMapper; import com.casic.missiles.model.resource.BizResourceFileGrantNotice; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -33,16 +34,20 @@ }); BizResourceFileGrantNoticeMapper grantNoticeMapper = SpringContextUtil.getBean(BizResourceFileGrantNoticeMapper.class); + IBizResourceSystemFileService systemFileService = SpringContextUtil.getBean(IBizResourceSystemFileService.class); + BizResourceFileGrantNotice grantNotice = new BizResourceFileGrantNotice(); grantNotice.setId(id); grantNotice.setApprovalStatus(ApprovalStatusEnum.PASSED); int updateFlag = grantNoticeMapper.updateById(grantNotice); - //toDo:生成文件发放号 + if (updateFlag <= 0) { log.error("文件发放通知单审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + //toDo:生成文件发放号,生成体系文件 + systemFileService.addFileByGrantNotice(id); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java index c1e6376..7d2ebd4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java @@ -3,6 +3,8 @@ import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务类 @@ -13,4 +15,6 @@ */ public interface IBizResourceFileGrantNoticeFileService extends IService { + List getListByNoteId(Long noteId); + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java index 287e594..62b183e 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/NoGeneratorUtil.java @@ -62,4 +62,27 @@ return String.valueOf(builder); } + /** + * 文件发放号生成 + */ + public static synchronized String generateFileDistributeNo(String labNo, String classificationCode, long nowNum) { + //年号 + int yearNo = DateUtil.thisYear(); + StringBuilder builder = new StringBuilder(); + builder.append(labNo); + builder.append("-"); + builder.append(classificationCode); + builder.append(yearNo); + + AtomicLong count = new AtomicLong(nowNum); + if(nowNum == 0){ + count = new AtomicLong(0); + builder.append("00").append(count.incrementAndGet()); + }else{ + String format = String.format("%03d", count.incrementAndGet()); + builder.append(format); + } + return String.valueOf(builder); + } + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java index 39ea7cc..aab0b1c 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/resource/BizResourceSystemFileMapper.java @@ -1,7 +1,9 @@ package com.casic.missiles.mapper.resource; -import com.casic.missiles.model.resource.BizResourceSystemFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.resource.BizResourceSystemFile; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** *

@@ -13,4 +15,9 @@ */ public interface BizResourceSystemFileMapper extends BaseMapper { + + @Select("SELECT IFNULL(max(RIGHT(file_distribute_no, 3)), 0) from biz_resource_file_grant_notice_file where file_distribute_no LIKE CONCAT('%', #{prefix}, '%') ") + Long selectMaxNo(@Param("prefix") String prefix); + + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java index f02e6d9..0391b30 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileGrantNoticeFile.java @@ -77,12 +77,39 @@ @TableField("change_content") private String changeContent; + @DictCodeField(message = "文件类型描述不合法", cacheName = MeterDictCode.FILE_TYPE) + @ApiModelProperty(value = "文件类型", dataType = "String", required = true) + @TableField("file_category") + private Integer fileCategory; + + + @NotEmpty(message = "文件类型名不能为空") + @ApiModelProperty(value = "文件类型名", dataType = "String") + @TableField(exist = false) + private String fileCategoryName; + + @ApiModelProperty(value = "文件列表来源,1:体系文件,0:其他(现行测试校准检定方法】、【合同执行变更登记表】、【溯源链变更管理】、【要求、委托书及合同评审表】)", dataType = "String",required = true) + @TableField("origin") + private String origin; + + @ApiModelProperty(value = "文件发放号,审批通过后生成", dataType = "String") + @TableField("file_distribute_no") + private String fileDistributeNo; + @DictCodeField(message = "实验室代码描述不合法", cacheName = MeterDictCode.LAB_CODE) @ApiModelProperty(value = "实验室代码(字典code)", dataType = "String") @TableField("lab_code") private String labCode; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + @ApiModelProperty(value = "实验室代码(字典value)", dataType = "String") @TableField(exist = false) private String labCodeName; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java index 7c1e805..9c7ab72 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceFileRecallArchive.java @@ -74,6 +74,10 @@ @TableField("process_id") private String processId; + @ApiModelProperty(value = "收回存档原因", dataType = "String") + @TableField("archive_reason") + private String archiveReason; + /** * 创建人id */ diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java index 83656e4..2b516f0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/resource/BizResourceSystemFile.java @@ -140,6 +140,14 @@ @TableField("file") private String file; + @ApiModelProperty(value = "颁布时间", dataType = "String", required = true) + @TableField("promulgate_time") + private String promulgateTime; + + @ApiModelProperty(value = "实施时间", dataType = "String", required = true) + @TableField("execute_time") + private String executeTime; + /** * 历史文件(1历史文件0体系文件) */ @@ -159,4 +167,35 @@ @ApiModelProperty(value = "标准装置体系文件关联表id", dataType = "Long") @TableField(exist = false) private Long standardSystemFileRelationId; + + + public BizResourceSystemFile() { + } + + public BizResourceSystemFile( + Long id, + String fileNo, + String labCode, + String groupCode, + String fileDistributeNo, + String fileName, + String versionNo, + String fileType, + String promulgateTime, + String executeTime, + Integer history, + String createTime) { + this.id = id; + this.fileNo = fileNo; + this.labCode = labCode; + this.groupCode = groupCode; + this.fileDistributeNo = fileDistributeNo; + this.fileName = fileName; + this.versionNo = versionNo; + this.fileType = fileType; + this.promulgateTime = promulgateTime; + this.executeTime = executeTime; + this.history = history; + this.createTime = createTime; + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java index fa9d7db..67023c1 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceFileGrantNoticeFileServiceImpl.java @@ -1,11 +1,14 @@ package com.casic.missiles.service.Impl.resource; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeFileMapper; import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务实现类 @@ -17,4 +20,11 @@ @Service public class BizResourceFileGrantNoticeFileServiceImpl extends ServiceImpl implements IBizResourceFileGrantNoticeFileService { + @Override + public List getListByNoteId(Long noteId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("notice_id",noteId); + queryWrapper.eq("origin","1"); + return this.baseMapper.selectList(queryWrapper); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java index 3d59434..09509ae 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/resource/BizResourceSystemFileServiceImpl.java @@ -1,5 +1,6 @@ package com.casic.missiles.service.Impl.resource; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -8,15 +9,25 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.resource.file.SystemFileListRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.NoGenerateFileCodeEnum; +import com.casic.missiles.enums.NoGenerateRecordTypeCodeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.resource.BizResourceSystemFileMapper; +import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.casic.missiles.model.resource.BizResourceSystemFile; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeFileService; +import com.casic.missiles.service.resource.IBizResourceFileGrantNoticeService; import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.DictCodeUtils; +import com.casic.missiles.utils.NoGeneratorUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** *

* 资源管理-体系文件 服务实现类 @@ -29,14 +40,16 @@ public class BizResourceSystemFileServiceImpl extends ServiceImpl implements IBizResourceSystemFileService { @Autowired private BizResourceSystemFileMapper systemFileMapper; + @Autowired + private IBizResourceFileGrantNoticeFileService fileService; @Override public Page listPage(Page page, SystemFileListRequest request) throws Exception { QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getFileNo()),"file_no", request.getFileNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()),"file_distribute_no", request.getFileDistributeNo()); - wrapper.like(StringUtils.isNotBlank(request.getFileName()),"file_name", request.getFileName()); - wrapper.eq(StringUtils.isNotBlank(request.getFileType()),"file_type", request.getFileType()); + wrapper.like(StringUtils.isNotBlank(request.getFileNo()), "file_no", request.getFileNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileDistributeNo()), "file_distribute_no", request.getFileDistributeNo()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.eq(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); wrapper.eq("history", request.getHistory()); wrapper.orderByDesc("create_time"); Page systemFilePage = systemFileMapper.selectPage(page, wrapper); @@ -79,4 +92,50 @@ } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } + + @Override + public void addFileByGrantNotice(Long grantNoticeId) { + List fileList = fileService.getListByNoteId(grantNoticeId); + if (null != fileList && fileList.size() > 0) { + List systemFileList = new ArrayList<>(); + for (BizResourceFileGrantNoticeFile bizResourceFileGrantNoticeFile : fileList) { + //生成发放号 + String labCode = bizResourceFileGrantNoticeFile.getLabCode(); + Integer fileType = bizResourceFileGrantNoticeFile.getFileCategory(); + String classificationCode = "D"; + switch (fileType) { + case 1: + classificationCode = "A"; + break; + case 2: + classificationCode = "B"; + break; + case 3: + classificationCode = "C"; + break; + } + Long maxNo = this.baseMapper.selectMaxNo(labCode + "-" + classificationCode + DateUtil.thisYear()); + String fileDistributeNo = NoGeneratorUtil.generateFileDistributeNo(labCode, classificationCode, maxNo); + bizResourceFileGrantNoticeFile.setFileDistributeNo(fileDistributeNo); + systemFileList.add(new BizResourceSystemFile(bizResourceFileGrantNoticeFile.getId(), + bizResourceFileGrantNoticeFile.getFileNo(), + bizResourceFileGrantNoticeFile.getLabCode(), + bizResourceFileGrantNoticeFile.getGroupCode(), + bizResourceFileGrantNoticeFile.getFileDistributeNo(), + bizResourceFileGrantNoticeFile.getFileName(), + bizResourceFileGrantNoticeFile.getFileVersion(), + bizResourceFileGrantNoticeFile.getFileCategory() + "", + bizResourceFileGrantNoticeFile.getPromulgateTime(), + bizResourceFileGrantNoticeFile.getExecuteTime(), + 0, + DateUtil.formatDateTime(new Date()))); + } + //更新发放号至文件列表 + fileService.updateBatchById(fileList); + + //生成体系文件 + this.saveBatch(systemFileList); + } + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java index 403519a..54c960d 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/FileGrantNoticeEventPostProcessor.java @@ -9,6 +9,7 @@ import com.casic.missiles.mapper.resource.BizResourceFileGrantNoticeMapper; import com.casic.missiles.model.resource.BizResourceFileGrantNotice; import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.service.resource.IBizResourceSystemFileService; import com.casic.missiles.utils.SpringContextUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -33,16 +34,20 @@ }); BizResourceFileGrantNoticeMapper grantNoticeMapper = SpringContextUtil.getBean(BizResourceFileGrantNoticeMapper.class); + IBizResourceSystemFileService systemFileService = SpringContextUtil.getBean(IBizResourceSystemFileService.class); + BizResourceFileGrantNotice grantNotice = new BizResourceFileGrantNotice(); grantNotice.setId(id); grantNotice.setApprovalStatus(ApprovalStatusEnum.PASSED); int updateFlag = grantNoticeMapper.updateById(grantNotice); - //toDo:生成文件发放号 + if (updateFlag <= 0) { log.error("文件发放通知单审批通过后处理失败"); throw new BusinessException(BusinessExceptionEnum.APPROVAL_PROCESSOR_HANDLE_FAILED); } + //toDo:生成文件发放号,生成体系文件 + systemFileService.addFileByGrantNotice(id); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java index c1e6376..7d2ebd4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceFileGrantNoticeFileService.java @@ -3,6 +3,8 @@ import com.casic.missiles.model.resource.BizResourceFileGrantNoticeFile; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** *

* 资源管理-文件管理-文件发放通知单-发放的文件 服务类 @@ -13,4 +15,6 @@ */ public interface IBizResourceFileGrantNoticeFileService extends IService { + List getListByNoteId(Long noteId); + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceSystemFileService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceSystemFileService.java index 7a8c217..53cd806 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceSystemFileService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceSystemFileService.java @@ -24,4 +24,10 @@ ReturnDTO fileUpdate(BizResourceSystemFile systemFile); ReturnDTO deleteFile(IdDTO idDto); + + /** + * 发放通知单审批通过后根据id生成体系文件 + * @param grantNoticeId + */ + void addFileByGrantNotice(Long grantNoticeId); }