parent
b51b9c28a2
commit
90af39d012
@ -0,0 +1,50 @@ |
|||||||
|
package digital.laboratory.platform.imr.convert; |
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil; |
||||||
|
import digital.laboratory.platform.imr.dto.DrugDepotsDTO; |
||||||
|
import digital.laboratory.platform.imr.entity.DrugCaseInfo; |
||||||
|
import digital.laboratory.platform.imr.vo.DrugCaseInfoVO; |
||||||
|
|
||||||
|
import java.util.Collections; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品案件转换类 |
||||||
|
*/ |
||||||
|
public class DrugCaseInfoConvert { |
||||||
|
|
||||||
|
public static DrugCaseInfo dtoTOEntity(DrugDepotsDTO dto) { |
||||||
|
if (dto == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
DrugCaseInfo drugCaseInfo = new DrugCaseInfo(); |
||||||
|
drugCaseInfo.setId(dto.getId()); |
||||||
|
drugCaseInfo.setCaseName(dto.getCaseName()); |
||||||
|
drugCaseInfo.setCaseNo(dto.getCaseNo()); |
||||||
|
drugCaseInfo.setHandingOverOrg(dto.getHandingOverOrg()); |
||||||
|
drugCaseInfo.setHandingOverDate(dto.getHandingOverDate()); |
||||||
|
return drugCaseInfo; |
||||||
|
} |
||||||
|
|
||||||
|
public static DrugCaseInfoVO entityToVO(DrugCaseInfo entity) { |
||||||
|
if (entity == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
DrugCaseInfoVO drugCaseInfoVO = new DrugCaseInfoVO(); |
||||||
|
drugCaseInfoVO.setId(entity.getId()); |
||||||
|
drugCaseInfoVO.setCaseName(entity.getCaseName()); |
||||||
|
drugCaseInfoVO.setCaseNo(entity.getCaseNo()); |
||||||
|
drugCaseInfoVO.setHandingOverOrg(entity.getHandingOverOrg()); |
||||||
|
drugCaseInfoVO.setHandingOverDate(entity.getHandingOverDate()); |
||||||
|
return drugCaseInfoVO; |
||||||
|
} |
||||||
|
|
||||||
|
public static List<DrugCaseInfoVO> entityToVOList(List<DrugCaseInfo> entityList) { |
||||||
|
if (CollUtil.isEmpty(entityList)) { |
||||||
|
return Collections.emptyList(); |
||||||
|
} |
||||||
|
return entityList.stream().map(entity -> entityToVO(entity)).collect(Collectors.toList()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,37 @@ |
|||||||
|
package digital.laboratory.platform.imr.convert; |
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil; |
||||||
|
import digital.laboratory.platform.imr.dto.DrugMaterialInfoDTO; |
||||||
|
import digital.laboratory.platform.imr.entity.DrugMaterialInfo; |
||||||
|
|
||||||
|
import java.util.Collections; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品检材信息转换类 |
||||||
|
*/ |
||||||
|
public class DrugMaterialInfoConvert { |
||||||
|
|
||||||
|
public static DrugMaterialInfo dtoToEntity(DrugMaterialInfoDTO dto) { |
||||||
|
if (dto == null) { |
||||||
|
return null; |
||||||
|
} |
||||||
|
DrugMaterialInfo drugMaterialInfo = new DrugMaterialInfo(); |
||||||
|
drugMaterialInfo.setId(dto.getId()); |
||||||
|
drugMaterialInfo.setCaseId(dto.getCaseId()); |
||||||
|
drugMaterialInfo.setDrugName(dto.getDrugName()); |
||||||
|
drugMaterialInfo.setMassVolume(dto.getMassVolume()); |
||||||
|
drugMaterialInfo.setUnit(dto.getUnit()); |
||||||
|
drugMaterialInfo.setPackageComplete(dto.getPackageComplete()); |
||||||
|
return drugMaterialInfo; |
||||||
|
} |
||||||
|
|
||||||
|
public static List<DrugMaterialInfo> dtoToEntityList(List<DrugMaterialInfoDTO> dtos) { |
||||||
|
if (CollUtil.isEmpty(dtos)) { |
||||||
|
return Collections.emptyList(); |
||||||
|
} |
||||||
|
return dtos.stream().map(dto -> dtoToEntity(dto)).collect(Collectors.toList()); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,55 @@ |
|||||||
|
package digital.laboratory.platform.imr.dto; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import digital.laboratory.platform.imr.entity.DrugMaterialInfo; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank; |
||||||
|
import javax.validation.constraints.NotNull; |
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
/** |
||||||
|
* 保存毒品库信息中的案件和检材信息DTO类 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ApiModel(value = "DrugDepotsDTO", description = "保存毒品库信息中的案件和检材信息DTO类") |
||||||
|
public class DrugDepotsDTO { |
||||||
|
|
||||||
|
@ApiModelProperty("案件id") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案事件名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案事件名称") |
||||||
|
@NotBlank(message = "案事件名称不能为空!") |
||||||
|
private String caseName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案件编号 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案件编号") |
||||||
|
private String caseNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴单位") |
||||||
|
@NotBlank(message = "送缴单位不能为空!") |
||||||
|
private String handingOverOrg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴日期") |
||||||
|
@NotNull(message = "送缴日期不能为空!") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private LocalDate handingOverDate; |
||||||
|
|
||||||
|
@ApiModelProperty("关联的检材列表") |
||||||
|
private List<DrugMaterialInfoDTO> drugMaterialInfoDTOList; |
||||||
|
} |
@ -0,0 +1,49 @@ |
|||||||
|
package digital.laboratory.platform.imr.dto; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品库中的毒品检材信息 保存DTO类 |
||||||
|
* @TableName b_drug_material_info |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ApiModel(value = "DrugMaterialInfoDTO", description = "毒品库中的毒品检材信息 保存DTO类") |
||||||
|
public class DrugMaterialInfoDTO { |
||||||
|
|
||||||
|
@ApiModelProperty("毒品检材id") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 关联的案件id |
||||||
|
*/ |
||||||
|
@ApiModelProperty("关联的案件id") |
||||||
|
private String caseId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品检材名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("毒品检材名称") |
||||||
|
private String drugName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 质量/体积 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("质量/体积") |
||||||
|
private String massVolume; |
||||||
|
|
||||||
|
/** |
||||||
|
* 质量/体积 单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("质量/体积 单位") |
||||||
|
private String unit; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 包装是否完整, 1 完整 | 0 不完整 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("包装是否完整, 1 完整 | 0 不完整") |
||||||
|
private Boolean packageComplete; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
package digital.laboratory.platform.imr.query; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.time.LocalDate; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品库信息查询对象 Query |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ApiModel(value = "DrugDepotsQuery", description = "毒品库信息查询对象 Query") |
||||||
|
public class DrugDepotsQuery { |
||||||
|
|
||||||
|
@ApiModelProperty(value = "分页参数,每页多少条, 默认10") |
||||||
|
private Long size = 10L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "分页参数, 当前页, 默认1") |
||||||
|
private Long current = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "关键字,支持 案件名称, 毒品名称") |
||||||
|
private String keywords; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "送缴单位id查询") |
||||||
|
private String orgId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "案件id查询") |
||||||
|
private String caseId; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "开始日期") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private LocalDate startDate; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "结束日期") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private LocalDate endDate; |
||||||
|
} |
@ -0,0 +1,80 @@ |
|||||||
|
package digital.laboratory.platform.imr.service; |
||||||
|
|
||||||
|
import com.deepoove.poi.XWPFTemplate; |
||||||
|
import digital.laboratory.platform.sys.entity.SysOrg; |
||||||
|
import digital.laboratory.platform.sys.entity.SysUser; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.ByteArrayInputStream; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通用的feign请求封装接口服务层接口 |
||||||
|
*/ |
||||||
|
public interface CommonFeignService { |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用获取用户机构 |
||||||
|
* @param orgId |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
SysOrg remoteGetSysOrg(String orgId); |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用获取用户信息 |
||||||
|
* @param username |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
SysUser remoteGetUserByUsername(String username); |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用获取用户信息 |
||||||
|
* @param userId |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
SysUser remoteGetUserById(String userId); |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用生成word,并转成pdf |
||||||
|
* |
||||||
|
* @param template |
||||||
|
* @param originalFilename 文件名 |
||||||
|
* @param savePath 保存到minio路径 |
||||||
|
* @return |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
boolean remoteGenerateWord2PDF(XWPFTemplate template, String originalFilename, String savePath) throws Exception; |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
* @return |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
ByteArrayInputStream remoteGetFile(String filePath) throws Exception; |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
* @param fileName 名称 |
||||||
|
* @param httpServletResponse |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
void remoteGetFile(String filePath, String fileName, HttpServletResponse httpServletResponse) throws Exception; |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件列表 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
*/ |
||||||
|
List<String> remoteGetFileList(String filePath); |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用-上传文件 |
||||||
|
* @param file 上传的文件对象 |
||||||
|
* @param path 上传到minio的位置 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
Map<String, String> remoteUploadFile(MultipartFile file, String path); |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
package digital.laboratory.platform.imr.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import digital.laboratory.platform.imr.entity.SampleInboundRecord; |
||||||
|
|
||||||
|
public interface SampleInboundRecordService extends IService<SampleInboundRecord> { |
||||||
|
} |
@ -0,0 +1,7 @@ |
|||||||
|
package digital.laboratory.platform.imr.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService; |
||||||
|
import digital.laboratory.platform.imr.entity.SampleStorage; |
||||||
|
|
||||||
|
public interface SampleStorageService extends IService<SampleStorage> { |
||||||
|
} |
@ -0,0 +1,206 @@ |
|||||||
|
package digital.laboratory.platform.imr.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.io.IoUtil; |
||||||
|
import cn.hutool.core.io.file.FileNameUtil; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import com.deepoove.poi.XWPFTemplate; |
||||||
|
import digital.laboratory.platform.common.core.constant.CommonConstants; |
||||||
|
import digital.laboratory.platform.common.core.util.R; |
||||||
|
import digital.laboratory.platform.common.feign.RemoteWord2PDFService; |
||||||
|
import digital.laboratory.platform.common.oss.service.OssFile; |
||||||
|
import digital.laboratory.platform.imr.service.CommonFeignService; |
||||||
|
import digital.laboratory.platform.sys.dto.UserInfo; |
||||||
|
import digital.laboratory.platform.sys.entity.SysOrg; |
||||||
|
import digital.laboratory.platform.sys.entity.SysUser; |
||||||
|
import digital.laboratory.platform.sys.feign.RemoteOrgService; |
||||||
|
import digital.laboratory.platform.sys.feign.RemoteUserService; |
||||||
|
import feign.Response; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.apache.commons.io.output.ByteArrayOutputStream; |
||||||
|
import org.springframework.mock.web.MockMultipartFile; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
import org.springframework.web.multipart.MultipartFile; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.ByteArrayInputStream; |
||||||
|
import java.util.Base64; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* 通用的feign请求封装接口服务层接口 实现类 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@Service |
||||||
|
public class CommonFeignServiceImpl implements CommonFeignService { |
||||||
|
|
||||||
|
@Resource |
||||||
|
private RemoteOrgService remoteOrgService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private RemoteUserService remoteUserService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private RemoteWord2PDFService remoteWord2PDFService; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private OssFile ossFile; |
||||||
|
|
||||||
|
/** |
||||||
|
* 根据用户获取远程系统机构信息 |
||||||
|
* |
||||||
|
* @param orgId 用户信息 |
||||||
|
* @return 对应的远程系统机构信息 |
||||||
|
* @throws RuntimeException 如果未找到对应的机构信息,则抛出运行时异常 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public SysOrg remoteGetSysOrg(String orgId) { |
||||||
|
SysOrg sysOrg = null; |
||||||
|
R<SysOrg> r = remoteOrgService.getById(orgId); |
||||||
|
if (r != null && r.getCode() == CommonConstants.SUCCESS) { |
||||||
|
sysOrg = r.getData(); |
||||||
|
} else { |
||||||
|
throw new RuntimeException(String.format("没有找到 orgId 为 %s 的机构, 请确认用户所属机构的正确性!", orgId)); |
||||||
|
} |
||||||
|
return sysOrg; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用或者用户信息 |
||||||
|
* @param username |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public SysUser remoteGetUserByUsername(String username){ |
||||||
|
R<UserInfo> info = remoteUserService.innerGetUserInfoByUsername(username); |
||||||
|
if (info != null && info.getCode() == CommonConstants.FAIL) { |
||||||
|
throw new RuntimeException(String.format("获取用户名为 %s 的用户信息失败!", username)); |
||||||
|
} |
||||||
|
return info.getData().getSysUser(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用获取用户信息 |
||||||
|
* @param userId |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public SysUser remoteGetUserById(String userId){ |
||||||
|
R<SysUser> info = remoteUserService.innerGetById(userId); |
||||||
|
if (info != null && info.getCode() == CommonConstants.FAIL) { |
||||||
|
throw new RuntimeException(String.format("获取用户名id为 %s 的用户信息失败!", userId)); |
||||||
|
} |
||||||
|
return info.getData(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean remoteGenerateWord2PDF(XWPFTemplate template, String originalFilename, String savePath) throws Exception{ |
||||||
|
ByteArrayOutputStream fosWord = new ByteArrayOutputStream(); |
||||||
|
template.write(fosWord); |
||||||
|
template.close(); |
||||||
|
|
||||||
|
//------------
|
||||||
|
ByteArrayInputStream fisWord = new ByteArrayInputStream(fosWord.toByteArray()); |
||||||
|
fosWord.close(); |
||||||
|
|
||||||
|
MockMultipartFile mockMultipartFile = new MockMultipartFile("file", originalFilename + ".docx", "image/jpg", fisWord); |
||||||
|
Response response = remoteWord2PDFService.word2pdf(mockMultipartFile); |
||||||
|
fisWord.close(); |
||||||
|
|
||||||
|
|
||||||
|
ByteArrayOutputStream outPDF = new ByteArrayOutputStream(); |
||||||
|
IoUtil.copy(response.body().asInputStream(), outPDF, IoUtil.DEFAULT_MIDDLE_BUFFER_SIZE); |
||||||
|
ByteArrayInputStream isPDF = new ByteArrayInputStream(outPDF.toByteArray()); |
||||||
|
outPDF.close(); |
||||||
|
|
||||||
|
boolean b = ossFile.fileSave(savePath, isPDF); |
||||||
|
|
||||||
|
isPDF.close(); |
||||||
|
|
||||||
|
log.info("转换为 PDF 结束"); |
||||||
|
return b; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
* @return |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public ByteArrayInputStream remoteGetFile(String filePath) throws Exception { |
||||||
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(); |
||||||
|
ossFile.fileGet(filePath, bos); |
||||||
|
|
||||||
|
byte[] templateArray = bos.toByteArray(); |
||||||
|
|
||||||
|
ByteArrayInputStream bis = new ByteArrayInputStream(templateArray); |
||||||
|
bos.close(); |
||||||
|
return bis; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
* @param fileName 名称 |
||||||
|
* @param httpServletResponse |
||||||
|
* @throws Exception |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public void remoteGetFile(String filePath, String fileName, HttpServletResponse httpServletResponse) throws Exception { |
||||||
|
ossFile.fileGet(filePath, httpServletResponse.getOutputStream()); |
||||||
|
if (StrUtil.isNotBlank(fileName)) { |
||||||
|
httpServletResponse.setContentType(fileName); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用根据文件路径获取文件列表 |
||||||
|
* @param filePath minio上的文件路径 |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public List<String> remoteGetFileList(String filePath) { |
||||||
|
if (StrUtil.isNotBlank(filePath)) { |
||||||
|
List<String> fileNameList = ossFile.fileList(filePath); |
||||||
|
List<String> fileList = fileNameList.stream().map(fileName -> { |
||||||
|
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); |
||||||
|
try { |
||||||
|
ossFile.fileGet(filePath + "/" + fileName, byteArrayOutputStream); |
||||||
|
return Base64.getEncoder().encodeToString(byteArrayOutputStream.toByteArray()); |
||||||
|
} catch (Exception e) { |
||||||
|
e.printStackTrace(); |
||||||
|
log.error("文件获取失败, 文件路径为: {}", filePath + "/" + fileName); |
||||||
|
} |
||||||
|
return null; |
||||||
|
}).collect(Collectors.toList()); |
||||||
|
return fileList; |
||||||
|
} else { |
||||||
|
throw new RuntimeException("文件路径不能为空!"); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 远程调用-上传文件 |
||||||
|
* @param file 上传的文件对象 |
||||||
|
* @param path 上传到minio的位置 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
@Override |
||||||
|
public Map<String, String> remoteUploadFile(MultipartFile file, String path) { |
||||||
|
boolean r = ossFile.fileUpload(file, path); |
||||||
|
if (r) { |
||||||
|
HashMap<String, String> resultData = new HashMap<>(); |
||||||
|
resultData.put("fileName", FileNameUtil.getName(file.getOriginalFilename())); |
||||||
|
resultData.put("path", path); |
||||||
|
log.info("文件上传成功!"); |
||||||
|
return resultData; |
||||||
|
} else { |
||||||
|
String failMsg = String.format("文件名为 %s 的文件上传失败!", file.getOriginalFilename()); |
||||||
|
log.error(failMsg); |
||||||
|
throw new RuntimeException(failMsg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package digital.laboratory.platform.imr.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import digital.laboratory.platform.imr.entity.SampleInboundRecord; |
||||||
|
import digital.laboratory.platform.imr.mapper.SampleInboundRecordMapper; |
||||||
|
import digital.laboratory.platform.imr.service.SampleInboundRecordService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
@Service |
||||||
|
public class SampleInboundRecordServiceImpl extends ServiceImpl<SampleInboundRecordMapper, SampleInboundRecord> implements SampleInboundRecordService { |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
package digital.laboratory.platform.imr.service.impl; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||||
|
import digital.laboratory.platform.imr.entity.SampleStorage; |
||||||
|
import digital.laboratory.platform.imr.mapper.SampleStorageMapper; |
||||||
|
import digital.laboratory.platform.imr.service.SampleStorageService; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
@Service |
||||||
|
public class SampleStorageServiceImpl extends ServiceImpl<SampleStorageMapper, SampleStorage> implements SampleStorageService { |
||||||
|
} |
@ -0,0 +1,55 @@ |
|||||||
|
package digital.laboratory.platform.imr.vo; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品库中关联的案事件信息 VO 返回前台显示类 |
||||||
|
* @TableName b_drug_case_info |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ApiModel(value = "DrugCaseInfoVO", description = "毒品库中关联的案事件信息 VO 返回前台显示类") |
||||||
|
public class DrugCaseInfoVO{ |
||||||
|
/** |
||||||
|
* 主键标识 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("id") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案事件名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案事件名称") |
||||||
|
private String caseName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案件编号 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案件编号") |
||||||
|
private String caseNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴单位") |
||||||
|
private String handingOverOrg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴单位") |
||||||
|
private String handingOverOrgName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴日期") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private LocalDate handingOverDate; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,106 @@ |
|||||||
|
package digital.laboratory.platform.imr.vo; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.time.LocalDate; |
||||||
|
import java.time.LocalDateTime; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品库中的毒品检材信息 VO 返回前台显示类 |
||||||
|
* @TableName b_drug_material_info |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@ApiModel(value = "DrugMaterialInfoVO", description = "毒品库中的毒品检材信息 VO 返回前台显示类") |
||||||
|
public class DrugMaterialInfoVO { |
||||||
|
/** |
||||||
|
* 主键标识 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("主键标识") |
||||||
|
private String id; |
||||||
|
|
||||||
|
/** |
||||||
|
* 关联的案件id |
||||||
|
*/ |
||||||
|
@ApiModelProperty("关联的案件id") |
||||||
|
private String caseId; |
||||||
|
|
||||||
|
/** |
||||||
|
* 关联的入库记录id |
||||||
|
*/ |
||||||
|
@ApiModelProperty("关联的入库记录id") |
||||||
|
private String sampleStorageId; |
||||||
|
|
||||||
|
@ApiModelProperty("存放位置") |
||||||
|
private String storageLocation; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品检材编号 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("毒品检材编号") |
||||||
|
private String drugNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品检材名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("毒品检材名称") |
||||||
|
private String drugName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 质量/体积 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("质量/体积") |
||||||
|
private String massVolume; |
||||||
|
|
||||||
|
/** |
||||||
|
* 质量/体积 单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("质量/体积 单位") |
||||||
|
private String unit; |
||||||
|
|
||||||
|
/** |
||||||
|
* 包装是否完整, 1 完整 | 0 不完整 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("包装是否完整, 1 完整 | 0 不完整") |
||||||
|
private Boolean packageComplete; |
||||||
|
|
||||||
|
/** |
||||||
|
* 毒品检材状态, 0 未入库 | 1 已入库 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("毒品检材状态, 0 未入库 | 1 已入库") |
||||||
|
private Integer status; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案事件名称 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案事件名称") |
||||||
|
private String caseName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 案件编号 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("案件编号") |
||||||
|
private String caseNo; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴单位") |
||||||
|
private String handingOverOrg; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴单位 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴单位") |
||||||
|
private String handingOverOrgName; |
||||||
|
|
||||||
|
/** |
||||||
|
* 送缴日期 |
||||||
|
*/ |
||||||
|
@ApiModelProperty("送缴日期") |
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd") |
||||||
|
private LocalDate handingOverDate; |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue