diff --git a/core/src/main/java/com/dite/znpt/constant/Message.java b/core/src/main/java/com/dite/znpt/constant/Message.java index 1a4a4dc..83e643d 100644 --- a/core/src/main/java/com/dite/znpt/constant/Message.java +++ b/core/src/main/java/com/dite/znpt/constant/Message.java @@ -13,13 +13,14 @@ public class Message implements Serializable { private static final long serialVersionUID = 4010434089386946123L; public static final String IMAGE_IS_EMPTY = "图像信息为空"; + public static final String ATTACH_INFO_IS_NOT_EXIST = "附件信息id不存在"; + public static final String ATTACH_FILE_IS_NOT_EXIST = "不存在{}的附件文件"; public static final String IMAGE_PATH_IS_NOT_EXIST = "图像地址不存在"; public static final String IMAGE_ID_IS_NOT_EXIST = "图像id不存在"; public static final String DEFECT_ID_IS_NOT_EXIST = "缺陷id不存在"; public static final String PROJECT_ID_IS_NOT_EXIST = "项目id不存在"; public static final String TURBINE_ID_IS_NOT_EXIST = "机组id不存在"; public static final String PART_ID_IS_NOT_EXIST = "部件id不存在"; - public static final String IMAGE_SOURCE_ID_NOT_EXIST_OR_ILLEGAL = "部件id不存在或者不合法"; public static final String USER_ID_NOT_EXIST = "用户id不存在"; public static final String USER_ID_NOT_EXIST_OR_ILLEGAL = "用户id不存在或者不合法"; public static final String ACCOUNT_EXIST = "用户账号已经存在,请重新输入"; @@ -44,6 +45,7 @@ public class Message implements Serializable { public static final String INSURANCE_COMPANY_NAME_IS_EXIST = "保险公司名称已存在"; public static final String INSURANCE_COMPANY_ID_IS_NOT_EXIST = "保险公司id不存在"; public static final String INSURANCE_INFO_ID_IS_NOT_EXIST = "保险信息id不存在"; + public static final String INSURANCE_FILE_IS_NOT_EXIST = "保险文不存在"; public static final String TASK_ID_GROUP_ID_ALL_EMPTY = "任务id和任务组id不可同时为空"; public static final String TASK_STATUS_NOT_PENDING = "任务状态不是未开始"; public static final String TASK_STATUS_NOT_IN_PROGRESS = "任务状态不是进行中"; diff --git a/core/src/main/java/com/dite/znpt/converts/Converts.java b/core/src/main/java/com/dite/znpt/converts/Converts.java index 5035294..9a3b0da 100644 --- a/core/src/main/java/com/dite/znpt/converts/Converts.java +++ b/core/src/main/java/com/dite/znpt/converts/Converts.java @@ -84,9 +84,12 @@ public interface Converts { InsuranceCompanyEntity toInsuranceCompanyEntity(InsuranceCompanyReq req); List toInsuranceInfoResp(List list); + List toInsuranceAttachResp(List list); InsuranceInfoResp toInsuranceInfoResp(InsuranceInfoEntity entity); InsuranceInfoEntity toInsuranceInfoEntity(InsuranceInfoReq req); + + AttachInfoResp toAttacheInfoResp(AttachInfoEntity entity); } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java index a8b9450..5e1fb8c 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/AttachInfoEntity.java @@ -50,5 +50,9 @@ public class AttachInfoEntity extends AuditableEntity implements Serializable { @ApiModelProperty("备注") @TableField("remark") private String remark; + + @ApiModelProperty("删除标志(0代表存在 1代表删除)") + @TableField("del_flag") + private String delFlag; } diff --git a/core/src/main/java/com/dite/znpt/domain/entity/InsuranceInfoEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/InsuranceInfoEntity.java index a500e03..4242ef0 100644 --- a/core/src/main/java/com/dite/znpt/domain/entity/InsuranceInfoEntity.java +++ b/core/src/main/java/com/dite/znpt/domain/entity/InsuranceInfoEntity.java @@ -64,6 +64,10 @@ public class InsuranceInfoEntity extends AuditableEntity implements Serializable @TableField("insurance_bill_code") private String insuranceBillCode; + @ApiModelProperty("附件id") + @TableField("attach_info_id") + private String attachInfoId; + @ApiModelProperty("生效日期") @TableField("effective_date") private LocalDate effectiveDate; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java index 3e6a88f..11d8200 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoReq.java @@ -21,6 +21,9 @@ public class AttachInfoReq implements Serializable { @Serial private static final long serialVersionUID = -59837569061686176L; + @ApiModelProperty("自定义路径") + private String userDefinedPath; + @ApiModelProperty("文件类型") private String fileType; diff --git a/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java new file mode 100644 index 0000000..027fea6 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/AttachInfoResp.java @@ -0,0 +1,45 @@ +package com.dite.znpt.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author huise23 + * @date 2025/06/25 21:59 + * @Description: 附件信息表请求类 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="AttachInfo响应对象", description="附件信息表") +public class AttachInfoResp implements Serializable { + + @Serial + private static final long serialVersionUID = -59837569061686176L; + + @ApiModelProperty("附件id") + private String attachId; + + @ApiModelProperty("业务id") + private String businessId; + + @ApiModelProperty("附件路径") + private String attachPath; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("备注") + private String remark; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty + private LocalDateTime createTime; +} + diff --git a/core/src/main/java/com/dite/znpt/domain/vo/InsuranceAttachResp.java b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceAttachResp.java new file mode 100644 index 0000000..1a54623 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceAttachResp.java @@ -0,0 +1,57 @@ +package com.dite.znpt.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * @Author: gaoxiong + * @Date: 2025/6/24 23:46 + * @Description: + */ +@Data +@Accessors(chain = true) +@ApiModel("保险附件响应实体") +public class InsuranceAttachResp implements Serializable { + + @Serial + private static final long serialVersionUID = -4902944535128070359L; + + @ApiModelProperty("保险信息id") + private String insuranceInfoId; + + @ApiModelProperty("用户id") + private String userId; + + @ApiModelProperty("用户姓名") + private String name; + + @ApiModelProperty("用户编码") + private String userCode; + + @ApiModelProperty("附件id") + private String attachInfoId; + + @ApiModelProperty("附件路径") + private String attachPath; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("备注") + private String remark; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty + private LocalDateTime createTime; + + +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoReq.java b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoReq.java index 1af1c03..cc73dd1 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoReq.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoReq.java @@ -42,6 +42,10 @@ public class InsuranceInfoReq implements Serializable { @ApiModelProperty("保单号") private String insuranceBillCode; + @NotBlank(message = "保单号不能为空") + @ApiModelProperty("附件id,调用/attach-info{businessType}方法获取,businessType传值insurance_file,userDefinedPath传值规则:userid + '/' + insuranceBillCode") + private String attachInfoId; + @JsonFormat(pattern = "yyyy-MM-dd") @NotNull(message = "生效日期不能为空") @ApiModelProperty("生效日期") diff --git a/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoResp.java b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoResp.java index 85d194d..86161b4 100644 --- a/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoResp.java +++ b/core/src/main/java/com/dite/znpt/domain/vo/InsuranceInfoResp.java @@ -6,9 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; import java.io.Serial; import java.io.Serializable; import java.math.BigDecimal; @@ -53,6 +50,12 @@ public class InsuranceInfoResp implements Serializable { @ApiModelProperty("保单号") private String insuranceBillCode; + @ApiModelProperty("附件id") + private String attachInfoId; + + @ApiModelProperty("附件信息") + private AttachInfoResp attachInfoResp; + @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty("生效日期") private LocalDate effectiveDate; diff --git a/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java index 9f58fff..c5c0909 100644 --- a/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/AttachBusinessTypeEnum.java @@ -14,6 +14,7 @@ import java.util.List; @Getter public enum AttachBusinessTypeEnum { PROJECT_TASK("PROJECT_TASK", "项目任务"), + INSURANCE_FILE("insurance", "保险文件"), ; private final String code; private final String desc; diff --git a/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java b/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java index 894351e..596613a 100644 --- a/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/FilePathEnum.java @@ -15,7 +15,7 @@ public enum FilePathEnum { VIDEO("/static/video/", "video"), AUDIO("/static/audio/", "audio"), ATTACH("/static/attach/", "attach"), - ; + INSURANCE("/static/insurance/", "insurance"); @Getter private final String urlPath; diff --git a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java index e749570..f11a8df 100644 --- a/core/src/main/java/com/dite/znpt/service/AttachInfoService.java +++ b/core/src/main/java/com/dite/znpt/service/AttachInfoService.java @@ -6,6 +6,8 @@ import com.dite.znpt.domain.vo.AttachInfoReq; import com.dite.znpt.enums.AttachBusinessTypeEnum; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.rmi.ServerException; import java.util.List; /** @@ -33,6 +35,8 @@ public interface AttachInfoService extends IService { **/ List saveData(String businessType, AttachInfoReq infoReq, MultipartFile[] files); + + void download(String attachId, HttpServletResponse response) throws Exception; /** * 功能描述:删除附件信息 * @@ -41,6 +45,8 @@ public interface AttachInfoService extends IService { **/ void deleteByBusinessId(String businessId, AttachBusinessTypeEnum typeEnum); + void deleteByAttachInfoId(String attachIdInfoId); + /** * 功能描述:删除附件信息 * diff --git a/core/src/main/java/com/dite/znpt/service/InsuranceInfoService.java b/core/src/main/java/com/dite/znpt/service/InsuranceInfoService.java index 6e6d8a3..2328917 100644 --- a/core/src/main/java/com/dite/znpt/service/InsuranceInfoService.java +++ b/core/src/main/java/com/dite/znpt/service/InsuranceInfoService.java @@ -2,9 +2,11 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.InsuranceInfoEntity; +import com.dite.znpt.domain.vo.InsuranceAttachResp; import com.dite.znpt.domain.vo.InsuranceInfoListReq; import com.dite.znpt.domain.vo.InsuranceInfoReq; import com.dite.znpt.domain.vo.InsuranceInfoResp; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -16,6 +18,8 @@ import java.util.List; public interface InsuranceInfoService extends IService { List page(InsuranceInfoListReq req); List list(InsuranceInfoListReq req); + List pageAttach(InsuranceInfoListReq req); + List listAttach(InsuranceInfoListReq req); InsuranceInfoResp detail(String insuranceInfoId); void save(InsuranceInfoReq req); void update(String insuranceInfoId, InsuranceInfoReq req); diff --git a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java index e0b96f6..2762f34 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/AttachInfoServiceImpl.java @@ -7,18 +7,29 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dite.znpt.constant.Constants; +import com.dite.znpt.constant.Message; import com.dite.znpt.domain.entity.AttachInfoEntity; +import com.dite.znpt.domain.entity.InsuranceInfoEntity; import com.dite.znpt.domain.vo.AttachInfoReq; import com.dite.znpt.enums.AttachBusinessTypeEnum; import com.dite.znpt.enums.FilePathEnum; import com.dite.znpt.service.AttachInfoService; import com.dite.znpt.mapper.FileInfoMapper; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.dite.znpt.util.PageUtil; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.rmi.ServerException; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -58,7 +69,11 @@ public class AttachInfoServiceImpl extends ServiceImpl saveData(String businessType, AttachInfoReq infoReq, MultipartFile[] files) { - String temPathPrefix = FilePathEnum.ATTACH.getFileAbsolutePath().concat(businessType).concat(FileUtil.FILE_SEPARATOR).concat(DateUtil.today()).concat(FileUtil.FILE_SEPARATOR); + String temPathPrefix = FilePathEnum.ATTACH.getFileAbsolutePath().concat(businessType).concat(FileUtil.FILE_SEPARATOR); + if(StrUtil.isNotBlank(infoReq.getUserDefinedPath())){ + temPathPrefix = temPathPrefix.concat(infoReq.getUserDefinedPath()).concat(FileUtil.FILE_SEPARATOR); + } + temPathPrefix = temPathPrefix.concat(DateUtil.today()).concat(FileUtil.FILE_SEPARATOR); if (!FileUtil.exist(temPathPrefix)) { FileUtil.mkdir(temPathPrefix); } @@ -84,6 +99,38 @@ public class AttachInfoServiceImpl extends ServiceImpl businessIds, AttachBusinessTypeEnum typeEnum) { lambdaUpdate().in(AttachInfoEntity::getBusinessId, businessIds) - .eq(AttachInfoEntity::getBusinessType, typeEnum.getCode()).remove(); + .eq(AttachInfoEntity::getBusinessType, typeEnum.getCode()) + .set(AttachInfoEntity::getDelFlag, Constants.DEL_FLAG_1).update(); } /** diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java index 3271a0f..dd87b06 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/ImageCollectServiceImpl.java @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dite.znpt.constant.Constants; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; import com.dite.znpt.domain.entity.ImageCollectEntity; @@ -17,7 +16,6 @@ import com.dite.znpt.mapper.ImageCollectMapper; import com.dite.znpt.service.ImageCollectService; import com.dite.znpt.service.ImageService; import com.dite.znpt.service.PartService; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/core/src/main/java/com/dite/znpt/service/impl/InsuranceInfoServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/InsuranceInfoServiceImpl.java index b6e689b..0185f77 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/InsuranceInfoServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/InsuranceInfoServiceImpl.java @@ -1,34 +1,38 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.constant.Constants; import com.dite.znpt.constant.Message; import com.dite.znpt.converts.Converts; -import com.dite.znpt.domain.entity.InsuranceCompanyEntity; -import com.dite.znpt.domain.entity.InsuranceInfoEntity; -import com.dite.znpt.domain.entity.InsuranceTypeEntity; -import com.dite.znpt.domain.entity.UserEntity; -import com.dite.znpt.domain.vo.InsuranceInfoListReq; -import com.dite.znpt.domain.vo.InsuranceInfoReq; -import com.dite.znpt.domain.vo.InsuranceInfoResp; +import com.dite.znpt.domain.entity.*; +import com.dite.znpt.domain.vo.*; +import com.dite.znpt.enums.AttachBusinessTypeEnum; +import com.dite.znpt.enums.FilePathEnum; import com.dite.znpt.enums.InsuranceStatusEnum; import com.dite.znpt.enums.UserStatusEnum; import com.dite.znpt.exception.ServiceException; import com.dite.znpt.mapper.InsuranceInfoMapper; -import com.dite.znpt.service.InsuranceCompanyService; -import com.dite.znpt.service.InsuranceInfoService; -import com.dite.znpt.service.InsuranceTypeService; -import com.dite.znpt.service.UserService; +import com.dite.znpt.service.*; import com.dite.znpt.util.PageUtil; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; -import java.util.List; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @author Bear.G @@ -47,6 +51,9 @@ public class InsuranceInfoServiceImpl extends ServiceImpl page(InsuranceInfoListReq req) { PageUtil.startPage(); @@ -55,7 +62,7 @@ public class InsuranceInfoServiceImpl extends ServiceImpl list(InsuranceInfoListReq req) { - return Converts.INSTANCE.toInsuranceInfoResp( + List result = Converts.INSTANCE.toInsuranceInfoResp( this.list(Wrappers.lambdaQuery(InsuranceInfoEntity.class) .like(StrUtil.isNotBlank(req.getName()), InsuranceInfoEntity::getName, req.getName()) .like(StrUtil.isNotBlank(req.getUserCode()), InsuranceInfoEntity::getUserCode, req.getUserCode()) @@ -63,6 +70,42 @@ public class InsuranceInfoServiceImpl extends ServiceImpl pageAttach(InsuranceInfoListReq req) { + PageUtil.startPage(); + return this.listAttach(req); + } + + @Override + public List listAttach(InsuranceInfoListReq req) { + List result = Converts.INSTANCE.toInsuranceAttachResp( + this.list(Wrappers.lambdaQuery(InsuranceInfoEntity.class) + .like(StrUtil.isNotBlank(req.getName()), InsuranceInfoEntity::getName, req.getName()) + .like(StrUtil.isNotBlank(req.getUserCode()), InsuranceInfoEntity::getUserCode, req.getUserCode()) + .eq(StrUtil.isNotBlank(req.getInsuranceTypeId()), InsuranceInfoEntity::getInsuranceTypeId, req.getInsuranceCompanyId()) + .eq(StrUtil.isNotBlank(req.getInsuranceCompanyId()), InsuranceInfoEntity::getInsuranceCompanyId, req.getInsuranceCompanyId()) + .eq(StrUtil.isNotBlank(req.getInsuranceStatus()), InsuranceInfoEntity::getInsuranceStatus, req.getInsuranceStatus()) + ) + ); + + List attachInfoIds = result.stream().map(InsuranceAttachResp::getAttachInfoId).filter(StrUtil::isNotBlank).toList(); + if(CollUtil.isNotEmpty(attachInfoIds)){ + Map attachIdMap = attacheInfoService.list( + Wrappers.lambdaQuery(AttachInfoEntity.class).in(AttachInfoEntity::getAttachId, attachInfoIds).eq(AttachInfoEntity::getDelFlag, Constants.DEL_FLAG_0) + ).stream().collect(Collectors.toMap(AttachInfoEntity::getAttachId, Function.identity())); + result.forEach(resp -> { + if(StrUtil.isNotBlank(resp.getAttachInfoId()) && attachIdMap.containsKey(resp.getAttachInfoId())){ + resp.setAttachPath(attachIdMap.get(resp.getAttachInfoId()).getAttachPath()); + resp.setCreateTime(attachIdMap.get(resp.getAttachInfoId()).getCreateTime()); + resp.setFileType(attachIdMap.get(resp.getAttachInfoId()).getFileType()); + resp.setRemark(attachIdMap.get(resp.getAttachInfoId()).getRemark()); + } + }); + } + return result; } @Override @@ -71,13 +114,23 @@ public class InsuranceInfoServiceImpl extends ServiceImpl page(InsuranceInfoListReq req) { @@ -37,6 +50,18 @@ public class InsuranceInfoController { return Result.ok(insuranceInfoService.list(req)); } + @ApiOperation(value = "分页查询保险附件列表", httpMethod = "GET") + @GetMapping("/page-attach") + public PageResult pageAttach(InsuranceInfoListReq req) { + return PageResult.ok(insuranceInfoService.pageAttach(req)); + } + + @ApiOperation(value = "查询保险附件列表", httpMethod = "GET") + @GetMapping("/list-attach") + public Result> listAttach(InsuranceInfoListReq req) { + return Result.ok(insuranceInfoService.listAttach(req)); + } + @ApiOperation(value = "查询保险信息详情", httpMethod = "GET") @GetMapping("/detail/{insuranceInfoId}") public Result detail(@PathVariable String insuranceInfoId) { @@ -63,4 +88,20 @@ public class InsuranceInfoController { insuranceInfoService.deleteById(insuranceInfoId); return Result.ok(); } + + /** + * @param response + * @功能描述 下载文件:将输入流中的数据循环写入到响应输出流中,而不是一次性读取到内存 + */ + @GetMapping("/download-file/{insuranceInfoId}") + public void downloadFile(@PathVariable String insuranceInfoId, HttpServletResponse response) throws Exception { + InsuranceInfoEntity insuranceInfo = insuranceInfoService.getById(insuranceInfoId); + if(null == insuranceInfo){ + throw new ServerException(Message.INSURANCE_INFO_ID_IS_NOT_EXIST); + } + if(StrUtil.isBlank(insuranceInfo.getAttachInfoId())){ + throw new ServerException(Message.INSURANCE_FILE_IS_NOT_EXIST); + } + attachInfoService.download(insuranceInfo.getAttachInfoId(), response); + } }