From 1e51af385909adcb72b97e96edcbbb0412fa7de4 Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期一, 28 八月 2023 09:08:45 +0800
Subject: [PATCH] 多次评定初版

---
 src/main/java/com/gkhy/labRiskManage/application/experiment/dto/dto/ExperimentInfoAppQueryDTO.java       |    2 
 src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentAssessLogServiceImpl.java  |   26 ++++++++
 src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java |   35 ++++++++++-
 src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/BasicExperimentPersonServiceImpl.java     |    3 +
 src/main/java/com/gkhy/labRiskManage/domain/experiment/entity/ExperimentAssessLog.java                   |   44 ++++++++++++++
 src/main/java/com/gkhy/labRiskManage/domain/experiment/model/dto/ExperimentInfoDTO.java                  |    2 
 src/main/java/com/gkhy/labRiskManage/domain/experiment/service/ExperimentAssessLogService.java           |   12 ++++
 src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/resp/ExperimentInfoRespDTO.java       |    2 
 src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java   |   10 +++
 src/main/java/com/gkhy/labRiskManage/domain/experiment/repository/jpa/ExperimentAssessLogRepository.java |   16 +++++
 10 files changed, 147 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/resp/ExperimentInfoRespDTO.java b/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/resp/ExperimentInfoRespDTO.java
index c0f3f32..84ade6d 100644
--- a/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/resp/ExperimentInfoRespDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/resp/ExperimentInfoRespDTO.java
@@ -2,6 +2,7 @@
 
 
 import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentAndEmergencyInsertReqBO;
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -213,5 +214,6 @@
     private List<ExperimentAndEmergencyRespDTO> emergencyList;
 
 
+    private List<ExperimentAssessLog> experimentAssessLogs;
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/dto/ExperimentInfoAppQueryDTO.java b/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/dto/ExperimentInfoAppQueryDTO.java
index 8988f4c..af88864 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/dto/ExperimentInfoAppQueryDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/dto/ExperimentInfoAppQueryDTO.java
@@ -2,6 +2,7 @@
 
 
 import com.gkhy.labRiskManage.api.controller.experiment.dto.resp.ExperimentAndEmergencyRespDTO;
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -214,6 +215,7 @@
      */
     private List<ExperimentAndEmergencyRespDTO> emergencies;
 
+    private List<ExperimentAssessLog> experimentAssessLogs;
 
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
index 93de098..7d5b191 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
@@ -13,6 +13,7 @@
 import com.gkhy.labRiskManage.commons.exception.BusinessException;
 import com.gkhy.labRiskManage.commons.model.PageQuery;
 import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils;
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentInfo;
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentStatusEnum;
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentTagEnum;
@@ -53,7 +54,8 @@
     private ExperimentAndEmergencyService experimentAndEmergencyService;
     @Autowired
     private ExperimentAppConverter experimentAppConverter;
-
+    @Autowired
+    private ExperimentAssessLogService experimentAssessLogService;
     @Transactional
     @Override
     public int save(Long currentUserId, ExperimentInsertReqBO experimentInsertReqBO) {
@@ -174,6 +176,12 @@
             BeanUtils.copyProperties(searchResult,result);
         }
         List<ExperimentInfoDTO> experimentInfoDTOS = (List<ExperimentInfoDTO>)searchResult.getData();
+        for (ExperimentInfoDTO experimentInfo : experimentInfoDTOS) {
+            List<ExperimentAssessLog> assessLogs = experimentAssessLogService.getAssessLogs(experimentInfo.getExperimentCode());
+            if (assessLogs.size() > 0){
+                experimentInfo.setExperimentAssessLogs(assessLogs);
+            }
+        }
 
         result.setData(getExperimentInfoAppQueryDTO(experimentInfoDTOS));
         //获取分页数据
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/BasicExperimentPersonServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/BasicExperimentPersonServiceImpl.java
index b50d9f2..2679d08 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/BasicExperimentPersonServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/BasicExperimentPersonServiceImpl.java
@@ -168,6 +168,9 @@
 
         Page<BasicExperimentPerson> pageResult = personRepository.findAll(specification, pageParam);
         List<PersonQueryDTO> personQueryDTOS = BeanCopyUtils.copyBeanList(pageResult.getContent(), PersonQueryDTO.class);
+//        BasicExperimentPerson person = new BasicExperimentPerson();
+//        person.set
+//        personQueryDTOS.add()
 
         List<UserInfoDomainDTO> userList = userDomainService.getUserList();
         for (PersonQueryDTO personQueryDTO : personQueryDTOS) {
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/entity/ExperimentAssessLog.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/entity/ExperimentAssessLog.java
new file mode 100644
index 0000000..0e00ba6
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/entity/ExperimentAssessLog.java
@@ -0,0 +1,44 @@
+package com.gkhy.labRiskManage.domain.experiment.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 实验与设备
+ */
+@Entity
+@Table(name = "experiment_assess_log")
+@Data
+public class ExperimentAssessLog implements Serializable {
+    private static final long serialVersionUID = -74398808654954420L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+    /**
+     * 实验Code
+     */
+    @Column(name = "experiment_code")
+    private String experimentCode;
+
+    /**
+     * 评价时间
+     */
+    @JsonFormat
+    private LocalDateTime assessTime;
+    /**
+     * 评估结果:2-通过;3-不通过
+     */
+    private Byte assessResult;
+    /**
+     * 评估人
+     */
+    private String assessUser;
+
+}
+
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/dto/ExperimentInfoDTO.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/dto/ExperimentInfoDTO.java
index a6c8a09..3ab6aa8 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/dto/ExperimentInfoDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/dto/ExperimentInfoDTO.java
@@ -1,5 +1,6 @@
 package com.gkhy.labRiskManage.domain.experiment.model.dto;
 
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import lombok.Data;
 
 import javax.persistence.*;
@@ -208,5 +209,6 @@
 
     private List<ExperimentAndEmergencyDTO> emergencies;
 
+    private List<ExperimentAssessLog> experimentAssessLogs;
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/repository/jpa/ExperimentAssessLogRepository.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/repository/jpa/ExperimentAssessLogRepository.java
new file mode 100644
index 0000000..9c776fc
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/repository/jpa/ExperimentAssessLogRepository.java
@@ -0,0 +1,16 @@
+package com.gkhy.labRiskManage.domain.experiment.repository.jpa;
+
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ExperimentAssessLogRepository extends JpaRepository<ExperimentAssessLog, Long> {
+
+    @Query(value = "select * from experiment_assess_log e where e.experiment_code = :experimentCode ",nativeQuery = true)
+    List<ExperimentAssessLog> getAssessLogs(String experimentCode);
+
+}
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/ExperimentAssessLogService.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/ExperimentAssessLogService.java
new file mode 100644
index 0000000..7648f97
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/ExperimentAssessLogService.java
@@ -0,0 +1,12 @@
+package com.gkhy.labRiskManage.domain.experiment.service;
+
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
+
+import java.util.List;
+
+public interface ExperimentAssessLogService {
+
+    ExperimentAssessLog saveExperimentAssessLog(ExperimentAssessLog experimentAssessLog);
+
+    List<ExperimentAssessLog> getAssessLogs(String experimentCode);
+}
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentAssessLogServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentAssessLogServiceImpl.java
new file mode 100644
index 0000000..47099c0
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentAssessLogServiceImpl.java
@@ -0,0 +1,26 @@
+package com.gkhy.labRiskManage.domain.experiment.service.impl;
+
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
+import com.gkhy.labRiskManage.domain.experiment.repository.jpa.ExperimentAssessLogRepository;
+import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAssessLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ExperimentAssessLogServiceImpl implements ExperimentAssessLogService {
+
+    @Autowired
+    private ExperimentAssessLogRepository experimentAssessLogRepository;
+
+    @Override
+    public ExperimentAssessLog saveExperimentAssessLog(ExperimentAssessLog experimentAssessLog) {
+        return experimentAssessLogRepository.save(experimentAssessLog);
+    }
+
+    @Override
+    public List<ExperimentAssessLog> getAssessLogs(String experimentCode) {
+        return experimentAssessLogRepository.getAssessLogs(experimentCode);
+    }
+}
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
index 4d42004..2c2aa9e 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
@@ -19,17 +19,18 @@
 import com.gkhy.labRiskManage.domain.account.model.dto.UserInfoDomainDTO;
 import com.gkhy.labRiskManage.domain.account.service.UserDomainService;
 import com.gkhy.labRiskManage.domain.basic.entity.BasicRiskUnitType;
-import com.gkhy.labRiskManage.domain.basic.model.dto.PersonQueryDTO;
 import com.gkhy.labRiskManage.domain.basic.model.dto.SiteQueryDTO;
 import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentPersonService;
 import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentSiteService;
 import com.gkhy.labRiskManage.domain.basic.service.BasicRiskUnitTypeService;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndSite;
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentInfo;
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentApprovalStatusEnum;
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentRectifyStatusEnum;
 import com.gkhy.labRiskManage.domain.experiment.model.dto.ExperimentInfoDTO;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndSiteService;
+import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAssessLogService;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentInfoService;
 import com.gkhy.labRiskManage.domain.riskReport.entity.*;
 import com.gkhy.labRiskManage.domain.riskReport.model.bo.ReportQueryBO;
@@ -39,7 +40,6 @@
 import com.gkhy.labRiskManage.domain.riskReport.service.*;
 import com.gkhy.labRiskManage.domain.riskReport.utils.GetRoleTagUtils;
 import com.gkhy.labRiskManage.domain.riskReport.utils.RiskSourceTypeUtils;
-import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -53,10 +53,8 @@
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 
@@ -91,6 +89,8 @@
     private ReportExperimentRiskSourceTypeService reportSourceTypeService;
     @Autowired
     private ReportExperimentRiskSourceService reportSourceService;
+    @Autowired
+    private ExperimentAssessLogService experimentAssessLogService;
 
     @Autowired
     private UserDomainService userDomainService;
@@ -820,6 +820,19 @@
                 if (ObjectUtils.isEmpty(experimentInfo)){
                     throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息状态修改失败");
                 }
+
+                //添加评估记录
+                ExperimentAssessLog experimentAssessLog = new ExperimentAssessLog();
+                experimentAssessLog.setExperimentCode(experimentInfo.getExperimentCode());
+                experimentAssessLog.setAssessTime(date);
+                experimentAssessLog.setAssessUser(user.getRealName());
+                experimentAssessLog.setAssessResult(StatusEnum.APPROVED_PASS.getCode().byteValue());
+                ExperimentAssessLog experimentAssessLogResult = experimentAssessLogService.saveExperimentAssessLog(experimentAssessLog);
+                if (ObjectUtils.isEmpty(experimentAssessLogResult)){
+                    throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息评估记录写入失败");
+                }
+            }else {
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"无操作权限");
             }
         }
 
@@ -843,6 +856,8 @@
                 if (ObjectUtils.isEmpty(assessPerson)){
                     throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"审核信息保存失败");
                 }
+            }else {
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"无操作权限");
             }
             //修改报告状态
             reportById.setApprovePlanStatus(StatusEnum.REPORT_NOT_APPROVED.getCode().byteValue());
@@ -860,6 +875,18 @@
             if (ObjectUtils.isEmpty(experimentInfo)){
                 throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息状态修改失败");
             }
+
+
+            //添加评估记录
+            ExperimentAssessLog experimentAssessLog = new ExperimentAssessLog();
+            experimentAssessLog.setExperimentCode(experimentInfo.getExperimentCode());
+            experimentAssessLog.setAssessTime(date);
+            experimentAssessLog.setAssessUser(user.getRealName());
+            experimentAssessLog.setAssessResult(StatusEnum.APPROVED_NOT_PASS.getCode().byteValue());
+            ExperimentAssessLog experimentAssessLogResult = experimentAssessLogService.saveExperimentAssessLog(experimentAssessLog);
+            if (ObjectUtils.isEmpty(experimentAssessLogResult)){
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息评估记录写入失败");
+            }
         }
 
         return StatusEnum.SUCCESS.getCode();

--
Gitblit v1.9.2