20250408 更新
1.贵阳禁毒-鉴定文书系统初始化
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package digital.laboratory.platform.identifybook;
|
||||
|
||||
import digital.laboratory.platform.common.feign.annotation.EnableDLPFeignClients;
|
||||
import digital.laboratory.platform.common.security.annotation.EnableDLPResourceServer;
|
||||
import digital.laboratory.platform.common.swagger.annotation.EnableDLPSwagger2;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
@EnableDLPSwagger2
|
||||
@EnableDLPFeignClients
|
||||
@EnableDiscoveryClient
|
||||
@EnableDLPResourceServer
|
||||
@SpringBootApplication(scanBasePackages={"digital.laboratory.platform"})
|
||||
public class DlpIdentifyBookApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DlpIdentifyBookApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package digital.laboratory.platform.identifybook.config;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* 贵阳禁毒-情报平台推送数据配置
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "gyjd.labscare.api")
|
||||
public class ApiPathProperties {
|
||||
/**
|
||||
* api的ip
|
||||
*/
|
||||
private String host;
|
||||
|
||||
/**
|
||||
* 委托书推送的接口
|
||||
*/
|
||||
private String entrustLetter;
|
||||
|
||||
/**
|
||||
* 确认书推送接口
|
||||
*/
|
||||
private String confirmLetter;
|
||||
|
||||
/**
|
||||
* 生物检材定性记录
|
||||
*/
|
||||
private String biologyQualitativeRecord;
|
||||
|
||||
/**
|
||||
* 普通检材定性记录(非红外报告)
|
||||
*/
|
||||
private String nonInfraredGeneralQualitativeRecord;
|
||||
|
||||
/**
|
||||
* 普通检材定性记录(红外报告)
|
||||
*/
|
||||
private String infraredGeneralQualitativeRecord;
|
||||
|
||||
/**
|
||||
* 鉴定报告审批表
|
||||
*/
|
||||
private String appraisalReportApprovalForm;
|
||||
|
||||
/**
|
||||
* 定性报告
|
||||
*/
|
||||
private String qualitativeReport;
|
||||
|
||||
/**
|
||||
* 归档报告信息
|
||||
*/
|
||||
private String archiveReportInfo;
|
||||
|
||||
/************************************ Getter Setter 方法 ***********************************/
|
||||
/******************************** Getter 方法会拼接上host返回 ***************************/
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
public void setHost(String host) {
|
||||
this.host = host;
|
||||
}
|
||||
|
||||
public String getEntrustLetter() {
|
||||
return host + entrustLetter;
|
||||
}
|
||||
|
||||
public void setEntrustLetter(String entrustLetter) {
|
||||
this.entrustLetter = entrustLetter;
|
||||
}
|
||||
|
||||
public String getConfirmLetter() {
|
||||
return host + confirmLetter;
|
||||
}
|
||||
|
||||
public void setConfirmLetter(String confirmLetter) {
|
||||
this.confirmLetter = confirmLetter;
|
||||
}
|
||||
|
||||
public String getBiologyQualitativeRecord() {
|
||||
return host + biologyQualitativeRecord;
|
||||
}
|
||||
|
||||
public void setBiologyQualitativeRecord(String biologyQualitativeRecord) {
|
||||
this.biologyQualitativeRecord = biologyQualitativeRecord;
|
||||
}
|
||||
|
||||
public String getNonInfraredGeneralQualitativeRecord() {
|
||||
return host + nonInfraredGeneralQualitativeRecord;
|
||||
}
|
||||
|
||||
public void setNonInfraredGeneralQualitativeRecord(String nonInfraredGeneralQualitativeRecord) {
|
||||
this.nonInfraredGeneralQualitativeRecord = nonInfraredGeneralQualitativeRecord;
|
||||
}
|
||||
|
||||
public String getInfraredGeneralQualitativeRecord() {
|
||||
return host + infraredGeneralQualitativeRecord;
|
||||
}
|
||||
|
||||
public void setInfraredGeneralQualitativeRecord(String infraredGeneralQualitativeRecord) {
|
||||
this.infraredGeneralQualitativeRecord = infraredGeneralQualitativeRecord;
|
||||
}
|
||||
|
||||
public String getAppraisalReportApprovalForm() {
|
||||
return host + appraisalReportApprovalForm;
|
||||
}
|
||||
|
||||
public void setAppraisalReportApprovalForm(String appraisalReportApprovalForm) {
|
||||
this.appraisalReportApprovalForm = appraisalReportApprovalForm;
|
||||
}
|
||||
|
||||
public String getQualitativeReport() {
|
||||
return host + qualitativeReport;
|
||||
}
|
||||
|
||||
public void setQualitativeReport(String qualitativeReport) {
|
||||
this.qualitativeReport = qualitativeReport;
|
||||
}
|
||||
|
||||
public String getArchiveReportInfo() {
|
||||
return host + archiveReportInfo;
|
||||
}
|
||||
|
||||
public void setArchiveReportInfo(String archiveReportInfo) {
|
||||
this.archiveReportInfo = archiveReportInfo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package digital.laboratory.platform.identifybook.config;
|
||||
|
||||
import feign.RequestInterceptor;
|
||||
import feign.RequestTemplate;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContext;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationDetails;
|
||||
|
||||
/**
|
||||
* Feign 请求拦截器
|
||||
* Feign Client 向业务系统发出请求的时候, 把 Token 带上, 以用户自己的身份调用业务系统。
|
||||
* 目的是在业务系统中识别用户是谁, 允许或禁止用户进行对应的操作。
|
||||
*/
|
||||
|
||||
|
||||
@Configuration
|
||||
public class FeignOauth2RequestInterceptor implements RequestInterceptor {
|
||||
|
||||
private final String AUTHORIZATION_HEADER = "Authorization";
|
||||
private final String BEARER_TOKEN_TYPE = "Bearer";
|
||||
|
||||
@Override
|
||||
public void apply(RequestTemplate requestTemplate) {
|
||||
//System.out.println(String.format("======================================================================================"));
|
||||
//System.out.println(String.format("dlp-admin-service, FeignOauth2RequestInterceptor(), feignTarget().name()=%s target.url=%s url=%s path=%s", requestTemplate.feignTarget().name(), requestTemplate.feignTarget().url(), requestTemplate.url(), requestTemplate.path()));
|
||||
|
||||
SecurityContext securityContext = SecurityContextHolder.getContext();
|
||||
Authentication authentication = securityContext.getAuthentication();
|
||||
if (authentication != null && authentication.getDetails() instanceof OAuth2AuthenticationDetails) {
|
||||
OAuth2AuthenticationDetails details = (OAuth2AuthenticationDetails) authentication.getDetails();
|
||||
//System.out.println(String.format("FeignOauth2RequestInterceptor() Authorization, token=%s", details.getTokenValue()));
|
||||
requestTemplate.header(AUTHORIZATION_HEADER, String.format("%s %s", BEARER_TOKEN_TYPE, details.getTokenValue()));
|
||||
}
|
||||
else {
|
||||
//System.out.println(String.format("authentication=%s", authentication));
|
||||
|
||||
}
|
||||
//System.out.println(String.format("======================================================================================"));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-27
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("//b-identification-process")
|
||||
public class BIdentificationProcessController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,734 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants;
|
||||
import digital.laboratory.platform.common.core.util.ClassUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService;
|
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO;
|
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus;
|
||||
import digital.laboratory.platform.identifybook.emums.PermissionGroupEnum;
|
||||
import digital.laboratory.platform.identifybook.emums.TaskTypeEnum;
|
||||
import digital.laboratory.platform.identifybook.entity.*;
|
||||
import digital.laboratory.platform.identifybook.event.PushDataToLabsCareEvent;
|
||||
import digital.laboratory.platform.identifybook.handler.AppStartupRunner;
|
||||
import digital.laboratory.platform.identifybook.req.BusinessProcessRecordREQ;
|
||||
import digital.laboratory.platform.identifybook.service.*;
|
||||
import digital.laboratory.platform.identifybook.vo.BusinessProcessRecordVO;
|
||||
import digital.laboratory.platform.sys.feign.RemoteUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.security.Principal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务流程 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "业务流程-相关接口")
|
||||
@RequestMapping("/book/businessProcessRecord")
|
||||
public class BusinessProcessRecordController {
|
||||
|
||||
private final RemoteUserService remoteUserService;
|
||||
|
||||
private final IBusinessProcessRecordService businessProcessRecordService;
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService;
|
||||
private final IIdentifyBookApproveService identifyBookApproveService;
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
|
||||
// 根据模板身材word工具服务
|
||||
private final RemoteGenerateWordService remoteGenerateWordService;
|
||||
|
||||
private final IModifySupplementApplyService modifySupplementApplyService;
|
||||
|
||||
private final IReceiveIdentifyBookService receiveIdentifyBookService;
|
||||
|
||||
private final ITaskNotificationService taskNotificationService;
|
||||
|
||||
private final ApplicationContext applicationContext;
|
||||
|
||||
@ApiOperation(value = "通过条件分页查询业务流程记录列表", notes = "通过条件分页查询业务流程记录列表")
|
||||
@PostMapping("/search")
|
||||
public R<IPage<BusinessProcessRecord>> findBusinessProcessRecordPage(@RequestBody BusinessProcessRecordREQ req){
|
||||
return R.ok(businessProcessRecordService.page(req.getPage(), null));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据业务ID查询业务流程记录", notes = "根据业务ID查询业务流程记录")
|
||||
@PostMapping("/view/{businessId}")
|
||||
public R<List<BusinessProcessRecord>> view(@PathVariable(value = "businessId") String businessId){
|
||||
List<BusinessProcessRecord> businessProcessRecordList = businessProcessRecordService.list(
|
||||
new LambdaQueryWrapper<BusinessProcessRecord>()
|
||||
.eq(BusinessProcessRecord::getBusinessId, businessId)
|
||||
.orderByAsc(BusinessProcessRecord::getCreateTime));
|
||||
return R.ok(businessProcessRecordList);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "鉴定文书审批退回修改—重新提交", notes = "鉴定文书审批退回修改——重新提交")
|
||||
@PostMapping("/identifyBookSPTHXGCXTJ")
|
||||
public R<List<BusinessProcessRecord>> identifyBookSPTHXGCXTJ(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){
|
||||
boolean update = identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>()
|
||||
.set(IdentifyBookRelevance::getBookStatus, vo.getBusinessStatus())
|
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, vo.getBusinessId()));
|
||||
if(update){
|
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
|
||||
TaskNotification taskNotification = new TaskNotification();
|
||||
BusinessProcessRecord record = new BusinessProcessRecord();
|
||||
record.setBusinessId(vo.getBusinessId());
|
||||
record.setBusinessName("鉴定文书审批退回修改-重新提交");
|
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus()));
|
||||
if (BusinessStatus.JD_WS_SH_TG.getCode().equals(vo.getBusinessStatus())){
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "鉴定文书审批退回修改-重新提交");
|
||||
businessProcessRecordService.save(record);
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1);
|
||||
if(flag){
|
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP.getCode()),
|
||||
TaskTypeEnum.JD_WS_SP.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookSP.getCode());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
}
|
||||
}
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "鉴定文书(提交/审核/审批/签发)", notes = "鉴定文书(提交/审核/审批/签发)")
|
||||
@Transactional
|
||||
@PostMapping("/identifyBookTJSHSPQF")
|
||||
public R<Object> identifyBookTJSHSPQF(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){
|
||||
boolean update = identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>()
|
||||
.set(IdentifyBookRelevance::getBookStatus, vo.getBusinessStatus())
|
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, vo.getBusinessId()));
|
||||
|
||||
if(update){
|
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
|
||||
TaskNotification taskNotification = new TaskNotification();
|
||||
BusinessProcessRecord record = new BusinessProcessRecord();
|
||||
record.setBusinessId(vo.getBusinessId());
|
||||
record.setBusinessName("鉴定文书提交审核审批签发");
|
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus()));
|
||||
|
||||
if(BusinessStatus.JD_WS_TJ_SH.getCode().equals(vo.getBusinessStatus())){
|
||||
|
||||
// 提交审核
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_TJ_SH.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_TJ_SH.getDesc());
|
||||
|
||||
// 主要处理是否是退回修改的业务
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1);
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SH.getCode()),
|
||||
TaskTypeEnum.JD_WS_SH.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookSH.getCode());
|
||||
if(!flag){
|
||||
|
||||
taskNotification.setSubmitterUserId(dlpUser.getId());
|
||||
taskNotification.setSubmitterUserName(dlpUser.getName());
|
||||
Entrustment entrustment = entrustmentService.getById(vo.getBusinessId());
|
||||
taskNotification.setAcceptNo(entrustment.getAcceptNo());
|
||||
//CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId());
|
||||
taskNotification.setCaseName(entrustment.getCaseName());
|
||||
}
|
||||
|
||||
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_TG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审核通过-保存或更新鉴定文书审审批表
|
||||
IdentifyBookApprove one = new IdentifyBookApprove();
|
||||
one.setRelevanceBusinessId(vo.getBusinessId());
|
||||
one.setProcessUserBy(dlpUser.getId());
|
||||
one.setProcessUserName(dlpUser.getName());
|
||||
one.setProcessTime(new Date());
|
||||
one.setProcessMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过");
|
||||
one.setAnnexType(vo.getApproveVO().getAnnexType());
|
||||
one.setBookType(vo.getApproveVO().getBookType());
|
||||
one.setInspectionReportNumber(vo.getApproveVO().getInspectionReportNumber());
|
||||
one.setOtherNumber(vo.getApproveVO().getOtherNumber());
|
||||
one.setIsQualified(vo.getApproveVO().getIsQualified());
|
||||
|
||||
identifyBookApproveService.saveOrUpdate(one);
|
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_TG.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1);
|
||||
if(flag){
|
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP.getCode()),
|
||||
TaskTypeEnum.JD_WS_SP.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookSP.getCode());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
}
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_WTG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审核未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_WTG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_WTG.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){
|
||||
|
||||
}
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SH_TH_XG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审核-退回修改
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SH_TH_XG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SH_TH_XG.getDesc());
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 2);
|
||||
if(flag){
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SH_TH_XG.getCode()),
|
||||
TaskTypeEnum.JD_WS_SH_TH_XG.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookProductionRrSubmissionProcess.getCode());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
}
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_TG.getCode().equals(vo.getBusinessStatus())){
|
||||
// TODO 审批签发成功--更新鉴定文书并生成鉴定文书审批表
|
||||
IdentifyBookApprove one = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>()
|
||||
.eq(IdentifyBookApprove::getRelevanceBusinessId, vo.getBusinessId())
|
||||
.orderByDesc(IdentifyBookApprove::getCreateTime)).get(0);
|
||||
|
||||
one.setRelevanceBusinessId(vo.getBusinessId());
|
||||
one.setApproveUserBy(dlpUser.getId());
|
||||
one.setApproveUserName(dlpUser.getName());
|
||||
one.setApproveTime(new Date());
|
||||
one.setApproveMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审批通过");
|
||||
this.generateIdentifyBookApprove(one);
|
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_TG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_TG.getDesc());
|
||||
// 审批签发通过-通知鉴定系统
|
||||
//remoteIdentificationService.putSetReportApplovalPassed(vo.getBusinessId()); 注释掉以前的通知方式
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1);
|
||||
if(flag){
|
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_QF_LQ.getCode()),
|
||||
TaskTypeEnum.JD_WS_QF_LQ.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookQF.getCode());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
|
||||
// 发布推送事件
|
||||
applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), Collections.synchronizedSet(CollUtil.newHashSet(5, 6))));
|
||||
// applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), 6));
|
||||
// applicationContext.publishEvent(new PushDataToLabsCareEvent(this, vo.getBusinessId(), 7));
|
||||
}
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_WTG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审批签发未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_WTG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_WTG.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){
|
||||
|
||||
}
|
||||
|
||||
} else if (BusinessStatus.JD_WS_SP_QF_TH_XG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审批签发退回修改
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_SP_QF_TH_XG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_SP_QF_TH_XG.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 2);
|
||||
if(flag){
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_SP_TH_XG.getCode()),
|
||||
TaskTypeEnum.JD_WS_SP_TH_XG.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookProductionRrSubmissionProcess.getCode());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
}
|
||||
|
||||
}else if (BusinessStatus.JD_WS_YLQ.getCode().equals(vo.getBusinessStatus())){
|
||||
// TODO 领取成功--生成鉴定文书领取信息
|
||||
ReceiveIdentifyBook receiveIdentifyBook = new ReceiveIdentifyBook();
|
||||
BeanUtil.copyProperties(vo, receiveIdentifyBook);
|
||||
if (receiveIdentifyBookService.count(Wrappers.<ReceiveIdentifyBook>lambdaQuery().eq(ReceiveIdentifyBook::getRelevanceBusinessId, vo.getBusinessId())) > 0) {
|
||||
return R.failed("文书已被领取,请勿重复领取!");
|
||||
}
|
||||
receiveIdentifyBook.setRelevanceBusinessId(vo.getBusinessId());
|
||||
receiveIdentifyBook.setOperatorUserId(dlpUser.getId());
|
||||
receiveIdentifyBook.setOperatorUserName(dlpUser.getName());
|
||||
receiveIdentifyBookService.save(receiveIdentifyBook);
|
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_YLQ.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_YLQ.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1)){
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
return R.failed("参数-业务状态未定义,请确认传入的业务状态是否正确或联系管理员!!!");
|
||||
}
|
||||
if(businessProcessRecordService.save(record)){
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
return R.failed("系统异常,请联系管理员!!!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "鉴定文书修改/补充(提交/审核/审批)", notes = "鉴定文书修改/补充(提交/审核/审批)")
|
||||
@Transactional
|
||||
@PostMapping("/identifyBookModifySupplementTJSHSP")
|
||||
public R<String> identifyBookModifySupplementTJSHSP(@RequestBody BusinessProcessRecordVO vo, HttpServletRequest request){
|
||||
boolean update = modifySupplementApplyService.update(new LambdaUpdateWrapper<ModifySupplementApply>()
|
||||
.set(ModifySupplementApply::getStatus, vo.getBusinessStatus())
|
||||
.eq(ModifySupplementApply::getId, vo.getId()));
|
||||
if(update){
|
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
|
||||
TaskNotification taskNotification = new TaskNotification();
|
||||
|
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(vo.getId());
|
||||
BusinessProcessRecord record = new BusinessProcessRecord();
|
||||
record.setBusinessId(vo.getBusinessId());
|
||||
record.setBusinessName("鉴定文书修改/补充申请");
|
||||
record.setBusinessStatus(Integer.parseInt(vo.getBusinessStatus()));
|
||||
if(BusinessStatus.JD_WS_XG_BC_SQ.getCode().equals(vo.getBusinessStatus())) {
|
||||
// 提交审核
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SQ.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SQ.getDesc());
|
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_XG_BC_SH.getCode()),
|
||||
TaskTypeEnum.JD_WS_XG_BC_SH.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookModificationAndSupplementationSH.getCode());
|
||||
taskNotification.setSubmitterUserId(dlpUser.getId());
|
||||
taskNotification.setSubmitterUserName(dlpUser.getName());
|
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId());
|
||||
taskNotification.setAcceptNo(entrustment.getAcceptNo());
|
||||
//CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId());
|
||||
//taskNotification.setCaseName(caseEvent.getCaseName());
|
||||
taskNotification.setCaseName(entrustment.getCaseName());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
} else if (BusinessStatus.JD_WS_XG_BC_SH_TG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审核通过 设置并修改授权审核信息
|
||||
modifySupplementApply.setEmpowerBySignDate(new Date());
|
||||
modifySupplementApply.setEmpowerBySignOpinion(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过");
|
||||
modifySupplementApplyService.updateById(modifySupplementApply);
|
||||
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SH_TG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SH_TG.getDesc());
|
||||
|
||||
// 修改推送任务通知处理状态
|
||||
boolean flag = commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1);
|
||||
if(flag){
|
||||
|
||||
// 设置任务通知公共信息
|
||||
commSetTaskNotification(taskNotification, vo.getBusinessId(),
|
||||
Integer.parseInt(TaskTypeEnum.JD_WS_XG_BC_SP.getCode()),
|
||||
TaskTypeEnum.JD_WS_XG_BC_SP.getDesc(),
|
||||
record.getMessage(),
|
||||
PermissionGroupEnum.IdentifyBookModificationAndSupplementationSP.getCode());
|
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId());
|
||||
taskNotification.setCaseName(entrustment.getCaseName());
|
||||
// 推送任务通知
|
||||
commSaveTaskNotification(taskNotification);
|
||||
}
|
||||
} else if (BusinessStatus.JD_WS_XG_BC_SH_WTG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审核未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SH_WTG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SH_WTG.getDesc());
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){
|
||||
|
||||
}
|
||||
} else if (BusinessStatus.JD_WS_XG_BC_SP_TG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审批通过 设置并修改技术人员审批信息
|
||||
modifySupplementApply.setTechnologyBySignDate(new Date());
|
||||
modifySupplementApply.setTechnologyBySignOpinion(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : "审核通过");
|
||||
// 生成鉴定文书修改补充申请表
|
||||
this.generateModifySupplementApply(modifySupplementApply);
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SP_TG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SP_TG.getDesc());
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), 1)){
|
||||
}
|
||||
if(modifySupplementApply.getUpdateWay() == 2){
|
||||
// 修改鉴定文书业务状态未 收回原件-重新制作
|
||||
identifyBookRelevanceService.update(new LambdaUpdateWrapper<IdentifyBookRelevance>()
|
||||
.set(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_XG_BC_SH_YJ_CX_ZZ.getCode())
|
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, modifySupplementApply.getEntrustmentId()));
|
||||
}
|
||||
|
||||
|
||||
} else if (BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode().equals(vo.getBusinessStatus())){
|
||||
// 审批未通过
|
||||
record.setBusinessTypeName(BusinessStatus.JD_WS_XG_BC_SP_WTG.getDesc());
|
||||
record.setMessage(StringUtils.isNotEmpty(vo.getMessage()) ? vo.getMessage() : BusinessStatus.JD_WS_XG_BC_SP_WTG.getDesc());
|
||||
// 修改推送任务通知处理状态
|
||||
if(commUpdateTaskNotification(taskNotification, dlpUser, vo.getBusinessId(), -1)){
|
||||
|
||||
}
|
||||
} else {
|
||||
return R.failed("参数-业务状态未定义,请确认传入的业务状态是否正确或联系管理员!!!");
|
||||
}
|
||||
if(businessProcessRecordService.save(record)){
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
return R.failed("系统异常,请联系管理员!!!");
|
||||
}
|
||||
|
||||
//获取鉴定书的处理记录,按ID排序
|
||||
@ApiOperation(value ="获取鉴定书的处理记录,按ID desc排序",notes = "获取鉴定书的处理记录,按ID desc排序")
|
||||
@GetMapping("/getIdentifyBookProcessRecord")
|
||||
public R getIdentifyBookProcessRecord(String businessId){
|
||||
List<BusinessProcessRecord> ret= businessProcessRecordService.list(Wrappers.<BusinessProcessRecord>lambdaQuery()
|
||||
.eq(BusinessProcessRecord::getBusinessId,businessId)
|
||||
.orderByDesc(BusinessProcessRecord::getId));
|
||||
return R.ok(ret);
|
||||
}
|
||||
/**
|
||||
* TODO 生成鉴定文书审批表并保存
|
||||
* @param one 鉴定文书审批表对象
|
||||
*/
|
||||
private void generateIdentifyBookApprove(IdentifyBookApprove one) {
|
||||
try {
|
||||
EntrustCaseDTO entrustCaseDTO = entrustmentService.getEntrustCaseDTOById(one.getRelevanceBusinessId());
|
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, one.getRelevanceBusinessId()));
|
||||
|
||||
// 模板
|
||||
// String templateFileName = "NADL-Shaanxi-CX-22-01-2021鉴定文书审批表001.doc";
|
||||
String templateFileName = AppStartupRunner.getCfg("identifyBookApproveTemplate");
|
||||
// 文件类型
|
||||
String fileType = ".docx"; // 文件类型
|
||||
// 文件版本号
|
||||
String version = "v1.0";
|
||||
// 文件名
|
||||
String fileName = "鉴定文书审批表-" + version;
|
||||
|
||||
// 文件路径 + 业务ID +文件名
|
||||
String pathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/bookApprove/" + fileName;
|
||||
|
||||
Map<String, Object> parameter = ClassUtils.objectToMap(entrustCaseDTO);
|
||||
parameter.put("bookYear", identifyBookRelevance.getYear());
|
||||
parameter.put("bookSerialNumber", identifyBookRelevance.getSerialNumber());
|
||||
one.setYear(identifyBookRelevance.getYear());
|
||||
one.setSerialNumber(identifyBookRelevance.getSerialNumber());
|
||||
|
||||
// 获取样本数量
|
||||
long sampleNum = entrustmentIdentificationMaterialService.count(new LambdaQueryWrapper<EntrustmentIdentificationMaterial>()
|
||||
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, one.getRelevanceBusinessId()));
|
||||
parameter.put("sampleNum", sampleNum);
|
||||
|
||||
one.setPath(pathFileName + fileType);
|
||||
one.setFileName(fileName + fileType);
|
||||
if(StringUtils.isEmpty(one.getYear())){
|
||||
LocalDateTime localDateTime = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault());
|
||||
String year = LocalDateTimeUtil.format(localDateTime, "yyyy");
|
||||
List<IdentifyBookApprove> list = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>()
|
||||
.eq(IdentifyBookApprove::getYear, year)
|
||||
.orderByDesc(IdentifyBookApprove::getSerialNumber));
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
int num = Integer.parseInt(list.get(0).getSerialNumber());
|
||||
one.setYear(year);
|
||||
one.setSerialNumber(StrUtil.fillBefore((num + 1) + "", '0', 5));
|
||||
} else {
|
||||
one.setYear(year);
|
||||
one.setSerialNumber(StrUtil.fillBefore( "1", '0', 5));
|
||||
}
|
||||
|
||||
}
|
||||
parameter.put("year", one.getYear());
|
||||
parameter.put("serialNumber", one.getSerialNumber());
|
||||
// parameter.put("identificationRequestsDesc", IdentifyRequireEnum.findEnumByCode(entrustCaseDTO.getIdentificationRequests()).getDesc());
|
||||
parameter.put("otherIdentificationRequests", StringUtils.isNotEmpty(entrustCaseDTO.getOtherIdentificationRequests())? "其它:" + entrustCaseDTO.getOtherIdentificationRequests(): "");
|
||||
|
||||
// 文书类型:(1:检验报告,2:其它)
|
||||
parameter.put("inspectionReportFlag", false);
|
||||
parameter.put("otherFlag", false);
|
||||
if(StringUtils.isNotEmpty(one.getBookType())){
|
||||
String[] bookTypeArr = one.getBookType().split(",");
|
||||
for (String s : bookTypeArr) {
|
||||
if (Integer.parseInt(s) == 1) {
|
||||
parameter.put("inspectionReportFlag", true);
|
||||
parameter.put("inspectionReportNumber", one.getInspectionReportNumber());
|
||||
} else if (Integer.parseInt(s) == 2) {
|
||||
parameter.put("otherFlag", true);
|
||||
parameter.put("otherNumber", one.getOtherNumber());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 附件(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)
|
||||
parameter.put("jyJlFlag", false);
|
||||
parameter.put("jdSxQrsFlag", false);
|
||||
parameter.put("jdWtsFlag", false);
|
||||
parameter.put("jcZpFlag", false);
|
||||
parameter.put("sjrZjFyjFlag", false);
|
||||
parameter.put("yJdWsFlag", false);
|
||||
if(StringUtils.isNotEmpty(one.getAnnexType())){
|
||||
String[] annexTypeArr = one.getAnnexType().split(",");
|
||||
for (String s : annexTypeArr) {
|
||||
int num = Integer.parseInt(s);
|
||||
if (num == 1) {
|
||||
parameter.put("jyJlFlag", true);
|
||||
} else if (num == 2) {
|
||||
parameter.put("jdSxQrsFlag", true);
|
||||
} else if (num == 3) {
|
||||
parameter.put("jdWtsFlag", true);
|
||||
} else if (num == 4) {
|
||||
parameter.put("jcZpFlag", true);
|
||||
} else if (num == 5) {
|
||||
parameter.put("sjrZjFyjFlag", true);
|
||||
} else if (num == 6) {
|
||||
parameter.put("yJdWsFlag", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 是否合格(1:检验方法、2:检验过程、3:检验图谱、4:检验结果)
|
||||
parameter.put("jyFfFlag", false);
|
||||
parameter.put("jyGcFlag", false);
|
||||
parameter.put("jyTpFlag", false);
|
||||
parameter.put("jyJgFlag", false);
|
||||
if(StringUtils.isNotEmpty(one.getIsQualified())){
|
||||
String[] isQualifiedArr = one.getIsQualified().split(",");
|
||||
for (String s : isQualifiedArr) {
|
||||
int num = Integer.parseInt(s);
|
||||
if (num == 1) {
|
||||
parameter.put("jyFfFlag", true);
|
||||
} else if (num == 2) {
|
||||
parameter.put("jyGcFlag", true);
|
||||
} else if (num == 3) {
|
||||
parameter.put("jyTpFlag", true);
|
||||
} else if (num == 4) {
|
||||
parameter.put("jyJgFlag", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 鉴定文书审核意见
|
||||
parameter.put("processMessage", one.getProcessMessage());
|
||||
// 鉴定文书审核日期
|
||||
parameter.put("processTime", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(one.getProcessTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
// 鉴定文书审批意见
|
||||
parameter.put("approveMessage", one.getApproveMessage());
|
||||
// 鉴定文书审批日期
|
||||
parameter.put("approveTime", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(one.getApproveTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
// 备注
|
||||
parameter.put("remarks", one.getRemarks());
|
||||
|
||||
// 生成鉴定文书审批表
|
||||
R r = remoteGenerateWordService.generateWord(templateFileName, "", pathFileName, fileType,
|
||||
"", null, false, parameter);
|
||||
if(r != null && r.getCode() == 0){
|
||||
identifyBookApproveService.updateById(one);
|
||||
} else {
|
||||
throw new IllegalArgumentException(r.getMsg());
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO 生成鉴定文书修改/补充申请表
|
||||
* @param modifySupplementApply 修改补充对象
|
||||
*/
|
||||
private void generateModifySupplementApply(ModifySupplementApply modifySupplementApply){
|
||||
|
||||
try {
|
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.eq(IdentifyBookRelevance::getRelevanceBusinessId, modifySupplementApply.getEntrustmentId()));
|
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId());
|
||||
|
||||
Map<String, Object> parameter = ClassUtils.objectToMap(modifySupplementApply);
|
||||
parameter.put("bookYear", identifyBookRelevance.getYear());
|
||||
parameter.put("bookSerialNumber", identifyBookRelevance.getSerialNumber());
|
||||
parameter.put("clientOrgName", entrustment.getClientOrgName());
|
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy()) && StringUtils.isEmpty(modifySupplementApply.getEntrustUserName())){
|
||||
parameter.put("entrustUserName", remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName());
|
||||
} else {
|
||||
parameter.put("entrustUserName", modifySupplementApply.getEntrustUserName());
|
||||
}
|
||||
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getApplyTime())){
|
||||
parameter.put("applyTime", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(modifySupplementApply.getApplyTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
}
|
||||
// parameter.put("updateUserName", remoteUserService.innerGetById(modifySupplementApply.getUpdateBy()).getData().getName());
|
||||
parameter.put("updateUserName", modifySupplementApply.getUpdateBy());
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getUpdateTime())){
|
||||
parameter.put("updateTime", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(modifySupplementApply.getUpdateTime().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
}
|
||||
|
||||
|
||||
parameter.put("xgCdWjFlag", false);
|
||||
parameter.put("shYjCxCjJdWsFlag", false);
|
||||
if(modifySupplementApply.getUpdateWay() == 1){
|
||||
parameter.put("xgCdWjFlag", true);
|
||||
}else{
|
||||
parameter.put("shYjCxCjJdWsFlag", true);
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getEmpowerBySignDate())){
|
||||
parameter.put("empowerBySignDate", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(modifySupplementApply.getEmpowerBySignDate().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
}
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply.getTechnologyBySignDate())){
|
||||
parameter.put("technologyBySignDate", LocalDateTimeUtil.format(
|
||||
LocalDateTime.ofInstant(modifySupplementApply.getTechnologyBySignDate().toInstant(), ZoneId.systemDefault()), "yyyy年MM月dd日"));
|
||||
}
|
||||
|
||||
|
||||
// 获取模板文件名
|
||||
String templateFileName = AppStartupRunner.getCfg("identifyBookModifySupplementApplyTemplate");
|
||||
// 文件类型
|
||||
String fileType = ".docx"; // 文件类型
|
||||
// 文件版本号
|
||||
String version = "v1.0";
|
||||
// 文件名
|
||||
String fileName = "鉴定文书修改补充申请-" + version;
|
||||
|
||||
// 文件路径 + 业务ID +文件名
|
||||
String pathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + modifySupplementApply.getEntrustmentId() + "/bookModifyApply/" + fileName;
|
||||
// 生成鉴定文书审批表
|
||||
R r = remoteGenerateWordService.generateWord(templateFileName, "", pathFileName, fileType,
|
||||
"", null, false, parameter);
|
||||
if(r != null && r.getCode() == 0){
|
||||
modifySupplementApply.setPath(pathFileName + fileType);
|
||||
modifySupplementApply.setFileName(fileName + fileType);
|
||||
modifySupplementApplyService.updateById(modifySupplementApply);
|
||||
} else {
|
||||
throw new IllegalArgumentException(r.getMsg());
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 设置任务通知公共信息
|
||||
* @param taskNotification 任务通知信息
|
||||
* @param businessId 业务ID
|
||||
* @param type 任务类型
|
||||
* @param title 任务标题
|
||||
* @param content 任务类容
|
||||
* @param permissionGroup 任务代办人员组
|
||||
*/
|
||||
private void commSetTaskNotification(TaskNotification taskNotification, String businessId,
|
||||
int type, String title, String content, String permissionGroup){
|
||||
taskNotification.setBusinessId(businessId);
|
||||
taskNotification.setType(type);
|
||||
taskNotification.setTitle(title);
|
||||
taskNotification.setContent(content);
|
||||
taskNotification.setPermissionGroup(permissionGroup);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改推送任务通知处理状态
|
||||
* @param taskNotification 任务通知基本信息
|
||||
* @return R<Object>
|
||||
*/
|
||||
private boolean commUpdateTaskNotification(TaskNotification taskNotification, DLPUser dlpUser, String businessId, int status){
|
||||
|
||||
// 查询并 更新任务为已处理
|
||||
TaskNotification notification = taskNotificationService.getOne(new LambdaQueryWrapper<TaskNotification>()
|
||||
.eq(TaskNotification::getBusinessId, businessId)
|
||||
.eq(TaskNotification::getStatus, 0)
|
||||
.in(TaskNotification::getPermissionGroup, dlpUser.getPermissions()));
|
||||
if(ObjectUtils.isNotEmpty(notification)){
|
||||
notification.setStatus(status);
|
||||
notification.setTransactionPersonnelId(dlpUser.getId());
|
||||
notification.setTransactionPersonnelName(dlpUser.getName());
|
||||
|
||||
taskNotification.setSubmitterUserId(notification.getSubmitterUserId());
|
||||
taskNotification.setSubmitterUserName(notification.getSubmitterUserName());
|
||||
taskNotification.setAcceptNo(notification.getAcceptNo());
|
||||
taskNotification.setCaseName(notification.getCaseName());
|
||||
return taskNotificationService.updateById(notification);
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
/**
|
||||
* 推送任务通知
|
||||
* @param taskNotification
|
||||
* @return
|
||||
*/
|
||||
private R<Object> commSaveTaskNotification(TaskNotification taskNotification){
|
||||
|
||||
// 设置任务通知
|
||||
boolean save = taskNotificationService.save(taskNotification);
|
||||
if(!save){
|
||||
return R.failed("推送任务通知失败");
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 案件、事件 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/book/caseEvent")
|
||||
public class CaseEventController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 与案件相关的物证信息 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/caseEvidence")
|
||||
public class CaseEvidenceController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送检员 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/deliverer")
|
||||
public class DelivererController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托与实验关系 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/b-entrustment-bundle")
|
||||
public class EntrustmentBundleController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "委托数据-相关接口")
|
||||
@RequestMapping("/book/entrustment")
|
||||
public class EntrustmentController {
|
||||
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
@ApiOperation(value = "根据委托id查询委托相关详情", notes = "根据委托id查询委托相关详情")
|
||||
@GetMapping("/view/{entrustId}")
|
||||
public R<EntrustmentDTO> view(@PathVariable(value = "entrustId") String entrustId){
|
||||
EntrustmentDTO entrustmentDTO = entrustmentService.getEntrustmentDTO(entrustId);
|
||||
return R.ok(entrustmentDTO);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据条件分页查询委托数据列表", notes = "根据条件分页查询委托数据列表")
|
||||
@PostMapping("/findEntrustPage")
|
||||
public R<IPage<EntrustmentDTO>> findEntrustPage(@RequestBody EntrustmentREQ req){
|
||||
List<Entrustment> list = entrustmentService.list();
|
||||
List<String> entrustIdList=new ArrayList<>();
|
||||
if(list.size()>0){
|
||||
entrustIdList= list.stream().map(s -> s.getId()).collect(Collectors.toList());
|
||||
}
|
||||
entrustmentService.synchronizationTestSysData(entrustIdList);//同步远程数据,同步后的数据不会再同步
|
||||
return R.ok(entrustmentService.findEntrustPage(req.getPage(), req));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检材信息 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/entrustmentIdentificationMaterial")
|
||||
public class EntrustmentIdentificationMaterialController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验方法 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/examinationMethods")
|
||||
public class ExaminationMethodsController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 实验(检验方法的实例) 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/b-experiment")
|
||||
public class ExperimentController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发检测任务 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/hairJob")
|
||||
public class HairJobController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发任务的检材信息 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/hairJobIdentificationMaterial")
|
||||
public class HairJobIdentificationMaterialController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定表,一个鉴定可能会有多个委托 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/identification")
|
||||
public class IdentificationController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookApproveService;
|
||||
import digital.laboratory.platform.identifybook.utils.Word2PdfAsposeUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.activation.MimetypesFileTypeMap;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书审批表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定文书审批表相关接口")
|
||||
@RequestMapping("/book/identifyBookApprove")
|
||||
public class IdentifyBookApproveController {
|
||||
|
||||
private final OssFile ossFile;
|
||||
private final IIdentifyBookApproveService identifyBookApproveService;
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书审核审批详情", notes = "根据委托ID获取鉴定文书审核审批详情")
|
||||
@GetMapping("/view/{entrustId}")
|
||||
public R<IdentifyBookApprove> view(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){
|
||||
try {
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> entrustIds = new ArrayList<>();
|
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId())
|
||||
);
|
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){
|
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList()));
|
||||
}
|
||||
List<IdentifyBookApprove> identifyBookApproveList = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>()
|
||||
.in(IdentifyBookApprove::getRelevanceBusinessId, entrustIds)
|
||||
.orderByDesc(IdentifyBookApprove::getCreateTime));
|
||||
|
||||
return R.ok(CollectionUtils.isNotEmpty(identifyBookApproveList)? identifyBookApproveList.get(0): null);
|
||||
}catch (Exception e){
|
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("系统异常!!!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书审批表文件", notes = "根据委托ID获取鉴定文书审批表文件")
|
||||
@GetMapping("/getIdentifyBookApprove/{entrustId}")
|
||||
public void getIdentifyBookApprove(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){
|
||||
try {
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> entrustIds = new ArrayList<>();
|
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId())
|
||||
);
|
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){
|
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList()));
|
||||
}
|
||||
List<IdentifyBookApprove> identifyBookApproveList = identifyBookApproveService.list(new LambdaQueryWrapper<IdentifyBookApprove>()
|
||||
.in(IdentifyBookApprove::getRelevanceBusinessId, entrustIds)
|
||||
.orderByDesc(IdentifyBookApprove::getCreateTime));
|
||||
// 获取文件并转PDF
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream();
|
||||
ossFile.fileGet(identifyBookApproveList.get(0).getPath(), bosWord);
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream();
|
||||
byte[] pdfByte = Word2PdfAsposeUtil.docx2pdf(new ByteArrayInputStream(bosWord.toByteArray()));
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(pdfByte.length);
|
||||
baos.write(pdfByte, 0, pdfByte.length);
|
||||
baos.writeTo(servletOutputStream);
|
||||
String fileName = identifyBookApproveList.get(0).getFileName();
|
||||
response.setContentType(new MimetypesFileTypeMap().getContentType(fileName.substring(0, fileName.length() - 5) + ".pdf"));
|
||||
baos.close();
|
||||
}catch (Exception e){
|
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants;
|
||||
import digital.laboratory.platform.common.core.util.ClassUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.feign.RemoteGenerateWordService;
|
||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO;
|
||||
import digital.laboratory.platform.identifybook.entity.*;
|
||||
import digital.laboratory.platform.identifybook.handler.AppStartupRunner;
|
||||
import digital.laboratory.platform.identifybook.service.*;
|
||||
import digital.laboratory.platform.identifybook.vo.ExperimentVO;
|
||||
import digital.laboratory.platform.sys.feign.RemoteUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书-制作/修改
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/22 17:41
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定文书-制作/修改-相关接口")
|
||||
@RequestMapping("/book/identifyBookComm")
|
||||
public class IdentifyBookCommController {
|
||||
|
||||
|
||||
private final OssFile ossFile;
|
||||
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
private final IIdentifyBookService identifyBookService;
|
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService;
|
||||
|
||||
private final Environment env;
|
||||
|
||||
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
|
||||
|
||||
|
||||
@ApiOperation(value = "根据委托ID制作鉴定文书", notes = "根据委托ID制作鉴定文书")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true)
|
||||
@GetMapping("/makeIdentifyBook/{entrustId}")
|
||||
public R makeIdentifyBook(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response) {
|
||||
EntrustCaseDTO entrustCaseDTO = null;
|
||||
try {
|
||||
entrustCaseDTO = identifyBookService.buildIdentifyBook(entrustId);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return R.failed("生成鉴定文书异常, 请联系系统管理员!!!");
|
||||
}
|
||||
if (entrustCaseDTO == null) {
|
||||
return R.failed("实验数据不满足生成文书!");
|
||||
} else {
|
||||
return R.ok(entrustCaseDTO, "生成鉴定文书成功!");
|
||||
}
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据委托ID和修改后的鉴定文书更新鉴定文书", notes = "根据委托ID和修改后的鉴定文书更新鉴定文书")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true)
|
||||
@PostMapping("/updateIdentifyBook/{entrustId}")
|
||||
public R updateIdentifyBook(@PathVariable(value = "entrustId") String entrustId,
|
||||
@RequestPart("file") MultipartFile file, HttpServletResponse response) {
|
||||
try {
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> stringIdsList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId()))
|
||||
.stream().map(m -> m.getId())
|
||||
.collect(Collectors.toList());
|
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIdsList));
|
||||
// 获取最后一个文书版本数据
|
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId());
|
||||
|
||||
String version = "v" + new BigDecimal(identifyBook.getVersion().substring(1)).add(new BigDecimal("0.1")); // 版本号
|
||||
String fileName = "鉴定文书-" + version;
|
||||
String fileType = ".docx"; // 文件类型
|
||||
String identifyBookPathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/book/" + fileName; // 鉴定文书存储路径及文件名
|
||||
// 上传文书
|
||||
ossFile.fileSave(identifyBookPathFileName + fileType, file.getInputStream());
|
||||
// 保存文书相关消息
|
||||
boolean b = this.saveIdentifyBookComm(one.getId(), identifyBookPathFileName + fileType, fileName + fileType, version, "修改文书");
|
||||
if (b) {
|
||||
// ossFile.fileGet(identifyBookPathFileName + fileType, response.getOutputStream());
|
||||
// response.setContentType(new MimetypesFileTypeMap().getContentType(fileName + fileType));
|
||||
String uuid = IdWorker.get32UUID();
|
||||
return R.ok(uuid + "#" + identifyBookPathFileName + fileType, "获取文件成功");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return R.failed("修改文书上传异常,请联系管理员!!!");
|
||||
}
|
||||
|
||||
return R.failed("修改文书上传异常,请联系管理员!!!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据委托ID和修改后的鉴定文书更新鉴定文书", notes = "根据委托ID和修改后的鉴定文书更新鉴定文书")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID", required = true)
|
||||
@PostMapping("/callBackIdentifyBook/{entrustId}")
|
||||
public void callBackIdentifyBook(@PathVariable(value = "entrustId") String entrustId, HttpServletRequest request, HttpServletResponse response) {
|
||||
log.error("entrustId:: " + entrustId);
|
||||
PrintWriter writer = null;
|
||||
JSONObject jsonObj = null;
|
||||
try {
|
||||
writer = response.getWriter();
|
||||
Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");
|
||||
String body = scanner.hasNext() ? scanner.next() : "";
|
||||
jsonObj = (JSONObject) new JSONParser().parse(body);
|
||||
System.out.println(jsonObj);
|
||||
System.out.println("===saveeditedfile:" + jsonObj.get("status"));
|
||||
/*
|
||||
0 - no document with the key identifier could be found,
|
||||
1 - document is being edited,
|
||||
2 - document is ready for saving,
|
||||
3 - document saving error has occurred,
|
||||
4 - document is closed with no changes,
|
||||
6 - document is being edited, but the current document state is saved,
|
||||
7 - error has occurred while force saving the document.
|
||||
* */
|
||||
if ((long) jsonObj.get("status") == 2) {
|
||||
|
||||
String downloadUri = (String) jsonObj.get("url");
|
||||
URL url = new URL(downloadUri);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
InputStream inputStream = connection.getInputStream();
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> stringIdsList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId()))
|
||||
.stream().map(m -> m.getId())
|
||||
.collect(Collectors.toList());
|
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIdsList));
|
||||
// 获取最后一个文书版本数据
|
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId());
|
||||
|
||||
String version = "v" + new BigDecimal(identifyBook.getVersion().substring(1)).add(new BigDecimal("0.1")); // 版本号
|
||||
String fileName = "鉴定文书-" + version;
|
||||
String fileType = ".docx"; // 文件类型
|
||||
String identifyBookPathFileName = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + one.getRelevanceBusinessId() + "/book/" + fileName; // 鉴定文书存储路径及文件名
|
||||
// 上传文书
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream();
|
||||
int readPos;
|
||||
final byte[] bytes_oss = new byte[1024];
|
||||
while ((readPos = inputStream.read(bytes_oss)) != -1) {
|
||||
bosWord.write(bytes_oss, 0, readPos);
|
||||
}
|
||||
ByteArrayInputStream baisWord = new ByteArrayInputStream(bosWord.toByteArray());
|
||||
boolean b1 = ossFile.fileSave(identifyBookPathFileName + fileType, baisWord);
|
||||
if (b1) {
|
||||
// 保存文书相关消息
|
||||
this.saveIdentifyBookComm(one.getId(), identifyBookPathFileName + fileType, fileName + fileType, version, "修改文书");
|
||||
}
|
||||
|
||||
inputStream.close();
|
||||
connection.disconnect();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
/**
|
||||
* status = 1,我们给onlyoffice的服务返回{"error":"0"}的信息,这样onlyoffice会认为回调接口是没问题的,这样就可以在线编辑文档了,否则的话会弹出窗口说明
|
||||
* 在线编辑还没有关闭,前端有人下载文档时,强制保存最新内容 当status 是6时说明有人在编辑时下载文档
|
||||
*/
|
||||
System.out.println(jsonObj.get("status"));
|
||||
if ((long) jsonObj.get("status") == 6) {
|
||||
//处理当文档正在编辑为关闭时,下载文档
|
||||
if (((String) jsonObj.get("userdata")).equals("sample userdata")) {
|
||||
// FileUtil.callBackSaveDocument(jsonObj,filePath,request, response);
|
||||
}
|
||||
|
||||
System.out.println("====保存失败:");
|
||||
writer.write("{\"error\":1}");
|
||||
} else {
|
||||
//执行删除编辑时下载保存的文件:
|
||||
// FileUtil.deleteTempFile(filePath,request.getParameter("fileName"));
|
||||
writer.write("{\"error\":0}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存鉴定文书相关数据
|
||||
*
|
||||
* @param identifyBookRelevanceId 关联ID
|
||||
* @param path 文件路径及文件名
|
||||
* @param fileName 文件名
|
||||
* @param version 版本号
|
||||
* @return boolean
|
||||
*/
|
||||
private boolean saveIdentifyBookComm(String identifyBookRelevanceId, String path, String fileName,
|
||||
String version, String remarks) {
|
||||
IdentifyBook identifyBook = new IdentifyBook();
|
||||
identifyBook.setIdentifyBookRelevanceId(identifyBookRelevanceId);
|
||||
identifyBook.setBucketName(env.getProperty("oss.bucket-name"));
|
||||
identifyBook.setPath(path);
|
||||
identifyBook.setFileName(fileName);
|
||||
identifyBook.setVersion(version);
|
||||
identifyBook.setRemarks(remarks);
|
||||
return identifyBookService.save(identifyBook);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance;
|
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书信息表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定文书详细信息相关接口")
|
||||
@RequestMapping("/book/identifyBook")
|
||||
public class IdentifyBookController {
|
||||
|
||||
private final OssFile ossFile;
|
||||
|
||||
private final IIdentifyBookService identifyBookService;
|
||||
@ApiOperation(value = "根据根据文书ID查看文书", notes = "根据根据文书ID查看文书")
|
||||
@ApiImplicitParam(name = "bookId", value = "文书ID" , required = true)
|
||||
@GetMapping("/view/{id}")
|
||||
public R findBook(@PathVariable(value = "bookId") String bookId){
|
||||
try {
|
||||
|
||||
IdentifyBook identifyBook = identifyBookService.getById(bookId);
|
||||
String uuid= IdWorker.get32UUID();
|
||||
return R.ok( uuid+"#"+identifyBook.getPath(), "获取文件成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("获取鉴定文书失败");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据根据文书ID删除文书", notes = "根据根据文书ID删除文书")
|
||||
@ApiImplicitParam(name = "bookId", value = "文书ID" , required = true)
|
||||
@DeleteMapping
|
||||
public R deleteById(@PathVariable(value = "bookId") String bookId){
|
||||
try {
|
||||
IdentifyBook identifyBook = identifyBookService.getById(bookId);
|
||||
ossFile.fileDelete(identifyBook.getFileName());
|
||||
boolean b = identifyBookService.removeById(bookId);
|
||||
if(b){
|
||||
return R.ok(b, "删除成功!!!");
|
||||
}
|
||||
return R.failed(b, "删除失败!!!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("获取鉴定文书失败");
|
||||
}
|
||||
@PostMapping("/uploadBookAttachment")
|
||||
@ApiOperation(value = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)", notes = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)")
|
||||
public R uploadBookAttachment(String attachType,String businessId ,List<MultipartFile> file){
|
||||
Assert.notBlank(attachType,"附件类型参数不能为空");
|
||||
Assert.notBlank(businessId,"业务ID参数不能为空");
|
||||
return R.ok(identifyBookService.uploadIdentifyBookAttachment(attachType,file,businessId));
|
||||
}
|
||||
//获取手动上传的文书附件
|
||||
@GetMapping("/getUploadBookAttachment")
|
||||
@ApiOperation(value = "获取手动上传的文书附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)", notes = "上传文书的附件,主要包含 鉴定事项确认书(1),委托书(2),检材照片(3),送检人证件照(4),原鉴定情况(5)")
|
||||
public R getAttachment(String businessId,String attachType){
|
||||
return R.ok(identifyBookService.getAttachment(businessId,attachType));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookRelevanceService;
|
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookService;
|
||||
import digital.laboratory.platform.sys.feign.RemoteUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.activation.MimetypesFileTypeMap;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书关联中间表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定文书-相关接口")
|
||||
@RequestMapping("/book/identifyBookRelevance")
|
||||
public class IdentifyBookRelevanceController {
|
||||
|
||||
private final OssFile ossFile;
|
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService;
|
||||
private final IIdentifyBookService identifyBookService;
|
||||
private final IEntrustmentService entrustmentService;
|
||||
private final RemoteUserService remoteUserService;
|
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书", notes = "根据委托ID获取鉴定文书")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true)
|
||||
@GetMapping("/getBook/{entrustId}")
|
||||
public R getBook(@PathVariable(value = "entrustId") String entrustId, HttpServletResponse response){
|
||||
try {
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> entrustIds = new ArrayList<>();
|
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId())
|
||||
);
|
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){
|
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList()));
|
||||
}
|
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, entrustIds));
|
||||
if (ObjectUtils.isNotEmpty(one)) {
|
||||
IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId());
|
||||
//ossFile.fileGet(identifyBook.getPath(), response.getOutputStream());
|
||||
String uuid= IdWorker.get32UUID();
|
||||
return R.ok( uuid+"#"+identifyBook.getPath(), "获取文件成功");
|
||||
//response.setContentType(new MimetypesFileTypeMap().getContentType(identifyBook.getFileName()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("获取鉴定文书失败");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据委托ID获取鉴定文书制作或修订历史列表", notes = "根据委托ID获取鉴定文书制作或修订历史列表")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true)
|
||||
@GetMapping("/findBookHistory/{entrustId}")
|
||||
public R findBookHistory(@PathVariable(value = "entrustId") String entrustId){
|
||||
try {
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> entrustIds = new ArrayList<>();
|
||||
List<Entrustment> entrustmentList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId,entrustId)
|
||||
);
|
||||
if(CollectionUtils.isNotEmpty(entrustmentList)){
|
||||
entrustIds.addAll(entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList()));
|
||||
}
|
||||
IdentifyBookRelevance one = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, entrustIds));
|
||||
if (ObjectUtils.isNotEmpty(one)) {
|
||||
// IdentifyBook identifyBook = identifyBookService.getMaxVersionIdentifyBook(one.getId());
|
||||
List<IdentifyBook> identifyBookList = identifyBookService.list(new LambdaQueryWrapper<IdentifyBook>()
|
||||
.eq(IdentifyBook::getIdentifyBookRelevanceId, one.getId())
|
||||
.orderByDesc(IdentifyBook::getCreateTime));
|
||||
for (IdentifyBook identifyBook: identifyBookList){
|
||||
if(StringUtils.isNotEmpty(identifyBook.getCreateBy())){
|
||||
identifyBook.setOperateUserName(remoteUserService.innerGetById(identifyBook.getCreateBy()).getData().getName());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return R.ok(identifyBookList);
|
||||
}
|
||||
return R.ok(null, "该委托还未制作文书!!!");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("获取鉴定文书失败");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.identifybook.entity.*;
|
||||
import digital.laboratory.platform.identifybook.service.*;
|
||||
import digital.laboratory.platform.sys.vo.CommonDataVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定数据-控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/18 16:35
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定数据相关接口")
|
||||
@RequestMapping("/book/identifyDataComm")
|
||||
public class IdentifyDataCommController {
|
||||
|
||||
/** TODO START 委托相关基础信息 **/
|
||||
private final ICaseEventService caseEventService;
|
||||
private final ICaseEvidenceService caseEvidenceService;
|
||||
private final IDelivererService delivererService;
|
||||
private final IEntrustmentService entrustmentService;
|
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
|
||||
private final IHairJobService hairJobService;
|
||||
private final IHairJobIdentificationMaterialService hairJobIdentificationMaterialService;
|
||||
private final IIdentificationService identificationService;
|
||||
private final ISampleService sampleService;
|
||||
private final ITakerService takerService;
|
||||
/** TODO END 委托相关基础信息 **/
|
||||
|
||||
private final IEntrustmentBundleService entrustmentBundleService;
|
||||
private final IExperimentService experimentService;
|
||||
private final IExaminationMethodsService examinationMethodsService;
|
||||
private final IResultEntrustmentQualitativeService resultEntrustmentQualitativeService;
|
||||
private final IResultEntrustmentRationService resultEntrustmentRationService;
|
||||
private final IBIdentificationProcessService identificationProcessService;
|
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService;
|
||||
|
||||
|
||||
|
||||
@ApiOperation(value = "保存委托相关数据", notes = "保存委托相关数据")
|
||||
@PostMapping("/commonEntrustRelated")
|
||||
public R commonEntrustRelated(@RequestBody CommonDataVO commonDataVO){
|
||||
log.info("委托相关信息{}", commonDataVO);
|
||||
try {
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO)){
|
||||
// 委托信息 检验过程 鉴定状态表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getEntrustmentList())){
|
||||
log.info("委托信息:{}", commonDataVO.getEntrustmentList());
|
||||
List<Entrustment> entrustmentList = BeanUtil.copyToList(commonDataVO.getEntrustmentList(), Entrustment.class);
|
||||
boolean b = entrustmentService.saveOrUpdateBatch(entrustmentList);
|
||||
if (b) {
|
||||
Entrustment entrustment;
|
||||
if(entrustmentList.size() > 1){
|
||||
entrustment = entrustmentList
|
||||
.stream()
|
||||
.sorted(Comparator.comparing(Entrustment::getCreateTime))
|
||||
.collect(Collectors.toList()).get(0);
|
||||
} else {
|
||||
entrustment = entrustmentList.get(0);
|
||||
}
|
||||
List<String> stringIDSList = entrustmentList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||
IdentifyBookRelevance identifyBookRelevance = identifyBookRelevanceService.getOne(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.in(IdentifyBookRelevance::getRelevanceBusinessId, stringIDSList));
|
||||
if(ObjectUtils.isEmpty(identifyBookRelevance)){
|
||||
String[] arrNo = entrustment.getAcceptNo().split("-");
|
||||
identifyBookRelevance = new IdentifyBookRelevance();
|
||||
identifyBookRelevance.setRelevanceBusinessId(entrustment.getId());
|
||||
identifyBookRelevance.setYear(arrNo[0]);
|
||||
identifyBookRelevance.setSerialNumber(arrNo[1]);
|
||||
identifyBookRelevance.setBookStatus(-1);
|
||||
boolean save = identifyBookRelevanceService.save(identifyBookRelevance);
|
||||
if(!save){
|
||||
throw new RuntimeException("保存文书关联消息失败!!!");
|
||||
}
|
||||
}
|
||||
// 检验过程
|
||||
BIdentificationProcess identificationProcess = new BIdentificationProcess();
|
||||
identificationProcess.setId(entrustment.getId());
|
||||
identificationProcess.setInspectionProcess(
|
||||
StringUtils.isNotEmpty(commonDataVO.getIdentificationProcess()) ? commonDataVO.getIdentificationProcess() : "");
|
||||
boolean saveOrUpdate = identificationProcessService.saveOrUpdate(identificationProcess);
|
||||
if(!saveOrUpdate){
|
||||
throw new RuntimeException("保存文书关联检验过程失败!!!");
|
||||
}
|
||||
log.info("保存或更新委托成功!!!");
|
||||
}
|
||||
|
||||
}
|
||||
// 委托关联案件信息 --
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getCaseEvent())){
|
||||
log.info("委托关联案件信息:{}", commonDataVO.getCaseEvent());
|
||||
CaseEvent caseEvent = new CaseEvent();
|
||||
BeanUtil.copyProperties(commonDataVO.getCaseEvent(), caseEvent);
|
||||
boolean b = caseEventService.saveOrUpdate(caseEvent);
|
||||
if (b) {
|
||||
log.info("保存或更新案件成功!!!");
|
||||
}
|
||||
}
|
||||
// 委托案件关联物证 --
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getCaseEvidence())){
|
||||
log.info("委托案件关联物证:{}", commonDataVO.getCaseEvidence());
|
||||
List<CaseEvidence> caseEvidenceList = BeanUtil.copyToList(commonDataVO.getCaseEvidence(), CaseEvidence.class);
|
||||
boolean b = caseEvidenceService.saveOrUpdateBatch(caseEvidenceList);
|
||||
if (b) {
|
||||
log.info("保存或更新委托物证成功!!!");
|
||||
}
|
||||
}
|
||||
// 检材信息
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getEntrustmentIdentificationMaterial())){
|
||||
log.info("检材信息:{}", commonDataVO.getEntrustmentIdentificationMaterial());
|
||||
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList =
|
||||
BeanUtil.copyToList(commonDataVO.getEntrustmentIdentificationMaterial(), EntrustmentIdentificationMaterial.class);
|
||||
boolean b = entrustmentIdentificationMaterialService.saveOrUpdateBatch(entrustmentIdentificationMaterialList);
|
||||
if (b) {
|
||||
log.info("保存或更新检材消息成功!!!");
|
||||
}
|
||||
}
|
||||
// 鉴定表,一个鉴定可能会有多个委托
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getIdentification())){
|
||||
log.info("鉴定表,一个鉴定可能会有多个委托:{}", commonDataVO.getIdentification());
|
||||
Identification identification = new Identification();
|
||||
BeanUtil.copyProperties(commonDataVO.getIdentification(), identification);
|
||||
boolean b = identificationService.saveOrUpdate(identification);
|
||||
if (b) {
|
||||
log.info("保存或更新鉴定表成功!!!");
|
||||
}
|
||||
}
|
||||
// 检验用的样本
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getSample())){
|
||||
log.info("检验用的样本:{}", commonDataVO.getSample());
|
||||
List<Map> copyToList = BeanUtil.copyToList(commonDataVO.getSample(), Map.class);
|
||||
// List<Sample> sampleList = BeanUtil.copyToList(commonDataVO.getSample(), Sample.class);
|
||||
List<Sample> sampleList = new ArrayList<>();
|
||||
for (Map map: copyToList){
|
||||
log.info("map.get(sampleInfo): {}",map.get("sampleInfo"));
|
||||
// sampleList.add(BeanUtil.copyProperties(map.get("sampleInfo"), Sample.class));
|
||||
//传递过来的数据中 sampleInfo可能为空
|
||||
if(map.get("sampleInfo")!=null){
|
||||
sampleList.add(JSON.parseObject(JSON.toJSONString(map.get("sampleInfo")), Sample.class));
|
||||
}else{
|
||||
log.info("map.get(sampleInfo): {},sampleId={} experimentId={} 这个为空",map.get("sampleInfo"),map.get("sampleId"),map.get("experimentId"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
log.info("检验用的样本sampleList:{}", sampleList);
|
||||
boolean b = sampleService.saveOrUpdateBatch(sampleList);
|
||||
log.info("检验用的样本sampleList-当这里么!!!");
|
||||
if (b) {
|
||||
log.info("保存或更新检验用的样本成功!!!");
|
||||
}
|
||||
}
|
||||
// 委托与实验关系
|
||||
if(ObjectUtils.isNotEmpty(commonDataVO.getEntrustmentBundle())){
|
||||
log.info("委托与实验关系:{}", commonDataVO.getEntrustmentBundle());
|
||||
EntrustmentBundle entrustmentBundle = new EntrustmentBundle();
|
||||
BeanUtil.copyProperties(commonDataVO.getEntrustmentBundle(), entrustmentBundle);
|
||||
boolean b = entrustmentBundleService.saveOrUpdate(entrustmentBundle);
|
||||
if (b) {
|
||||
log.info("保存或更新委托与实验关系成功!!!");
|
||||
}
|
||||
}
|
||||
// 实验列表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getExperimentList())){
|
||||
log.info("实验列表:{}", commonDataVO.getExperimentList());
|
||||
List<Experiment> experimentList = BeanUtil.copyToList(commonDataVO.getExperimentList(), Experiment.class);
|
||||
boolean b = experimentService.saveOrUpdateBatch(experimentList);
|
||||
if (b) {
|
||||
log.info("保存或更新实验列表成功!!!");
|
||||
}
|
||||
}
|
||||
// 检验方法列表
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getMethodList())){
|
||||
log.info("检验方法列表:{}", commonDataVO.getMethodList());
|
||||
List<ExaminationMethods> examinationMethodsList = BeanUtil.copyToList(commonDataVO.getMethodList(), ExaminationMethods.class);
|
||||
boolean b = examinationMethodsService.saveOrUpdateBatch(examinationMethodsList);
|
||||
if (b) {
|
||||
log.info("保存或更新检验方法列表成功!!!");
|
||||
}
|
||||
}
|
||||
// 定性检验结果
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getResultEntrustmentQualitative())){
|
||||
log.info("定性检验结果:{}", commonDataVO.getResultEntrustmentQualitative());
|
||||
List<ResultEntrustmentQualitative> resultEntrustmentQualitativeList =
|
||||
BeanUtil.copyToList(commonDataVO.getResultEntrustmentQualitative(), ResultEntrustmentQualitative.class);
|
||||
boolean b = resultEntrustmentQualitativeService.saveOrUpdateBatch(resultEntrustmentQualitativeList);
|
||||
if (b) {
|
||||
log.info("保存或更新定性检验结果!!!");
|
||||
}
|
||||
}
|
||||
// 定量检验结果
|
||||
if(CollectionUtils.isNotEmpty(commonDataVO.getResultEntrustmentRation())){
|
||||
log.info("定量检验结果:{}", commonDataVO.getResultEntrustmentRation());
|
||||
List<ResultEntrustmentRation> resultEntrustmentRationList =
|
||||
BeanUtil.copyToList(commonDataVO.getResultEntrustmentRation(), ResultEntrustmentRation.class);
|
||||
boolean b = resultEntrustmentRationService.saveOrUpdateBatch(resultEntrustmentRationList);
|
||||
if (b) {
|
||||
log.info("保存或更新定量检验结果!!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
return R.failed("保存或更新委托及鉴定结果异常,请联系管理员!!!");
|
||||
}
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||
import digital.laboratory.platform.common.oss.service.OssFile;
|
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove;
|
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply;
|
||||
import digital.laboratory.platform.identifybook.req.ModifySupplementApplyREQ;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import digital.laboratory.platform.identifybook.service.IModifySupplementApplyService;
|
||||
import digital.laboratory.platform.identifybook.utils.Word2PdfAsposeUtil;
|
||||
import digital.laboratory.platform.sys.feign.RemoteUserService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.activation.MimetypesFileTypeMap;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.security.Principal;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书修改补充申请表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "鉴定文书修改补充申请相关接口")
|
||||
@RequestMapping("/book/modifySupplementApply")
|
||||
public class ModifySupplementApplyController {
|
||||
|
||||
private final OssFile ossFile;
|
||||
|
||||
private final IModifySupplementApplyService modifySupplementApplyService;
|
||||
|
||||
private final RemoteUserService remoteUserService;
|
||||
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
@ApiOperation(value = "保存/更新鉴定文书修改补充申请信息", notes = "保存/更新鉴定文书修改补充申请信息")
|
||||
@PostMapping
|
||||
public R<ModifySupplementApply> addOrUpdate(@RequestBody ModifySupplementApply modifySupplementApply, HttpServletRequest request){
|
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
// 查询当前是否已经申请并且还没有审批完成的记录
|
||||
ModifySupplementApply existInfo = modifySupplementApplyService
|
||||
.getOne(Wrappers.<ModifySupplementApply>lambdaQuery()
|
||||
.eq(ModifySupplementApply::getEntrustmentId, modifySupplementApply.getEntrustmentId())
|
||||
.eq(ModifySupplementApply::getApplyBy, dlpUser.getId())
|
||||
.notIn(ModifySupplementApply::getStatus,
|
||||
Arrays.asList(BusinessStatus.JD_WS_XG_BC_SP_TG.getCode(), BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode())));
|
||||
if (existInfo != null) {
|
||||
throw new RuntimeException("当前您有未审批完成的申请,请先处理当前申请!");
|
||||
}
|
||||
Entrustment entrustment = entrustmentService.getById(modifySupplementApply.getEntrustmentId());
|
||||
String[] split = entrustment.getAcceptNo().split("-");
|
||||
modifySupplementApply.setApplyBy(dlpUser.getId());
|
||||
modifySupplementApply.setYear(split[0]);
|
||||
modifySupplementApply.setSerialNumber(split[1]);
|
||||
modifySupplementApply.setStatus(0);
|
||||
modifySupplementApply.setApplyTime(new Date());
|
||||
modifySupplementApply.setUpdateTime(new Date());
|
||||
if(modifySupplementApplyService.saveOrUpdate(modifySupplementApply)){
|
||||
return R.ok(modifySupplementApply);
|
||||
}
|
||||
return R.failed("保存或更新失败");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取当前用户是否有未审批的申请修改记录信息", notes = "获取当前用户是否有未审批的申请修改记录信息")
|
||||
@GetMapping("/getNotApproveApplyInfo")
|
||||
public R<ModifySupplementApply> getNotApproveApplyInfoByUser(@RequestParam String entrustId, HttpServletRequest request){
|
||||
// 获取用户消息
|
||||
Principal principal = request.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
// 查询当前是否已经申请并且还没有审批完成的记录
|
||||
ModifySupplementApply existInfo = modifySupplementApplyService
|
||||
.getOne(Wrappers.<ModifySupplementApply>lambdaQuery()
|
||||
.eq(ModifySupplementApply::getEntrustmentId, entrustId)
|
||||
.eq(ModifySupplementApply::getApplyBy, dlpUser.getId())
|
||||
.notIn(ModifySupplementApply::getStatus,
|
||||
Arrays.asList(BusinessStatus.JD_WS_XG_BC_SP_TG.getCode(), BusinessStatus.JD_WS_XG_BC_SP_WTG.getCode())));
|
||||
// 如果查询为空则new一个实例返回
|
||||
return R.ok(existInfo == null ? new ModifySupplementApply() : existInfo);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过鉴定文书修改补充申请ID删除鉴定文书修改补充申请信息", notes = "通过鉴定文书修改补充申请ID删除鉴定文书修改补充申请信息")
|
||||
@DeleteMapping("/{id}")
|
||||
public R<String> del(@PathVariable("id") String id){
|
||||
if(modifySupplementApplyService.removeById(id)){
|
||||
return R.ok();
|
||||
}
|
||||
return R.failed("删除鉴定文书修改补充申请信息失败!!!");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过鉴定文书修改补充申请ID查询鉴定文书修改补充申请信息", notes = "通过鉴定文书修改补充申请ID查询职鉴定文书修改补充申请信息")
|
||||
@GetMapping("/view/{id}")
|
||||
public R<ModifySupplementApply> view(@PathVariable("id") String id){
|
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(id);
|
||||
if(ObjectUtils.isNotEmpty(modifySupplementApply)){
|
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy()) && StringUtils.isEmpty(modifySupplementApply.getEntrustUserName())){
|
||||
modifySupplementApply.setEntrustUserName(
|
||||
remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName());
|
||||
}
|
||||
|
||||
return R.ok(modifySupplementApply);
|
||||
}
|
||||
return R.failed("查询鉴定文书修改补充申请信息失败");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "通过条件分页查询鉴定文书修改补充申请信息", notes = "通过条件分页查询鉴定文书修改补充申请信息")
|
||||
@PostMapping("/search")
|
||||
public R<IPage<ModifySupplementApply>> getCareerCredentialsPage(@RequestBody ModifySupplementApplyREQ req){
|
||||
IPage<ModifySupplementApply> modifySupplementApplyIPage = modifySupplementApplyService.page(
|
||||
req.getPage(), null);
|
||||
if(CollectionUtils.isNotEmpty(modifySupplementApplyIPage.getRecords())){
|
||||
for (ModifySupplementApply modifySupplementApply: modifySupplementApplyIPage.getRecords()) {
|
||||
if(StringUtils.isNotEmpty(modifySupplementApply.getEntrustBy())){
|
||||
modifySupplementApply.setEntrustUserName(
|
||||
remoteUserService.innerGetById(modifySupplementApply.getEntrustBy()).getData().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
return R.ok(modifySupplementApplyIPage);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据鉴定文书修改补充申请ID获取鉴定文书修改补充申请文件", notes = "根据鉴定文书修改补充申请ID获取鉴定文书修改补充申请文件")
|
||||
@GetMapping("/getIdentifyBookApprove/{id}")
|
||||
public R getModifySupplementApplyWord(@PathVariable(value = "id") String id, HttpServletResponse response){
|
||||
try {
|
||||
ModifySupplementApply modifySupplementApply = modifySupplementApplyService.getById(id);
|
||||
if (ObjectUtils.isNotEmpty(modifySupplementApply) && StringUtils.isNotEmpty(modifySupplementApply.getPath())){
|
||||
|
||||
ByteArrayOutputStream bosWord = new ByteArrayOutputStream();
|
||||
ossFile.fileGet(modifySupplementApply.getPath(), bosWord);
|
||||
// ossFile.fileGet(modifySupplementApply.getPath(), response.getOutputStream());
|
||||
ServletOutputStream servletOutputStream = response.getOutputStream();
|
||||
byte[] pdfByte = Word2PdfAsposeUtil.docx2pdf(new ByteArrayInputStream(bosWord.toByteArray()));
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(pdfByte.length);
|
||||
baos.write(pdfByte, 0, pdfByte.length);
|
||||
baos.writeTo(servletOutputStream);
|
||||
response.setContentType(new MimetypesFileTypeMap().getContentType(
|
||||
modifySupplementApply.getFileName().substring(0, modifySupplementApply.getFileName().length() - 5) + ".pdf"));
|
||||
// String uuid= IdWorker.get32UUID();
|
||||
// return R.ok( uuid+"#"+modifySupplementApply.getPath(), "获取文件成功");
|
||||
}
|
||||
}catch (Exception e){
|
||||
System.out.println("获取鉴定文书审批表异常" + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
return R.failed("获取鉴定文书修改补充申请文件失败");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO;
|
||||
import digital.laboratory.platform.identifybook.dto.ReceiveIdentifyBookDTO;
|
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus;
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvent;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentIdentificationMaterial;
|
||||
import digital.laboratory.platform.identifybook.entity.ReceiveIdentifyBook;
|
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ;
|
||||
import digital.laboratory.platform.identifybook.service.ICaseEventService;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentIdentificationMaterialService;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import digital.laboratory.platform.identifybook.service.IReceiveIdentifyBookService;
|
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 领取鉴定文书信息表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-30
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "领取鉴定文书信息-相关接口")
|
||||
@RequestMapping("/book/receiveIdentifyBook")
|
||||
public class ReceiveIdentifyBookController {
|
||||
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
private final ICaseEventService caseEventService;
|
||||
|
||||
private final IEntrustmentIdentificationMaterialService entrustmentIdentificationMaterialService;
|
||||
|
||||
private final IReceiveIdentifyBookService receiveIdentifyBookService;
|
||||
|
||||
@ApiOperation(value = "根据条件分页查询委托数据列表", notes = "根据条件分页查询委托数据列表")
|
||||
@PostMapping("/findReceiveIdentifyBookPage")
|
||||
public R<IPage<ReceiveIdentifyBookDTO>> findEntrustPage(@RequestBody EntrustmentREQ req){
|
||||
if(req.getBookStatusList().size() == 1){
|
||||
if(req.getBookStatusList().get(0).equals("4")){
|
||||
IPage<EntrustmentDTO> entrustPage = entrustmentService.findEntrustPage(req.getPage(), req);
|
||||
IPage<ReceiveIdentifyBookDTO> bookDTOIPage = new Page<>();
|
||||
bookDTOIPage.setCurrent(entrustPage.getCurrent());
|
||||
bookDTOIPage.setPages(entrustPage.getPages());
|
||||
bookDTOIPage.setSize(entrustPage.getSize());
|
||||
bookDTOIPage.setTotal(entrustPage.getTotal());
|
||||
List<ReceiveIdentifyBookDTO> receiveIdentifyBookDTOList = new ArrayList<>();
|
||||
for (EntrustmentDTO entrustmentDTO: entrustPage.getRecords()){
|
||||
ReceiveIdentifyBookDTO receiveIdentifyBookDTO = new ReceiveIdentifyBookDTO();
|
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustmentDTO.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustmentDTO.getId())
|
||||
)
|
||||
.stream().map(m -> m.getId())
|
||||
.collect(Collectors.toList());
|
||||
receiveIdentifyBookDTO.setEntrustId(entrustmentDTO.getId());
|
||||
receiveIdentifyBookDTO.setSampleNum(entrustmentDTO.getMaterialNum());
|
||||
BeanUtil.copyProperties(entrustmentDTO, receiveIdentifyBookDTO);
|
||||
/* List<ReceiveIdentifyBook> receiveIdentifyBookList = receiveIdentifyBookService.list(new LambdaQueryWrapper<ReceiveIdentifyBook>()
|
||||
.in(ReceiveIdentifyBook::getRelevanceBusinessId, stringIDSList));
|
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookList)){
|
||||
BeanUtil.copyProperties(receiveIdentifyBookList.get(0), receiveIdentifyBookDTO);
|
||||
receiveIdentifyBookDTO.setReceiveId(receiveIdentifyBookList.get(0).getId());
|
||||
receiveIdentifyBookDTO.setStatus(2);
|
||||
} else {
|
||||
receiveIdentifyBookDTO.setStatus(1);
|
||||
}*/
|
||||
receiveIdentifyBookDTO.setCaseName(entrustmentDTO.getCaseName());
|
||||
receiveIdentifyBookDTO.setAcceptNo(entrustmentDTO.getAcceptNo());
|
||||
receiveIdentifyBookDTO.setAcceptTime(entrustmentDTO.getAcceptTime());
|
||||
receiveIdentifyBookDTO.setStatus(1);
|
||||
if (StrUtil.isBlank(receiveIdentifyBookDTO.getReceiveWay())) {
|
||||
receiveIdentifyBookDTO.setReceiveWay(entrustmentDTO.getReportReceiveMode());//优先使用原来的领取方式
|
||||
receiveIdentifyBookDTO.setPostAddress(entrustmentDTO.getPostAddress());
|
||||
}
|
||||
receiveIdentifyBookDTOList.add(receiveIdentifyBookDTO);
|
||||
}
|
||||
bookDTOIPage.setRecords(receiveIdentifyBookDTOList);
|
||||
return R.ok(bookDTOIPage);
|
||||
} else {
|
||||
BaseRequest<ReceiveIdentifyBook> request = new BaseRequest<>();
|
||||
request.setCurrent(req.getCurrent());
|
||||
request.setSize(req.getSize());
|
||||
IPage<ReceiveIdentifyBookDTO> receiveIdentifyBookDTOIPage =
|
||||
receiveIdentifyBookService.pageReceiveIdentifyBook(request.getPage(), req.getKey());
|
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookDTOIPage.getRecords())){
|
||||
for (ReceiveIdentifyBookDTO receiveIdentifyBookDTO: receiveIdentifyBookDTOIPage.getRecords()){
|
||||
Entrustment entrustment = entrustmentService.getById(receiveIdentifyBookDTO.getEntrustId());
|
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
//.eq(Entrustment::getIdentificationId, entrustment.getIdentificationId())
|
||||
.eq(Entrustment::getId, entrustment.getId())
|
||||
)
|
||||
.stream().map(m -> m.getId())
|
||||
.collect(Collectors.toList());
|
||||
receiveIdentifyBookDTO.setCaseName(entrustment.getCaseName());
|
||||
receiveIdentifyBookDTO.setSampleNum(entrustment.getMaterialNum());
|
||||
receiveIdentifyBookDTO.setAcceptTime(entrustment.getAcceptTime());
|
||||
receiveIdentifyBookDTO.setAcceptNo(entrustment.getAcceptNo());
|
||||
receiveIdentifyBookDTO.setStatus(2);
|
||||
if (StrUtil.isBlank(receiveIdentifyBookDTO.getReceiveWay())) {
|
||||
receiveIdentifyBookDTO.setReceiveWay(entrustment.getReportReceiveMode());//优先使用原来的领取方式
|
||||
receiveIdentifyBookDTO.setPostAddress(entrustment.getPostAddress());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return R.ok(receiveIdentifyBookDTOIPage);
|
||||
}
|
||||
}
|
||||
return R.ok(null,"未查询到数据");
|
||||
|
||||
}
|
||||
@ApiOperation(value = "根据委托ID查看发放领取详情", notes = "根据委托ID查看发放领取详情")
|
||||
@ApiImplicitParam(name = "entrustId", value = "委托ID" , required = true)
|
||||
@GetMapping("/view/{entrustId}")
|
||||
public R<ReceiveIdentifyBookDTO> view(@PathVariable(value = "entrustId") String entrustId){
|
||||
Entrustment entrustment = entrustmentService.getById(entrustId);
|
||||
List<String> stringIDSList = entrustmentService.list(new LambdaQueryWrapper<Entrustment>()
|
||||
.select(Entrustment::getId)
|
||||
.eq(Entrustment::getIdentificationId,
|
||||
entrustment.getIdentificationId()))
|
||||
.stream().map(m -> m.getId())
|
||||
.collect(Collectors.toList());
|
||||
List<ReceiveIdentifyBook> receiveIdentifyBookList = receiveIdentifyBookService.list(
|
||||
new LambdaQueryWrapper<ReceiveIdentifyBook>()
|
||||
.in(ReceiveIdentifyBook::getRelevanceBusinessId, stringIDSList));
|
||||
if(CollectionUtils.isNotEmpty(receiveIdentifyBookList)){
|
||||
ReceiveIdentifyBookDTO receiveIdentifyBookDTO = new ReceiveIdentifyBookDTO();
|
||||
BeanUtil.copyProperties(receiveIdentifyBookList.get(0), receiveIdentifyBookDTO);
|
||||
CaseEvent caseEvent = caseEventService.getById(entrustment.getCaseId());
|
||||
receiveIdentifyBookDTO.setReceiveId(receiveIdentifyBookList.get(0).getId());
|
||||
receiveIdentifyBookDTO.setEntrustId(receiveIdentifyBookList.get(0).getRelevanceBusinessId());
|
||||
receiveIdentifyBookDTO.setDeliverer1Name(entrustment.getDeliverer1Name());
|
||||
receiveIdentifyBookDTO.setDeliverer2Name(entrustment.getDeliverer2Name());
|
||||
receiveIdentifyBookDTO.setDeliverTime(entrustment.getDeliverTime());
|
||||
receiveIdentifyBookDTO.setIdentificationDomain(entrustment.getIdentificationDomain());
|
||||
receiveIdentifyBookDTO.setCaseNo(caseEvent.getCaseNo());
|
||||
receiveIdentifyBookDTO.setThirdPartySysNo(caseEvent.getThirdPartySysNo());
|
||||
receiveIdentifyBookDTO.setCaseName(caseEvent.getCaseName());
|
||||
receiveIdentifyBookDTO.setSampleNum(entrustment.getMaterialNum());
|
||||
return R.ok(receiveIdentifyBookDTO);
|
||||
}
|
||||
|
||||
return R.failed("为获取到相关数据!!!!");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定性分析检验结果 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/resultEntrustmentQualitative")
|
||||
public class ResultEntrustmentQualitativeController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定量检验结果 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/resultEntrustmentRation")
|
||||
public class ResultEntrustmentRationController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验用的样本 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/sample")
|
||||
public class SampleController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 采集员 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/book/taker")
|
||||
public class TakerController {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||
import digital.laboratory.platform.identifybook.entity.TaskNotification;
|
||||
import digital.laboratory.platform.identifybook.req.TaskNotificationREQ;
|
||||
import digital.laboratory.platform.identifybook.service.ITaskNotificationService;
|
||||
import digital.laboratory.platform.identifybook.vo.TaskNotificationVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.security.Principal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 任务信息表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-31
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "审核审批签发-相关接口")
|
||||
@RequestMapping("/book/taskNotification")
|
||||
public class TaskNotificationController {
|
||||
|
||||
private final ITaskNotificationService taskNotificationService;
|
||||
|
||||
@ApiOperation(value = "根据条件分页查询任务/任务记录列表", notes = "根据条件分页查询任务/任务记录列表")
|
||||
@PostMapping("/findTaskNotification")
|
||||
public R<IPage<TaskNotificationVO>> findTaskNotification(@RequestBody TaskNotificationREQ req, HttpServletRequest theHttpServletRequest){
|
||||
// 获取当前登录用户信息
|
||||
Principal principal = theHttpServletRequest.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
IPage<TaskNotificationVO> page = taskNotificationService.queryTaskNotificationPage(req, dlpUser);
|
||||
return R.ok(page);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package digital.laboratory.platform.identifybook.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
|
||||
import digital.laboratory.platform.identifybook.emums.BusinessStatus;
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance;
|
||||
import digital.laboratory.platform.identifybook.service.IEntrustmentService;
|
||||
import digital.laboratory.platform.identifybook.service.IIdentifyBookRelevanceService;
|
||||
import digital.laboratory.platform.identifybook.service.ITaskNotificationService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.security.Principal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 公共数据统计 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-31
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api( tags = "公共数据统计-相关接口管理")
|
||||
@RequestMapping("/book/commDataStatistics")
|
||||
public class commDataStatisticsController {
|
||||
|
||||
private final ITaskNotificationService taskNotificationService;
|
||||
|
||||
private final IEntrustmentService entrustmentService;
|
||||
|
||||
private final IIdentifyBookRelevanceService identifyBookRelevanceService;
|
||||
|
||||
@ApiOperation(value = "综合统计", notes = "综合统计")
|
||||
@GetMapping("/comprehensiveStatistics")
|
||||
public R comprehensiveStatistics(HttpServletRequest theHttpServletRequest){
|
||||
Principal principal = theHttpServletRequest.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
Map<String, Object> mapTotal= new HashMap<>();
|
||||
// 鉴定文书列表任务统计
|
||||
long countWSLBSum = entrustmentService.countWSLBSum(Stream.of(-1, -2, 3, -4, 5, 7).collect(Collectors.toList()));
|
||||
// 审核审批签发任务统计
|
||||
long countRWSum = taskNotificationService.countRWSum(dlpUser);
|
||||
// 鉴定文书签发领取任务统计
|
||||
long countQFLQSum = identifyBookRelevanceService.count(new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.eq(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_SP_QF_TG.getCode()));
|
||||
|
||||
mapTotal.put("countWSLBSum", countWSLBSum);
|
||||
mapTotal.put("countRWSum", countRWSum);
|
||||
mapTotal.put("countQFLQSum", countQFLQSum);
|
||||
return R.ok(mapTotal, "countWSLBSum:鉴定文书列表统计结果,countRWSum:审核审批任务统计结果,countQFLQSum:签发领取任务结果");
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "审核审批任务统计", notes = "审核审批任务统计")
|
||||
@GetMapping("/reviewAndApprovalTaskStatistics")
|
||||
public R reviewAndApprovalTaskStatistics(HttpServletRequest theHttpServletRequest){
|
||||
// 获取当前登录用户信息
|
||||
Principal principal = theHttpServletRequest.getUserPrincipal();
|
||||
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
|
||||
|
||||
return R.ok(taskNotificationService.countRWSum(dlpUser));
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "鉴定文书任务列表/待制作/退回修改任务统计", notes = "鉴定文书任务列表/待制作/退回修改任务统计")
|
||||
@GetMapping("/identifyBookDZZORTHXGTaskStatistics")
|
||||
public R identifyBookDZZORTHXGTaskStatistics(){
|
||||
Map<String, Object> mapTotal= new HashMap<>();
|
||||
// 鉴定文书任务列表/待制作统计
|
||||
long countWSLBDZZSum = entrustmentService.countWSLBSum(Stream.of(-1).collect(Collectors.toList()));
|
||||
// 鉴定文书任务列表/退回修改/补充
|
||||
long countWSLBTHXGSum = entrustmentService.countWSLBSum(Stream.of(3, 5).collect(Collectors.toList()));
|
||||
// 鉴定文书任务列表/重新制作
|
||||
long countWSLBCXZZSum = entrustmentService.countWSLBSum(Stream.of(-2, -4, 7).collect(Collectors.toList()));
|
||||
mapTotal.put("countWSLBDZZSum", countWSLBDZZSum);
|
||||
mapTotal.put("countWSLBTHXGSum", countWSLBTHXGSum);
|
||||
mapTotal.put("countWSLBCXZZSum", countWSLBCXZZSum);
|
||||
|
||||
return R.ok(mapTotal, "countWSLBDZZSum:鉴定文书待制作任务统计结果、countWSLBTHXGSum:鉴定文书退回修改任务统计结果、countWSLBCXZZSum:鉴定文书任务列表/重新制作");
|
||||
|
||||
}
|
||||
|
||||
@ApiOperation(value = "鉴定文书签发待领取任务统计", notes = "鉴定文书签发待领取任务统计")
|
||||
@GetMapping("/identifyBookQFDLQTaskStatistics")
|
||||
public R identifyBookQFDLQTaskStatistics(){
|
||||
return R.ok(identifyBookRelevanceService.count(
|
||||
new LambdaQueryWrapper<IdentifyBookRelevance>()
|
||||
.eq(IdentifyBookRelevance::getBookStatus, BusinessStatus.JD_WS_SP_QF_TG.getCode())));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package digital.laboratory.platform.identifybook.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/24 10:15
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "EntrustCaseDTO对象", description = "封装委托及案件相关属性")
|
||||
public class EntrustCaseDTO {
|
||||
|
||||
@ApiModelProperty(value = "委托Id")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "委托编号")
|
||||
private String entrustmentNo;
|
||||
|
||||
@ApiModelProperty(value = "对应的流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "受理Id, 通过这个可以得到鉴定号")
|
||||
private String identificationId;
|
||||
|
||||
@ApiModelProperty(value = "鉴定委托单位名称")
|
||||
private String clientOrgName;
|
||||
|
||||
@ApiModelProperty(value = "委托鉴定专业")
|
||||
private String identificationDomain;
|
||||
|
||||
@ApiModelProperty(value = "鉴定机构名称")
|
||||
private String identificationOrgName;
|
||||
|
||||
@ApiModelProperty(value = "鉴定要求")
|
||||
private String entrustRequirement;
|
||||
|
||||
@ApiModelProperty(value = "其他鉴定要求")
|
||||
private String otherIdentificationRequests;
|
||||
|
||||
@ApiModelProperty(value = "是否由委托方指定鉴定方法")
|
||||
private Boolean isClientSpecifiedMethod;
|
||||
|
||||
@ApiModelProperty(value = "委托方指定的鉴定方法")
|
||||
private String clientSpecifiedMethod;
|
||||
|
||||
@ApiModelProperty(value = "检验的其他说明(鉴定事项确认书中要求, 审核人填写)")
|
||||
private String otherIdentificationNotes;
|
||||
|
||||
@ApiModelProperty(value = "送检人1姓名")
|
||||
private String deliverer1Name;
|
||||
|
||||
@ApiModelProperty(value = "送检人1职务")
|
||||
private String deliverer1Position;
|
||||
|
||||
@ApiModelProperty(value = "送检人1证件名称")
|
||||
private String deliverer1Cert;
|
||||
|
||||
@ApiModelProperty(value = "送检人1证件编号")
|
||||
private String deliverer1Id;
|
||||
|
||||
@ApiModelProperty(value = "送检人1电话")
|
||||
private String deliverer1Phone;
|
||||
|
||||
@ApiModelProperty(value = "送检人2姓名")
|
||||
private String deliverer2Name;
|
||||
|
||||
@ApiModelProperty(value = "送检人2职务")
|
||||
private String deliverer2Position;
|
||||
|
||||
@ApiModelProperty(value = "送检人2证件名称")
|
||||
private String deliverer2Cert;
|
||||
|
||||
@ApiModelProperty(value = "送检人2证件编号")
|
||||
private String deliverer2Id;
|
||||
|
||||
@ApiModelProperty(value = "送检人2电话")
|
||||
private String deliverer2Phone;
|
||||
|
||||
@ApiModelProperty(value = "鉴定编号")
|
||||
private String identificationNo;
|
||||
|
||||
@ApiModelProperty(value = "受理编号")
|
||||
private String acceptNo;
|
||||
|
||||
@ApiModelProperty(value = "受理人user_id")
|
||||
private String acceptUser;
|
||||
|
||||
@ApiModelProperty(value = "受理时间")
|
||||
private Date acceptTime;
|
||||
|
||||
@ApiModelProperty(value = "受理意见")
|
||||
private String acceptComments;
|
||||
|
||||
@ApiModelProperty(value = "案件编号")
|
||||
private String caseNo;
|
||||
|
||||
@ApiModelProperty(value = "第三方系统(如现勘系统、案事件系统)编号")
|
||||
private String thirdPartySysNo;
|
||||
|
||||
@ApiModelProperty(value = "案件名称任务名称")
|
||||
private String caseName;
|
||||
|
||||
@ApiModelProperty(value = "案发时间")
|
||||
private Date happenTime;
|
||||
|
||||
@ApiModelProperty(value = "案发地详细地点")
|
||||
private String caseAddress;
|
||||
|
||||
@ApiModelProperty(value = "案件所属机构")
|
||||
private String caseOwnOrgId;
|
||||
|
||||
@ApiModelProperty(value = "案情简要")
|
||||
private String caseBrief;
|
||||
|
||||
@ApiModelProperty(value = "业务类型:业务类型 10000 委托检验鉴定 10001-NPS案件 10002-毛发案件 20000 任务检验鉴定 20001-毛发任务 20002-污水任务 30000 筛查检验鉴定 30001-筛查")
|
||||
private Integer businessType;
|
||||
|
||||
@ApiModelProperty(value="原始系统中的委托ID")
|
||||
private String synEntrustId;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package digital.laboratory.platform.identifybook.dto;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/25 15:27
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "EntrustmentDTO对象", description = "封装委托相关属性")
|
||||
public class EntrustmentDTO extends Entrustment {
|
||||
|
||||
@ApiModelProperty(value = "案件编号")
|
||||
private String caseNo;
|
||||
|
||||
@ApiModelProperty(value = "案件名称任务名称")
|
||||
private String caseName;
|
||||
|
||||
@ApiModelProperty(value = "案情简要")
|
||||
private String caseBrief;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书年份")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书序号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改")
|
||||
private Integer bookStatus;
|
||||
|
||||
@ApiModelProperty(value = "鉴定人")
|
||||
private String appraisalUserName;
|
||||
|
||||
@ApiModelProperty(value = "鉴定开始时间")
|
||||
private String inspectionStartDate;
|
||||
|
||||
@ApiModelProperty(value = "鉴定结束时间")
|
||||
private String finishDate;
|
||||
|
||||
@ApiModelProperty("补送集合")
|
||||
private List<EntrustmentDTO> children;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package digital.laboratory.platform.identifybook.dto;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 领取鉴定文书相关信息
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-30
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="ReceiveIdentifyBookDTO对象", description="领取鉴定文书相关信息")
|
||||
public class ReceiveIdentifyBookDTO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "委托ID")
|
||||
private String entrustId;
|
||||
|
||||
/**
|
||||
* 业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组
|
||||
*/
|
||||
@ApiModelProperty(value="业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组")
|
||||
private Integer businessType;
|
||||
|
||||
@ApiModelProperty(value = "领取ID")
|
||||
private String receiveId;
|
||||
|
||||
@ApiModelProperty(value = "领取方式")
|
||||
private String receiveWay;
|
||||
|
||||
@ApiModelProperty(value="邮寄地址")
|
||||
private String postAddress;
|
||||
|
||||
@ApiModelProperty(value = "领取人ID")
|
||||
private String recipientsUserId;
|
||||
|
||||
@ApiModelProperty(value = "领取人姓名")
|
||||
private String recipientsUserName;
|
||||
|
||||
@ApiModelProperty(value = "领取时间")
|
||||
private Date recipientsTime;
|
||||
|
||||
@ApiModelProperty(value = "经办人ID")
|
||||
private String operatorUserId;
|
||||
|
||||
@ApiModelProperty(value = "经办人姓名")
|
||||
private String operatorUserName;
|
||||
|
||||
@ApiModelProperty(value="案件编号")
|
||||
private String caseNo;
|
||||
|
||||
@ApiModelProperty(value="受理编号")
|
||||
private String acceptNo;
|
||||
|
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)编号")
|
||||
private String thirdPartySysNo;
|
||||
|
||||
@ApiModelProperty(value="案件名称任务名称")
|
||||
private String caseName;
|
||||
|
||||
@ApiModelProperty(value="送检人1姓名")
|
||||
private String deliverer1Name;
|
||||
|
||||
@ApiModelProperty(value="送检人2姓名")
|
||||
private String deliverer2Name;
|
||||
|
||||
@ApiModelProperty(value="送检日期")
|
||||
private LocalDateTime deliverTime;
|
||||
|
||||
@ApiModelProperty(value="受理时间")
|
||||
@JsonFormat(pattern = "yyyy年MM月dd日", timezone = "GMT+8")
|
||||
private LocalDateTime acceptTime;
|
||||
|
||||
@ApiModelProperty(value="检验项目")
|
||||
private String identificationDomain;
|
||||
|
||||
@ApiModelProperty(value="检材数量")
|
||||
private Integer sampleNum;
|
||||
|
||||
@ApiModelProperty(value="领取/发放状态(1:待发放,2:已发放)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value="原始系统中的委托ID")
|
||||
private String synEntrustId;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改,6:鉴定文书-已领取")
|
||||
private Integer bookStatus;
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ChenJiangBao
|
||||
* @version 1.0
|
||||
* @description: 附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)
|
||||
* @date 2025/4/2 10:12
|
||||
*/
|
||||
@Getter
|
||||
public enum AnnexTypeEnum {
|
||||
// 附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)
|
||||
INSPECTION_RECORD("1", "检验记录(含原始记录,检验图表)"),
|
||||
IDENTIFICATION_CONFIRMATION("2", "鉴定事项确认书"),
|
||||
ENTRUST_LETTER("3", "鉴定委托书或鉴定聘请书"),
|
||||
MATERIAL_PHOTO("4", "检材照片"),
|
||||
EXAMINER_ID_COPY("5", "送检人证件复印件"),
|
||||
ORIGINAL_DOCUMENT("6", "原鉴定文书"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
private final String desc;
|
||||
|
||||
AnnexTypeEnum(String code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
// 使用 Map 提高查找效率
|
||||
private static final Map<String, AnnexTypeEnum> CODE_MAP =
|
||||
Arrays.stream(AnnexTypeEnum.values())
|
||||
.collect(Collectors.toMap(AnnexTypeEnum::getCode, e -> e));
|
||||
|
||||
// 根据 code 获取枚举
|
||||
public static AnnexTypeEnum fromCode(String code) {
|
||||
return CODE_MAP.get(code);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务状态枚举
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/12 16:20
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@ApiModel("业务状态")
|
||||
public enum BusinessStatus {
|
||||
JD_WS_YZZ("0", "已制作/重新制作鉴定文书"),
|
||||
/** START 鉴定文书审核/审批/签发 **/
|
||||
JD_WS_TJ_SH("1","鉴定文书-提交审核"),
|
||||
JD_WS_SH_TG("2","鉴定文书-审核通过"),
|
||||
JD_WS_SH_WTG("-2","鉴定文书-审核未通过"),
|
||||
JD_WS_SH_TH_XG("3","鉴定文书-审核退回修改"),
|
||||
|
||||
JD_WS_SP_QF_TG("4","鉴定文书-审批签发成功"),
|
||||
JD_WS_SP_QF_WTG("-4","鉴定文书-审批签发拒绝"),
|
||||
JD_WS_SP_QF_TH_XG("5","鉴定文书-审批签发退回修改"),
|
||||
|
||||
JD_WS_YLQ("6","鉴定文书-已领取"),
|
||||
/** END 年度人员培训计划-提交/审核/审批业务状态 **/
|
||||
|
||||
/** START 鉴定文书修改/补充申请业务状态 **/
|
||||
JD_WS_XG_BC_SQ("1","鉴定文书-提交修改补充申请"),
|
||||
JD_WS_XG_BC_SH_TG("2","鉴定文书-修改补充-审核通过"),
|
||||
JD_WS_XG_BC_SH_WTG("-2","鉴定文书-修改补充-审核未通过"),
|
||||
JD_WS_XG_BC_SP_TG("3","鉴定文书-修改补充-审批通过"),
|
||||
JD_WS_XG_BC_SP_WTG("-3","鉴定文书-修改补充-审批不通过"),
|
||||
JD_WS_XG_BC_SH_YJ_CX_ZZ("7","收回原件,重新出具鉴定文书"),
|
||||
/** END 鉴定文书修改/补充申请业务状态 **/
|
||||
;
|
||||
|
||||
private final String code;
|
||||
private final String desc;
|
||||
|
||||
public static BusinessStatus findEnumByCode(String code) {
|
||||
for (BusinessStatus status : BusinessStatus.values()) {
|
||||
if (status.code.equals(code)) {
|
||||
return status;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("code is not support");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 定性/定量分析枚举
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/26 10:40
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@ApiModel("业务状态")
|
||||
public enum IdentifyRequireEnum {
|
||||
|
||||
QUALITATIVE_ANALYSIS(1, "对送检检材进行 ”定性“ 检测"),
|
||||
QUANTITATIVE_ANALYSIS(2, "对送检检材进行 ”定量“ 检测"),
|
||||
QUANTITATIVE_ANALYSIS_QUANTITATIVE_ANALYSIS(3, "对送检检材进行 ”定性,定量“ 检测"),
|
||||
RELEVANCE(4, "对送检检材进行 ”关联性“ 检测"),
|
||||
OTHER(5, "其它")
|
||||
;
|
||||
|
||||
private final Integer code;
|
||||
private final String desc;
|
||||
|
||||
public static IdentifyRequireEnum findEnumByCode(Integer code) {
|
||||
for (IdentifyRequireEnum requireEnum : IdentifyRequireEnum.values()) {
|
||||
if (requireEnum.code.equals(code)) {
|
||||
return requireEnum;
|
||||
}
|
||||
}
|
||||
throw new IllegalArgumentException("code is not support");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/8/9 16:20
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@ApiModel("权限组枚举")
|
||||
public enum PermissionGroupEnum {
|
||||
|
||||
/**
|
||||
* 鉴定文书-制作/提交/退回修改(实验人员)
|
||||
*/
|
||||
IdentifyBookProductionRrSubmissionProcess("IdentifyBookProductionRrSubmissionProcess", "鉴定文书-制作/提交/退回修改"),
|
||||
/**
|
||||
* 鉴定文书-审核(授权签字人)
|
||||
*/
|
||||
IdentifyBookSH("IdentifyBookSH", "鉴定文书-审核"),
|
||||
/**
|
||||
* 鉴定文书-审批(主任)
|
||||
*/
|
||||
IdentifyBookSP("IdentifyBookSP", "鉴定文书-审批(主任)"),
|
||||
/**
|
||||
* 鉴定文书-签发((实验人员)
|
||||
*/
|
||||
IdentifyBookQF("IdentifyBookQF", "鉴定文书-签发"),
|
||||
|
||||
/**
|
||||
* 鉴定文书-修改补充申请/提交审核 (实验人员)
|
||||
*/
|
||||
IdentifyBookModificationAndSupplementationSQ("IdentifyBookModificationAndSupplementationSQ", "鉴定文书-修改补充申请/提交审核"),
|
||||
/**
|
||||
* 鉴定文书-修改补充审核 (授权签字人)
|
||||
*/
|
||||
IdentifyBookModificationAndSupplementationSH("IdentifyBookModificationAndSupplementationSH", "鉴定文书-修改补充审核 "),
|
||||
/**
|
||||
* 鉴定文书-修改补充审批 (主任)
|
||||
*/
|
||||
IdentifyBookModificationAndSupplementationSP("IdentifyBookModificationAndSupplementationSP", "鉴定文书-修改补充审批 ")
|
||||
;
|
||||
|
||||
|
||||
private final String code;
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ChenJiangBao
|
||||
* @version 1.0
|
||||
* @description: 报告领取方式: 0=自取, 1=代领, 2=邮寄
|
||||
* @date 2025/4/2 10:12
|
||||
*/
|
||||
@Getter
|
||||
public enum ReceiveWayEnum {
|
||||
// 报告领取方式: 0=自取, 1=代领, 2=邮寄
|
||||
SELF_PICKUP("0", "自取"),
|
||||
PROXY_PICKUP("1", "代领"),
|
||||
MAIL("2", "邮寄");
|
||||
|
||||
private final String code;
|
||||
private final String desc;
|
||||
|
||||
ReceiveWayEnum(String code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
// 使用 Map 提高查找效率
|
||||
private static final Map<String, ReceiveWayEnum> CODE_MAP =
|
||||
Arrays.stream(ReceiveWayEnum.values())
|
||||
.collect(Collectors.toMap(ReceiveWayEnum::getCode, e -> e));
|
||||
|
||||
// 根据 code 获取枚举
|
||||
public static ReceiveWayEnum fromCode(String code) {
|
||||
return CODE_MAP.get(code);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@ApiModel("任务类型枚举")
|
||||
public enum TaskTypeEnum {
|
||||
|
||||
JD_WS_SH("1","鉴定文书-审核"),
|
||||
JD_WS_SH_TH_XG("2","鉴定文书-审核退回修改"),
|
||||
JD_WS_SP("3","鉴定文书-审批"),
|
||||
JD_WS_SP_TH_XG("4","鉴定文书-审批退回修改"),
|
||||
JD_WS_QF_LQ("5","鉴定文书-签发/领取"),
|
||||
JD_WS_XG_BC_SH("6","鉴定文书修改/补充-审核"),
|
||||
JD_WS_XG_BC_SP("7","鉴定文书修改/补充-审批")
|
||||
|
||||
;
|
||||
|
||||
private final String code;
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package digital.laboratory.platform.identifybook.emums;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 重量/体积单位 枚举
|
||||
*/
|
||||
@Getter
|
||||
public enum UnitEnums {
|
||||
|
||||
UNIT_SOLID_G("g", "克"),
|
||||
|
||||
UNIT_SOLID_MG("mg", "毫克"),
|
||||
|
||||
UNIT_SOLID_KG("kg", "公斤"),
|
||||
|
||||
UNIT_LIQUID_L("l", "升"),
|
||||
|
||||
UNIT_LIQUID_ML("ml", "毫升"),
|
||||
;
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
UnitEnums(String code, String desc) {
|
||||
this.code = code;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
// 根据单位获取单位描述,没有就返回原先的字符
|
||||
public static String fromUnit(String code) {
|
||||
for (UnitEnums unitEnums : values()) {
|
||||
if (unitEnums.getCode().equals(code)) {
|
||||
return unitEnums.getDesc();
|
||||
}
|
||||
}
|
||||
return code;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 回避的鉴定人
|
||||
* 作为委托的一个属性, 由委托方指定某些鉴定人需要回避
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class AvoidIdentifier {
|
||||
String userId; // 用户 Id
|
||||
String name; // 这是鉴定人的姓名
|
||||
String reason; // 回避的原因(事由)
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-27
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="BIdentificationProcess对象", description="")
|
||||
public class BIdentificationProcess implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "委托ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "检验过程")
|
||||
@TableField("inspection_process")
|
||||
private String inspectionProcess;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务流程记录表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_business_process_record")
|
||||
@ApiModel(value="BusinessProcessRecord对象", description="业务流程记录表")
|
||||
public class BusinessProcessRecord implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "业务流程记录ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "业务ID")
|
||||
private String businessId;
|
||||
|
||||
@ApiModelProperty(value = "业务名称")
|
||||
private String businessName;
|
||||
|
||||
@ApiModelProperty(value = "业务类型名称")
|
||||
private String businessTypeName;
|
||||
|
||||
@ApiModelProperty(value = "业务状态")
|
||||
private Integer businessStatus;
|
||||
|
||||
@ApiModelProperty(value = "意见")
|
||||
private String message;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
@JSONField( format = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String createBy;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 案件、事件
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_case_event")
|
||||
@ApiModel(value="CaseEvent对象", description="案件、事件")
|
||||
public class CaseEvent extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value="id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 案件编号
|
||||
*/
|
||||
@ApiModelProperty(value="案件编号")
|
||||
private String caseNo;
|
||||
|
||||
/**
|
||||
* 第三方系统(如现勘系统、案事件系统)编号
|
||||
*/
|
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)编号")
|
||||
private String thirdPartySysNo;
|
||||
|
||||
/**
|
||||
* 案件名称任务名称
|
||||
*/
|
||||
@ApiModelProperty(value="案件名称任务名称")
|
||||
private String caseName;
|
||||
|
||||
/**
|
||||
* 案件类型
|
||||
*/
|
||||
@ApiModelProperty(value="案件类型")
|
||||
private String caseType;
|
||||
|
||||
/**
|
||||
* 案发时间
|
||||
*/
|
||||
@ApiModelProperty(value="案发时间")
|
||||
private LocalDateTime happenTime;
|
||||
|
||||
/**
|
||||
* 案发地详细地点
|
||||
*/
|
||||
@ApiModelProperty(value="案发地详细地点")
|
||||
private String caseAddress;
|
||||
|
||||
/**
|
||||
* 案发地行政区划编码(到县一级)
|
||||
*/
|
||||
@ApiModelProperty(value="案发地行政区划编码(到县一级)")
|
||||
private String caseArea;
|
||||
|
||||
/**
|
||||
* 案件所属机构
|
||||
*/
|
||||
@ApiModelProperty(value="案件所属机构")
|
||||
private String caseOwnOrgId;
|
||||
|
||||
/**
|
||||
* 案件级别: 0=普通案件, 1=紧急案件, 2=加急案件
|
||||
*/
|
||||
@ApiModelProperty(value="案件级别: 0=普通案件, 1=紧急案件, 2=加急案件")
|
||||
private Integer caseRank;
|
||||
|
||||
/**
|
||||
* 案情简要
|
||||
*/
|
||||
@ApiModelProperty(value="案情简要")
|
||||
private String caseBrief;
|
||||
|
||||
/**
|
||||
* 案件备注
|
||||
*/
|
||||
@ApiModelProperty(value="案件备注")
|
||||
private String comments;
|
||||
|
||||
/**
|
||||
* 数据来源,用于区别数据来自自身系统还是外部系统
|
||||
*/
|
||||
@ApiModelProperty(value="数据来源")
|
||||
private Integer dataSources;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 与案件相关的物证信息
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_case_evidence")
|
||||
@ApiModel(value="CaseEvidence对象", description="与案件相关的物证信息")
|
||||
public class CaseEvidence extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value="id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 本系统物证编号
|
||||
*/
|
||||
@ApiModelProperty(value="本系统物证编号")
|
||||
private String evidenceNo;
|
||||
|
||||
/**
|
||||
* 案件Id
|
||||
*/
|
||||
@ApiModelProperty(value="案件Id")
|
||||
private String caseId;
|
||||
|
||||
/**
|
||||
* 第三方系统(如现勘系统、案事件系统)物证编号
|
||||
*/
|
||||
@ApiModelProperty(value="第三方系统(如现勘系统、案事件系统)物证编号")
|
||||
private String thirdPartySysEvidenceNo;
|
||||
|
||||
/**
|
||||
* 物证名称
|
||||
*/
|
||||
@ApiModelProperty(value="物证名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 物证类别:1. 非生物性物证;2. 生物特性物证
|
||||
*/
|
||||
@ApiModelProperty(value="物证类别:1. 非生物性物证;2. 生物特性物证")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 现场标牌号
|
||||
*/
|
||||
@ApiModelProperty(value="现场标牌号")
|
||||
private String fieldLabelNo;
|
||||
|
||||
/**
|
||||
* 物证来源
|
||||
*/
|
||||
@ApiModelProperty(value="物证来源")
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 物证颜色
|
||||
*/
|
||||
@ApiModelProperty(value="物证颜色")
|
||||
private String color;
|
||||
|
||||
/**
|
||||
* 物证性状
|
||||
*/
|
||||
@ApiModelProperty(value="物证性状")
|
||||
private String form;
|
||||
|
||||
/**
|
||||
* 物证情况之承载物名称, 例如 棉签 2 棵, 粉末 少许
|
||||
*/
|
||||
@ApiModelProperty(value="物证情况之承载物名称, 例如 棉签 2 棵, 粉末 少许")
|
||||
private String fundName;
|
||||
|
||||
/**
|
||||
* 物证情况之承载物数量, 例如 5 颗, 3包,
|
||||
*/
|
||||
@ApiModelProperty(value="物证情况之承载物数量, 例如 5 颗, 3包, ")
|
||||
private Integer fundQuantity;
|
||||
|
||||
/**
|
||||
* 物证情况之承载物单位, 例如 5 颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value="物证情况之承载物单位, 例如 5 颗, 3包")
|
||||
private String fundUnit;
|
||||
|
||||
/**
|
||||
* 物证数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value="物证数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 物证单位, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value="物证单位, 例如 3.8 克 或 4.5毫升")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 附加属性, 如:体积3毫升,密码123,型号abc
|
||||
*/
|
||||
@ApiModelProperty(value="附加属性, 如:体积3毫升,密码123,型号abc")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<IMAdditionalProperty> additionalProperties;
|
||||
|
||||
/**
|
||||
* 所有者姓名
|
||||
*/
|
||||
@ApiModelProperty(value="所有者姓名")
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 所有者证件类型
|
||||
*/
|
||||
@ApiModelProperty(value="所有者证件类型")
|
||||
private String personCert;
|
||||
|
||||
/**
|
||||
* 所有者证件号
|
||||
*/
|
||||
@ApiModelProperty(value="所有者证件号")
|
||||
private String personId;
|
||||
|
||||
/**
|
||||
* 所有者性别,公安系统编码 1:男 2:女 0:未知
|
||||
*/
|
||||
@ApiModelProperty(value="所有者性别,公安系统编码 1:男 2:女 0:未知")
|
||||
private Integer personGender;
|
||||
|
||||
/**
|
||||
* 所有者国籍
|
||||
*/
|
||||
@ApiModelProperty(value="所有者国籍")
|
||||
private String personNationality;
|
||||
|
||||
/**
|
||||
* 所有者民族编码,公安系统编码
|
||||
*/
|
||||
@ApiModelProperty(value="所有者民族编码,公安系统编码")
|
||||
private Integer personNation;
|
||||
|
||||
/**
|
||||
* 所有者地址
|
||||
*/
|
||||
@ApiModelProperty(value="所有者地址")
|
||||
private String personAddress;
|
||||
|
||||
/**
|
||||
* 所有者年龄
|
||||
*/
|
||||
@ApiModelProperty(value="所有者年龄")
|
||||
private Integer personAge;
|
||||
|
||||
/**
|
||||
* 包装情况:纸袋,纸盒,纸箱,自定义
|
||||
*/
|
||||
@ApiModelProperty(value="包装情况:纸袋,纸盒,纸箱,自定义")
|
||||
private String pack;
|
||||
|
||||
/**
|
||||
* 存储方法:常规,冷藏,特殊
|
||||
*/
|
||||
@ApiModelProperty(value="存储方法:常规,冷藏,特殊")
|
||||
private String storageMethod;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
@ApiModelProperty(value="描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ApiModelProperty(value="备注")
|
||||
private String comments;
|
||||
|
||||
/**
|
||||
* 数据来源,用于区别数据来自自身系统还是外部系统
|
||||
*/
|
||||
@ApiModelProperty(value="数据来源")
|
||||
private Integer dataSources;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送检员
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_deliverer")
|
||||
@ApiModel(value="Deliverer对象", description="送检员")
|
||||
public class Deliverer implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "送检员拥有者userId")
|
||||
private String ownerUserId;
|
||||
|
||||
@ApiModelProperty(value = "送检员姓名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "送检员职务")
|
||||
private String position;
|
||||
|
||||
@ApiModelProperty(value = "送检员证件名称")
|
||||
private String cert;
|
||||
|
||||
@ApiModelProperty(value = "送检员证件编号")
|
||||
private String idnum;
|
||||
|
||||
@ApiModelProperty(value = "送检员电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,763 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import digital.laboratory.platform.sys.entity.DrugLite;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_entrustment")
|
||||
@ApiModel(value="Entrustment对象", description="委托")
|
||||
public class Entrustment extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 编号
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value="编号")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 案件Id
|
||||
*/
|
||||
@ApiModelProperty(value="案件Id")
|
||||
private String caseId;
|
||||
/**
|
||||
* 案件名称
|
||||
*/
|
||||
@ApiModelProperty(value="案件名称")
|
||||
private String caseName;
|
||||
|
||||
/**
|
||||
* 案情简要
|
||||
*/
|
||||
@ApiModelProperty(value="案情简要")
|
||||
private String caseBrief;
|
||||
|
||||
|
||||
/**
|
||||
* 委托编号
|
||||
*/
|
||||
@ApiModelProperty(value="委托编号")
|
||||
private String entrustmentNo;
|
||||
|
||||
/**
|
||||
* 委托类型: 0=正常司法鉴定委托, 1=案前委托
|
||||
*/
|
||||
@ApiModelProperty(value="委托类型: 0=正常司法鉴定委托, 1=案前委托")
|
||||
private Integer entrustmentType;
|
||||
|
||||
/**
|
||||
* 业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组
|
||||
*/
|
||||
@ApiModelProperty(value="业务类型: 0=毒品鉴定 1=.....用于对应到各个检验小组")
|
||||
private Integer businessType;
|
||||
|
||||
/**
|
||||
* 对应的流程实例Id
|
||||
*/
|
||||
@ApiModelProperty(value="对应的流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 受理Id, 通过这个可以得到鉴定号
|
||||
*/
|
||||
@ApiModelProperty(value="受理Id, 通过这个可以得到鉴定号")
|
||||
private String identificationId;
|
||||
|
||||
/**
|
||||
* 委托日期, 鉴定委托书打印日期
|
||||
*/
|
||||
@ApiModelProperty(value="委托日期, 鉴定委托书打印日期")
|
||||
private LocalDateTime entrustmentTime;
|
||||
|
||||
/**
|
||||
* 委托提交者, 后期可能会转给其他人user_id
|
||||
*/
|
||||
@ApiModelProperty(value="委托提交者, 后期可能会转给其他人user_id")
|
||||
private String submitter;
|
||||
|
||||
/**
|
||||
* 提交日期, 提交审核的日期
|
||||
*/
|
||||
@ApiModelProperty(value="提交日期, 提交审核的日期")
|
||||
private LocalDateTime submitTime;
|
||||
|
||||
/**
|
||||
* 鉴定委托单位编码
|
||||
*/
|
||||
@ApiModelProperty(value="鉴定委托单位编码")
|
||||
private String clientOrgId;
|
||||
|
||||
/**
|
||||
* 鉴定委托单位名称
|
||||
*/
|
||||
@ApiModelProperty(value="鉴定委托单位名称")
|
||||
private String clientOrgName;
|
||||
|
||||
/**
|
||||
* 通讯地址
|
||||
*/
|
||||
@ApiModelProperty(value="通讯地址")
|
||||
private String clientAddress;
|
||||
|
||||
/**
|
||||
* 邮政编码
|
||||
*/
|
||||
@ApiModelProperty(value="邮政编码")
|
||||
private String clientPostcode;
|
||||
|
||||
/**
|
||||
* 电话号码
|
||||
*/
|
||||
@ApiModelProperty(value="电话号码")
|
||||
private String clientTel;
|
||||
|
||||
/**
|
||||
* 传真号码
|
||||
*/
|
||||
@ApiModelProperty(value="传真号码")
|
||||
private String clientFax;
|
||||
|
||||
/**
|
||||
* 委托鉴定专业
|
||||
*/
|
||||
@ApiModelProperty(value="委托鉴定专业")
|
||||
private String identificationDomain;
|
||||
|
||||
/**
|
||||
* 鉴定机构名称
|
||||
*/
|
||||
@ApiModelProperty(value="鉴定机构名称")
|
||||
private String identificationOrgName;
|
||||
|
||||
/**
|
||||
* 定性分析
|
||||
*/
|
||||
@ApiModelProperty(value="定性分析")
|
||||
private Boolean qualitativeAnalysis;
|
||||
|
||||
/**
|
||||
* 定量分析
|
||||
*/
|
||||
@ApiModelProperty(value="定量分析")
|
||||
private Boolean quantitativeAnalysis;
|
||||
|
||||
/**
|
||||
* 其他鉴定要求
|
||||
*/
|
||||
@ApiModelProperty(value="其他鉴定要求")
|
||||
private String otherIdentificationRequests;
|
||||
|
||||
/**
|
||||
* 候选毒品列表(drug 对象的 json array)
|
||||
*/
|
||||
@ApiModelProperty(value="候选毒品列表(drug 对象的 json array)")
|
||||
//@TableField(typeHandler = JacksonTypeHandler.class)
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<DrugLite> candidateDrugs;
|
||||
|
||||
/**
|
||||
* 是否由委托方指定鉴定方法
|
||||
*/
|
||||
@ApiModelProperty(value="是否由委托方指定鉴定方法")
|
||||
private Boolean isClientSpecifiedMethod;
|
||||
|
||||
/**
|
||||
* 委托方指定的鉴定方法
|
||||
*/
|
||||
@ApiModelProperty(value="委托方指定的鉴定方法")
|
||||
private String clientSpecifiedMethod;
|
||||
|
||||
/**
|
||||
* 是否有损检验:0=无损,1=有损
|
||||
*/
|
||||
@ApiModelProperty(value="是否有损检验:0=无损,1=有损")
|
||||
private Boolean destructiveAnalysis;
|
||||
|
||||
/**
|
||||
* 检验的其他说明(鉴定事项确认书中要求, 审核人填写)
|
||||
*/
|
||||
@ApiModelProperty(value="检验的其他说明(鉴定事项确认书中要求, 审核人填写)")
|
||||
private String otherIdentificationNotes;
|
||||
|
||||
/**
|
||||
* 是否重新鉴定:0=否,1=重新鉴定
|
||||
*/
|
||||
@ApiModelProperty(value="是否重新鉴定:0=否,1=重新鉴定")
|
||||
private Boolean reidentification;
|
||||
|
||||
/**
|
||||
* 原鉴定机构
|
||||
*/
|
||||
@ApiModelProperty(value="原鉴定机构")
|
||||
private String oldIdentificationOrgName;
|
||||
|
||||
/**
|
||||
* 原鉴定文书
|
||||
*/
|
||||
@ApiModelProperty(value="原鉴定文书")
|
||||
private String oldIdentificationDocument;
|
||||
|
||||
/**
|
||||
* 原鉴定结果
|
||||
*/
|
||||
@ApiModelProperty(value="原鉴定结果")
|
||||
private String oldIdentificationResult;
|
||||
|
||||
/**
|
||||
* 重新鉴定理由
|
||||
*/
|
||||
@ApiModelProperty(value="重新鉴定理由")
|
||||
private String reidentificationReason;
|
||||
|
||||
/**
|
||||
* 回避的鉴定人及回避事由, json 格式
|
||||
*/
|
||||
@ApiModelProperty(value="回避的鉴定人及回避事由, json 格式")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<AvoidIdentifier> avoidIdentifier;
|
||||
|
||||
/**
|
||||
* 指定鉴定人, 委托中指定鉴定人
|
||||
*/
|
||||
@ApiModelProperty(value="指定鉴定人, 委托中指定鉴定人")
|
||||
private String specifiedIdentifier;
|
||||
|
||||
/**
|
||||
* 其它约定事项,打印在鉴定事项确认书中的"约定->其他"
|
||||
*/
|
||||
@ApiModelProperty(value="其它约定事项,打印在鉴定事项确认书中的\"约定->其他\"")
|
||||
private String otherAgreement;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ApiModelProperty(value="备注")
|
||||
private String comments;
|
||||
|
||||
/**
|
||||
* 候选审核人, user_id列表, 逗号分隔
|
||||
*/
|
||||
@ApiModelProperty(value="候选审核人, user_id列表, 逗号分隔")
|
||||
private String checkCandidateUser;
|
||||
|
||||
/**
|
||||
* 审核任务认领人
|
||||
*/
|
||||
@ApiModelProperty(value="审核任务认领人")
|
||||
private String checkClaimUser;
|
||||
|
||||
/**
|
||||
* 审核任务认领时间
|
||||
*/
|
||||
@ApiModelProperty(value="审核任务认领时间")
|
||||
private LocalDateTime checkClaimTime;
|
||||
|
||||
/**
|
||||
* 实际审核人, user_id
|
||||
*/
|
||||
@ApiModelProperty(value="实际审核人, user_id")
|
||||
private String checkUser;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
@ApiModelProperty(value="审核时间")
|
||||
private LocalDateTime checkTime;
|
||||
|
||||
/**
|
||||
* 审核意见: (审批通过 审批不通过及原因)
|
||||
*/
|
||||
@ApiModelProperty(value="审核意见: (审批通过 审批不通过及原因)")
|
||||
private String checkComments;
|
||||
|
||||
/**
|
||||
* 审核次数记录
|
||||
*/
|
||||
@ApiModelProperty(value="审核次数记录")
|
||||
private Integer checkTimes;
|
||||
|
||||
/**
|
||||
* 专业全部物证检验状态: 0=未全部审核 1=已全部审核
|
||||
*/
|
||||
@ApiModelProperty(value="专业全部物证检验状态: 0=未全部审核 1=已全部审核")
|
||||
private Boolean checkAllIdentificationMaterialConfirmed;
|
||||
|
||||
/**
|
||||
* 候选审批人, user_id列表, 逗号分隔
|
||||
*/
|
||||
@ApiModelProperty(value="候选审批人, user_id列表, 逗号分隔")
|
||||
private String approveCandidateUser;
|
||||
|
||||
/**
|
||||
* 审批任务认领人
|
||||
*/
|
||||
@ApiModelProperty(value="审批任务认领人")
|
||||
private String approveClaimUser;
|
||||
|
||||
/**
|
||||
* 审批任务认领时间
|
||||
*/
|
||||
@ApiModelProperty(value="审批任务认领时间")
|
||||
private LocalDateTime approveClaimTime;
|
||||
|
||||
/**
|
||||
* 实际审批人, user_id
|
||||
*/
|
||||
@ApiModelProperty(value="实际审批人, user_id")
|
||||
private String approveUser;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
@ApiModelProperty(value="审批时间")
|
||||
private LocalDateTime approveTime;
|
||||
|
||||
/**
|
||||
* 审批意见: (审批通过 审批不通过及原因)
|
||||
*/
|
||||
@ApiModelProperty(value="审批意见: (审批通过 审批不通过及原因)")
|
||||
private String approveComments;
|
||||
|
||||
/**
|
||||
* 审批次数:该字段在审核通过时初始化, 值为0或1时代表初审, 2代表复审
|
||||
*/
|
||||
@ApiModelProperty(value="审批次数:该字段在审核通过时初始化, 值为0或1时代表初审, 2代表复审")
|
||||
private Integer approveTimes;
|
||||
|
||||
/**
|
||||
* 送检确认人user_id
|
||||
*/
|
||||
@ApiModelProperty(value="送检确认人user_id")
|
||||
private String deliverConfirmUser;
|
||||
|
||||
/**
|
||||
* 送检确认时间
|
||||
*/
|
||||
@ApiModelProperty(value="送检确认时间")
|
||||
private LocalDateTime deliverConfirmTime;
|
||||
|
||||
/**
|
||||
* 送检确认意见
|
||||
*/
|
||||
@ApiModelProperty(value="送检确认意见")
|
||||
private String deliverConfirmComments;
|
||||
|
||||
/**
|
||||
* 送检日期
|
||||
*/
|
||||
@ApiModelProperty(value="送检日期")
|
||||
private LocalDateTime deliverTime;
|
||||
|
||||
/**
|
||||
* 送检操作提交用户user_id
|
||||
*/
|
||||
@ApiModelProperty(value="送检操作提交用户user_id")
|
||||
private String deliverSubmitter;
|
||||
|
||||
// /**
|
||||
// * 如果送检人1是系统用户, 记录用户id
|
||||
// */
|
||||
// @ApiModelProperty(value="如果送检人1是系统用户, 记录用户id")
|
||||
// private String deliverer1UserId;
|
||||
|
||||
/**
|
||||
* 送检人1姓名
|
||||
*/
|
||||
@ApiModelProperty(value="送检人1姓名")
|
||||
private String deliverer1Name;
|
||||
|
||||
/**
|
||||
* 送检人1职务
|
||||
*/
|
||||
@ApiModelProperty(value="送检人1职务")
|
||||
private String deliverer1Position;
|
||||
|
||||
/**
|
||||
* 送检人1证件名称
|
||||
*/
|
||||
@ApiModelProperty(value="送检人1证件名称")
|
||||
private String deliverer1Cert;
|
||||
|
||||
/**
|
||||
* 送检人1证件编号
|
||||
*/
|
||||
@ApiModelProperty(value="送检人1证件编号")
|
||||
private String deliverer1Id;
|
||||
|
||||
/**
|
||||
* 送检人1电话
|
||||
*/
|
||||
@ApiModelProperty(value="送检人1电话")
|
||||
private String deliverer1Phone;
|
||||
|
||||
// /**
|
||||
// * 如果送检人2是系统用户, 记录用户id
|
||||
// */
|
||||
// @ApiModelProperty(value="如果送检人2是系统用户, 记录用户id")
|
||||
// private String deliverer2UserId;
|
||||
|
||||
/**
|
||||
* 送检人2姓名
|
||||
*/
|
||||
@ApiModelProperty(value="送检人2姓名")
|
||||
private String deliverer2Name;
|
||||
|
||||
/**
|
||||
* 送检人2职务
|
||||
*/
|
||||
@ApiModelProperty(value="送检人2职务")
|
||||
private String deliverer2Position;
|
||||
|
||||
/**
|
||||
* 送检人2证件名称
|
||||
*/
|
||||
@ApiModelProperty(value="送检人2证件名称")
|
||||
private String deliverer2Cert;
|
||||
|
||||
/**
|
||||
* 送检人2证件编号
|
||||
*/
|
||||
@ApiModelProperty(value="送检人2证件编号")
|
||||
private String deliverer2Id;
|
||||
|
||||
/**
|
||||
* 送检人2电话
|
||||
*/
|
||||
@ApiModelProperty(value="送检人2电话")
|
||||
private String deliverer2Phone;
|
||||
|
||||
// /**
|
||||
// * 受理任务认领人
|
||||
// */
|
||||
// @ApiModelProperty(value="受理任务认领人")
|
||||
// private String acceptClaimUser;
|
||||
//
|
||||
// /**
|
||||
// * 受理任务认领时间
|
||||
// */
|
||||
// @ApiModelProperty(value="受理任务认领时间")
|
||||
// private LocalDateTime acceptClaimTime;
|
||||
|
||||
/**
|
||||
* 受理编号
|
||||
*/
|
||||
@ApiModelProperty(value="受理编号")
|
||||
private String acceptNo;
|
||||
|
||||
/**
|
||||
* 受理人user_id
|
||||
*/
|
||||
@ApiModelProperty(value="受理人user_id")
|
||||
private String acceptUser;
|
||||
|
||||
/**
|
||||
* 受理时间
|
||||
*/
|
||||
@ApiModelProperty(value="受理时间")
|
||||
private LocalDateTime acceptTime;
|
||||
|
||||
/**
|
||||
* 受理意见
|
||||
*/
|
||||
@ApiModelProperty(value="受理意见")
|
||||
private String acceptComments;
|
||||
|
||||
/**
|
||||
* 鉴定事项确认书是否已经打印
|
||||
*/
|
||||
@ApiModelProperty(value="鉴定事项确认书是否已经打印")
|
||||
private Boolean identificationItemsConfirmPrinted;
|
||||
|
||||
|
||||
/**
|
||||
* 送检受理信息, 以 json 格式记录送检受理各环节的文字意见
|
||||
*/
|
||||
@ApiModelProperty(value="送检受理信息, 以 json 格式记录送检受理各环节的文字意见")
|
||||
// @TableField(typeHandler = JacksonTypeHandler.class)
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<UpdateInfo> processInfo;
|
||||
|
||||
/**
|
||||
* 报告领取方式: 0=自取, 1=代领, 2=邮寄
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取方式: 0=自取, 1=代领, 2=邮寄")
|
||||
private String reportReceiveMode;
|
||||
|
||||
/**
|
||||
* 报告领取人1的 user id
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的 user id")
|
||||
private String reportReceiver1UserId;
|
||||
|
||||
/**
|
||||
* 报告领取人1的姓名
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的姓名")
|
||||
private String reportReceiver1Name;
|
||||
|
||||
/**
|
||||
* 报告领取人1的职务
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的职务")
|
||||
private String reportReceiver1Position;
|
||||
|
||||
/**
|
||||
* 报告领取人1的证件类型
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的证件类型")
|
||||
private String reportReceiver1Cert;
|
||||
|
||||
/**
|
||||
* 报告领取人1的证件号
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的证件号")
|
||||
private String reportReceiver1Id;
|
||||
|
||||
/**
|
||||
* 报告领取人1的电话
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1的电话")
|
||||
private String reportReceiver1Phone;
|
||||
|
||||
/**
|
||||
* 报告领取人2的 user id
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的 user id")
|
||||
private String reportReceiver2UserId;
|
||||
|
||||
/**
|
||||
* 报告领取人2的姓名
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的姓名")
|
||||
private String reportReceiver2Name;
|
||||
|
||||
/**
|
||||
* 报告领取人2的职务
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的职务")
|
||||
private String reportReceiver2Position;
|
||||
|
||||
/**
|
||||
* 报告领取人2的证件类型
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的证件类型")
|
||||
private String reportReceiver2Cert;
|
||||
|
||||
/**
|
||||
* 报告领取人2的证件号
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的证件号")
|
||||
private String reportReceiver2Id;
|
||||
|
||||
/**
|
||||
* 报告领取人2的电话
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2的电话")
|
||||
private String reportReceiver2Phone;
|
||||
|
||||
/**
|
||||
* 报告发放人user_id(通常是受理员)
|
||||
*/
|
||||
@ApiModelProperty(value="报告发放人user_id(通常是受理员)")
|
||||
private String reportSenderUserId;
|
||||
|
||||
/**
|
||||
* 报告发放时间
|
||||
*/
|
||||
@ApiModelProperty(value="报告发放时间")
|
||||
private LocalDateTime reportSentTime;
|
||||
|
||||
/**
|
||||
* 报告领取人1领取报告时的签名
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人1领取报告时的签名")
|
||||
private String reportReceiver1Signature;
|
||||
|
||||
/**
|
||||
* 报告领取人2领取报告时的签名
|
||||
*/
|
||||
@ApiModelProperty(value="报告领取人2领取报告时的签名")
|
||||
private String reportReceiver2Signature;
|
||||
|
||||
/**
|
||||
* 检材领取方式: 0=自取, 1=实验室自行处理
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取方式: 0=自取, 1=实验室自行处理")
|
||||
private Integer sampleReceiveMode;
|
||||
|
||||
/**
|
||||
* 如果检材领取人1是系统用户, 记录userId
|
||||
*/
|
||||
@ApiModelProperty(value="如果检材领取人1是系统用户, 记录userId")
|
||||
private String sampleReceiver1UserId;
|
||||
|
||||
/**
|
||||
* 检材领取人1姓名
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1姓名")
|
||||
private String sampleReceiver1Name;
|
||||
|
||||
/**
|
||||
* 检材领取人1职位
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1职位")
|
||||
private String sampleReceiver1Position;
|
||||
|
||||
/**
|
||||
* 检材领取人1证件类型
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1证件类型")
|
||||
private String sampleReceiver1Cret;
|
||||
|
||||
/**
|
||||
* 检材领取人1证件号
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1证件号")
|
||||
private String sampleReceiver1Id;
|
||||
|
||||
/**
|
||||
* 检材领取人1电话
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1电话")
|
||||
private String sampleReceiver1Phone;
|
||||
|
||||
/**
|
||||
* 如果检材领取人2是系统用户, 记录userId
|
||||
*/
|
||||
@ApiModelProperty(value="如果检材领取人2是系统用户, 记录userId")
|
||||
private String sampleReceiver2UserId;
|
||||
|
||||
/**
|
||||
* 检材领取人2姓名
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2姓名")
|
||||
private String sampleReceiver2Name;
|
||||
|
||||
/**
|
||||
* 检材领取人2职位
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2职位")
|
||||
private String sampleReceiver2Position;
|
||||
|
||||
/**
|
||||
* 检材领取人2证件类型
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2证件类型")
|
||||
private String sampleReceiver2Cret;
|
||||
|
||||
/**
|
||||
* 检材领取人2证件号
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2证件号")
|
||||
private String sampleReceiver2Id;
|
||||
|
||||
/**
|
||||
* 检材领取人2电话
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2电话")
|
||||
private String sampleReceiver2Phone;
|
||||
|
||||
/**
|
||||
* 检材发放人, 鉴定机构工作人员user_id
|
||||
*/
|
||||
@ApiModelProperty(value="检材发放人, 鉴定机构工作人员user_id")
|
||||
private String sampleSenderUserId;
|
||||
|
||||
/**
|
||||
* 检材发放时间
|
||||
*/
|
||||
@ApiModelProperty(value="检材发放时间")
|
||||
private String sampleSentTime;
|
||||
|
||||
/**
|
||||
* 检材领取人1签名
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人1签名")
|
||||
private String sampleReceiver1PersonSignature;
|
||||
|
||||
/**
|
||||
* 检材领取人2签名
|
||||
*/
|
||||
@ApiModelProperty(value="检材领取人2签名")
|
||||
private String sampleReceiver2PersonSignnature;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
@ApiModelProperty(value="状态")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 上一个状态
|
||||
*/
|
||||
@ApiModelProperty(value="上一个状态")
|
||||
private Integer previousStatus;
|
||||
|
||||
/**
|
||||
* 数据来源,用于区别数据来自自身系统还是外部系统
|
||||
*/
|
||||
@ApiModelProperty(value="数据来源")
|
||||
private Integer dataSources;
|
||||
|
||||
/**
|
||||
* 第三方数据系统中的委托编号,
|
||||
*/
|
||||
@ApiModelProperty(value="禁毒数据平台的委托编号")
|
||||
private String thirdSysEntrustNo;
|
||||
|
||||
/**
|
||||
* 第三方系统受理编号,
|
||||
*/
|
||||
@ApiModelProperty(value="第三方系统受理编号")
|
||||
private String acceptNoThirdSys;
|
||||
/**
|
||||
* 鉴定要求,
|
||||
*/
|
||||
@ApiModelProperty(value="鉴定要求")
|
||||
private String entrustRequirement;
|
||||
/**
|
||||
* 邮寄地址,
|
||||
*/
|
||||
@ApiModelProperty(value="邮寄地址")
|
||||
private String postAddress;
|
||||
@ApiModelProperty(value="原始系统中的委托ID")
|
||||
private String synEntrustId;
|
||||
|
||||
@ApiModelProperty(value="检材数量")
|
||||
private Integer materialNum;
|
||||
|
||||
@ApiModelProperty("是否推送数据到LabsCare的标识," +
|
||||
"[" +
|
||||
"EntrustLetter:true 代表推送委托书成功 | " +
|
||||
"ItemConfirmLetter:true 代表推送鉴定事项确认书成功 | " +
|
||||
"BiologyQualitativeRecord:true 代表推送生物定性检验记录成功" +
|
||||
"" +
|
||||
"]" +
|
||||
"如果这个字段为空则表示失败,如果两个推送都成功,以英文逗号分隔")
|
||||
private String pushFlag;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托与实验关系
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "b_entrustment_bundle", autoResultMap = true)
|
||||
@ApiModel(value="BEntrustmentBundle对象", description="委托与实验关系")
|
||||
public class EntrustmentBundle implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "entrustment_id")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value="选中的实验, 实验id的json数组")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<String> selectedExperiment;
|
||||
|
||||
@ApiModelProperty(value = "审核审批结果: null=未审, 0=审核审批未通过, 1=审核审批已通过")
|
||||
private Boolean approvalResult;
|
||||
|
||||
@ApiModelProperty(value = "提交给文书系统的日期")
|
||||
private Date submitDate;
|
||||
|
||||
@ApiModelProperty(value = "状态: 0=刚创建, 1=已提交给文书系统, 2=文书审核审批通过, 3=已通知委托系统")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "修改人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,538 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import digital.laboratory.platform.sys.entity.DrugLite;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检材信息
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_entrustment_identification_material")
|
||||
@ApiModel(value="EntrustmentIdentificationMaterial对象", description="检材信息")
|
||||
public class EntrustmentIdentificationMaterial extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 检材id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "检材id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 检材编号
|
||||
*/
|
||||
@ApiModelProperty(value = "检材编号")
|
||||
private String imNo;
|
||||
|
||||
/**
|
||||
* 物证id
|
||||
*/
|
||||
@ApiModelProperty(value = "物证id")
|
||||
private String evidenceId;
|
||||
|
||||
/**
|
||||
* 案件id
|
||||
*/
|
||||
@ApiModelProperty(value = "案件id")
|
||||
private String caseId;
|
||||
|
||||
/**
|
||||
* 委托id
|
||||
*/
|
||||
@ApiModelProperty(value = "委托id")
|
||||
private String entrustmentId;
|
||||
|
||||
/**
|
||||
* 检材名称
|
||||
*/
|
||||
@ApiModelProperty(value = "检材名称")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 检材类别:继承所取物证的类别或从物证类别选择
|
||||
*/
|
||||
@ApiModelProperty(value = "检材类别:继承所取物证的类别或从物证类别选择")
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 检材类别名称:继承所取物证的类别或从物证类别选择
|
||||
* 2023/5/31 在咸阳分中心添加
|
||||
*/
|
||||
@ApiModelProperty(value = "检材类别名称:继承所取物证的类别或从物证类别选择")
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 检材颜色:继承所取物证颜色或手动填入
|
||||
*/
|
||||
@ApiModelProperty(value = "检材颜色:继承所取物证颜色或手动填入")
|
||||
private String color;
|
||||
|
||||
/**
|
||||
* 检材性状:继承所取物证性状或从物证性状类别选择
|
||||
*/
|
||||
@ApiModelProperty(value = "检材性状:继承所取物证性状或从物证性状类别选择")
|
||||
private String form;
|
||||
|
||||
/**
|
||||
* 检材性状:继承所取物证性状或从物证性状类别选择
|
||||
* * 2023/5/31 在咸阳分中心添加
|
||||
*/
|
||||
@ApiModelProperty(value = "检材性状名称:继承所取物证性状或从物证性状类别选择")
|
||||
private String formName;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许
|
||||
*/
|
||||
@ApiModelProperty(value = "检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许")
|
||||
private String fundName;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物数量, 例如 5 颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "检材情况之承载物数量, 例如 5 颗, 3包")
|
||||
private Integer fundQuantity;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物单位, 例如 5 颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "检材情况之承载物单位, 例如 5 颗, 3包")
|
||||
private String fundUnit;
|
||||
|
||||
/**
|
||||
* 检材数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "检材数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 计量单位, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "计量单位, 例如 3.8 克 或 4.5毫升")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 附加属性, 如:体积3毫升,密码123,型号abc
|
||||
*/
|
||||
@ApiModelProperty(value = "附加属性, 如:体积3毫升,密码123,型号abc")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<IMAdditionalProperty> additionalProperties;
|
||||
|
||||
/**
|
||||
* 提取方法
|
||||
*/
|
||||
@ApiModelProperty(value = "提取方法")
|
||||
private String drawWay;
|
||||
|
||||
/**
|
||||
* 所有者姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者姓名")
|
||||
private String personName;
|
||||
|
||||
/**
|
||||
* 所有者证件类型
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者证件类型")
|
||||
private String personCert;
|
||||
|
||||
/**
|
||||
* 所有者证件号
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者证件号")
|
||||
private String personId;
|
||||
|
||||
/**
|
||||
* 所有者性别,公安系统编码: 1=男 2=女 0=未知
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者性别,公安系统编码: 1=男 2=女 0=未知")
|
||||
private Integer personGender;
|
||||
|
||||
/**
|
||||
* 所有者国籍
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者国籍")
|
||||
private String personNationality;
|
||||
|
||||
/**
|
||||
* 所有者民族编码,公安系统编码
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者民族编码,公安系统编码")
|
||||
private Integer personNation;
|
||||
|
||||
/**
|
||||
* 所有者地址
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者地址")
|
||||
private String personAddress;
|
||||
|
||||
/**
|
||||
* 所有者年龄
|
||||
*/
|
||||
@ApiModelProperty(value = "所有者年龄")
|
||||
private Integer personAge;
|
||||
|
||||
/**
|
||||
* 采集人1姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人1姓名")
|
||||
private String take1Name;
|
||||
|
||||
/**
|
||||
* 采集人1职务
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人1职务")
|
||||
private String take1Position;
|
||||
|
||||
/**
|
||||
* 采集人1证件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人1证件名称")
|
||||
private String take1Cert;
|
||||
|
||||
/**
|
||||
* 采集人1证件号
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人1证件号")
|
||||
private String take1Id;
|
||||
|
||||
/**
|
||||
* 采集人1联系电话
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人1联系电话")
|
||||
private String take1Phone;
|
||||
|
||||
/**
|
||||
* 采集人2姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人2姓名")
|
||||
private String take2Name;
|
||||
|
||||
/**
|
||||
* 采集人2职务
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人2职务")
|
||||
private String take2Position;
|
||||
|
||||
/**
|
||||
* 采集人2证件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人2证件名称")
|
||||
private String take2Cert;
|
||||
|
||||
/**
|
||||
* 采集人2证件号
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人2证件号")
|
||||
private String take2Id;
|
||||
|
||||
/**
|
||||
* 采集人2联系电话
|
||||
*/
|
||||
@ApiModelProperty(value = "采集人2联系电话")
|
||||
private String take2Phone;
|
||||
|
||||
/**
|
||||
* 采集日期
|
||||
*/
|
||||
@ApiModelProperty(value = "采集日期")
|
||||
private LocalDateTime takeTime;
|
||||
|
||||
/**
|
||||
* 见证人姓名
|
||||
*/
|
||||
@ApiModelProperty(value = "见证人姓名")
|
||||
private String witnessName;
|
||||
|
||||
/**
|
||||
* 见证人证件名称
|
||||
*/
|
||||
@ApiModelProperty(value = "见证人证件名称")
|
||||
private String witnessCert;
|
||||
|
||||
/**
|
||||
* 见证人证件号
|
||||
*/
|
||||
@ApiModelProperty(value = "见证人证件号")
|
||||
private String witnessId;
|
||||
|
||||
/**
|
||||
* 包装情况:纸袋,纸盒,纸箱,自定义
|
||||
*/
|
||||
@ApiModelProperty(value = "包装情况:纸袋,纸盒,纸箱,自定义")
|
||||
private String pack;
|
||||
|
||||
/**
|
||||
* 包装情况名称:纸袋,纸盒,纸箱,自定义
|
||||
* 2023/5/31 在咸阳分中心添加
|
||||
*/
|
||||
@ApiModelProperty(value = "包装情况名称:纸袋,纸盒,纸箱,自定义")
|
||||
private String packName;
|
||||
|
||||
/**
|
||||
* 存储方法:常规,冷藏,特殊
|
||||
*/
|
||||
@ApiModelProperty(value = "存储方法:常规,冷藏,特殊")
|
||||
private String storageMethod;
|
||||
|
||||
/**
|
||||
* 候选毒品列表(drug 对象的 json array)
|
||||
*/
|
||||
@ApiModelProperty(value = "候选毒品列表(drug 对象的 json array)")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<DrugLite> candidateDrugs;
|
||||
|
||||
/**
|
||||
* 检材概要
|
||||
*/
|
||||
@ApiModelProperty(value = "检材概要")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
@ApiModelProperty(value = "审核时间")
|
||||
private LocalDateTime checkTime;
|
||||
|
||||
/**
|
||||
* 审核是否通过: 1=审核通过
|
||||
*/
|
||||
@ApiModelProperty(value = "审核是否通过: 1=审核通过")
|
||||
private Integer checkPassed;
|
||||
|
||||
/**
|
||||
* 审批时间
|
||||
*/
|
||||
@ApiModelProperty(value = "审批时间")
|
||||
private LocalDateTime approveTime;
|
||||
|
||||
/**
|
||||
* 审批是否通过: 1=审批通过
|
||||
*/
|
||||
@ApiModelProperty(value = "审批是否通过: 1=审批通过")
|
||||
private Integer approvePassed;
|
||||
|
||||
/**
|
||||
* 受理时间
|
||||
*/
|
||||
@ApiModelProperty(value = "受理时间")
|
||||
private LocalDateTime acceptTime;
|
||||
|
||||
/**
|
||||
* 是否受理: 0=未受理, 1=已受理, -1=不予受理
|
||||
*/
|
||||
@ApiModelProperty(value = "是否受理: 0=未受理, 1=已受理, -1=不予受理")
|
||||
private Integer acceptPassed;
|
||||
|
||||
/**
|
||||
* 提供的样本1是否存在, 应该总是存在
|
||||
*/
|
||||
// @ApiModelProperty(value="提供的样本1是否存在, 应该总是存在")
|
||||
// private Boolean providedSample1Present;
|
||||
|
||||
/**
|
||||
* 提供的样本1编号
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本1编号")
|
||||
private String providedSample1No;
|
||||
|
||||
/**
|
||||
* 提供的样本1承载物数量(重量), 例如 5颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本1承载物数量(重量), 例如 5颗, 3包")
|
||||
private Integer providedSample1FundQuantity;
|
||||
|
||||
/**
|
||||
* 提供的样本1数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本1数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal providedSample1Quantity;
|
||||
|
||||
/**
|
||||
* 提供的样本2是否存在
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本2是否存在")
|
||||
private Boolean providedSample2Present;
|
||||
|
||||
/**
|
||||
* 提供的样本2编号
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本2编号")
|
||||
private String providedSample2No;
|
||||
|
||||
/**
|
||||
* 提供的样本2承载物数量(重量), 例如 5颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本2承载物数量(重量), 例如 5颗, 3包")
|
||||
private Integer providedSample2FundQuantity;
|
||||
|
||||
/**
|
||||
* 提供的样本2数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "提供的样本2数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal providedSample2Quantity;
|
||||
|
||||
/**
|
||||
* 是否已分样: 0=未分样, 1=已分样
|
||||
*/
|
||||
@ApiModelProperty(value = "是否已分样: 0=未分样, 1=已分样")
|
||||
private Boolean splitedSample;
|
||||
|
||||
/**
|
||||
* 样本1是否存在, 应该总是存在
|
||||
*/
|
||||
// @ApiModelProperty(value="样本1是否存在, 应该总是存在")
|
||||
// private Boolean sample1Present;
|
||||
|
||||
/**
|
||||
* 样本1编号
|
||||
*/
|
||||
@ApiModelProperty(value = "样本1编号")
|
||||
private String sample1No;
|
||||
|
||||
/**
|
||||
* 样本1承载物数量(重量), 例如 5颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "样本1承载物数量(重量), 例如 5颗, 3包")
|
||||
private Integer sample1FundQuantity;
|
||||
|
||||
/**
|
||||
* 样本1数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "样本1数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal sample1Quantity;
|
||||
|
||||
/**
|
||||
* 样本1盒子 id
|
||||
*/
|
||||
@ApiModelProperty(value = "样本1盒子 id")
|
||||
private String sample1BoxId;
|
||||
|
||||
/**
|
||||
* 样本2是否存在
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2是否存在")
|
||||
private Boolean sample2Present;
|
||||
|
||||
/**
|
||||
* 样本2编号
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2编号")
|
||||
private String sample2No;
|
||||
|
||||
/**
|
||||
* 样本2承载物数量(重量), 例如 5颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2承载物数量(重量), 例如 5颗, 3包")
|
||||
private Integer sample2FundQuantity;
|
||||
|
||||
/**
|
||||
* 样本2数量, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2数量, 例如 3.8 克 或 4.5毫升")
|
||||
private BigDecimal sample2Quantity;
|
||||
|
||||
/**
|
||||
* 样本2盒子 id
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2盒子 id")
|
||||
private String sample2BoxId;
|
||||
//add by xy 2023-04-15,记录复秤的结果而增加的字段信息
|
||||
/**
|
||||
* 样本1复秤后的重量
|
||||
*/
|
||||
@ApiModelProperty(value = "样本1的复秤重量")
|
||||
private BigDecimal sample1RepeatWeigh;
|
||||
/**
|
||||
* 样本2复秤后的重量
|
||||
*/
|
||||
@ApiModelProperty(value = "样本2的复秤重量")
|
||||
private BigDecimal sample2RepeatWeigh;
|
||||
|
||||
/**
|
||||
* 分析项目 定性分析,定量分析,定性定量分析,关联性判断 其他
|
||||
* 1.定性分析 2.定量分析 3.定性定量分析 4.关联性判断 5。其他
|
||||
*/
|
||||
private Integer analysisOption;
|
||||
|
||||
/**
|
||||
* 数据来源,用于区别数据来自自身系统还是外部系统
|
||||
*/
|
||||
@ApiModelProperty(value = "数据来源")
|
||||
private Integer dataSources;
|
||||
/**
|
||||
* 检材受理编号,一般是绑定检材所属的委托的受理编号
|
||||
*/
|
||||
@ApiModelProperty(value = "检材受理编号")
|
||||
private String acceptNo;
|
||||
/**
|
||||
* 打印委托书的时候需要对检材的序号,但是这个时候检材又没有受理,所以添加一个顺序号
|
||||
*/
|
||||
@ApiModelProperty(value = "委托检材顺序号,由系统根据录入顺序生成")
|
||||
private Integer orderNo;
|
||||
|
||||
public String getOrderNo1() {
|
||||
return this.orderNo + "号检材";
|
||||
}
|
||||
|
||||
public String getSampleCondition() {
|
||||
if (this.getSample2FundQuantity() != null && this.getSample2FundQuantity() > 0) {
|
||||
return this.getSample2FundQuantity() + this.getFundUnit();
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取检材的描述性编号(简短称呼),如果还没有受理之前,是没有受理编号的,所以未受理之前,使用不了这个函数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getShortNameDes() {
|
||||
String acceptNo = this.getAcceptNo();
|
||||
if (StringUtils.isNotBlank(acceptNo)) {
|
||||
int seqNo = Integer.parseInt(acceptNo.substring(acceptNo.lastIndexOf("-") + 1));
|
||||
return seqNo + "号";
|
||||
} else {
|
||||
return "0号";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取检材的序号
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public int getIndex() {
|
||||
String acceptNo = this.getAcceptNo();
|
||||
if (StringUtils.isNotBlank(acceptNo)) {
|
||||
int seqNo = Integer.parseInt(acceptNo.substring(acceptNo.lastIndexOf("-") + 1));
|
||||
return seqNo;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验方法
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("examination_methods")
|
||||
@ApiModel(value="ExaminationMethods对象", description="检验方法")
|
||||
public class ExaminationMethods implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "方法实体类id")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "方法名")
|
||||
private String methodName;
|
||||
|
||||
@ApiModelProperty(value = "方法依据")
|
||||
private Integer methodBasis;
|
||||
|
||||
@ApiModelProperty(value = "方法英文名")
|
||||
@TableField("method_English_name")
|
||||
private String methodEnglishName;
|
||||
|
||||
@ApiModelProperty(value = "标准号")
|
||||
private String standardNumber;
|
||||
|
||||
@ApiModelProperty(value = "发布单位")
|
||||
private String publishingUnit;
|
||||
|
||||
@ApiModelProperty(value = "发布时间")
|
||||
private Date publishingTime;
|
||||
|
||||
@ApiModelProperty(value = "其他依据")
|
||||
private String others;
|
||||
|
||||
@ApiModelProperty(value = "实施时间")
|
||||
private Date implementTime;
|
||||
|
||||
@ApiModelProperty(value = "适用范围")
|
||||
private String suitRange;
|
||||
|
||||
@ApiModelProperty(value = "规范性引用文件")
|
||||
private String normativeReferences;
|
||||
|
||||
@ApiModelProperty(value = "术语和定义")
|
||||
private String termAndDefinition;
|
||||
|
||||
@ApiModelProperty(value = "原理")
|
||||
private String principle;
|
||||
|
||||
@ApiModelProperty(value = "方法当前状态")
|
||||
private Integer methodStatus;
|
||||
|
||||
@ApiModelProperty(value = "方法类型(标准/非标准)")
|
||||
private Integer methodType;
|
||||
|
||||
@ApiModelProperty(value = "试剂")
|
||||
private String reagent;
|
||||
|
||||
@ApiModelProperty(value = "仪器和设备")
|
||||
private String instrumentsAndEquipment;
|
||||
|
||||
@ApiModelProperty(value = "定量结果评价")
|
||||
private String quantitativeResultEvaluation;
|
||||
|
||||
@ApiModelProperty(value = "操作方法")
|
||||
private String operationMethod;
|
||||
|
||||
@ApiModelProperty(value = "指导书id")
|
||||
private String guidelinesId;
|
||||
|
||||
@ApiModelProperty(value = "结果表述")
|
||||
private String expressionOfResults;
|
||||
|
||||
@ApiModelProperty(value = "评审时间")
|
||||
private Date reviewTime;
|
||||
|
||||
@ApiModelProperty(value = "评审人")
|
||||
private String reviewer;
|
||||
|
||||
@ApiModelProperty(value = "评审结果")
|
||||
private Integer reviewResults;
|
||||
|
||||
@ApiModelProperty(value = "评审意见")
|
||||
private String reviewOpinion;
|
||||
|
||||
@ApiModelProperty(value = "创建时间--录入时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人--录入人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "附件url")
|
||||
private String annexUrl;
|
||||
|
||||
@ApiModelProperty(value = "附件名称")
|
||||
private String annexName;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 实验(检验方法的实例)
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_experiment")
|
||||
@ApiModel(value="BExperiment对象", description="实验(检验方法的实例)")
|
||||
public class Experiment implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "检验方法id")
|
||||
private String methodId;
|
||||
|
||||
@ApiModelProperty(value = "模板id")
|
||||
private String templateId;
|
||||
|
||||
@ApiModelProperty(value = "业务类型,字典中的dlp.identification.business项")
|
||||
private Integer business;
|
||||
|
||||
@ApiModelProperty(value = "实验名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "检验人员id")
|
||||
private String opUserId;
|
||||
|
||||
@ApiModelProperty(value = "状态: 0=准备中; 1=实验中; 2=实验结束; -1=实验中止")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "实验完成日期")
|
||||
private Date finishDate;
|
||||
|
||||
@ApiModelProperty(value = "备注说明")
|
||||
private String comments;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "修改人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发检测任务
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_hair_job")
|
||||
@ApiModel(value="HairJob对象", description="毛发检测任务")
|
||||
public class HairJob implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "根任务id")
|
||||
private String rootId;
|
||||
|
||||
@ApiModelProperty(value = "任务名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "任务内容描述说明")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty(value = "任务编号")
|
||||
private String jobNo;
|
||||
|
||||
@ApiModelProperty(value = "任务发布单位")
|
||||
private String jobIssueOrg;
|
||||
|
||||
@ApiModelProperty(value = "任务执行单位")
|
||||
private String jobExecOrg;
|
||||
|
||||
@ApiModelProperty(value = "任务来源")
|
||||
private String jobFrom;
|
||||
|
||||
@ApiModelProperty(value = "任务截止日期")
|
||||
private Date expirationDate;
|
||||
|
||||
@ApiModelProperty(value = "任务开始日期")
|
||||
private Date startDate;
|
||||
|
||||
@ApiModelProperty(value = "任务备注")
|
||||
private String comments;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "任务类型: 毛发检测/污水检测...")
|
||||
private String jobType;
|
||||
|
||||
@ApiModelProperty(value = "xxx任务检测类型: 毛发检测:社区戒毒人员检测、公职人员、招考人员。/污水检测:污水处理厂、自然水体、其它水体。...")
|
||||
private String xxxjobIdentifyType;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发任务的检材信息
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_hair_job_identification_material")
|
||||
@ApiModel(value="HairJobIdentificationMaterial对象", description="毛发任务的检材信息")
|
||||
public class HairJobIdentificationMaterial implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "检材id")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "任务id")
|
||||
private String jobId;
|
||||
|
||||
@ApiModelProperty(value = "根任务id")
|
||||
private String jobRootId;
|
||||
|
||||
@ApiModelProperty(value = "检材编号")
|
||||
private String imNo;
|
||||
|
||||
@ApiModelProperty(value = "A样编号")
|
||||
private String sample1No;
|
||||
|
||||
@ApiModelProperty(value = "B样编号")
|
||||
private String sample2No;
|
||||
|
||||
@ApiModelProperty(value = "A样盒子")
|
||||
private String sample1BoxId;
|
||||
|
||||
@ApiModelProperty(value = "B样盒子")
|
||||
private String sample2BoxId;
|
||||
|
||||
@ApiModelProperty(value = "所有者姓名")
|
||||
private String personName;
|
||||
|
||||
@ApiModelProperty(value = "所有者身份证号")
|
||||
private String personCard;
|
||||
|
||||
@ApiModelProperty(value = "人员类别")
|
||||
private String personType;
|
||||
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
@ApiModelProperty(value = "社区戒毒人员在社区执行时间是否超过 6 个月")
|
||||
private String executionTime;
|
||||
|
||||
@ApiModelProperty(value = "曾经吸毒种类")
|
||||
private String drugType;
|
||||
|
||||
@ApiModelProperty(value = "采样人")
|
||||
private String collector;
|
||||
|
||||
@ApiModelProperty(value = "采样单位")
|
||||
private String collectorGroup;
|
||||
|
||||
@ApiModelProperty(value = "采样时间")
|
||||
private Date collectTime;
|
||||
|
||||
@ApiModelProperty(value = "采样地点")
|
||||
private String collectPlace;
|
||||
|
||||
@ApiModelProperty(value = "监督人员")
|
||||
private String supervisor;
|
||||
|
||||
@ApiModelProperty(value = "受理时间")
|
||||
private Date acceptTime;
|
||||
|
||||
@ApiModelProperty(value = "受理是否通过: 0=未受理, 1=受理通过, -1=受理被拒绝")
|
||||
private Integer acceptPassed;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String comments;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "检材名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "检材数量")
|
||||
private BigDecimal quantity;
|
||||
|
||||
@ApiModelProperty(value = "A样数量")
|
||||
private BigDecimal sample1Quantity;
|
||||
|
||||
@ApiModelProperty(value = "B样数量")
|
||||
private BigDecimal sample2Quantity;
|
||||
|
||||
@ApiModelProperty(value = "计量单位")
|
||||
private String unit;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 检材的附加属性
|
||||
*/
|
||||
@Data
|
||||
public class IMAdditionalProperty {
|
||||
String propertyName; // 中文名称: 体积、重量、性状、颜色、品牌、型号、密码等等
|
||||
String quantity; // 重量、体积等等的量值, 或型号、密码的值
|
||||
String unit; // 仅对有计量单位的属性, 如: 克、毫克、升等等, 品牌、型号、密码等属性没有单位
|
||||
|
||||
public IMAdditionalProperty() {
|
||||
|
||||
}
|
||||
public IMAdditionalProperty(String propertyName, String quantity, String unit) {
|
||||
this.propertyName = propertyName;
|
||||
this.quantity = quantity;
|
||||
this.unit = unit;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.EnumValue;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import lombok.Getter;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
/**
|
||||
* 样本的状态
|
||||
* 这个字段主要设想为页面显示时可以看见样本的动向
|
||||
*/
|
||||
@Getter
|
||||
@RequiredArgsConstructor
|
||||
public enum IMTSampleStatus {
|
||||
|
||||
OUTBOUND(1,"未入库"),//出库
|
||||
|
||||
INBOUND(2,"已入库"),
|
||||
|
||||
TRANSFER(4,"流转中"),//流转中
|
||||
|
||||
UNDER_INSPECTION(6,"检验中"),
|
||||
|
||||
TO_BE_DESTROYED(7,"审核通过待销毁"),
|
||||
|
||||
DESTROYED(8,"已销毁"),
|
||||
|
||||
COLLECTING(9,"领用出库中"),
|
||||
|
||||
|
||||
RETURN_OUT(10,"已经退还出库"),
|
||||
|
||||
RELEASE(11,"已发布销毁公示,待出库销毁"),
|
||||
APPLY(12,"申请中"),
|
||||
|
||||
|
||||
IDENTIFYING(13,"检验中"),
|
||||
IDENTIFIED(14,"检验结束");
|
||||
|
||||
|
||||
|
||||
@EnumValue//标记数据库存的值是status
|
||||
private final int status;
|
||||
@JsonValue//标记返回前端字段
|
||||
private final String description;
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定表,一个鉴定可能会有多个委托
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_identification")
|
||||
@ApiModel(value="Identification对象", description="鉴定表,一个鉴定可能会有多个委托")
|
||||
public class Identification extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "鉴定号,受理号")
|
||||
private String identificationNo;
|
||||
|
||||
@ApiModelProperty(value = "状态: 0=鉴定中,-1=已终止, 1=已结束")
|
||||
private Integer status;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书消息表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_identify_book")
|
||||
@ApiModel(value="IdentifyBook对象", description="鉴定文书消息表")
|
||||
public class IdentifyBook extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书消息ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "父ID")
|
||||
private String identifyBookRelevanceId;
|
||||
|
||||
@ApiModelProperty(value = "文件桶")
|
||||
private String bucketName;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书路径")
|
||||
private String path;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书文件名(文件名命名贵州:鉴定文书 + 业务数据编号 + 版本号) ")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书版本号(示例:v1.0、v1.1)")
|
||||
private String version;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
@ApiModelProperty(value = "制作或修改人")
|
||||
@TableField(exist = false)
|
||||
private String operateUserName;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书审批表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_identify_book_approve")
|
||||
@ApiModel(value="IdentifyBookApprove对象", description="鉴定文书审批表 ")
|
||||
public class IdentifyBookApprove extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书审核审批表ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "业务ID")
|
||||
private String relevanceBusinessId;
|
||||
|
||||
@ApiModelProperty(value = "年")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty(value = "序号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty(value = "附件类型集合(1:检验记录(含原始记录,检验图表)、2:鉴定事项确认书、3:鉴定委托书或鉴定聘请书、4:检材照片、5:送检人证件复印件、6:原鉴定文书)注:选择多个示例(1,2,...)其中”,“是英文")
|
||||
private String annexType;
|
||||
|
||||
@ApiModelProperty(value = "文书类型:(1:检验报告,2:其它)注:选择多个示例(1,2,...)其中”,“是英文")
|
||||
private String bookType;
|
||||
|
||||
@ApiModelProperty(value = "检验报告数量(单位: 份)")
|
||||
private Integer inspectionReportNumber;
|
||||
|
||||
@ApiModelProperty(value = "其它数量(单位:份)")
|
||||
private Integer otherNumber;
|
||||
|
||||
@ApiModelProperty(value = "是否合格(1:检验方法、2:检验过程、3:检验图谱、4:检验结果)注:选择多个示例(1,2,...)其中”,“是英文")
|
||||
private String isQualified;
|
||||
|
||||
@ApiModelProperty(value = "审核人ID")
|
||||
private String processUserBy;
|
||||
|
||||
@ApiModelProperty(value = "审核人")
|
||||
private String processUserName;
|
||||
|
||||
@ApiModelProperty(value = "审核时间")
|
||||
private Date processTime;
|
||||
|
||||
@ApiModelProperty(value = "审核意见")
|
||||
private String processMessage;
|
||||
|
||||
@ApiModelProperty(value = "审批人ID")
|
||||
private String approveUserBy;
|
||||
|
||||
@ApiModelProperty(value = "审批人")
|
||||
private String approveUserName;
|
||||
|
||||
@ApiModelProperty(value = "审批时间")
|
||||
private Date approveTime;
|
||||
|
||||
@ApiModelProperty(value = "审批意见")
|
||||
private String approveMessage;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书审批记录文件路径")
|
||||
private String path;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书文件名(文件名命名规则:鉴定文书 + 版本号 + 文件类型) ")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty(value = "版本号")
|
||||
private String version;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书关联中间表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_identify_book_relevance")
|
||||
@ApiModel(value="IdentifyBookRelevance对象", description="鉴定文书关联中间表")
|
||||
public class IdentifyBookRelevance implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "关联业务ID")
|
||||
private String relevanceBusinessId;
|
||||
|
||||
@ApiModelProperty(value = "年")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty(value = "流水号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书业务状态(-1:待制作,0:已制作/重新制作,1:鉴定文书-提交审核,2:鉴定文书-审核通过),-2:鉴定文书-审核未通过,3:鉴定文书-审核退回修改,4:鉴定文书-审批签发成功,-4:鉴定文书-审批拒绝签发,5:鉴定文书-审批签发退回修改,6:鉴定文书-已领取")
|
||||
private Integer bookStatus;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,113 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.sql.Blob;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书修改补充申请表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_modify_supplement_apply")
|
||||
@ApiModel(value="ModifySupplementApply对象", description="鉴定文书修改补充申请表")
|
||||
public class ModifySupplementApply implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改补充申请ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "年")
|
||||
private String year;
|
||||
|
||||
@ApiModelProperty(value = "流水号")
|
||||
private String serialNumber;
|
||||
|
||||
@ApiModelProperty(value = "委托ID", required = true)
|
||||
private String entrustmentId;
|
||||
|
||||
@ApiModelProperty(value = "委托人ID")
|
||||
private String entrustBy;
|
||||
|
||||
@ApiModelProperty(value = "申请时间")
|
||||
private Date applyTime;
|
||||
|
||||
@ApiModelProperty(value = "申请人id")
|
||||
private String applyBy;
|
||||
|
||||
@ApiModelProperty(value = "修改人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "修改原因")
|
||||
private String updateReason;
|
||||
|
||||
@ApiModelProperty(value = "修改内容")
|
||||
private String updateContent;
|
||||
|
||||
@ApiModelProperty(value = "委托人签名")
|
||||
private Blob entrustBySign;
|
||||
|
||||
@ApiModelProperty(value = "委托人签名日期")
|
||||
private Date entrustBySignDate;
|
||||
|
||||
@ApiModelProperty(value = "修改方式(1:修改存档文件、2:收回原件,重新出具鉴定文书)")
|
||||
private Integer updateWay;
|
||||
|
||||
@ApiModelProperty(value = "修改人签字")
|
||||
private Blob updateBySign;
|
||||
|
||||
@ApiModelProperty(value = "修改人签字日期")
|
||||
private Date updateBySignDate;
|
||||
|
||||
@ApiModelProperty(value = "业务状态(1:鉴定文书-提交修改补充申请,2:鉴定文书-修改补充-审核通过,-2:鉴定文书-修改补充-审核未通过,3:鉴定文书-修改补充-审批通过,-3:鉴定文书-修改补充-审批不通过)")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty(value = "授权人签字")
|
||||
private Blob empowerBySign;
|
||||
|
||||
@ApiModelProperty(value = "授权人签字日期")
|
||||
private Date empowerBySignDate;
|
||||
|
||||
@ApiModelProperty(value = "授权签字人意见")
|
||||
private String empowerBySignOpinion;
|
||||
|
||||
@ApiModelProperty(value = "技术人员签字")
|
||||
private Blob technologyBySign;
|
||||
|
||||
@ApiModelProperty(value = "技术人员签字日期")
|
||||
private Date technologyBySignDate;
|
||||
|
||||
@ApiModelProperty(value = "技术人员签字意见")
|
||||
private String technologyBySignOpinion;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改/申请文件路径")
|
||||
private String path;
|
||||
|
||||
@ApiModelProperty(value = "鉴定文书修改/申请文件名(文件名命名规则:鉴定文书 + 文件类型) ")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remarks;
|
||||
|
||||
@ApiModelProperty(value = "委托人姓名")
|
||||
private String entrustUserName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 领取鉴定文书信息表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_receive_identify_book")
|
||||
@ApiModel(value="ReceiveIdentifyBook对象", description="领取鉴定文书信息表")
|
||||
public class ReceiveIdentifyBook implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "领取ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "关联业务ID")
|
||||
private String relevanceBusinessId;
|
||||
|
||||
@ApiModelProperty(value = "领取方式")
|
||||
private String receiveWay;
|
||||
|
||||
@ApiModelProperty(value="邮寄地址")
|
||||
private String postAddress;
|
||||
|
||||
@ApiModelProperty(value = "领取人ID")
|
||||
private String recipientsUserId;
|
||||
|
||||
@ApiModelProperty(value = "领取人姓名")
|
||||
private String recipientsUserName;
|
||||
|
||||
@ApiModelProperty(value = "领取人时间")
|
||||
private Date recipientsTime;
|
||||
|
||||
@ApiModelProperty(value = "经办人ID")
|
||||
private String operatorUserId;
|
||||
|
||||
@ApiModelProperty(value = "经办人姓名")
|
||||
private String operatorUserName;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定性分析检验结果
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_result_entrustment_qualitative")
|
||||
@ApiModel(value="BResultEntrustmentQualitative对象", description="委托定性分析检验结果")
|
||||
public class ResultEntrustmentQualitative implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "实验id")
|
||||
private String experimentId;
|
||||
|
||||
private String sampleId;
|
||||
|
||||
@ApiModelProperty(value = "样本编号,字符串,必填,长度 200")
|
||||
private String sampleNo;
|
||||
|
||||
@ApiModelProperty(value = "检材序号, 通常是受理的序号")
|
||||
private Integer materialIndex;
|
||||
|
||||
@ApiModelProperty(value = "样本的简要名称")
|
||||
private String shortName;
|
||||
|
||||
@ApiModelProperty(value = "化合物,必填,长度 200")
|
||||
private String compound;
|
||||
|
||||
@ApiModelProperty(value = "negative:未检出,positive:检出")
|
||||
private Boolean result;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定量检验结果
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_result_entrustment_ration")
|
||||
@ApiModel(value="BResultEntrustmentRation对象", description="委托定量检验结果")
|
||||
public class ResultEntrustmentRation implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "实验id")
|
||||
private String experimentId;
|
||||
|
||||
private String sampleId;
|
||||
|
||||
@ApiModelProperty(value = "样本编号,字符串,必填,长度 200")
|
||||
private String sampleNo;
|
||||
|
||||
@ApiModelProperty(value = "检材序号, 通常是受理的序号")
|
||||
private Integer materialIndex;
|
||||
|
||||
@ApiModelProperty(value = "化合物,必填,长度 200")
|
||||
private String compound;
|
||||
|
||||
@ApiModelProperty(value = "定量结果,必填,长度12, 精度8")
|
||||
private Double result;
|
||||
|
||||
@ApiModelProperty(value = "备注说明")
|
||||
private String comments;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import digital.laboratory.platform.sys.entity.DrugLite;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验用的样本
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName(value = "b_sample", autoResultMap = true)
|
||||
@ApiModel(value="Sample对象", description="检验用的样本")
|
||||
public class Sample extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 样本id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
@ApiModelProperty(value = "样本id")
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 检材id, 对应委托的检材id或毛发任务的检材id或污水任务的检材id
|
||||
*/
|
||||
@ApiModelProperty(value = "检材id, 对应委托的检材id或毛发任务的检材id或污水任务的检材id")
|
||||
private String identificationMaterialId;
|
||||
|
||||
/**
|
||||
* 样本编号
|
||||
*/
|
||||
@ApiModelProperty(value = "样本编号")
|
||||
private String sampleNo;
|
||||
|
||||
/**
|
||||
* 样本来源: entrustment/hairJob/sewageJob/....
|
||||
*/
|
||||
@ApiModelProperty(value = "样本来源: entrustment/hairJob/sewageJob/....")
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 委托id
|
||||
*/
|
||||
@ApiModelProperty(value="委托id")
|
||||
private String entrustmentId;
|
||||
|
||||
/**
|
||||
* 污水任务id
|
||||
*/
|
||||
@ApiModelProperty(value="污水任务id")
|
||||
private String sewageJobId;
|
||||
|
||||
/**
|
||||
* 毛发任务id
|
||||
*/
|
||||
@ApiModelProperty(value="毛发任务id")
|
||||
private String hairJobId;
|
||||
|
||||
/**
|
||||
* 定性分析
|
||||
*/
|
||||
@ApiModelProperty(value="定性分析")
|
||||
private Boolean qualitativeAnalysis;
|
||||
|
||||
/**
|
||||
* 定量分析
|
||||
*/
|
||||
@ApiModelProperty(value="定量分析")
|
||||
private Boolean quantitativeAnalysis;
|
||||
|
||||
/**
|
||||
* 候选毒品列表(drug 对象的 json array)
|
||||
*/
|
||||
@ApiModelProperty(value="候选毒品列表(drug 对象的 json array)")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<DrugLite> candidateDrugs;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许
|
||||
*/
|
||||
@ApiModelProperty(value="检材情况之承载物名称, 例如 棉签 2 棵, 粉末 少许")
|
||||
private String fundName;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物数量, 如 3 颗 或 1包
|
||||
*/
|
||||
@ApiModelProperty(value="检材情况之承载物数量, 如 3 颗 或 1包")
|
||||
private Integer fundQuantity;
|
||||
|
||||
/**
|
||||
* 检材情况之承载物单位, 例如 5 颗, 3包
|
||||
*/
|
||||
@ApiModelProperty(value="检材情况之承载物单位, 例如 5 颗, 3包")
|
||||
private String fundUnit;
|
||||
|
||||
/**
|
||||
* 样品数量, 例如 2.3 克 或 3.1 毫升
|
||||
*/
|
||||
@ApiModelProperty(value="样品数量, 例如 2.3 克 或 3.1 毫升")
|
||||
private BigDecimal quantity;
|
||||
|
||||
/**
|
||||
* 计量单位, 例如 3.8 克 或 4.5毫升
|
||||
*/
|
||||
@ApiModelProperty(value="计量单位, 例如 3.8 克 或 4.5毫升")
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 附加属性, 如:体积3毫升,密码123,型号abc
|
||||
*/
|
||||
@ApiModelProperty(value="附加属性, 如:体积3毫升,密码123,型号abc")
|
||||
@TableField(typeHandler = FastjsonTypeHandler.class)
|
||||
private List<IMAdditionalProperty> additionalProperties;
|
||||
|
||||
/**
|
||||
* 提取方法
|
||||
*/
|
||||
@ApiModelProperty(value="提取方法")
|
||||
private String drawWay;
|
||||
|
||||
/**
|
||||
* 盒子编号
|
||||
*/
|
||||
@ApiModelProperty(value="盒子编号")
|
||||
private String boxId;
|
||||
|
||||
/**
|
||||
* A样还是B样
|
||||
*/
|
||||
@ApiModelProperty(value="A样还是B样")
|
||||
private String sampleType;
|
||||
|
||||
/**
|
||||
* 存储方法:常规,冷藏,特殊
|
||||
*/
|
||||
@ApiModelProperty(value="存储方法:常规,冷藏,特殊")
|
||||
private String storageMethod;
|
||||
|
||||
/**
|
||||
* 受理时间, 相当于检验开始时间, 用于比对花了多少时间在检验上
|
||||
*/
|
||||
@ApiModelProperty(value="受理时间, 相当于检验开始时间, 用于比对花了多少时间在检验上")
|
||||
private LocalDateTime acceptTime;
|
||||
|
||||
/**
|
||||
* 状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成
|
||||
*/
|
||||
// @ApiModelProperty(value="状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成")
|
||||
// private Integer status;
|
||||
@ApiModelProperty(value = "状态: 0=已受理,等分配, 1=已分配到检验人员, 2=检验完成")
|
||||
private IMTSampleStatus status;
|
||||
|
||||
/**
|
||||
* 当前持有者
|
||||
*/
|
||||
@ApiModelProperty(value="当前持有者")
|
||||
private String holder;
|
||||
|
||||
/**
|
||||
* 送检单位id
|
||||
*/
|
||||
@ApiModelProperty(value="送检单位id")
|
||||
private String orgId;
|
||||
|
||||
/**
|
||||
* 样本名称
|
||||
*/
|
||||
@ApiModelProperty(value="样本名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "检材受理编号")
|
||||
private String acceptNo;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.util.Date;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 采集员
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_taker")
|
||||
@ApiModel(value="Taker对象", description="采集员")
|
||||
public class Taker implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "采集员拥有者userId")
|
||||
private String ownerUserId;
|
||||
|
||||
@ApiModelProperty(value = "采集员姓名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "采集员职务")
|
||||
private String position;
|
||||
|
||||
@ApiModelProperty(value = "采集员证件名称")
|
||||
private String cert;
|
||||
|
||||
@ApiModelProperty(value = "采集员证件编号")
|
||||
private String idnum;
|
||||
|
||||
@ApiModelProperty(value = "采集员电话")
|
||||
private String phone;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "修改时间")
|
||||
private Date updateTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.io.Serializable;
|
||||
|
||||
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 任务信息表
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("b_task_notification")
|
||||
@ApiModel(value="TaskNotification对象", description="任务信息表")
|
||||
public class TaskNotification extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "消息ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "消息标题")
|
||||
private String title;
|
||||
|
||||
@ApiModelProperty(value = "任务类型(1:鉴定文书-审核,2:鉴定文书-审核退回修改,3:鉴定文书-审批,4:鉴定文书-审批退回修改,5:鉴定文书-签发/领取,6:鉴定文书修改/补充-审核,7:鉴定文书修改/补充-审批)")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "业务ID")
|
||||
private String businessId;
|
||||
|
||||
@ApiModelProperty(value = "提交人ID")
|
||||
private String submitterUserId;
|
||||
|
||||
@ApiModelProperty(value = "提交人姓名")
|
||||
private String submitterUserName;
|
||||
|
||||
@ApiModelProperty(value = "提交日期")
|
||||
private Date submitterTime;
|
||||
|
||||
@ApiModelProperty(value = "鉴定编号")
|
||||
private String acceptNo;
|
||||
|
||||
@ApiModelProperty(value = "案件名称")
|
||||
private String caseName;
|
||||
|
||||
@ApiModelProperty(value = "消息内容")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty(value = "处理人员ID")
|
||||
private String transactionPersonnelId;
|
||||
|
||||
@ApiModelProperty(value = "办理人姓名")
|
||||
private String transactionPersonnelName;
|
||||
|
||||
@ApiModelProperty(value = "办理人权限组")
|
||||
private String permissionGroup;
|
||||
|
||||
@ApiModelProperty(value = "处理状态(0: 待处理,1:已处理,2:退回修改,-1:未通过)")
|
||||
private Integer status;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package digital.laboratory.platform.identifybook.entity;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import lombok.Data;
|
||||
|
||||
// 本类的实例对应 Entrustment 对象中的 ProcessInfo 字段。
|
||||
@Data
|
||||
public class UpdateInfo {
|
||||
String userId;
|
||||
String userName;
|
||||
String orgId;
|
||||
String orgName;
|
||||
|
||||
// @JsonDeserialize(using = LocalDateTimeDeserializer.class)
|
||||
// @JsonSerialize(using = LocalDateTimeSerializer.class)
|
||||
//@JSONField(format ="yyyy-MM-dd HH:mm:ss")
|
||||
//LocalDateTime processTime;
|
||||
String processTime; // 如果使用 LocalDateTime 类型, 序列化和反序列化的时候老是有格式转换的错误, 我们其实对内容不需要再加工, 直接保存字符串算了
|
||||
|
||||
String operation; // 动作, 例如: 录入、审核、审批 等
|
||||
Integer opCode; // 动作码, 通常: 1=通过, -1=拒绝
|
||||
|
||||
public UpdateInfo() {
|
||||
}
|
||||
|
||||
public UpdateInfo(String userId,
|
||||
String userName,
|
||||
String orgId,
|
||||
String orgName,
|
||||
String operation,
|
||||
Integer opCode) {
|
||||
this.userId = userId;
|
||||
this.userName = userName;
|
||||
this.orgId = orgId;
|
||||
this.orgName = orgName;
|
||||
this.processTime = DateUtil.now();
|
||||
this.operation = operation;
|
||||
this.opCode = opCode;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package digital.laboratory.platform.identifybook.event;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import java.time.Clock;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 推送数据到LabsCare 数据平台上的spring 事件
|
||||
*/
|
||||
@Getter
|
||||
public class PushDataToLabsCareEvent extends ApplicationEvent {
|
||||
|
||||
/**
|
||||
* 委托id
|
||||
*/
|
||||
private final String entrustId;
|
||||
|
||||
/**
|
||||
* 推送的数据类型, 1 鉴定委托书数据 | 2 鉴定事项确认书数据 | 3 生物检材定性记录报告数据 | 4 普通检材定性记录非红外报告数据
|
||||
* 5 鉴定报告审批表数据 | 6 定性报告数据 | 7 归档报告信息数据
|
||||
*/
|
||||
private final Set<Integer> pushType;
|
||||
|
||||
public PushDataToLabsCareEvent(Object source, String entrustId, Set<Integer> pushType) {
|
||||
super(source);
|
||||
this.entrustId = entrustId;
|
||||
this.pushType = pushType;
|
||||
}
|
||||
|
||||
public PushDataToLabsCareEvent(Object source, Clock clock, String entrustId, Set<Integer> pushType) {
|
||||
super(source, clock);
|
||||
this.entrustId = entrustId;
|
||||
this.pushType = pushType;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package digital.laboratory.platform.identifybook.handler;
|
||||
|
||||
import digital.laboratory.platform.common.core.constant.CommonConstants;
|
||||
import digital.laboratory.platform.common.core.util.R;
|
||||
import digital.laboratory.platform.sys.entity.Dictionary;
|
||||
import digital.laboratory.platform.sys.feign.RemoteDictionaryService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* App 启动类
|
||||
* 当 Spring Application 启动完成后, 会调用这个类的 run() 方法进行一些最后的初始化。
|
||||
* 我们在这个方法中从数据库加载一些全局的配置
|
||||
*
|
||||
* @author Zhang Xiaolong
|
||||
*/
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class AppStartupRunner implements ApplicationRunner {
|
||||
|
||||
private final RemoteDictionaryService remoteDictionaryService;
|
||||
|
||||
public static Map<String, String> entrustmentConfig = new HashMap<>();
|
||||
|
||||
public static String getCfg(String code) {
|
||||
return entrustmentConfig.get(code);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args 参数
|
||||
* @throws Exception 异常
|
||||
*
|
||||
* // @SysLog("委托受理模块初始化") 这里不能使用 @SysLog(), 因为 SysLog 还没有初始化
|
||||
*/
|
||||
@Override
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
// BusinessCodeUtils.removeSymbols("x-*/)——0*&……%¥#@xasdf!*&^&%^ 中文、/+)(()\n\\xx\rx");
|
||||
|
||||
{
|
||||
// 加载 entrustment 在字典中的配置
|
||||
R<List<Dictionary>> r = remoteDictionaryService.getDictionaryByType(CommonConstants.DLP_TYPE_ENTRUSTMENT);
|
||||
if (Optional.ofNullable(r).isPresent() && (r.getData() != null)) {
|
||||
List<Dictionary> itemList = r.getData();
|
||||
for (Dictionary item : itemList) {
|
||||
entrustmentConfig.put(item.getCode(), item.getLabel());
|
||||
}
|
||||
}
|
||||
|
||||
for (String key : entrustmentConfig.keySet()) {
|
||||
System.out.println(String.format("entrustmentConfig[%s]=%s", key, entrustmentConfig.get(key)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package digital.laboratory.platform.identifybook.listener;
|
||||
|
||||
|
||||
import digital.laboratory.platform.identifybook.event.PushDataToLabsCareEvent;
|
||||
import digital.laboratory.platform.identifybook.service.PushDataToLabsCareService;
|
||||
import digital.laboratory.platform.identifybook.threadpool.GlobalThreadPool;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* 监听有关推送数据到LabsCare 平台的事件, 采用异步
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PushDataToLabsCareEventListener implements ApplicationListener<PushDataToLabsCareEvent> {
|
||||
|
||||
@Resource
|
||||
private PushDataToLabsCareService pushDataToLabsCareService;
|
||||
|
||||
/**
|
||||
* 处理委托数据推送事件
|
||||
*
|
||||
* @param event 委托数据推送事件对象
|
||||
*/
|
||||
@Override
|
||||
public void onApplicationEvent(PushDataToLabsCareEvent event) {
|
||||
CompletableFuture.runAsync(() -> {
|
||||
event.getPushType().forEach(pushType -> {
|
||||
// 处理不同的推送类型
|
||||
switch (pushType) {
|
||||
case 5: // 推送鉴定报告审批表数据
|
||||
try {
|
||||
pushDataToLabsCareService.pushAppraisalReportApprovalFormData(event.getEntrustId());
|
||||
} catch (Exception e) {
|
||||
log.error("委托id为 {} 的鉴定报告审批表数据推送失败!", event.getEntrustId(), e);
|
||||
}
|
||||
break;
|
||||
case 6: // 推送定性报告数据
|
||||
try {
|
||||
pushDataToLabsCareService.pushQualitativeReportData(event.getEntrustId());
|
||||
} catch (Exception e) {
|
||||
log.error("委托id为 {} 的定性报告数据推送失败!", event.getEntrustId(), e);
|
||||
}
|
||||
break;
|
||||
case 7: // 推送定性报告数据
|
||||
try {
|
||||
pushDataToLabsCareService.pushArchiveReportInfoData(event.getEntrustId());
|
||||
} catch (Exception e) {
|
||||
log.error("委托id为 {} 的归档报告信息数据推送失败!", event.getEntrustId(), e);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
log.warn("未知的推送类型: {}", event.getPushType());
|
||||
break;
|
||||
}
|
||||
});
|
||||
}, GlobalThreadPool.getInstance()).exceptionally(e -> {
|
||||
log.error("推送数据到 LabsCare 失败", e);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BIdentificationProcess;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-27
|
||||
*/
|
||||
@Mapper
|
||||
public interface BIdentificationProcessMapper extends BaseMapper<BIdentificationProcess> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BusinessProcessRecord;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务流程记录表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface BusinessProcessRecordMapper extends BaseMapper<BusinessProcessRecord> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvent;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 案件、事件 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface CaseEventMapper extends BaseMapper<CaseEvent> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvidence;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 与案件相关的物证信息 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface CaseEvidenceMapper extends BaseMapper<CaseEvidence> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Deliverer;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 送检员 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface DelivererMapper extends BaseMapper<Deliverer> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentBundle;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托与实验关系 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface EntrustmentBundleMapper extends BaseMapper<EntrustmentBundle> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.EntrustmentIdentificationMaterial;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检材信息 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface EntrustmentIdentificationMaterialMapper extends BaseMapper<EntrustmentIdentificationMaterial> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustCaseDTO;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO;
|
||||
import digital.laboratory.platform.identifybook.entity.Entrustment;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface EntrustmentMapper extends BaseMapper<Entrustment> {
|
||||
|
||||
EntrustCaseDTO getEntrustCaseDTOById(@Param(value = "entrustId") String entrustId);
|
||||
|
||||
IPage<EntrustmentDTO> findEntrustPage(IPage<EntrustmentDTO> page, @Param(value = "req") EntrustmentREQ req);
|
||||
|
||||
List<EntrustmentDTO> findEntrust(@Param(value = "id") String id, @Param(value = "identificationId") String identificationId);
|
||||
|
||||
EntrustmentDTO getEntrustmentDTO(@Param(value = "entrustId") String entrustId);
|
||||
|
||||
long countWSLBSum(@Param("bookStatusList") List<Integer> bookStatusList);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ExaminationMethods;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验方法 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface ExaminationMethodsMapper extends BaseMapper<ExaminationMethods> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Experiment;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 实验(检验方法的实例) Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface ExperimentMapper extends BaseMapper<Experiment> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.HairJobIdentificationMaterial;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发任务的检材信息 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface HairJobIdentificationMaterialMapper extends BaseMapper<HairJobIdentificationMaterial> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.HairJob;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 毛发检测任务 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface HairJobMapper extends BaseMapper<HairJob> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Identification;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定表,一个鉴定可能会有多个委托 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface IdentificationMapper extends BaseMapper<Identification> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookApprove;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书审批表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-25
|
||||
*/
|
||||
@Mapper
|
||||
public interface IdentifyBookApproveMapper extends BaseMapper<IdentifyBookApprove> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBook;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书消息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface IdentifyBookMapper extends BaseMapper<IdentifyBook> {
|
||||
|
||||
IdentifyBook getMaxVersionIdentifyBook(@Param(value = "fkId") String fkId);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.IdentifyBookRelevance;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书关联中间表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface IdentifyBookRelevanceMapper extends BaseMapper<IdentifyBookRelevance> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 鉴定文书修改补充申请表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
@Mapper
|
||||
public interface ModifySupplementApplyMapper extends BaseMapper<ModifySupplementApply> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import digital.laboratory.platform.identifybook.dto.ReceiveIdentifyBookDTO;
|
||||
import digital.laboratory.platform.identifybook.entity.ReceiveIdentifyBook;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 领取鉴定文书信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-30
|
||||
*/
|
||||
@Mapper
|
||||
public interface ReceiveIdentifyBookMapper extends BaseMapper<ReceiveIdentifyBook> {
|
||||
|
||||
IPage<ReceiveIdentifyBookDTO> pageReceiveIdentifyBook(IPage<ReceiveIdentifyBook> page, @Param(value = "key") String key);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ResultEntrustmentQualitative;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定性分析检验结果 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface ResultEntrustmentQualitativeMapper extends BaseMapper<ResultEntrustmentQualitative> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ResultEntrustmentRation;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托定量检验结果 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface ResultEntrustmentRationMapper extends BaseMapper<ResultEntrustmentRation> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Sample;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检验用的样本 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface SampleMapper extends BaseMapper<Sample> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.Taker;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 采集员 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Mapper
|
||||
public interface TakerMapper extends BaseMapper<Taker> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package digital.laboratory.platform.identifybook.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO;
|
||||
import digital.laboratory.platform.identifybook.entity.TaskNotification;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import digital.laboratory.platform.identifybook.req.EntrustmentREQ;
|
||||
import digital.laboratory.platform.identifybook.vo.TaskNotificationVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 任务信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-31
|
||||
*/
|
||||
@Mapper
|
||||
public interface TaskNotificationMapper extends BaseMapper<TaskNotification> {
|
||||
IPage<TaskNotificationVO> queryTaskNotificationPage(IPage<TaskNotification> page, @Param(Constants.WRAPPER) QueryWrapper<TaskNotification> qw);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package digital.laboratory.platform.identifybook.req;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BusinessProcessRecord;
|
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/26 0:31
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="BusinessProcessRecordREQ对象", description="封装条件属性")
|
||||
public class BusinessProcessRecordREQ extends BaseRequest<BusinessProcessRecord> implements Serializable {
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package digital.laboratory.platform.identifybook.req;
|
||||
|
||||
|
||||
import digital.laboratory.platform.identifybook.dto.EntrustmentDTO;
|
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 委托
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value="EntrustmentREQ对象", description="封装条件属性")
|
||||
public class EntrustmentREQ extends BaseRequest<EntrustmentDTO> implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "参数key")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "鉴定委托单位编码")
|
||||
private String clientOrgId;
|
||||
|
||||
@ApiModelProperty(value = "状态")
|
||||
private List<String> bookStatusList;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package digital.laboratory.platform.identifybook.req;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.ModifySupplementApply;
|
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/5/26 0:08
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value="ModifySupplementApplyREQ对象", description="封装条件属性")
|
||||
public class ModifySupplementApplyREQ extends BaseRequest<ModifySupplementApply> implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "任务模糊查询:(鉴定文书编号/委托人姓名)")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "业务状态(1:鉴定文书-提交修改补充申请,2:鉴定文书-修改补充-审核通过,-2:鉴定文书-修改补充-审核未通过,3:鉴定文书-修改补充-审批通过,-3:鉴定文书-修改补充-审批通过)")
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package digital.laboratory.platform.identifybook.req;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.TaskNotification;
|
||||
import digital.laboratory.platform.identifybook.utils.BaseRequest;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023/7/1 14:38
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value = "TaskNotificationREQ对象", description = "封装任务查询条件")
|
||||
public class TaskNotificationREQ extends BaseRequest<TaskNotification> {
|
||||
|
||||
@ApiModelProperty(value = "任务模糊查询:(任务标题/任务内容/申请人姓名)")
|
||||
private String key;
|
||||
|
||||
@ApiModelProperty(value = "任务类型(1:鉴定文书-审核,2:鉴定文书-审核退回修改,3:鉴定文书-审批,4:鉴定文书-审批退回修改,5:鉴定文书-签发/领取,6:鉴定文书修改/补充-审核,7:鉴定文书修改/补充-审批)")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "处理状态(0: 待处理,1:已处理,2:退回修改,-1:未通过)")
|
||||
private List<Integer> statusList;
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package digital.laboratory.platform.identifybook.service;
|
||||
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import digital.laboratory.platform.sys.entity.Area;
|
||||
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 orgId 组织ID
|
||||
* @param permission 权限列表
|
||||
* @return 用户列表
|
||||
*/
|
||||
List<SysUser> remoteGetUsersByPermission(String orgId, List<String> permission);
|
||||
|
||||
/**
|
||||
* 通过机构ID远程获取机构所在省市信息
|
||||
*
|
||||
* @param orgId 机构ID
|
||||
* @return 包含机构所在省市信息的Area对象列表
|
||||
* @throws RuntimeException 当根据机构ID获取机构所在省市信息失败时抛出
|
||||
*/
|
||||
List<Area> remoteGetProvinceCityInfo(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,16 @@
|
||||
package digital.laboratory.platform.identifybook.service;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BIdentificationProcess;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-08-27
|
||||
*/
|
||||
public interface IBIdentificationProcessService extends IService<BIdentificationProcess> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package digital.laboratory.platform.identifybook.service;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.BusinessProcessRecord;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 业务流程记录表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-22
|
||||
*/
|
||||
public interface IBusinessProcessRecordService extends IService<BusinessProcessRecord> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package digital.laboratory.platform.identifybook.service;
|
||||
|
||||
import digital.laboratory.platform.identifybook.entity.CaseEvent;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 案件、事件 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author 旌霖科技-www.jinglin.com
|
||||
* @since 2023-05-17
|
||||
*/
|
||||
public interface ICaseEventService extends IService<CaseEvent> {
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user