From 8b997bf7de8e2bc23a337261e19e5e43bd48c67e Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 04 三月 2025 11:20:32 +0800
Subject: [PATCH] 7过程要求
---
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java | 21
cnas-process/src/main/resources/static/quality-monitor.docx | 0
cnas-manage/src/main/resources/mapper/ManageRecordCancelMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java | 30
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java | 34
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java | 12
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java | 317 +
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java | 72
cnas-manage/src/main/resources/mapper/ManageRecordAuditMapper.xml | 2
cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml | 14
cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java | 70
cnas-manage/src/main/resources/mapper/ClientSatisfactionAnalyseFileMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDetail.java | 37
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java | 15
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java | 67
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java | 2
cnas-process/pom.xml | 39
cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java | 15
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java | 155
cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java | 15
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java | 30
cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml | 29
cnas-manage/src/main/resources/mapper/InternalPlanDetailMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java | 119
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java | 15
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java | 24
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java | 63
cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java | 25
cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java | 31
cnas-manage/src/main/resources/mapper/ManageReviewProgramFileMapper.xml | 2
pom.xml | 9
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java | 28
cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java | 27
cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java | 22
cnas-manage/src/main/resources/mapper/ManageRecordVerifyMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java | 45
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java | 28
cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java | 45
cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml | 13
cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java | 23
cnas-manage/src/main/resources/mapper/ManageControlPlanListMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java | 144
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java | 20
cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java | 85
cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java | 28
cnas-manage/src/main/resources/mapper/ManageDocumentControlledMapper.xml | 2
cnas-manage/src/main/resources/mapper/ManageRecordIntervalsTotalMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java | 25
cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java | 55
cnas-process/src/main/java/com/ruoyi/process/utils/UserUtils.java | 40
cnas-process/src/main/resources/static/excel/check-records.xlsx | 0
cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml | 15
cnas-manage/src/main/resources/mapper/ManageDocumentCancelMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java | 54
cnas-process/src/main/resources/static/report-deal.docx | 0
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java | 62
cnas-manage/src/main/resources/mapper/ManageRiskAssessmentResultsMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java | 435 ++
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java | 21
cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java | 17
cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml | 35
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 2
cnas-manage/src/main/resources/mapper/ManageRecordTotalMapper.xml | 2
cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml | 205 +
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java | 67
cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java | 30
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java | 87
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java | 59
cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java | 16
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java | 63
cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml | 36
cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java | 95
cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java | 33
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java | 86
cnas-manage/src/main/resources/mapper/InternalPlanMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java | 60
cnas-manage/src/main/resources/mapper/InternalMeetingDetailMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java | 139
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java | 61
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java | 21
cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java | 17
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderMapper.java | 29
cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java | 54
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java | 69
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java | 17
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java | 83
cnas-process/src/main/resources/mapper/ProcessDealMapper.xml | 26
cnas-process/src/main/resources/static/supervision-detail-record.docx | 0
cnas-manage/src/main/resources/mapper/ManageRecordIntervalsMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewDto.java | 62
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java | 23
cnas-process/src/main/resources/static/quality-monitor-evaluate.docx | 0
cnas-process/src/main/resources/static/inspection-order.docx | 0
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java | 1
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java | 414 ++
cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java | 19
cnas-process/src/main/resources/static/quality-supervise.docx | 0
cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java | 16
cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml | 15
cnas-manage/src/main/resources/mapper/ManageDocumentIssueRecycleMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java | 24
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java | 426 ++
cnas-process/src/main/resources/static/sample-deal.docx | 0
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java | 40
cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml | 20
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java | 61
cnas-manage/src/main/resources/mapper/ManageDocumentListMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java | 29
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java | 73
cnas-process/src/main/resources/static/sample-receive.docx | 0
cnas-process/src/main/java/com/ruoyi/process/dto/ProcessOrderDto.java | 73
cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java | 26
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java | 24
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java | 829 ++++
cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java | 74
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java | 75
cnas-manage/src/main/resources/mapper/ManageRecordIssueRecycleMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java | 230 +
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java | 19
cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java | 22
cnas-process/src/main/resources/static/supervise-detail-correct.docx | 0
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java | 17
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java | 25
cnas-manage/src/main/resources/mapper/ManageMeetingMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java | 78
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java | 29
cnas-manage/src/main/resources/mapper/ManageReviewProgramMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java | 63
cnas-process/src/main/resources/static/method-verify.docx | 0
cnas-manage/src/main/resources/mapper/ManageReviewReportMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java | 94
cnas-manage/src/main/resources/mapper/ManageDocumentAlterMapper.xml | 2
cnas-manage/src/main/resources/mapper/InternalMeetingMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java | 56
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java | 28
cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java | 15
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java | 17
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java | 40
cnas-manage/src/main/resources/mapper/ClientSatisfactionMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java | 54
cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml | 22
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java | 2
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java | 15
cnas-process/src/main/resources/static/supervision-detail-according.docx | 0
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java | 99
cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml | 6
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java | 63
cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java | 301 +
cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java | 15
cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml | 26
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java | 123
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java | 19
cnas-manage/src/main/resources/mapper/ManageRecordCheckMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java | 27
cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java | 163
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java | 95
cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java | 18
cnas-process/src/main/resources/mapper/ProcessReportMapper.xml | 41
cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java | 67
cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java | 29
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java | 103
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java | 49
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderServiceImpl.java | 148
cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java | 15
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java | 21
cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java | 43
cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml | 62
cnas-manage/src/main/resources/mapper/InternalCorrectFileMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java | 19
cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml | 24
cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml | 11
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java | 141
cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx | 0
cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java | 37
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java | 60
cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java | 273 +
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java | 647 +++
cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml | 24
cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java | 28
cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml | 20
cnas-process/src/main/resources/static/inconsistent-distribution.docx | 0
cnas-manage/src/main/resources/mapper/InternalReportMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java | 133
cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java | 29
cnas-manage/src/main/resources/mapper/InternalImplementMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java | 36
cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java | 27
cnas-manage/src/main/resources/mapper/InternalCorrectMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java | 78
cnas-manage/src/main/resources/mapper/InternalCheckMapper.xml | 2
cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml | 57
cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml | 15
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java | 78
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java | 422 ++
cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml | 34
ruoyi-admin/pom.xml | 6
cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java | 2
cnas-manage/src/main/resources/mapper/ManageMeetingParticipantsMapper.xml | 2
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java | 68
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java | 93
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java | 79
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java | 21
cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java | 27
212 files changed, 11,167 insertions(+), 52 deletions(-)
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java
index abb82e0..220cc51 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageDocumentCancelController.java
@@ -5,6 +5,7 @@
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.manage.pojo.ManageDocumentCancel;
import com.ruoyi.manage.service.ManageDocumentCancelService;
+import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java
index dff4067..a313a8f 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordAuditController.java
@@ -7,7 +7,7 @@
import com.ruoyi.manage.service.ManageRecordAuditService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java
index 748f19e..acb10a2 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordCancelController.java
@@ -8,7 +8,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java
index ea6db9a..9a1537f 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIntervalsTotalController.java
@@ -7,7 +7,7 @@
import com.ruoyi.manage.service.ManageRecordIntervalsTotalService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import java.util.Map;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java
index d5b0f42..885d9c5 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordIssueRecycleController.java
@@ -8,7 +8,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java
index ba60f3b..3217f95 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordTotalController.java
@@ -7,7 +7,7 @@
import com.ruoyi.manage.service.ManageRecordTotalService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import java.util.Map;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java
index 73da893..ee5910f 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageRecordVerifyController.java
@@ -8,7 +8,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
import java.util.Map;
diff --git a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java
index 05041a1..331df15 100644
--- a/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java
+++ b/cnas-manage/src/main/java/com/ruoyi/manage/controller/ManageReviewProgramFileController.java
@@ -8,7 +8,7 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-
+import io.swagger.annotations.Api;
import javax.annotation.Resource;
/**
diff --git a/cnas-manage/src/main/resources/mapper/ClientSatisfactionAnalyseFileMapper.xml b/cnas-manage/src/main/resources/mapper/ClientSatisfactionAnalyseFileMapper.xml
index dfaa1cc..c957aee 100644
--- a/cnas-manage/src/main/resources/mapper/ClientSatisfactionAnalyseFileMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ClientSatisfactionAnalyseFileMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yuanchu.mom.mapper.ClientSatisfactionAnalyseFileMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ClientSatisfactionAnalyseFileMapper">
<!-- 瀹㈡埛婊℃剰搴﹀垎鏋愰檮浠跺垪琛� -->
<select id="pageAnalyseFile" resultType="com.ruoyi.manage.pojo.ClientSatisfactionAnalyseFile">
diff --git a/cnas-manage/src/main/resources/mapper/ClientSatisfactionMapper.xml b/cnas-manage/src/main/resources/mapper/ClientSatisfactionMapper.xml
index 3363454..ea097e1 100644
--- a/cnas-manage/src/main/resources/mapper/ClientSatisfactionMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ClientSatisfactionMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yuanchu.mom.mapper.ClientSatisfactionMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ClientSatisfactionMapper">
<!-- 瀹㈡埛婊℃剰搴﹁皟鏌� -->
<select id="pageClientSatisfaction" resultType="com.ruoyi.manage.pojo.ClientSatisfaction">
diff --git a/cnas-manage/src/main/resources/mapper/InternalCheckMapper.xml b/cnas-manage/src/main/resources/mapper/InternalCheckMapper.xml
index 3ef89c8..f7168c7 100644
--- a/cnas-manage/src/main/resources/mapper/InternalCheckMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalCheckMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yuanchu.mom.mapper.InternalCheckMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalCheckMapper">
<!-- 鍐呴儴瀹℃煡鍒嗛〉鏌ヨ -->
<select id="pageInternalCheck" resultType="com.ruoyi.manage.dto.InternalCheckDto">
diff --git a/cnas-manage/src/main/resources/mapper/InternalCorrectFileMapper.xml b/cnas-manage/src/main/resources/mapper/InternalCorrectFileMapper.xml
index 5dc4ae7..42b8716 100644
--- a/cnas-manage/src/main/resources/mapper/InternalCorrectFileMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalCorrectFileMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalCorrectFileMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalCorrectFileMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.InternalCorrectFile">
diff --git a/cnas-manage/src/main/resources/mapper/InternalCorrectMapper.xml b/cnas-manage/src/main/resources/mapper/InternalCorrectMapper.xml
index 32e6f13..71efb96 100644
--- a/cnas-manage/src/main/resources/mapper/InternalCorrectMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalCorrectMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalCorrectMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalCorrectMapper">
<select id="pageInternalAccording" resultType="com.ruoyi.manage.pojo.InternalCorrect">
select *
diff --git a/cnas-manage/src/main/resources/mapper/InternalImplementMapper.xml b/cnas-manage/src/main/resources/mapper/InternalImplementMapper.xml
index c1c3631..b41e6ee 100644
--- a/cnas-manage/src/main/resources/mapper/InternalImplementMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalImplementMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yuanchu.mom.mapper.InternalImplementMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalImplementMapper">
<!-- 鍐呭瀹炴柦璁″垝鍒嗛〉鏌ヨ -->
<select id="pageInternalImplement" resultType="com.ruoyi.manage.dto.InternalImplementDto">
select *
diff --git a/cnas-manage/src/main/resources/mapper/InternalMeetingDetailMapper.xml b/cnas-manage/src/main/resources/mapper/InternalMeetingDetailMapper.xml
index 3654cce..8bf3b54 100644
--- a/cnas-manage/src/main/resources/mapper/InternalMeetingDetailMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalMeetingDetailMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalMeetingDetailMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalMeetingDetailMapper">
</mapper>
diff --git a/cnas-manage/src/main/resources/mapper/InternalMeetingMapper.xml b/cnas-manage/src/main/resources/mapper/InternalMeetingMapper.xml
index 13f0ea1..d5cec24 100644
--- a/cnas-manage/src/main/resources/mapper/InternalMeetingMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalMeetingMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalMeetingMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalMeetingMapper">
<select id="pageInternalMeeting" resultType="com.ruoyi.manage.dto.InternalMeetingDto">
select *
diff --git a/cnas-manage/src/main/resources/mapper/InternalPlanDetailMapper.xml b/cnas-manage/src/main/resources/mapper/InternalPlanDetailMapper.xml
index 3ca2756..6264605 100644
--- a/cnas-manage/src/main/resources/mapper/InternalPlanDetailMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalPlanDetailMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalPlanDetailMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalPlanDetailMapper">
</mapper>
diff --git a/cnas-manage/src/main/resources/mapper/InternalPlanMapper.xml b/cnas-manage/src/main/resources/mapper/InternalPlanMapper.xml
index 72f4dd5..8200dfe 100644
--- a/cnas-manage/src/main/resources/mapper/InternalPlanMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalPlanMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.InternalPlanMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalPlanMapper">
<!-- 鍐呭骞村害璁″垝鍒嗛〉鏌ヨ -->
<select id="pageInternalPlan" resultType="com.ruoyi.manage.dto.InternalPlanDto">
select *
diff --git a/cnas-manage/src/main/resources/mapper/InternalReportMapper.xml b/cnas-manage/src/main/resources/mapper/InternalReportMapper.xml
index afb1fbd..08ed7e8 100644
--- a/cnas-manage/src/main/resources/mapper/InternalReportMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/InternalReportMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.yuanchu.mom.mapper.InternalReportMapper">
+<mapper namespace="com.ruoyi.manage.mapper.InternalReportMapper">
<!-- 鍐呭鎶ュ憡鍒嗛〉鏌ヨ -->
<select id="pageInternalReport" resultType="com.ruoyi.manage.pojo.InternalReport">
select *
diff --git a/cnas-manage/src/main/resources/mapper/ManageControlPlanListMapper.xml b/cnas-manage/src/main/resources/mapper/ManageControlPlanListMapper.xml
index 4b460a9..967e653 100644
--- a/cnas-manage/src/main/resources/mapper/ManageControlPlanListMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageControlPlanListMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageControlPlanListMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageControlPlanListMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageControlPlanList">
diff --git a/cnas-manage/src/main/resources/mapper/ManageDocumentAlterMapper.xml b/cnas-manage/src/main/resources/mapper/ManageDocumentAlterMapper.xml
index 3f84de6..3bef9a0 100644
--- a/cnas-manage/src/main/resources/mapper/ManageDocumentAlterMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageDocumentAlterMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageDocumentAlterMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageDocumentAlterMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageDocumentAlter">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageDocumentCancelMapper.xml b/cnas-manage/src/main/resources/mapper/ManageDocumentCancelMapper.xml
index 552f766..c25cfe5 100644
--- a/cnas-manage/src/main/resources/mapper/ManageDocumentCancelMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageDocumentCancelMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageDocumentCancelMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageDocumentCancelMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageDocumentCancel">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageDocumentControlledMapper.xml b/cnas-manage/src/main/resources/mapper/ManageDocumentControlledMapper.xml
index ec28677..a748604 100644
--- a/cnas-manage/src/main/resources/mapper/ManageDocumentControlledMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageDocumentControlledMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageDocumentControlledMapper">
+<mapper namespace="com.ruoyi.process.mapper.ManageDocumentControlledMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageDocumentControlled">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageDocumentIssueRecycleMapper.xml b/cnas-manage/src/main/resources/mapper/ManageDocumentIssueRecycleMapper.xml
index c31ff1e..01d95b7 100644
--- a/cnas-manage/src/main/resources/mapper/ManageDocumentIssueRecycleMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageDocumentIssueRecycleMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageDocumentIssueRecycleMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageDocumentIssueRecycleMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageDocumentIssueRecycle">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageDocumentListMapper.xml b/cnas-manage/src/main/resources/mapper/ManageDocumentListMapper.xml
index d775843..d4bf823 100644
--- a/cnas-manage/src/main/resources/mapper/ManageDocumentListMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageDocumentListMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageDocumentListMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageDocumentListMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageDocumentList">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageMeetingMapper.xml b/cnas-manage/src/main/resources/mapper/ManageMeetingMapper.xml
index 07e58f3..700c5dd 100644
--- a/cnas-manage/src/main/resources/mapper/ManageMeetingMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageMeetingMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageMeetingMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageMeetingMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageMeeting">
diff --git a/cnas-manage/src/main/resources/mapper/ManageMeetingParticipantsMapper.xml b/cnas-manage/src/main/resources/mapper/ManageMeetingParticipantsMapper.xml
index f11d7e4..f866b80 100644
--- a/cnas-manage/src/main/resources/mapper/ManageMeetingParticipantsMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageMeetingParticipantsMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageMeetingParticipantsMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageMeetingParticipantsMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageMeetingParticipants">
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordAuditMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordAuditMapper.xml
index da2ca90..2e216f4 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordAuditMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordAuditMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordAuditMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordAuditMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordAudit">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordCancelMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordCancelMapper.xml
index e6ddc49..039ec0f 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordCancelMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordCancelMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordCancelMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordCancelMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordCancel">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordCheckMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordCheckMapper.xml
index c0be1d4..1a1398e 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordCheckMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordCheckMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordCheckMapper">
+<mapper namespace="com.ruoyi.process.mapper.ManageRecordCheckMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordCheck">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsMapper.xml
index 4c314bd..bc59cb3 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordIntervalsMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordIntervalsMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordIntervals">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsTotalMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsTotalMapper.xml
index 0d79681..da181ed 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsTotalMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordIntervalsTotalMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordIntervalsTotalMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordIntervalsTotalMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordIntervalsTotal">
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordIssueRecycleMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordIssueRecycleMapper.xml
index 1d9616e..fead5a3 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordIssueRecycleMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordIssueRecycleMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordIssueRecycleMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordIssueRecycleMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordIssueRecycle">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordTotalMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordTotalMapper.xml
index db979cd..a06dbc1 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordTotalMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordTotalMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordTotalMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordTotalMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordTotal">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageRecordVerifyMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRecordVerifyMapper.xml
index dad537b..0cc2170 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRecordVerifyMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRecordVerifyMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRecordVerifyMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRecordVerifyMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRecordVerify">
<id column="id" property="id"/>
diff --git a/cnas-manage/src/main/resources/mapper/ManageReviewProgramFileMapper.xml b/cnas-manage/src/main/resources/mapper/ManageReviewProgramFileMapper.xml
index f02a0d4..262599f 100644
--- a/cnas-manage/src/main/resources/mapper/ManageReviewProgramFileMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageReviewProgramFileMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageReviewProgramFileMapper">
+<mapper namespace="com.ruoyi.process.mapper.ManageReviewProgramFileMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageReviewProgramFile">
diff --git a/cnas-manage/src/main/resources/mapper/ManageReviewProgramMapper.xml b/cnas-manage/src/main/resources/mapper/ManageReviewProgramMapper.xml
index 08b19a6..7ec06a9 100644
--- a/cnas-manage/src/main/resources/mapper/ManageReviewProgramMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageReviewProgramMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageReviewProgramMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageReviewProgramMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageReviewProgram">
diff --git a/cnas-manage/src/main/resources/mapper/ManageReviewReportMapper.xml b/cnas-manage/src/main/resources/mapper/ManageReviewReportMapper.xml
index 9837a99..5f59653 100644
--- a/cnas-manage/src/main/resources/mapper/ManageReviewReportMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageReviewReportMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageReviewReportMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageReviewReportMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageReviewReport">
diff --git a/cnas-manage/src/main/resources/mapper/ManageRiskAssessmentResultsMapper.xml b/cnas-manage/src/main/resources/mapper/ManageRiskAssessmentResultsMapper.xml
index 099738a..bb4e2c6 100644
--- a/cnas-manage/src/main/resources/mapper/ManageRiskAssessmentResultsMapper.xml
+++ b/cnas-manage/src/main/resources/mapper/ManageRiskAssessmentResultsMapper.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.yuanchu.mom.mapper.ManageRiskAssessmentResultsMapper">
+<mapper namespace="com.ruoyi.manage.mapper.ManageRiskAssessmentResultsMapper">
<!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.manage.pojo.ManageRiskAssessmentResults">
diff --git a/cnas-process/pom.xml b/cnas-process/pom.xml
new file mode 100644
index 0000000..5b8d1f9
--- /dev/null
+++ b/cnas-process/pom.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>ruoyi</artifactId>
+ <groupId>com.ruoyi</groupId>
+ <version>3.8.9</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>cnas-process</artifactId>
+
+ <properties>
+ <maven.compiler.source>8</maven.compiler.source>
+ <maven.compiler.target>8</maven.compiler.target>
+ </properties>
+
+ <dependencies>
+ <!--涓氬姟妯″潡-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>inspect-server</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>5.2.2</version> <!-- 璇锋牴鎹渶瑕侀�夋嫨鍚堥�傜殑鐗堟湰 -->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>5.2.2</version>
+ </dependency>
+
+ </dependencies>
+
+</project>
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java
new file mode 100644
index 0000000..e48407c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/InconsistentDistributionController.java
@@ -0,0 +1,95 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.dto.InconsistentDistributionDto;
+import com.ruoyi.process.pojo.InconsistentDistribution;
+import com.ruoyi.process.service.InconsistentDistributionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:20
+ */
+@Api(tags = "涓嶇鍚堥」鐨勫垎甯�")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/inconsistentDistribution")
+public class InconsistentDistributionController {
+
+ private InconsistentDistributionService inconsistentDistributionService;
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇�
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇�")
+ @GetMapping("/pageInconsistentDistribution")
+ public Result<IPage<InconsistentDistributionDto>> pageInconsistentDistribution(Page page,InconsistentDistribution inconsistentDistribution) throws Exception {
+ return Result.success(inconsistentDistributionService.pageInconsistentDistribution(page, inconsistentDistribution));
+ }
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冩柊澧�
+ * @return
+ */
+ @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冩柊澧�")
+ @PostMapping("/addInconsistentDistribution")
+ public Result addInconsistentDistribution(@RequestBody InconsistentDistributionDto inconsistentDistribution){
+ return Result.success(inconsistentDistributionService.addInconsistentDistribution(inconsistentDistribution));
+ }
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冧慨鏀�
+ * @return
+ */
+ @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冧慨鏀�")
+ @PostMapping("/updateInconsistentDistribution")
+ public Result updateInconsistentDistribution(@RequestBody InconsistentDistributionDto inconsistentDistribution){
+ return Result.success(inconsistentDistributionService.updateInconsistentDistribution(inconsistentDistribution));
+ }
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冨垹闄�
+ * @return
+ */
+ @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冨垹闄�")
+ @DeleteMapping("/delInconsistentDistribution")
+ public Result delInconsistentDistribution(Integer distributionId){
+ return Result.success(inconsistentDistributionService.delInconsistentDistribution(distributionId));
+ }
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯�
+ * @return
+ */
+ @ApiOperation(value = "涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯�")
+ @GetMapping("/getInconsistentDistributionOne")
+ public Result<InconsistentDistributionDto> getInconsistentDistributionOne(Integer distributionId){
+ return Result.success(inconsistentDistributionService.getInconsistentDistributionOne(distributionId));
+ }
+
+ /**
+ * 瀵煎嚭涓嶇鍚堥」鐨勫垎甯�
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭涓嶇鍚堥」鐨勫垎甯�")
+ @GetMapping("/exportInconsistentDistribution")
+ public void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response){
+ inconsistentDistributionService.exportInconsistentDistribution(distributionId, response);
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java
new file mode 100644
index 0000000..bddd3bd
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessComplainController.java
@@ -0,0 +1,67 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessComplain;
+import com.ruoyi.process.service.ProcessComplainService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鎶曡瘔 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 09:29:11
+ */
+@Api(tags = "鎶曡瘔")
+@RestController
+@RequestMapping("/processComplain")
+public class ProcessComplainController {
+
+ @Resource
+ private ProcessComplainService processComplainService;
+
+ @ApiOperation(value = "鎶曡瘔鎯呭喌姹囨�昏〃")
+ @GetMapping("/pageProcessComplain")
+ public Result pageProcessComplain(Page page,ProcessComplain processComplain) throws Exception {
+ return Result.success(processComplainService.pageProcessComplain(page, processComplain));
+ }
+
+ @ApiOperation(value = "鏂板鎶曡瘔")
+ @PostMapping("/addProcessComplain")
+ public Result addProcessComplain(@RequestBody ProcessComplain processComplain ) {
+ return Result.success(processComplainService.addProcessComplain(processComplain));
+ }
+
+ @ApiOperation(value = "鍒犻櫎鎶曡瘔")
+ @DeleteMapping("/delProcessComplain")
+ public Result delProcessComplain(Long id) {
+ return Result.success(processComplainService.removeById(id));
+ }
+
+ @ApiOperation(value = "鎶曡瘔璇︽儏")
+ @GetMapping("/getProcessComplain")
+ public Result getProcessComplain(Long id) {
+ return Result.success(processComplainService.getProcessComplain(id));
+ }
+
+ @ApiOperation(value = "澶勭悊鎶曡瘔")
+ @PostMapping("/doProcessComplain")
+ public Result doProcessComplain(@RequestBody ProcessComplain processComplain) {
+ return Result.success(processComplainService.doProcessComplain(processComplain));
+ }
+
+ @ApiOperation(value = "瀵煎嚭鍒楄〃")
+ @GetMapping("/exportProcessComplain")
+ public void exportProcessComplain(ProcessComplain processComplain,HttpServletResponse response) throws Exception {
+ processComplainService.exportProcessComplain(processComplain,response);
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java
new file mode 100644
index 0000000..790e626
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessDealController.java
@@ -0,0 +1,61 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessDeal;
+import com.ruoyi.process.service.ProcessDealService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 02:50:19
+ */
+@RestController
+@RequestMapping("/processDeal")
+@Api(tags = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+public class ProcessDealController {
+
+ @Resource
+ private ProcessDealService processDealService;
+
+ @ApiOperation(value = "鏌ヨ妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃鎯�")
+ @GetMapping("/pageProcessDeal")
+ public Result pageProcessDeal(Page page,ProcessDeal processDeal) throws Exception {
+ return Result.success(processDealService.pageProcessDeal(page, processDeal));
+ }
+
+ @ApiOperation(value = "鏂板妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @PostMapping("/addProcessDeal")
+ public Result addProcessDeal(@RequestBody ProcessDeal processDeal) {
+ return Result.success(processDealService.addProcessDeal(processDeal));
+ }
+
+ @ApiOperation(value = "鍒犻櫎妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @DeleteMapping("/delProcessDeal")
+ public Result delProcessDeal(Integer id) {
+ return Result.success(processDealService.delProcessDeal(id));
+ }
+
+ @ApiOperation(value = "淇敼妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @PostMapping("/doProcessDeal")
+ public Result doProcessDeal(@RequestBody ProcessDeal processDeal) {
+ return Result.success(processDealService.doProcessDeal(processDeal));
+ }
+
+ @ApiOperation(value = "鏌ョ湅妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @GetMapping("/getProcessDeal")
+ public Result getProcessDeal(Integer id) {
+ return Result.success(processDealService.getById(id));
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java
new file mode 100644
index 0000000..9d0d4cf
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessEvaluateController.java
@@ -0,0 +1,63 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessEvaluate;
+import com.ruoyi.process.service.ProcessEvaluateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 01:10:43
+ */
+@RestController
+@RequestMapping("/processEvaluate")
+@Api(tags = "娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�")
+public class ProcessEvaluateController {
+
+ @Resource
+ private ProcessEvaluateService processEvaluateService;
+
+ @ApiOperation(value = "鏌ヨ娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹氬垪琛�")
+ @GetMapping("/pageProcessEvaluate")
+ public Result pageProcessEvaluate(Page page,ProcessEvaluate processEvaluate) throws Exception {
+ return Result.success(processEvaluateService.pageProcessEvaluate(page, processEvaluate));
+ }
+
+ @ApiOperation(value = "鏂板娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�")
+ @PostMapping("/addProcessEvaluate")
+ public Result addProcessEvaluate(MultipartFile file){
+ return Result.success(processEvaluateService.addProcessEvaluate(file));
+ }
+
+ @ApiOperation(value = "璇勪环")
+ @PostMapping("/doProcessEvaluate")
+ public Result doProcessEvaluate(@RequestBody ProcessEvaluate processEvaluate){
+ return Result.success(processEvaluateService.doProcessEvaluate(processEvaluate));
+ }
+
+ @ApiOperation(value = "鍒犻櫎娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�")
+ @DeleteMapping("/delProcessEvaluate")
+ public Result delProcessEvaluate(Long id){
+ return Result.success(processEvaluateService.removeById(id));
+ }
+
+ @ApiOperation(value = "瀵煎嚭娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�")
+ @GetMapping("/exportProcessEvaluate")
+ public void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception{
+ processEvaluateService.exportProcessEvaluate(processEvaluate,response);
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java
new file mode 100644
index 0000000..84ac8ca
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java
@@ -0,0 +1,103 @@
+package com.ruoyi.process.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.dto.ProcessMethodSearchNewDto;
+import com.ruoyi.process.pojo.ProcessMethodSearchNew;
+import com.ruoyi.process.service.ProcessMethodSearchNewService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鏍囧噯鏌ユ柊
+ *
+ * @author zhuo
+ * @since 2024-11-04
+ */
+@Api(tags = "鏍囧噯鏌ユ柊")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/processMethodSearchNew")
+public class ProcessMethodSearchNewController {
+
+ private ProcessMethodSearchNewService processMethodSearchNewService;
+
+ /**
+ * 鏂板鏍囧噯鏌ユ柊
+ *
+ * @param processMethodSearchNewList
+ * @return
+ */
+ @ApiOperation(value = "鏂板鏍囧噯鏌ユ柊")
+ @PostMapping("/addMethodSearchNew")
+ public Result addMethodSearchNew(@RequestBody List<ProcessMethodSearchNew> processMethodSearchNewList) {
+ return Result.success(processMethodSearchNewService.addMethodSearchNew(processMethodSearchNewList));
+ }
+
+ /**
+ * 淇敼鏍囧噯鏌ユ柊
+ *
+ * @param processMethodSearchNew
+ * @return
+ */
+ @ApiOperation(value = "淇敼鏍囧噯鏌ユ柊")
+ @PostMapping("/updateMethodSearchNew")
+ public Result updateMethodSearchNew(@RequestBody ProcessMethodSearchNew processMethodSearchNew) {
+ return Result.success(processMethodSearchNewService.updateById(processMethodSearchNew));
+ }
+
+ /**
+ * 鏍囧噯鏌ユ柊鍒楄〃
+ *
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鏍囧噯鏌ユ柊鍒楄〃")
+ @GetMapping("/pageMethodSearchNew")
+ public Result<IPage<ProcessMethodSearchNew>> pageMethodSearchNew( Page page,ProcessMethodSearchNewDto processMethodSearchNew) throws Exception {
+ return Result.success(processMethodSearchNewService.pageMethodSearchNew(page, processMethodSearchNew));
+ }
+
+ @ApiOperation(value = "鏍囧噯鏌ユ柊瀵煎嚭")
+ @GetMapping("/exportMethodSearchNew")
+ public void exportMethodSearchNew(ProcessMethodSearchNewDto processMethodSearchNew, HttpServletResponse response) throws Exception {
+ processMethodSearchNewService.exportMethodSearchNew(processMethodSearchNew, response);
+ }
+
+
+ /**
+ * 瀵煎叆鏍囧噯鏌ユ柊
+ *
+ * @return
+ */
+ @ApiOperation(value = "瀵煎叆鏍囧噯鏌ユ柊")
+ @PostMapping("/importMethodSearchNew")
+ public Result importMethodSearchNew(MultipartFile file) {
+ return Result.success(processMethodSearchNewService.importMethodSearchNew(file));
+ }
+
+ /**
+ * 鍒犻櫎鏍囧噯鏌ユ柊
+ *
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鏍囧噯鏌ユ柊")
+ @DeleteMapping("/deleteById")
+ public Result deleteByMethodSearchNewId(@RequestParam("methodSearchNewId")Integer methodSearchNewId) {
+ processMethodSearchNewService.removeById(methodSearchNewId);
+ return Result.success("鍒犻櫎鎴愬姛");
+ }
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java
new file mode 100644
index 0000000..bf42b72
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodVerifyController.java
@@ -0,0 +1,155 @@
+package com.ruoyi.process.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.dto.ProcessMethodVerifyDto;
+import com.ruoyi.process.pojo.ProcessMethodVerify;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+import com.ruoyi.process.service.ProcessMethodVerifyMethodFileService;
+import com.ruoyi.process.service.ProcessMethodVerifyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@RestController
+@RequestMapping("/processMethodVerify")
+@Api(tags = "鏍囧噯鏂规硶楠岃瘉")
+@AllArgsConstructor
+public class ProcessMethodVerifyController {
+
+
+ private ProcessMethodVerifyService ProcessMethodVerifyService;
+
+ private ProcessMethodVerifyMethodFileService processMethodVerifyMethodFileService;
+
+
+
+ /**
+ * 鏍囧噯鏌ユ柊鍒楄〃
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鏍囧噯鏂规硶鏇存柊楠岃瘉鍒楄〃")
+ @GetMapping("/pagesMethodVerify")
+ public Result<IPage<ProcessMethodVerify>> pagesMethodVerify(Page page,ProcessMethodVerifyDto methodVerifyDto) throws Exception {
+ return Result.success(ProcessMethodVerifyService.pagesMethodVerify(page, methodVerifyDto));
+ }
+
+ /**
+ * 鏂板鏍囧噯鏂规硶楠岃瘉
+ * @param methodVerifyDto
+ * @return
+ */
+ @ApiOperation(value = "鏂板鏍囧噯鏂规硶楠岃瘉")
+ @PostMapping("/addMethodVerify")
+ public Result addMethodVerify(@RequestBody ProcessMethodVerifyDto methodVerifyDto ) {
+ return Result.success(ProcessMethodVerifyService.addMethodSearchNew(methodVerifyDto));
+ }
+
+ /**
+ * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏
+ * @param methodVerifyId
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏")
+ @GetMapping("/getMethodVerifyOne")
+ public Result<ProcessMethodVerifyDto> getMethodVerifyOne(Integer methodVerifyId) {
+ return Result.success(ProcessMethodVerifyService.getMethodVerifyOne(methodVerifyId));
+ }
+
+
+ /**
+ * 淇敼鏍囧噯鏂规硶楠岃瘉
+ * @param methodVerifyDto
+ * @return
+ */
+ @ApiOperation(value = "淇敼鏍囧噯鏂规硶楠岃瘉")
+ @PostMapping("/updateMethodVerify")
+ public Result updateMethodVerify(@RequestBody ProcessMethodVerifyDto methodVerifyDto ) {
+ return Result.success(ProcessMethodVerifyService.updateMethodVerify(methodVerifyDto));
+ }
+
+ /**
+ * 鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉
+ * @param methodVerifyId
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉")
+ @DeleteMapping("/delMethodVerify")
+ public Result delMethodVerify(Integer methodVerifyId){
+ return Result.success(ProcessMethodVerifyService.delMethodVerify(methodVerifyId));
+ }
+
+ /**
+ * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉
+ * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id
+ */
+ @ApiOperation(value = "瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉")
+ @GetMapping("/exportMethodVerify")
+ public void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response){
+ ProcessMethodVerifyService.exportMethodVerify(methodVerifyId, response);
+ }
+
+ /**
+ * 楠岃瘉纭
+ * @param methodVerifyId
+ * @return
+ */
+ @ApiOperation(value = "楠岃瘉纭")
+ @PostMapping("/methodVerifyAffirm")
+ public Result methodVerifyAffirm(Integer methodVerifyId) {
+ return Result.success(ProcessMethodVerifyService.methodVerifyAffirm(methodVerifyId));
+ }
+
+ /**
+ * 鏂规硶楠岃瘉鏂板鍘熷璁板綍
+ * @param methodVerifyId
+ * @param file
+ * @return
+ */
+ @ApiOperation(value = "鏂规硶楠岃瘉鏂板鍘熷璁板綍")
+ @PostMapping("/uploadVerifyMethodFile")
+ public Result<?> uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file) {
+ return Result.success(ProcessMethodVerifyService.uploadVerifyMethodFile(methodVerifyId, file));
+ }
+
+
+ /**
+ * 鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃
+ * @return
+ */
+ @ApiOperation(value = "鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃")
+ @GetMapping("/getVerifyMethodFileList")
+ public Result<List<ProcessMethodVerifyMethodFile>> getVerifyMethodFileList(Integer methodVerifyId){
+ return Result.success(ProcessMethodVerifyService.getVerifyMethodFileList(methodVerifyId));
+ }
+
+ /**
+ * 鏍囧噯鏂规硶鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃
+ * @return
+ */
+ @ApiOperation(value = "鏍囧噯鏂规硶鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃")
+ @DeleteMapping("/delVerifyMethodFileList")
+ public Result delVerifyMethodFileList(Integer methodFileId){
+ return Result.success(processMethodVerifyMethodFileService.removeById(methodFileId));
+ }
+
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java
new file mode 100644
index 0000000..03588e2
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java
@@ -0,0 +1,69 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.dto.ProcessOrderDto;
+import com.ruoyi.process.pojo.ProcessOrder;
+import com.ruoyi.process.service.ProcessOrderService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+@RestController
+@RequestMapping("/processOrder")
+@Api(tags = "瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
+public class ProcessOrderController {
+
+ @Resource
+ private ProcessOrderService processOrderService;
+
+ @ApiOperation(value = "鏌ヨ瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫鍒楄〃")
+ @GetMapping("/pageProcessOrder")
+ public Result pageProcessOrder(Page page,ProcessOrderDto processOrderDto) throws Exception {
+ return Result.success(processOrderService.pageProcessOrder(page, processOrderDto));
+ }
+
+ @ApiOperation(value = "鍒犻櫎瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
+ @DeleteMapping("/delProcessOrder")
+ public Result delProcessOrder(Long id) {
+ return Result.success(processOrderService.removeById(id));
+ }
+
+ @ApiOperation(value = "淇敼瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
+ @PostMapping("/doProcessOrder")
+ public Result doProcessOrder(@RequestBody ProcessOrder processOrder) {
+ return Result.success(processOrderService.doProcessOrder(processOrder));
+ }
+
+ @ApiOperation(value = "鏌ョ湅璇︽儏瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
+ @GetMapping("/getProcessOrder")
+ public Result getProcessOrder(Integer id) {
+ return Result.success(processOrderService.getProcessOrder(id));
+ }
+
+
+ /**
+ * 瀵煎嚭妫�楠屽鎵樺崟
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭妫�楠屽鎵樺崟")
+ @GetMapping("/exportInspectionOrder")
+ public void exportInspectionOrder(Integer id, HttpServletResponse response){
+ processOrderService.exportInspectionOrder(id, response);
+ }
+
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
new file mode 100644
index 0000000..d3f5311
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessReportController.java
@@ -0,0 +1,68 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.dto.ProcessReportDto;
+import com.ruoyi.process.pojo.ProcessReport;
+import com.ruoyi.process.service.ProcessReportService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 08:58:39
+ */
+@RestController
+@RequestMapping("/processReport")
+@Api(tags = "妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃")
+public class ProcessReportController {
+
+ @Resource
+ private ProcessReportService processReportService;
+
+ @ApiOperation(value = "鏌ヨ妫�楠屾姤鍛婂彂鏀剧櫥璁板垪琛�")
+ @GetMapping("/pageProcessReport")
+ public Result pageProcessReport(Page page,ProcessReport processReport) throws Exception {
+ return Result.success(processReportService.pageProcessReport(page, processReport));
+ }
+
+ @ApiOperation(value = "鏂板妫�楠屾姤鍛婂彂鏀剧櫥璁�")
+ @PostMapping("/addProcessReport")
+ public Result addProcessReport(@RequestBody ProcessReport processReport) {
+ return Result.success(processReportService.save(processReport));
+ }
+
+ @ApiOperation(value = "鍒犻櫎妫�楠屾姤鍛婂彂鏀剧櫥璁�")
+ @DeleteMapping("/delProcessReport")
+ public Result delProcessReport(Long id) {
+ return Result.success(processReportService.removeById(id));
+ }
+
+ @ApiOperation(value = "鏌ョ湅妫�楠屾姤鍛婂彂鏀剧櫥璁拌鎯�")
+ @GetMapping("/getProcessReport")
+ public Result getProcessReport(Long id) {
+ return Result.success(processReportService.getById(id));
+ }
+
+ @ApiOperation(value = "淇敼妫�楠屾姤鍛婂彂鏀剧櫥璁�")
+ @PostMapping("/doProcessReport")
+ public Result doProcessReport(@RequestBody ProcessReport processReport) {
+ return Result.success(processReportService.updateById(processReport));
+ }
+
+ @ApiOperation(value = "瀵煎嚭妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃")
+ @GetMapping("/exportProcessReport")
+ public Result exportProcessReport( ProcessReportDto processReportDto) {
+ return Result.success(processReportService.exportProcessReport(processReportDto.getIds()));
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java
new file mode 100644
index 0000000..b77b3fb
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessSampleController.java
@@ -0,0 +1,62 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessSample;
+import com.ruoyi.process.service.ProcessSampleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:49
+ */
+@RestController
+@RequestMapping("/processSample")
+@Api(tags = "鏍峰搧鎺ユ敹")
+public class ProcessSampleController {
+
+ @Resource
+ private ProcessSampleService processSampleService;
+
+ @ApiOperation(value = "鏌ヨ鏍峰搧鎺ユ敹璇︽儏")
+ @GetMapping("/pageProcessSample")
+ public Result pageProcessSample(Page page,ProcessSample processSample) throws Exception {
+ return Result.success(processSampleService.pageProcessSample(page, processSample));
+ }
+
+ @ApiOperation(value = "鏂板鏍峰搧鎺ユ敹璇︽儏")
+ @PostMapping("/addProcessSample")
+ public Result addProcessSample(@RequestBody ProcessSample processSample) {
+ return Result.success(processSampleService.addProcessSample(processSample));
+ }
+
+ @ApiOperation(value = "鍒犻櫎鏍峰搧鎺ユ敹")
+ @DeleteMapping("/delProcessSample")
+ public Result delProcessSample(Integer id) {
+ return Result.success(processSampleService.delProcessSample(id));
+ }
+
+ @ApiOperation(value = "淇敼鏍峰搧鎺ユ敹")
+ @PostMapping("/doProcessSample")
+ public Result doProcessSample(@RequestBody ProcessSample processSample) {
+ return Result.success(processSampleService.doProcessSample(processSample));
+ }
+
+ @ApiOperation(value = "鏌ョ湅鏍峰搧鎺ユ敹")
+ @GetMapping("/getProcessSample")
+ public Result getProcessSample(Integer id) {
+ return Result.success(processSampleService.getById(id));
+ }
+
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java
new file mode 100644
index 0000000..c45e5eb
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotalSampleController.java
@@ -0,0 +1,60 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessTotalSample;
+import com.ruoyi.process.service.ProcessTotalSampleService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹鎬昏〃 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:58
+ */
+@RestController
+@RequestMapping("/processTotalSample")
+@Api(tags = "鏍峰搧鎺ユ敹鎬昏〃")
+public class ProcessTotalSampleController {
+
+ @Resource
+ private ProcessTotalSampleService processTotalSampleService;
+
+ @ApiOperation(value = "鏌ヨ鏍峰搧鎺ユ敹鍒楄〃")
+ @GetMapping("/pageProcessTotalSample")
+ public Result pageProcessTotalSample(Page page,ProcessTotalSample processTotalSample) throws Exception {
+ return Result.success(processTotalSampleService.pageProcessTotalSample(page, processTotalSample));
+ }
+
+ @ApiOperation(value = "鎻愪氦鏍峰搧鎺ユ敹")
+ @PostMapping("/submitProcessTotalSample")
+ public Result submitProcessTotalSample(@RequestBody Map<String, Object> param) {
+ Integer id = (Integer) param.get("id");
+ return Result.success(processTotalSampleService.submitProcessTotalSample(id));
+ }
+
+ @ApiOperation(value = "瀹℃牳鏍峰搧鎺ユ敹")
+ @PostMapping("/checkProcessTotalSample")
+ public Result checkProcessTotalSample(@RequestBody Map<String, Object> param) {
+ Integer id = (Integer) param.get("id");
+ String state = (String) param.get("state");
+ return Result.success(processTotalSampleService.checkProcessTotalSample(id, state));
+ }
+
+ @ApiOperation(value = "鎵瑰噯鏍峰搧鎺ユ敹")
+ @PostMapping("/ratifyProcessTotalSample")
+ public Result ratifyProcessTotalSample(@RequestBody Map<String, Object> param) {
+ Integer id = (Integer) param.get("id");
+ String state = (String) param.get("state");
+ return Result.success(processTotalSampleService.ratifyProcessTotalSample(id,state));
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java
new file mode 100644
index 0000000..00076de
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessTotaldealController.java
@@ -0,0 +1,61 @@
+package com.ruoyi.process.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+import com.ruoyi.process.service.ProcessTotaldealService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 03:59:09
+ */
+@RestController
+@RequestMapping("/processTotaldeal")
+@Api(tags = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+public class ProcessTotaldealController {
+
+ @Resource
+ private ProcessTotaldealService processTotaldealService;
+
+ @ApiOperation(value = "鏌ヨ妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃垪琛�")
+ @GetMapping("/pageProcessTotaldeal")
+ public Result pageProcessTotaldeal(Page page,ProcessTotaldeal processTotaldeal) throws Exception {
+ return Result.success(processTotaldealService.pageProcessTotaldeal(page, processTotaldeal));
+ }
+
+ @ApiOperation(value = "鎻愪氦妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @PostMapping("/submitProcessTotaldeal")
+ public Result submitProcessTotaldeal(@RequestBody Map<String, Integer> param) {
+ Integer id = param.get("id");
+ return Result.success(processTotaldealService.submitProcessTotaldeal(id));
+ }
+
+ @ApiOperation(value = "瀹℃牳妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @PostMapping("/checkProcessTotaldeal")
+ public Result checkProcessTotaldeal(@RequestBody Map<String, Object> param) {
+ Integer id = (Integer) param.get("id");
+ String state = (String) param.get("state");
+ return Result.success(processTotaldealService.checkProcessTotaldeal(id, state));
+ }
+
+ @ApiOperation(value = "鎵瑰噯妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+ @PostMapping("/ratifyProcessTotaldeal")
+ public Result ratifyProcessTotaldeal(@RequestBody Map<String, Object> param) {
+ Integer id = (Integer) param.get("id");
+ String state = (String) param.get("state");
+ return Result.success(processTotaldealService.ratifyProcessTotaldeal(id,state));
+ }
+
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java
new file mode 100644
index 0000000..efaf9be
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java
@@ -0,0 +1,273 @@
+package com.ruoyi.process.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.dto.QualityMonitorDto;
+import com.ruoyi.process.mapper.QualityMonitorDetailsEvaluateFileMapper;
+import com.ruoyi.process.pojo.*;
+import com.ruoyi.process.service.QualityMonitorDetailsService;
+import com.ruoyi.process.service.QualityMonitorService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Api(tags = "璐ㄩ噺鐩戞帶璁″垝")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/qualityMonitor")
+public class QualityMonitorController {
+
+ private QualityMonitorService qualityMonitorService;
+
+ private QualityMonitorDetailsService qualityMonitorDetailsService;
+
+ private QualityMonitorDetailsEvaluateFileMapper qualityMonitorDetailsEvaluateFileMapper;
+
+ /**
+ * 瀵煎叆鐩戞帶璁″垝
+ * @return
+ */
+ @ApiOperation(value = "瀵煎叆鐩戞帶璁″垝")
+ @PostMapping("/importQualityMonitor")
+ public Result importQualityMonitor(@RequestParam("file") MultipartFile file,@RequestParam("suffix")String suffix){
+ return Result.success(qualityMonitorService.importQualityMonitor(file,suffix));
+ }
+
+ /**
+ * 鐩戞帶璁″垝瀹℃牳
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝瀹℃牳")
+ @PostMapping("/examineQualityMonitor")
+ public Result examineQualityMonitor(@RequestBody QualityMonitor qualityMonitor){
+ return Result.success(qualityMonitorService.examineQualityMonitor(qualityMonitor));
+ }
+
+ /**
+ * 鐩戞帶璁″垝鍒犻櫎
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝鍒犻櫎")
+ @DeleteMapping("/delQualitySupervise")
+ public Result delQualitySupervise(Integer qualityMonitorId){
+ qualityMonitorService.removeById(qualityMonitorId);
+ // 灏嗘槑缁嗚〃涔熺粰鍒犻櫎
+ qualityMonitorDetailsService.remove(new LambdaQueryWrapper<QualityMonitorDetails>()
+ .eq(QualityMonitorDetails::getQualityMonitorId,qualityMonitorId));
+ return Result.success();
+ }
+
+ /**
+ * 鐩戞帶璁″垝鎵瑰噯
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝鎵瑰噯")
+ @PostMapping("/ratifyQualityMonitor")
+ public Result ratifyQualityMonitor(@RequestBody QualityMonitor qualityMonitor){
+ return Result.success(qualityMonitorService.ratifyQualityMonitor(qualityMonitor));
+ }
+
+
+ /**
+ * 鐩戞帶璁″垝鍒楄〃
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝鍒楄〃")
+ @GetMapping("/pageQualityMonitor")
+ public Result<IPage<QualityMonitorDto>> pageQualityMonitor(Page page,QualityMonitor qualityMonitor) throws Exception {
+ return Result.success(qualityMonitorService.pageQualityMonitor(page, qualityMonitor));
+ }
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏鍒楄〃
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝璇︽儏鍒楄〃")
+ @GetMapping("/pageQualityMonitorDetail")
+ public Result<IPage<QualityMonitorDetails>> pageQualityMonitorDetail(Page page,QualityMonitorDetails qualityMonitorDetails) throws Exception {
+ return Result.success(qualityMonitorService.pageQualityMonitorDetail(page, qualityMonitorDetails));
+ }
+
+ /**
+ * 鏂板鐩戞帶璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戞帶璁″垝璇︽儏")
+ @PostMapping("/addQualityMonitorDetail")
+ public Result addQualityMonitorDetail(@RequestBody QualityMonitorDetails qualityMonitorDetails){
+ if (qualityMonitorDetails.getQualityMonitorId() == null) {
+ throw new ErrorException("缂哄皯鐩戞帶璁″垝涓昏〃id");
+ }
+ return Result.success(qualityMonitorDetailsService.save(qualityMonitorDetails));
+ }
+
+ /**
+ * 淇敼鐩戞帶璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "淇敼鐩戞帶璁″垝璇︽儏")
+ @PostMapping("/updateQualityMonitorDetail")
+ public Result updateQualityMonitorDetail(@RequestBody QualityMonitorDetails qualityMonitorDetails){
+ return Result.success(qualityMonitorDetailsService.updateById(qualityMonitorDetails));
+ }
+
+ /**
+ * 鍒犻櫎鐩戞帶璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鐩戞帶璁″垝璇︽儏")
+ @DeleteMapping("/delQualityMonitorDetail")
+ public Result delQualityMonitorDetail(Integer qualityMonitorDetailsId){
+ return Result.success(qualityMonitorDetailsService.removeById(qualityMonitorDetailsId));
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戞帶璁″垝")
+ @GetMapping("/exportQualityMonitorDetail")
+ public void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response){
+ qualityMonitorService.exportQualityMonitorDetail(qualityMonitorId, response);
+ }
+
+
+ /************************************************************ 瀹炴柦 *******************************************************************/
+
+ /**
+ * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅")
+ @GetMapping("/getQualityMonitorRatify")
+ public Result<QualityMonitorDetailsRatify> getQualityMonitorRatify(Integer qualityMonitorDetailsId){
+ return Result.success(qualityMonitorService.getQualityMonitorRatify(qualityMonitorDetailsId));
+ }
+
+ /**
+ * 鏂板鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅")
+ @PostMapping("/addQualityMonitorRatify")
+ public Result addQualityMonitorRatify(@RequestBody QualityMonitorDetailsRatify qualityMonitorDetailsRatify){
+ return Result.success(qualityMonitorService.addQualityMonitorRatify(qualityMonitorDetailsRatify));
+ }
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏鎻愪氦鎵瑰噯鎰忚
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璁″垝璇︽儏鎻愪氦鎵瑰噯鎰忚")
+ @PostMapping("/addQualityMonitorRatifyOpinion")
+ public Result addQualityMonitorRatifyOpinion(@RequestBody QualityMonitorDetailsRatify qualityMonitorDetailsRatify){
+ return Result.success(qualityMonitorService.addQualityMonitorRatifyOpinion(qualityMonitorDetailsRatify));
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ * @param qualityMonitorDetailsId 鐩戞帶璁″垝璇︽儏瀹炴柦id
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅")
+ @GetMapping("/exportQualityMonitorRatify")
+ public void exportQualityMonitorRatify(Integer qualityMonitorDetailsId, HttpServletResponse response){
+ qualityMonitorService.exportQualityMonitorRatify(qualityMonitorDetailsId, response);
+ }
+
+ /************************************************************ 璇勪环 *******************************************************************/
+
+ /**
+ * 鏌ヨ鐩戞帶璇勪环
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戞帶璇勪环")
+ @GetMapping("/getQualityMonitorEvaluate")
+ public Result<QualityMonitorDetailsEvaluate> getQualityMonitorEvaluate(Integer qualityMonitorDetailsId){
+ return Result.success(qualityMonitorService.getQualityMonitorEvaluate(qualityMonitorDetailsId));
+ }
+
+ /**
+ * 鏂板鐩戞帶璇勪环
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戞帶璇勪环")
+ @PostMapping("/addQualityMonitorEvaluate")
+ public Result addQualityMonitorEvaluate(@RequestBody QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate){
+ return Result.success(qualityMonitorService.addQualityMonitorEvaluate(qualityMonitorDetailsEvaluate));
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璇勪环
+ * @param qualityMonitorDetailsId 鐩戞帶璇勪环id
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戞帶璇勪环")
+ @GetMapping("/exportQualityMonitorEvaluate")
+ public void exportQualityMonitorEvaluate(Integer qualityMonitorDetailsId, HttpServletResponse response){
+ qualityMonitorService.exportQualityMonitorEvaluate(qualityMonitorDetailsId, response);
+ }
+
+ /**
+ * 鐩戞帶璇勪环鎵瑰噯鎰忚
+ * @return
+ */
+ @ApiOperation(value = "鐩戞帶璇勪环鎵瑰噯鎰忚")
+ @PostMapping("/addMonitorEvaluateOpinion")
+ public Result addMonitorEvaluateOpinion(@RequestBody QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate){
+ return Result.success(qualityMonitorService.addMonitorEvaluateOpinion(qualityMonitorDetailsEvaluate));
+ }
+
+
+ /**
+ * 鏂板鐩戞帶璇勪环闄勪欢琛�
+ * @param detailsEvaluateId
+ * @param file
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戞帶璇勪环闄勪欢琛�")
+ @PostMapping("/uploadEvaluateFile")
+ public Result<?> uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) {
+ return Result.success(qualityMonitorService.uploadEvaluateFile(detailsEvaluateId, file));
+ }
+
+
+ /**
+ * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃")
+ @GetMapping("/getEvaluateFileList")
+ public Result<List<QualityMonitorDetailsEvaluateFile>> getEvaluateFileList(Integer detailsEvaluateId){
+ return Result.success(qualityMonitorService.getEvaluateFileList(detailsEvaluateId));
+ }
+
+ /**
+ * 鍒犻櫎鐩戞帶璇勪环闄勪欢琛�
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鐩戞帶璇勪环闄勪欢琛�")
+ @DeleteMapping("/delVerifyEvaluateFileList")
+ public Result delVerifyMethodFileList(Integer evaluateFileId){
+ return Result.success(qualityMonitorDetailsEvaluateFileMapper.deleteById(evaluateFileId));
+ }
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java
new file mode 100644
index 0000000..0fce149
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java
@@ -0,0 +1,301 @@
+package com.ruoyi.process.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.dto.QualitySuperviseDetailsDto;
+import com.ruoyi.process.mapper.QualitySuperviseDetailsCorrectFileMapper;
+import com.ruoyi.process.pojo.*;
+import com.ruoyi.process.service.QualitySuperviseDetailsService;
+import com.ruoyi.process.service.QualitySuperviseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 璐ㄩ噺鐩戠潱涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Api(tags = "璐ㄩ噺鐩戠潱璁″垝")
+@AllArgsConstructor
+@RestController
+@RequestMapping("/qualitySupervise")
+public class QualitySuperviseController {
+
+ private QualitySuperviseService qualitySuperviseService;
+ private QualitySuperviseDetailsService qualitySuperviseDetailsService;
+ private QualitySuperviseDetailsCorrectFileMapper qualitySuperviseDetailsCorrectFileMapper;
+
+ /**
+ * 瀵煎叆鐩戠潱璁″垝
+ * @return
+ */
+ @ApiOperation(value = "瀵煎叆鐩戠潱璁″垝")
+ @PostMapping("/importQualitySupervise")
+ public Result importQualitySupervise(MultipartFile file){
+ return Result.success(qualitySuperviseService.importQualitySupervise(file));
+ }
+
+
+
+ /**
+ * 鐩戠潱璁″垝鍒楄〃
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鐩戠潱璁″垝鍒楄〃")
+ @GetMapping("/pageQualitySupervise")
+ public Result<IPage<QualitySupervise>> pageQualitySupervise(Page page,QualitySupervise qualitySupervise) throws Exception {
+ return Result.success(qualitySuperviseService.pageQualitySupervise(page, qualitySupervise));
+ }
+
+ /**
+ * 鐩戠潱璁″垝鎵瑰噯
+ * @return
+ */
+ @ApiOperation(value = "鐩戠潱璁″垝鎵瑰噯")
+ @PostMapping("/ratifyQualitySupervise")
+ public Result ratifyQualitySupervise(@RequestBody QualitySupervise qualitySupervise){
+ return Result.success(qualitySuperviseService.ratifyQualitySupervise(qualitySupervise));
+ }
+
+ /**
+ * 鐩戠潱璁″垝鍒犻櫎
+ * @return
+ */
+ @ApiOperation(value = "鐩戠潱璁″垝鍒犻櫎")
+ @DeleteMapping("/delQualitySupervise")
+ public Result delQualitySupervise(Integer superviseId){
+ return Result.success(qualitySuperviseService.removeById(superviseId));
+ }
+
+ /**
+ * 鐩戠潱璁″垝璇︽儏鍒楄〃
+ * @param
+ * @return
+ */
+ @ApiOperation(value = "鐩戠潱璁″垝璇︽儏鍒楄〃")
+ @GetMapping("/pageQualitySuperviseDetail")
+ public Result<IPage<QualitySuperviseDetailsDto>> pageQualitySuperviseDetail(Page page,QualitySuperviseDetails qualitySuperviseDetails) throws Exception {
+ return Result.success(qualitySuperviseService.pageQualitySuperviseDetail(page, qualitySuperviseDetails));
+ }
+
+ /**
+ * 鏂板鐩戠潱璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戠潱璁″垝璇︽儏")
+ @PostMapping("/addQualitySuperviseDetail")
+ public Result addQualitySuperviseDetail(@RequestBody QualitySuperviseDetails qualitySuperviseDetails){
+ if (qualitySuperviseDetails.getSuperviseId() == null) {
+ throw new ErrorException("缂哄皯鐩戠潱璁″垝涓昏〃id");
+ }
+ return Result.success(qualitySuperviseDetailsService.save(qualitySuperviseDetails));
+ }
+
+ /**
+ * 淇敼鐩戠潱璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "淇敼鐩戠潱璁″垝璇︽儏")
+ @PostMapping("/updateQualitySuperviseDetail")
+ public Result updateQualitySuperviseDetail(@RequestBody QualitySuperviseDetails qualitySuperviseDetails){
+ return Result.success(qualitySuperviseDetailsService.updateById(qualitySuperviseDetails));
+ }
+
+ /**
+ * 鍒犻櫎鐩戠潱璁″垝璇︽儏
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鐩戠潱璁″垝璇︽儏")
+ @DeleteMapping("/delQualitySuperviseDetail")
+ public Result delQualitySuperviseDetail(Integer superviseDetailsId){
+ return Result.success(qualitySuperviseDetailsService.removeById(superviseDetailsId));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱璁″垝
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戠潱璁″垝")
+ @GetMapping("/exportQualitySupervise")
+ public void exportQualitySupervise(Integer superviseId, HttpServletResponse response){
+ qualitySuperviseService.exportQualitySupervise(superviseId, response);
+ }
+
+ /************************************************* 璁板綍 *********************************************************/
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍淇℃伅
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍淇℃伅")
+ @GetMapping("/getSuperviseDetailRecord")
+ public Result<QualitySuperviseDetailsRecord> getSuperviseDetailRecord(Integer superviseDetailsId){
+ return Result.success(qualitySuperviseService.getSuperviseDetailRecord(superviseDetailsId));
+ }
+
+ /**
+ * 鏂板鐩戠潱璁板綍淇℃伅
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戠潱璁板綍淇℃伅")
+ @PostMapping("/addSuperviseDetailRecord")
+ public Result addSuperviseDetailRecord(@RequestBody QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord){
+ return Result.success(qualitySuperviseService.addSuperviseDetailRecord(qualitySuperviseDetailsRecord));
+ }
+
+ /**
+ * 鐩戠潱璁板綍鎵瑰噯
+ * @return
+ */
+ @ApiOperation(value = "鐩戠潱璁板綍鎵瑰噯")
+ @PostMapping("/addSuperviseRecordOpinion")
+ public Result addSuperviseRecordOpinion(@RequestBody QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord){
+ return Result.success(qualitySuperviseService.addSuperviseRecordOpinion(qualitySuperviseDetailsRecord));
+ }
+
+ /**
+ * 瀵煎嚭璐ㄩ噺鐩戠潱璇︽儏璁板綍琛�
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戠潱璁板綍琛�")
+ @GetMapping("/exportSuperviseDetailRecord")
+ public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response){
+ qualitySuperviseService.exportSuperviseDetailRecord(superviseDetailsId, response);
+ }
+
+ /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/
+
+
+ /**
+ * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�")
+ @PostMapping("/addSuperviseDetailAccording")
+ public Result addSuperviseDetailAccording(@RequestBody QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording){
+ return Result.success(qualitySuperviseService.addSuperviseDetailAccording(qualitySuperviseDetailsAccording));
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�")
+ @GetMapping("/getSuperviseDetailAccording")
+ public Result<QualitySuperviseDetailsAccording> getSuperviseDetailAccording(Integer superviseDetailsId){
+ return Result.success(qualitySuperviseService.getSuperviseDetailAccording(superviseDetailsId));
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛�
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛�")
+ @GetMapping("/pageSuperviseDetailAccording")
+ public Result<IPage<QualitySuperviseDetailsAccording>> pageSuperviseDetailAccording(Page page,QualitySuperviseDetailsAccording detailsAccording) throws Exception {
+ return Result.success(qualitySuperviseService.pageSuperviseDetailAccording(page, detailsAccording));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�")
+ @GetMapping("/superviseDetailAccordingExport")
+ public void superviseDetailAccordingExport(@RequestParam("superviseDetailsId") Integer id, HttpServletResponse response){
+ qualitySuperviseService.superviseDetailAccordingExport(id, response);
+ }
+
+
+
+ /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/
+
+
+ /**
+ * 鏂板鐩戠潱绾犳澶勭悊淇℃伅
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戠潱绾犳澶勭悊")
+ @PostMapping("/addSuperviseDetailCorrect")
+ public Result addSuperviseDetailCorrect(@RequestBody QualitySuperviseDetailsCorrect qualitySuperviseDetailsCorrect){
+ return Result.success(qualitySuperviseService.addSuperviseDetailCorrect(qualitySuperviseDetailsCorrect));
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳澶勭悊
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱绾犳澶勭悊")
+ @GetMapping("/getSuperviseDetailCorrect")
+ public Result<QualitySuperviseDetailsCorrect> getSuperviseDetailCorrect(Integer superviseDetailsId){
+ return Result.success(qualitySuperviseService.getSuperviseDetailCorrect(superviseDetailsId));
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃")
+ @GetMapping("/pageSuperviseDetailCorrect")
+ public Result<IPage<QualitySuperviseDetailsCorrect>> pageSuperviseDetailCorrect(Page page,QualitySuperviseDetailsCorrect detailsCorrect) throws Exception {
+ return Result.success(qualitySuperviseService.pageSuperviseDetailCorrect(page, detailsCorrect));
+ }
+
+ /**
+ * 鏂板鐩戠潱绾犳鎺柦闄勪欢
+ * @param superviseDetailsCorrectId
+ * @param file
+ * @return
+ */
+ @ApiOperation(value = "鏂板鐩戠潱绾犳鎺柦闄勪欢")
+ @PostMapping("/uploadSuperviseDetailCorrectFile")
+ public Result<?> uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file) {
+ return Result.success(qualitySuperviseService.uploadSuperviseDetailCorrectFile(superviseDetailsCorrectId, file));
+ }
+
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢
+ * @return
+ */
+ @ApiOperation(value = "鏌ヨ鐩戠潱绾犳鎺柦闄勪欢")
+ @GetMapping("/getSuperviseDetailCorrectFileList")
+ public Result<List<QualitySuperviseDetailsCorrectFile>> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId){
+ return Result.success(qualitySuperviseService.getSuperviseDetailCorrectFileList(superviseDetailsCorrectId));
+ }
+
+ /**
+ * 鍒犻櫎鐩戠潱绾犳鎺柦闄勪欢
+ * @return
+ */
+ @ApiOperation(value = "鍒犻櫎鐩戠潱绾犳鎺柦闄勪欢")
+ @DeleteMapping("/delSuperviseDetailCorrectFile")
+ public Result delSuperviseDetailCorrectFile(Integer superviseDetailsCorrectFileId){
+ return Result.success(qualitySuperviseDetailsCorrectFileMapper.deleteById(superviseDetailsCorrectFileId));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱绾犳鎺柦
+ * @return
+ */
+ @ApiOperation(value = "瀵煎嚭鐩戠潱绾犳鎺柦")
+ @GetMapping("/exportSuperviseDetaillCorrect")
+ public void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response){
+ qualitySuperviseService.exportSuperviseDetaillCorrect(superviseDetailsCorrectId, response);
+ }
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java
new file mode 100644
index 0000000..195d390
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ImageDemoData.java
@@ -0,0 +1,43 @@
+package com.ruoyi.process.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.converters.string.StringImageConverter;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+
+@Getter
+@Setter
+@EqualsAndHashCode
+@ContentRowHeight(100) // 琛岄珮
+@ColumnWidth(100 / 8) // 鍒楀
+public class ImageDemoData {
+ private File file;
+ private InputStream inputStream;
+ /**
+ * 濡傛灉string绫诲瀷 蹇呴』鎸囧畾杞崲鍣紝string榛樿杞崲鎴恠tring
+ */
+ @ExcelProperty(converter = StringImageConverter.class)
+ private String string;
+ private byte[] byteArray;
+ /**
+ * 鏍规嵁url瀵煎嚭
+ *
+ * @since 2.1.1
+ */
+ private URL url;
+
+ /**
+ * 鏍规嵁鏂囦欢瀵煎嚭 骞惰缃鍑虹殑浣嶇疆銆�
+ *
+ * @since 3.0.0-beta1
+ */
+ private WriteCellData<Void> writeCellDataFile;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java
new file mode 100644
index 0000000..e362930
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionDto.java
@@ -0,0 +1,28 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.InconsistentDistribution;
+import com.ruoyi.process.pojo.InconsistentDistributionDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/15
+ */
+@Data
+public class InconsistentDistributionDto extends InconsistentDistribution {
+
+ @ApiModelProperty("鍒嗗竷璇︽儏")
+ private List<InconsistentDistributionDetail> distributionDetailList;
+
+ @ApiModelProperty("鍗犳瘮瀵硅薄")
+ private InconsistentDistributionProportionDto distributionProportion;
+
+ @ApiModelProperty("鍒涘缓浜哄悕绉�")
+ private String createUserName;
+
+ @ApiModelProperty("淇敼浜哄悕绉�")
+ private String updateUserName;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java
new file mode 100644
index 0000000..a606db5
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InconsistentDistributionProportionDto.java
@@ -0,0 +1,45 @@
+package com.ruoyi.process.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 鍗犳瘮瀵硅薄
+ *
+ * @Author zhuo
+ * @Date 2024/11/15
+ */
+
+@Data
+public class InconsistentDistributionProportionDto {
+
+ @ApiModelProperty("绔犺妭鍙�")
+ private String chapterNumber;
+
+ @ApiModelProperty("瑕佺礌")
+ private String essentials;
+
+ @ApiModelProperty("涓讳换")
+ private BigDecimal director;
+
+ @ApiModelProperty("鎶�鏈礋璐d汉")
+ private BigDecimal technology;
+
+ @ApiModelProperty("璐ㄩ噺璐熻矗浜�")
+ private BigDecimal quality;
+
+ @ApiModelProperty("缁煎悎瀹�")
+ private BigDecimal comprehensive;
+
+ @ApiModelProperty("璇曢獙瀹�")
+ private BigDecimal testing;
+
+ @ApiModelProperty("鍚堣")
+ private Integer total;
+
+ @ApiModelProperty("鍗犳瘮")
+ private BigDecimal proportion;
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDetail.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDetail.java
new file mode 100644
index 0000000..9b150e9
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderDetail.java
@@ -0,0 +1,37 @@
+package com.ruoyi.process.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 妫�楠屽鎵樺崟璇︽儏琛�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-12-09
+ */
+@Data
+public class InspectionOrderDetail {
+
+
+ @ApiModelProperty("濮旀墭鍗昳d")
+ private Integer inspectionOrderId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleNumber;
+
+ @ApiModelProperty("璇曢獙椤圭洰")
+ private String testItem;
+
+ @ApiModelProperty("璇曢獙渚濇嵁")
+ private String testStandard;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ // 瀵煎嚭浣跨敤
+ @TableField(select = false, exist = false)
+ private Integer index;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java
new file mode 100644
index 0000000..390556b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/InspectionOrderExportDto.java
@@ -0,0 +1,55 @@
+package com.ruoyi.process.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Author: yuan
+ * Date: 2024-12-10 鏄熸湡浜�
+ * Description:
+ */
+@Data
+public class InspectionOrderExportDto extends ProcessOrderDto {
+
+ @ApiModelProperty("鐣欐牱:1 鏄�")
+ private String isLeave1 = "鈻�";
+
+ @ApiModelProperty("鐣欐牱:0 鍚�")
+ private String isLeave2 = "鈻�";
+
+ @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 1锛氳嚜鍙�")
+ private String send1 = "鈻�";
+
+ @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 0锛氬叾浠�")
+ private String send0 = "鈻�";
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡 1锛氬疄楠屽澶勭悊")
+ private String processing1 = "鈻�";
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡 0锛氬鎵樺崟浣嶅彇鍥�")
+ private String processing0 = "鈻�";
+
+ @ApiModelProperty("鍒ゆ柇瑙勫垯 1锛氳�冭檻涓嶇‘瀹氬害")
+ private String criterionRule1 = "鈻�";
+
+ //鑰冭檻涓嶇‘瀹氬害%
+ private String criterionRuleRemark;
+
+ @ApiModelProperty("鍒ゆ柇瑙勫垯 0锛氫笉鑰冭檻涓嶇‘瀹氬害")
+ private String criterionRule0 = "鈻�";
+
+ @ApiModelProperty("濮旀墭鏃堕棿 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d")
+ private String commissionDateString;
+
+ @ApiModelProperty("鎺ユ敹鏃ユ湡 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d")
+ private String receiptDataString;
+
+ @ApiModelProperty("棰嗘牱鏃ユ湡 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d")
+ private String sampleDataString;
+
+ @ApiModelProperty("绾﹀畾鏃堕棿 瀛楃涓叉牸寮忥細yyyy骞碝M鏈坉d")
+ private String appointedString;
+
+
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java
new file mode 100644
index 0000000..f33a281
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessComplainDto.java
@@ -0,0 +1,23 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.ProcessComplain;
+import lombok.Data;
+
+@Data
+//鎶曡瘔璇︽儏
+public class ProcessComplainDto extends ProcessComplain {
+
+ private String phone;
+
+ private String email;
+
+ private String problemRecordsUserName;
+
+ private String dutyOwnershipUserName;
+
+ private String causeAnalysisUserName;
+
+ private String correctiveActionUserName;
+
+ private String correctiveActionConfirmationUserName;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewDto.java
new file mode 100644
index 0000000..20bd254
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodSearchNewDto.java
@@ -0,0 +1,62 @@
+package com.ruoyi.process.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.process.pojo.ProcessMethodSearchNew;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/4
+ */
+@Data
+@ExcelIgnoreUnannotated
+public class ProcessMethodSearchNewDto extends ProcessMethodSearchNew {
+
+ @ApiModelProperty("寮�濮嬫椂闂�")
+ private String beginDate;
+
+ @ApiModelProperty("缁撴潫鏃堕棿")
+ private String endDate;
+
+ @ApiModelProperty("缂栧埗浜篿d")
+ private Integer writeUserId;
+
+ @ApiModelProperty("鎵瑰噯浜篿d")
+ private Integer ratifyUserId;
+
+ @ApiModelProperty("缂栧埗浜烘棩鏈�")
+ private String writeDate;
+
+ @ApiModelProperty("鎵瑰噯浜烘棩鏈�")
+ private String ratifyDate;
+
+ @ExcelProperty(value = {"鏄惁鏈夋洿鏂版爣鍑�", "鏄惁鏈夋洿鏂版爣鍑�"}, index = 4)
+ @ApiModelProperty("鏄惁鏈夋洿鏂版爣鍑�")
+ private String isNewStandardString;
+
+ @ExcelProperty(value = {"鏌ユ柊璁板綍", "鏍囧噯缃�"}, index = 7)
+ @ApiModelProperty("鏍囧噯缃�")
+ private String standardNet;
+
+ @ExcelProperty(value = {"鏌ユ柊璁板綍", "濮旀墭鎯呮姤鎵�"}, index = 8)
+ @ApiModelProperty("濮旀墭鎯呮姤鎵�")
+ private String informationOffices;
+
+ @ExcelProperty(value = {"鏌ユ柊璁板綍", "鏍囧噯涔﹀簵"}, index = 9)
+ @ApiModelProperty("鏍囧噯涔﹀簵")
+ private String standardBookstore;
+
+ @ExcelProperty(value = {"鏌ユ柊璁板綍", "鍏朵粬"}, index = 10)
+ @ApiModelProperty("鍏朵粬")
+ private String other;
+
+ @ExcelProperty(value = {"澶囨敞", "澶囨敞"}, index = 11)
+ @ApiModelProperty("澶囨敞")
+ private String remarkString;
+
+ @ExcelProperty(value = {"搴忓彿", "搴忓彿"}, index = 0)
+ @ApiModelProperty("搴忓彿")
+ private Integer index;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java
new file mode 100644
index 0000000..3d5e292
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyCalibrationsFileDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/12
+ */
+@Data
+public class ProcessMethodVerifyCalibrationsFileDto extends ProcessMethodVerifyCalibrationsFile {
+
+ @ApiModelProperty("璁惧鍚嶇О")
+ private String deviceName;
+
+ @ApiModelProperty("璁惧缂栧彿")
+ private String managementNumber;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java
new file mode 100644
index 0000000..ba7464d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyDto.java
@@ -0,0 +1,30 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.ProcessMethodVerify;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/5
+ */
+@Data
+public class ProcessMethodVerifyDto extends ProcessMethodVerify {
+
+ @ApiModelProperty("璁惧闄勪欢")
+ private List<ProcessMethodVerifyMachineAttachment> machineAttachmentList;
+
+ @ApiModelProperty("鍘熷璁板綍闄勪欢")
+ private List<ProcessMethodVerifyMethodFile> methodFileList;
+
+ @ApiModelProperty("涓婂矖璇�")
+ private List<ProcessMethodVerifyWorkFile> workFileList;
+
+ @ApiModelProperty("鏍″噯璇佷功")
+ private List<ProcessMethodVerifyCalibrationsFileDto> calibrationsFileList;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java
new file mode 100644
index 0000000..5d344cf
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessMethodVerifyExportWordDto.java
@@ -0,0 +1,40 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.ProcessMethodVerify;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Author: yuan
+ * Date: 2024-12-19 鏄熸湡鍥� 15:55:46
+ * Description:
+ */
+@Data
+public class ProcessMethodVerifyExportWordDto extends ProcessMethodVerify {
+ @ApiModelProperty("(浜�)鏄惁婊¤冻 1婊¤冻 0涓嶆弧瓒�")
+ private String personIsSatisfiedStr;
+
+ @ApiModelProperty("(鏈�)鏄惁婊¤冻")
+ private String machineIsSatisfiedStr;
+
+ @ApiModelProperty("(鏂�)鏄惁婊¤冻")
+ private String materialIsSatisfiedStr;
+
+ @ApiModelProperty("(娉�)鏄惁婊¤冻")
+ private String methodIsSatisfiedStr;
+
+ @ApiModelProperty("(鐜�)鏄惁婊¤冻")
+ private String environmentIsSatisfiedStr;
+
+ @ApiModelProperty("(娴嬮噺婧簮鎬�)鏄惁婊¤冻")
+ private String traceabilityIsSatisfiedStr;
+
+ @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏄惁婊¤冻")
+ private String managementIsSatisfiedStr;
+
+ @ApiModelProperty("(鍏朵粬)鏄惁婊¤冻")
+ private String otherIsSatisfiedStr;
+
+ @ApiModelProperty("纭鏃堕棿")
+ private String confirmDateStr;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessOrderDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessOrderDto.java
new file mode 100644
index 0000000..059f3f1
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessOrderDto.java
@@ -0,0 +1,73 @@
+package com.ruoyi.process.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.process.pojo.ProcessOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+//瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫鐨勬煡鐪嬭鎯�
+public class ProcessOrderDto extends ProcessOrder {
+
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty("璇曟牱鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("濮旀墭鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String sampleType;
+
+ @ApiModelProperty("濮旀墭鍗曚綅")
+ private String company;
+
+ @ApiModelProperty("鐢熶骇鍗曚綅")
+ private String production;
+
+ @ApiModelProperty("鐢熸垚鍗曚綅en")
+ private String productionEn;
+
+ @ApiModelProperty("濮旀墭浜�")
+ private String prepareUser;
+
+ private String prepareUserUrl;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private String sampleNum;
+
+ @ApiModelProperty("鏍峰搧鐘舵��")
+ private Integer insState;
+
+ private String sampleStatus;
+
+ @ApiModelProperty("鏄惁鐣欐牱")
+ private Integer isLeave;
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡")
+ private Integer processing;
+
+ @ApiModelProperty("鑱旂郴鏂瑰紡")
+ private String phone;
+
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate appointed;
+
+ @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮�")
+ private Integer send;
+
+ //鏍峰搧鍜屾楠岄」鐩俊鎭�
+ private List<SampleItemDto> sampleItems;
+
+
+
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java
new file mode 100644
index 0000000..d54e1fd
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/ProcessReportDto.java
@@ -0,0 +1,12 @@
+package com.ruoyi.process.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+//瀵煎嚭
+public class ProcessReportDto {
+
+ private List<Integer> ids;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java
new file mode 100644
index 0000000..ecc2d34
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDetailsEvaluateDto.java
@@ -0,0 +1,16 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Author: yuan
+ * Date: 2024-12-20 鏄熸湡浜� 9:08:38
+ * Description:
+ */
+@Data
+public class QualityMonitorDetailsEvaluateDto extends QualityMonitorDetailsEvaluate {
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ private String ratifyTimeStr;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java
new file mode 100644
index 0000000..fc72e14
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualityMonitorDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.QualityMonitor;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/6
+ */
+@Data
+public class QualityMonitorDto extends QualityMonitor {
+
+ @ApiModelProperty("缂栧埗浜�")
+ private String writeName;
+
+ @ApiModelProperty("瀹℃牳浜�")
+ private String examineName;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private String ratifyName;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java
new file mode 100644
index 0000000..b5bd565
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsAccordingDto.java
@@ -0,0 +1,63 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.QualitySuperviseDetailsAccording;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Author: yuan
+ * Date: 2024-12-11 鏄熸湡涓� 16:26:41
+ * Description:
+ */
+@Data
+public class QualitySuperviseDetailsAccordingDto extends QualitySuperviseDetailsAccording {
+
+ @ApiModelProperty("1鍙戠幇閮ㄩ棬-鏃ユ湡")
+ private String discovererDateString;
+
+ @ApiModelProperty("3璐d换閮ㄩ棬 鏃ユ湡")
+ private String responsibleDepartmentDateString;
+
+ @ApiModelProperty("4绾犳鎺柦 鏃ユ湡")
+ private String correctiveMeasureDateString;
+
+ @ApiModelProperty("5璐ㄩ噺璐熻矗浜烘棩鏈�")
+ private String qualitySupervisorDateString;
+
+ @ApiModelProperty("0琚洃鐫f椂闂� 鏃ユ湡")
+ private String supervisedTimeString;
+
+ @ApiModelProperty("4绾犳鎺柦澶勭悊鍗曡窡韪�(鏄�)")
+ private String correctiveMeasureFollowTracksYes = "鈻�";
+ @ApiModelProperty("4绾犳鎺柦澶勭悊鍗曡窡韪�(鍚�)")
+ private String correctiveMeasureFollowTracksNo = "鈻�";
+
+
+ @ApiModelProperty("5鏄惁閫氱煡瀹㈡埛(鏄�)")
+ private String whetherInformCustomerYes = "鈻�";
+ @ApiModelProperty("5鏄惁閫氱煡瀹㈡埛(鍚�)")
+ private String whetherInformCustomerNo = "鈻�";
+
+
+ @ApiModelProperty("5鏄惁鎭㈠宸ヤ綔(1锛氭槸锛�2锛氬惁)")
+ private String whetherResumeWorkYes = "鈻�";
+ @ApiModelProperty("5鏄惁鎭㈠宸ヤ綔(1锛氭槸锛�2锛氬惁)")
+ private String whetherResumeWorkNo = "鈻�";
+
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞0(绠$悊璇勫)")
+ private String discoveryApproach0 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞1(鍐呴儴瀹℃牳)")
+ private String discoveryApproach1 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞2(妫�娴嬭繃绋嬫帶鍒�)")
+ private String discoveryApproach2 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞3(鍐呴儴璐ㄩ噺鎺у埗)")
+ private String discoveryApproach3 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞4(鍐呴儴鐩戠潱)")
+ private String discoveryApproach4 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞5(澶栭儴璇勫/妫�鏌�)")
+ private String discoveryApproach5 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞6(椤惧鎶曡瘔/鎰忚鍙嶉)")
+ private String discoveryApproach6 = "鈻�";
+ @ApiModelProperty("1涓嶇鍚堝伐浣滃彂鐜伴�斿緞7(鍏朵粬)")
+ private String discoveryApproach7 = "鈻�";
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java
new file mode 100644
index 0000000..775c729
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsCorrectDto.java
@@ -0,0 +1,25 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/12/2
+ */
+@Data
+public class QualitySuperviseDetailsCorrectDto extends QualitySuperviseDetailsCorrect {
+
+ @ApiModelProperty("鎻愬嚭鏃堕棿")
+ private String raiseTimeString;
+
+ @ApiModelProperty("鍘熷洜鍒嗘瀽鏃堕棿")
+ private String causeTimeString;
+
+ @ApiModelProperty("绾犳鏃堕棿")
+ private String correctTimeString;
+
+ @ApiModelProperty("楠岃瘉鏃堕棿")
+ private String validationTimeString;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java
new file mode 100644
index 0000000..7be5c4c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/QualitySuperviseDetailsDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.process.dto;
+
+import com.ruoyi.process.pojo.QualitySuperviseDetails;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/7
+ */
+@Data
+public class QualitySuperviseDetailsDto extends QualitySuperviseDetails {
+
+ @ApiModelProperty("鏄惁绗﹀悎,0 涓嶇鍚�, 1绗﹀悎")
+ private Integer isAccording;
+
+ @ApiModelProperty("2鏄惁绾犳澶勭悊, 0鍚�, 1鏄�")
+ private Integer isCorrect;
+
+ @ApiModelProperty("璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊id")
+ private Integer superviseDetailsCorrectId;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java b/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java
new file mode 100644
index 0000000..f15924f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/dto/SampleItemDto.java
@@ -0,0 +1,26 @@
+package com.ruoyi.process.dto;
+
+import lombok.Data;
+
+@Data
+//瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫鐨勬牱鍝佽鎯�
+public class SampleItemDto {
+
+ //鏍峰搧缂栧彿
+ private String code;
+
+ //鏍峰搧鍨嬪彿
+ private String model;
+
+ //璇曢獙椤圭洰
+ private String product;
+
+ //妫�楠屼緷鎹�
+ private String standardMethodList;
+
+ // 璇曢獙瑕佹眰
+ private String groupConcatTell;
+
+ //澶囨敞
+ private String remark;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java b/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java
new file mode 100644
index 0000000..d6489af
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/excel/QualityMonitorDetailsUpload.java
@@ -0,0 +1,33 @@
+package com.ruoyi.process.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/8
+ */
+@Data
+public class QualityMonitorDetailsUpload {
+
+ @ExcelProperty("鐩戞帶鐩殑")
+ private String monitorPurpose;
+
+ @ExcelProperty("璁″垝寮�灞曟椂闂�")
+ private String plannedTime;
+
+ @ExcelProperty("鐩戞帶椤圭洰")
+ private String monitorProject;
+
+ @ExcelProperty("鍙傚姞鍗曚綅锛堜汉鍛橈級")
+ private String participant;
+
+ @ExcelProperty("棰勭畻锛堝厓锛�")
+ private String budget;
+
+ @ExcelProperty("缁勭粐浜哄憳")
+ private String organization;
+
+ @ExcelProperty("鐩戞帶鏂瑰紡")
+ private String monitorWay;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java b/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java
new file mode 100644
index 0000000..4a0aeb5
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/excel/QualitySuperviseDetailsUpload.java
@@ -0,0 +1,30 @@
+package com.ruoyi.process.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/8
+ */
+@Data
+public class QualitySuperviseDetailsUpload {
+
+ @ExcelProperty("鐩戠潱鏃ユ湡")
+ private String superviseTime;
+
+ @ExcelProperty("鐩戠潱鐩殑")
+ private String supervisePurpose;
+
+ @ExcelProperty("鐩戞帶椤圭洰")
+ private String superviseProject;
+
+ @ExcelProperty("琚洃鐫d汉鍛�")
+ private String supervisee;
+
+ @ExcelProperty("鐩戠潱鍘熷洜")
+ private String superviseReason;
+
+ @ExcelProperty("澶囨敞")
+ private String remark;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java
new file mode 100644
index 0000000..8c31339
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionDetailMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.InconsistentDistributionDetail;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯冭鎯� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:33
+ */
+@Mapper
+public interface InconsistentDistributionDetailMapper extends BaseMapper<InconsistentDistributionDetail> {
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java
new file mode 100644
index 0000000..d2fff19
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/InconsistentDistributionMapper.java
@@ -0,0 +1,30 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.InconsistentDistributionDto;
+import com.ruoyi.process.pojo.InconsistentDistribution;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:20
+ */
+@Mapper
+public interface InconsistentDistributionMapper extends BaseMapper<InconsistentDistribution> {
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷鏌ヨ
+ * @param page
+ * @param ew
+ * @return
+ */
+ IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, @Param("ew") QueryWrapper<InconsistentDistribution> ew);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java
new file mode 100644
index 0000000..8a025dd
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessComplainMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.ProcessComplainDto;
+import com.ruoyi.process.pojo.ProcessComplain;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 鎶曡瘔 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 09:29:11
+ */
+public interface ProcessComplainMapper extends BaseMapper<ProcessComplain> {
+
+ IPage<ProcessComplain> pageProcessComplain(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessComplain> queryWrappers);
+
+ ProcessComplainDto getProcessComplain(Long id);
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
new file mode 100644
index 0000000..49bfb8b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessDealMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessDeal;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 02:50:19
+ */
+public interface ProcessDealMapper extends BaseMapper<ProcessDeal> {
+
+ IPage<ProcessDeal> pageProcessDeal(Page page, @Param("ew") QueryWrapper<ProcessDeal> queryWrappers);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java
new file mode 100644
index 0000000..c3f46ec
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessEvaluateMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessEvaluate;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 01:10:43
+ */
+public interface ProcessEvaluateMapper extends BaseMapper<ProcessEvaluate> {
+
+ IPage<ProcessEvaluate> pageProcessEvaluate(Page page, @Param("ew") QueryWrapper<ProcessEvaluate> queryWrappers);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java
new file mode 100644
index 0000000..33d00cd
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewMapper.java
@@ -0,0 +1,40 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.ProcessMethodSearchNewDto;
+import com.ruoyi.process.pojo.ProcessMethodSearchNew;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 鏍囧噯鏌ユ柊
+ *
+ * @author zhuo
+ * @since 2024-11-04
+ */
+@Mapper
+public interface ProcessMethodSearchNewMapper extends BaseMapper<ProcessMethodSearchNew> {
+
+ /**
+ * 鏍囧噯鏌ユ柊鍒嗛〉鏌ヨ
+ * @param page
+ * @param processMethodSearchNewDtoQueryWrapper
+ * @param beginDate
+ * @param endDate
+ * @return
+ */
+ IPage<ProcessMethodSearchNew> pageMethodSearchNew(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessMethodSearchNewDto> processMethodSearchNewDtoQueryWrapper, @Param("beginDate") String beginDate, @Param("endDate") String endDate);
+
+ /**
+ * 鏌ヨ鏍囧噯鏌ヨ
+ * @param ew
+ * @return
+ */
+ List<ProcessMethodSearchNewDto> selectMethodSearchNew(@Param("ew") QueryWrapper<ProcessMethodSearchNewDto> ew, @Param("beginDate") String beginDate, @Param("endDate") String endDate);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java
new file mode 100644
index 0000000..1c495e3
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyCalibrationsFileMapper.java
@@ -0,0 +1,34 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.dto.ProcessMethodVerifyCalibrationsFileDto;
+import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+@Mapper
+public interface ProcessMethodVerifyCalibrationsFileMapper extends BaseMapper<ProcessMethodVerifyCalibrationsFile> {
+
+ /**
+ * 鏌ヨ鏍″噯璇佷功闄勪欢琛�
+ * @param methodVerifyId
+ * @return
+ */
+ List<ProcessMethodVerifyCalibrationsFileDto> selectCalibrationsFileList(@Param("methodVerifyId") Integer methodVerifyId);
+
+ /**
+ * 璁惧id鏌ヨ鏍″噯璇佷功
+ * @param deviceId
+ * @return
+ */
+ String selectCalibrationsFile(@Param("deviceId") Integer deviceId);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java
new file mode 100644
index 0000000..5ef9293
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMachineAttachmentMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Mapper
+public interface ProcessMethodVerifyMachineAttachmentMapper extends BaseMapper<ProcessMethodVerifyMachineAttachment> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java
new file mode 100644
index 0000000..1c0131b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.ProcessMethodVerifyDto;
+import com.ruoyi.process.pojo.ProcessMethodVerify;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Mapper
+public interface ProcessMethodVerifyMapper extends BaseMapper<ProcessMethodVerify> {
+
+ /**
+ * 鏍囧噯鏂规硶鍙樻洿, 楠岃瘉
+ * @param page
+ * @param processMethodVerifyDtoQueryWrapper
+ * @return
+ */
+ IPage<ProcessMethodVerify> pagesMethodVerify(Page page, @Param("ew") QueryWrapper<ProcessMethodVerifyDto> processMethodVerifyDtoQueryWrapper);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java
new file mode 100644
index 0000000..b7dd2ee
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyMethodFileMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Mapper
+public interface ProcessMethodVerifyMethodFileMapper extends BaseMapper<ProcessMethodVerifyMethodFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java
new file mode 100644
index 0000000..b103cb5
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodVerifyWorkFileMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+@Mapper
+public interface ProcessMethodVerifyWorkFileMapper extends BaseMapper<ProcessMethodVerifyWorkFile> {
+
+ /**
+ * 鏍规嵁鐢ㄦ埛id鏌ヨ涓婂矖璇�
+ * @param userId
+ * @return
+ */
+ String selectWorkFile(@Param("userId") Integer userId);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderMapper.java
new file mode 100644
index 0000000..3047399
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessOrderMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.InspectionOrderDetail;
+import com.ruoyi.process.dto.ProcessOrderDto;
+import com.ruoyi.process.pojo.ProcessOrder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+public interface ProcessOrderMapper extends BaseMapper<ProcessOrder> {
+
+ IPage<ProcessOrderDto> pageProcessOrder(Page page, @Param("ew") QueryWrapper<ProcessOrderDto> queryWrappers);
+
+ ProcessOrderDto getProcessOrder(Integer id);
+
+ List<InspectionOrderDetail> selectInsOrder(Integer insOrderId);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
new file mode 100644
index 0000000..86e6aaf
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessReportMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 08:58:39
+ */
+public interface ProcessReportMapper extends BaseMapper<ProcessReport> {
+
+ IPage<ProcessReport> pageProcessReport(Page page, @Param("ew") QueryWrapper<ProcessReport> queryWrappers);
+
+ List<ProcessReport> getIds(List<Integer> ids);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java
new file mode 100644
index 0000000..417fa05
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessSample;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:49
+ */
+public interface ProcessSampleMapper extends BaseMapper<ProcessSample> {
+
+ IPage<ProcessSample> pageProcessSample(@Param("page") Page page, @Param("ew") QueryWrapper<ProcessSample> ew);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java
new file mode 100644
index 0000000..a4786fe
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotalSampleMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessTotalSample;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹鎬昏〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:58
+ */
+public interface ProcessTotalSampleMapper extends BaseMapper<ProcessTotalSample> {
+
+ IPage<ProcessTotalSample> pageProcessTotalSample(Page page, @Param("ew") QueryWrapper<ProcessTotalSample> ew);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java
new file mode 100644
index 0000000..ddc0997
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessTotaldealMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 03:59:09
+ */
+public interface ProcessTotaldealMapper extends BaseMapper<ProcessTotaldeal> {
+
+ IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, @Param("ew") QueryWrapper<ProcessTotaldeal> queryWrappers);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java
new file mode 100644
index 0000000..c7c6e98
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateFileMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluateFile;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualityMonitorDetailsEvaluateFileMapper extends BaseMapper<QualityMonitorDetailsEvaluateFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java
new file mode 100644
index 0000000..92fdd63
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsEvaluateMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Mapper
+public interface QualityMonitorDetailsEvaluateMapper extends BaseMapper<QualityMonitorDetailsEvaluate> {
+
+ /**
+ * 鏌ヨ璐ㄩ噺鐩戞帶璇勪环
+ * @param qualityMonitorDetailsId
+ * @return
+ */
+ QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java
new file mode 100644
index 0000000..8648038
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.QualityMonitorDetails;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Mapper
+public interface QualityMonitorDetailsMapper extends BaseMapper<QualityMonitorDetails> {
+
+ /**
+ * 璐ㄩ噺鐩戞帶璁″垝鍒楄〃
+ * @param page
+ * @param qualityMonitorDetailsQueryWrapper
+ * @return
+ */
+ IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, @Param("ew") QueryWrapper<QualityMonitorDetails> qualityMonitorDetailsQueryWrapper);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java
new file mode 100644
index 0000000..12d27fc
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorDetailsRatifyMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetailsRatify;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Mapper
+public interface QualityMonitorDetailsRatifyMapper extends BaseMapper<QualityMonitorDetailsRatify> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java
new file mode 100644
index 0000000..bf4f81e
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualityMonitorMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.QualityMonitorDto;
+import com.ruoyi.process.pojo.QualityMonitor;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Mapper
+public interface QualityMonitorMapper extends BaseMapper<QualityMonitor> {
+
+ /**
+ * 鐩戞帶璁″垝鍒楄〃
+ * @return
+ */
+ IPage<QualityMonitorDto> pageQualityMonitor(Page page, @Param("ew") QueryWrapper<QualityMonitor> qualityMonitorQueryWrapper);
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java
new file mode 100644
index 0000000..4ca9af7
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsAccordingMapper.java
@@ -0,0 +1,36 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsAccording;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏涓嶇鍚堥」鎺у埗琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualitySuperviseDetailsAccordingMapper extends BaseMapper<QualitySuperviseDetailsAccording> {
+
+ /**
+ * 鏌ヨ涓嶇鍚堥」鎺у埗鍒楄〃
+ * @param page
+ * @param ew
+ * @return
+ */
+ IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetailsAccording> ew);
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param superviseDetailId
+ * @return
+ */
+ QualitySuperviseDetailsAccordingDto selectSuperviseDetailsAccording(@Param("superviseDetailId") Integer superviseDetailId);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java
new file mode 100644
index 0000000..5d62de4
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectFileMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrectFile;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏绾犳鎺柦闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-09
+ */
+@Mapper
+public interface QualitySuperviseDetailsCorrectFileMapper extends BaseMapper<QualitySuperviseDetailsCorrectFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java
new file mode 100644
index 0000000..f2576c0
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsCorrectMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualitySuperviseDetailsCorrectMapper extends BaseMapper<QualitySuperviseDetailsCorrect> {
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃
+ * @param page
+ * @param ew
+ * @return
+ */
+ IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailAccording(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetailsCorrect> ew);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java
new file mode 100644
index 0000000..c72bc06
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsMapper.java
@@ -0,0 +1,29 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.dto.QualitySuperviseDetailsDto;
+import com.ruoyi.process.pojo.QualitySuperviseDetails;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualitySuperviseDetailsMapper extends BaseMapper<QualitySuperviseDetails> {
+
+ /**
+ * 鐩戠潱璁″垝璇︽儏鍒楄〃
+ * @param page
+ * @param qualitySuperviseDetailsQueryWrapper
+ * @return
+ */
+ IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, @Param("ew") QueryWrapper<QualitySuperviseDetails> qualitySuperviseDetailsQueryWrapper);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java
new file mode 100644
index 0000000..e234345
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseDetailsRecordMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.QualitySuperviseDetailsRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏璁板綍琛�
+ *
+ * @author makejava
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualitySuperviseDetailsRecordMapper extends BaseMapper<QualitySuperviseDetailsRecord> {
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍琛�
+ * @param superviseDetailsId
+ * @return
+ */
+ QualitySuperviseDetailsRecord selectSuperviseDetailRecord(@Param("superviseDetailsId") Integer superviseDetailsId);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java
new file mode 100644
index 0000000..3260a24
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/QualitySuperviseMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.process.pojo.QualitySupervise;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 璐ㄩ噺鐩戠潱涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Mapper
+public interface QualitySuperviseMapper extends BaseMapper<QualitySupervise> {
+
+ /**
+ * 鐩戠潱璁″垝鍒楄〃
+ * @param page
+ * @param qualitySuperviseQueryWrapper
+ * @return
+ */
+ IPage<QualitySupervise> pageQualitySupervise(@Param("page") Page page, @Param("ew") QueryWrapper<QualitySupervise> qualitySuperviseQueryWrapper);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java
new file mode 100644
index 0000000..d0a10e9
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistribution.java
@@ -0,0 +1,45 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:20
+ */
+
+@Data
+@TableName("cnas_inconsistent_distribution")
+@ApiModel(value = "InconsistentDistribution瀵硅薄", description = "涓嶇鍚堥」鐨勫垎甯�")
+public class InconsistentDistribution {
+
+ @TableId(value = "distribution_id", type = IdType.AUTO)
+ private Integer distributionId;
+
+ @ApiModelProperty("骞翠唤")
+ private String distributionYear;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java
new file mode 100644
index 0000000..40bb846
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/InconsistentDistributionDetail.java
@@ -0,0 +1,74 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯冭鎯�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:33
+ */
+@Data
+@TableName("cnas_inconsistent_distribution_detail")
+@ApiModel(value = "InconsistentDistributionDetail瀵硅薄", description = "涓嶇鍚堥」鐨勫垎甯冭鎯�")
+public class InconsistentDistributionDetail {
+
+ @TableId(value = "distribution_detail_id", type = IdType.AUTO)
+ private Integer distributionDetailId;
+
+ @ApiModelProperty("涓昏〃id")
+ private Integer distributionId;
+
+ @ApiModelProperty("绔犺妭鍙�")
+ private String chapterNumber;
+
+ @ApiModelProperty("瑕佺礌")
+ private String essentials;
+
+ @ApiModelProperty("涓讳换")
+ private Integer director;
+
+ @ApiModelProperty("鎶�鏈礋璐d汉")
+ private Integer technology;
+
+ @ApiModelProperty("璐ㄩ噺璐熻矗浜�")
+ private Integer quality;
+
+ @ApiModelProperty("缁煎悎瀹�")
+ private Integer comprehensive;
+
+ @ApiModelProperty("璇曢獙瀹�")
+ private Integer testing;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍚堣")
+ @TableField(select = false,exist = false)
+ private Integer total;
+
+ @ApiModelProperty("鍗犳瘮")
+ @TableField(select = false,exist = false)
+ private BigDecimal proportion;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java
new file mode 100644
index 0000000..e1155df
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessComplain.java
@@ -0,0 +1,141 @@
+package com.ruoyi.process.pojo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鎶曡瘔
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 09:29:11
+ */
+@Getter
+@Setter
+@TableName("cnas_process_complain")
+@ApiModel(value = "ProcessComplain瀵硅薄", description = "鎶曡瘔")
+public class ProcessComplain implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ExcelIgnore
+ private Integer id;
+
+ @ApiModelProperty("鎶曡瘔缂栧彿")
+ @ExcelIgnore
+ private String complainNo;
+
+ @ApiModelProperty("鎶曡瘔鍚嶇О")
+ @ExcelProperty(value = "鎶曡瘔鍚嶇О")
+ private String complainName;
+
+ @ApiModelProperty("澶栭敭鍏宠仈(妫�娴嬫姤鍛奿d)")
+ @ExcelIgnore
+ private Integer insReportId;
+
+ @ExcelIgnore
+ @TableField(select = false,exist = false)
+ //鐢ㄦ潵鏂板浼犲弬鐨勬姤鍛婄紪鍙�
+ private String code;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ @ExcelIgnore
+ private String sampleCode;
+
+ @ApiModelProperty("鎶曡瘔浜�")
+ @TableField(fill = FieldFill.INSERT)
+ @ExcelIgnore
+ private Integer createUser;
+
+ @ExcelProperty(value = "鎶曡瘔浜�")
+ @TableField(select = false,exist = false)
+ private String complainant;
+
+ @ApiModelProperty("鎶曡瘔鏃ユ湡")
+ @ExcelProperty(value = "鎶曡瘔鏃ユ湡")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ExcelIgnore
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ExcelIgnore
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鎶曡瘔鏂瑰紡")
+ @ExcelIgnore
+ private String complainMethod;
+
+ @ApiModelProperty("闂璁板綍")
+ @ExcelIgnore
+ private String problemRecords;
+
+ @ApiModelProperty("闂璁板綍-璐ㄩ噺璐熻矗浜�")
+ @ExcelIgnore
+ private Integer problemRecordsUser;
+
+ @ApiModelProperty("闂璁板綍-鏃ユ湡")
+ @ExcelIgnore
+ private LocalDate problemRecordsTime;
+
+ @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔�")
+ @ExcelIgnore
+ private String dutyOwnership;
+
+ @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔媉璐ㄩ噺璐熻矗浜�")
+ @ExcelIgnore
+ private Integer dutyOwnershipUser;
+
+ @ApiModelProperty("璐d换褰掑睘鍙婃姇璇夋槸鍚︽垚绔媉鏃ユ湡")
+ @ExcelIgnore
+ private LocalDate dutyOwnershipTime;
+
+ @ApiModelProperty("鍘熷洜鍒嗘瀽")
+ @ExcelIgnore
+ private String causeAnalysis;
+
+ @ApiModelProperty("鍘熷洜鍒嗘瀽_璐d换閮ㄩ棬璐熻矗浜�")
+ @ExcelIgnore
+ private Integer causeAnalysisUser;
+
+ @ApiModelProperty("鍘熷洜鍒嗘瀽_鏃ユ湡")
+ @ExcelIgnore
+ private LocalDate causeAnalysisTime;
+
+ @ApiModelProperty("绾犳鎺柦")
+ @ExcelIgnore
+ private String correctiveAction;
+
+ @ApiModelProperty("绾犳鎺柦_璐d换閮ㄩ棬璐熻矗浜�")
+ @ExcelIgnore
+ private Integer correctiveActionUser;
+
+ @ApiModelProperty("绾犳鎺柦_鏃ユ湡")
+ @ExcelIgnore
+ private LocalDate correctiveActionTime;
+
+ @ApiModelProperty("绾犳鎺柦纭")
+ @ExcelIgnore
+ private String correctiveActionConfirmation;
+
+ @ApiModelProperty("绾犳鎺柦纭_璐ㄩ噺璐熻矗浜�")
+ @ExcelIgnore
+ private Integer correctiveActionConfirmationUser;
+
+ @ApiModelProperty("绾犳鎺柦纭_鏃ユ湡")
+ @ExcelIgnore
+ private LocalDate correctiveActionConfirmationTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
new file mode 100644
index 0000000..4da07f4
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessDeal.java
@@ -0,0 +1,67 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 02:50:19
+ */
+@Getter
+@Setter
+@TableName("cnas_process_deal")
+@ApiModel(value = "ProcessDeal瀵硅薄", description = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�")
+public class ProcessDeal implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sampleName;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("渚涙牱鍗曚綅")
+ private String sampleSupplier;
+
+ @ApiModelProperty("鏁伴噺")
+ private Integer num;
+
+ @ApiModelProperty("澶勭悊鏂瑰紡")
+ private String dealMethod;
+
+ @ApiModelProperty("鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate dealTime;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍏宠仈鐨勫巻鍙叉�昏〃id")
+ private Integer totaldealId;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java
new file mode 100644
index 0000000..6faf5be
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessEvaluate.java
@@ -0,0 +1,75 @@
+package com.ruoyi.process.pojo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 01:10:43
+ */
+@Getter
+@Setter
+@TableName("cnas_process_evaluate")
+@ApiModel(value = "ProcessEvaluate瀵硅薄", description = "娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠�")
+public class ProcessEvaluate implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ @ExcelIgnore
+ private Integer id;
+
+ @ApiModelProperty("鎶ュ憡鍚嶇О")
+ @ExcelProperty(value = "鎶ュ憡鍚嶇О")
+ private String reportName;
+
+ @ApiModelProperty("鎶ュ憡璺緞")
+ @ExcelIgnore
+ private String reportUrl;
+
+ @ApiModelProperty("璇勪环浜�")
+ @ExcelIgnore
+ private Integer evaluateUser;
+
+ @TableField(select = false,exist = false)
+ @ExcelProperty(value = "璇勪环浜�")
+ private String evaluateUserName;
+
+ @ApiModelProperty("璇勪环鏃ユ湡")
+ @ExcelProperty(value = "璇勪环鏃ユ湡")
+ private LocalDate evaluateTime;
+
+ @ApiModelProperty("澶囨敞")
+ @ExcelProperty(value = "澶囨敞")
+ private String note;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ExcelIgnore
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ExcelIgnore
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ExcelIgnore
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ExcelIgnore
+ private LocalDateTime updateTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java
new file mode 100644
index 0000000..ec7450d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodSearchNew.java
@@ -0,0 +1,73 @@
+package com.ruoyi.process.pojo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏌ユ柊
+ *
+ * @author zhuo
+ * @since 2024-11-04
+ */
+@Data
+@ExcelIgnoreUnannotated
+@TableName("cnas_process_method_search_new")
+public class ProcessMethodSearchNew {
+
+ @TableId(type = IdType.AUTO)
+ private Integer methodSearchNewId;
+
+ @ExcelProperty(value = {"鏍囧噯鍚嶇О", "鏍囧噯鍚嶇О"}, index = 1)
+ @ApiModelProperty("鏍囧噯鍚嶇О")
+ private String methodName;
+
+ @ExcelProperty(value = {"鏍囧噯鍙�", "鏍囧噯鍙�"}, index = 2)
+ @ApiModelProperty("鏍囧噯鍙�")
+ private String standardNo;
+
+ @ExcelProperty(value = {"鏂囦欢缂栧彿", "鏂囦欢缂栧彿"}, index = 3)
+ @ApiModelProperty("鏂囦欢缂栧彿")
+ private String fileNo;
+
+ @ApiModelProperty("鏄惁鏄柊鏍囧噯, 0鍚�,1鏄�")
+ private Integer isNewStandard;
+
+ @ExcelProperty(value = {"鏂版爣鍑嗗悕绉�", "鏂版爣鍑嗗悕绉�"}, index = 5)
+ @ApiModelProperty("鏂版爣鍑嗗悕绉�")
+ private String newMethodName;
+
+ @ExcelProperty(value = {"鏂版爣鍑嗗彿", "鏂版爣鍑嗗彿"}, index =6)
+ @ApiModelProperty("鏂版爣鍑嗗彿")
+ private String newStandardNo;
+
+ @ApiModelProperty("鏌ユ柊璁板綍鏉ユ簮, 0,鏍囧噯缃�, 1濮旀墭鎯呮姤, 2鏍囧噯鏁�, 3鍏朵粬")
+ private Integer searchNewSource;
+
+ @ApiModelProperty("澶囨敞,0浣滃簾, 1鏇挎崲")
+ private Integer remark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java
new file mode 100644
index 0000000..be995c7
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerify.java
@@ -0,0 +1,133 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Data
+@TableName("cnas_process_method_verify")
+public class ProcessMethodVerify {
+
+ @TableId(type = IdType.AUTO)
+ private Integer methodVerifyId;
+
+ @ApiModelProperty("0鍙樻洿,1楠岃瘉")
+ private Integer operationType;
+
+ @ApiModelProperty("鏍囧噯鏂规硶")
+ private String methodName;
+
+ @ApiModelProperty("楠岃瘉鍘熷洜")
+ private String verifyReason;
+
+ @ApiModelProperty("涓昏鎶�鏈彉鍖�")
+ private String technologyChange;
+
+ @ApiModelProperty("(浜�)鏍囧噯瑕佹眰")
+ private String personRequirements;
+ @ApiModelProperty("(浜�)鍑嗗鎯呭喌")
+ private String personReadiness;
+ @ApiModelProperty("(浜�)鏄惁婊¤冻")
+ private Integer personIsSatisfied;
+ @ApiModelProperty("(浜�)澶囨敞")
+ private String personRemark;
+
+ @ApiModelProperty("(鏈�)鏍囧噯瑕佹眰")
+ private String machineRequirements;
+ @ApiModelProperty("(鏈�)鍑嗗鎯呭喌")
+ private String machineReadiness;
+ @ApiModelProperty("(鏈�)鏄惁婊¤冻")
+ private Integer machineIsSatisfied;
+ @ApiModelProperty("(鏈�)澶囨敞")
+ private String machineRemark;
+
+ @ApiModelProperty("(鏂�)鏍囧噯瑕佹眰")
+ private String materialRequirements;
+ @ApiModelProperty("(鏂�)鍑嗗鎯呭喌")
+ private String materialReadiness;
+ @ApiModelProperty("(鏂�)鏄惁婊¤冻")
+ private Integer materialIsSatisfied;
+ @ApiModelProperty("(鏂�)澶囨敞")
+ private String materialRemark;
+
+ @ApiModelProperty("(娉�)鏍囧噯瑕佹眰")
+ private String methodRequirements;
+ @ApiModelProperty("(娉�)鍑嗗鎯呭喌")
+ private String methodReadiness;
+ @ApiModelProperty("(娉�)鏄惁婊¤冻")
+ private Integer methodIsSatisfied;
+ @ApiModelProperty("(娉�)澶囨敞")
+ private String methodRemark;
+
+ @ApiModelProperty("(鐜�)鏍囧噯瑕佹眰")
+ private String environmentRequirements;
+ @ApiModelProperty("(鐜�)鍑嗗鎯呭喌")
+ private String environmentReadiness;
+ @ApiModelProperty("(鐜�)鏄惁婊¤冻")
+ private Integer environmentIsSatisfied;
+ @ApiModelProperty("(鐜�)澶囨敞")
+ private String environmentRemark;
+
+ @ApiModelProperty("(娴嬮噺婧簮鎬�)鏍囧噯瑕佹眰")
+ private String traceabilityRequirements;
+ @ApiModelProperty("(娴嬮噺婧簮鎬�)鍑嗗鎯呭喌")
+ private String traceabilityReadiness;
+ @ApiModelProperty("(娴嬮噺婧簮鎬�)鏄惁婊¤冻")
+ private Integer traceabilityIsSatisfied;
+ @ApiModelProperty("(娴嬮噺婧簮鎬�)澶囨敞")
+ private String traceabilityRemark;
+
+ @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏍囧噯瑕佹眰")
+ private String managementRequirements;
+ @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鍑嗗鎯呭喌")
+ private String managementReadiness;
+ @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)鏄惁婊¤冻")
+ private Integer managementIsSatisfied;
+ @ApiModelProperty("(鏍峰搧绠$悊闇�姹�)澶囨敞")
+ private String managementRemark;
+
+ @ApiModelProperty("(鍏朵粬)鏍囧噯瑕佹眰")
+ private String otherRequirements;
+ @ApiModelProperty("(鍏朵粬)鍑嗗鎯呭喌")
+ private String otherReadiness;
+ @ApiModelProperty("(鍏朵粬)鏄惁婊¤冻")
+ private Integer otherIsSatisfied;
+ @ApiModelProperty("(鍏朵粬)澶囨敞")
+ private String otherRemark;
+
+ @ApiModelProperty("纭鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime confirmDate;
+
+ @ApiModelProperty("纭浜哄憳")
+ private String confirmUser;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java
new file mode 100644
index 0000000..f216ef8
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyCalibrationsFile.java
@@ -0,0 +1,56 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+@Data
+@TableName("cnas_process_method_verify_calibrations_file")
+public class ProcessMethodVerifyCalibrationsFile {
+
+ @TableId(type = IdType.AUTO)
+ private Integer calibrationsFileId;
+ @ApiModelProperty("鏂规硶楠岃瘉id")
+ private Integer methodVerifyId;
+
+ @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("璁惧id")
+ private Integer deviceId;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java
new file mode 100644
index 0000000..a3ecbdf
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMachineAttachment.java
@@ -0,0 +1,60 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Data
+@TableName("cnas_process_method_verify_machine_attachment")
+public class ProcessMethodVerifyMachineAttachment {
+
+ @TableId(type = IdType.AUTO)
+ private Integer machineAttachmentId;
+
+ @ApiModelProperty("鏂规硶楠岃瘉id")
+ private Integer methodVerifyId;
+
+ @ApiModelProperty("璁惧id")
+ private Integer deviceId;
+
+ @ApiModelProperty("璁惧鍚嶇О")
+ private String machineName;
+
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private String machineSpecification;
+
+ @ApiModelProperty("绛栫暐鑼冨洿")
+ private String machineMeasuringRange;
+
+ @ApiModelProperty("鎵╁睍淇℃伅")
+ private String other;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java
new file mode 100644
index 0000000..9f4a319
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyMethodFile.java
@@ -0,0 +1,54 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Data
+@TableName("cnas_process_method_verify_method_file")
+public class ProcessMethodVerifyMethodFile {
+
+ @TableId(type = IdType.AUTO)
+ private Integer methodFileId;
+
+ @ApiModelProperty("鏂规硶楠岃瘉id")
+ private Integer methodVerifyId;
+
+ @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java
new file mode 100644
index 0000000..d021909
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessMethodVerifyWorkFile.java
@@ -0,0 +1,59 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+@Data
+@TableName("cnas_process_method_verify_work_file")
+public class ProcessMethodVerifyWorkFile {
+
+ @TableId(type = IdType.AUTO)
+ private Integer workFileId;
+ @ApiModelProperty("鏂规硶楠岃瘉id")
+ private Integer methodVerifyId;
+
+ @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("鎸佹湁浜篿d")
+ private Integer userId;
+
+ @ApiModelProperty("鎸佹湁浜�")
+ private String userName;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java
new file mode 100644
index 0000000..305b06d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java
@@ -0,0 +1,63 @@
+package com.ruoyi.process.pojo;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+@Getter
+@Setter
+@TableName("cnas_process_order")
+@ApiModel(value = "ProcessOrder瀵硅薄", description = "瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
+public class ProcessOrder implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鍏宠仈澶栭敭(妫�楠屽崟id)")
+ private Integer insOrderId;
+
+ @ApiModelProperty("鍒ゅ畾瑙勫垯:涓嶈�冭檻涓嶇‘瀹氬害/鑰冭檻涓嶇‘瀹氬害(%)")
+ private String rule;
+
+ @ApiModelProperty("缁煎悎瀹ょ鍚嶄汉")
+ private Integer comprehensiveUser;
+
+ @TableField(select = false,exist = false)
+ private String comprehensiveUserName;
+
+ @TableField(select = false,exist = false)
+ private String comprehensiveUserUrl;
+
+ @ApiModelProperty("鎺ユ敹鏃ユ湡")
+ private LocalDate comprehensiveTime;
+
+ @ApiModelProperty("棰嗘牱鍛�")
+ private Integer issueUser;
+
+ @TableField(select = false,exist = false)
+ private String issueUserName;
+
+ @TableField(select = false,exist = false)
+ private String issueUserUrl;
+
+ @ApiModelProperty("棰嗘牱鏃ユ湡")
+ private LocalDate issueTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
new file mode 100644
index 0000000..353fa4b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessReport.java
@@ -0,0 +1,83 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 08:58:39
+ */
+@Getter
+@Setter
+@TableName("cnas_process_report")
+@ApiModel(value = "ProcessReport瀵硅薄", description = "妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃")
+public class ProcessReport implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("妫�楠屾姤鍛婄紪鍙�")
+ private String insReportCode;
+
+ @ApiModelProperty("椤垫暟")
+ private String pages;
+
+ @ApiModelProperty("鍙戦�佷唤鏁�")
+ private String number;
+
+ @ApiModelProperty("鍙戝線浣曞")
+ private String send;
+
+ @ApiModelProperty("鍙戦�佹柟寮�")
+ private String method;
+
+ @ApiModelProperty("鍙戦�佹棩鏈�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate sendTime;
+
+ @ApiModelProperty("鍙戦�佷汉")
+ private Integer sendUser;
+
+ @TableField(select = false,exist = false)
+ private String sendUserName;
+
+ @ApiModelProperty("绛炬敹浜�")
+ private String signatory;
+
+
+ @TableField(select = false,exist = false)
+ private String signatoryUrl;
+
+ @TableField(select = false,exist = false)
+ private String signatoryName;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java
new file mode 100644
index 0000000..4fec589
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSample.java
@@ -0,0 +1,79 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:49
+ */
+@Getter
+@Setter
+@TableName("cnas_process_sample")
+@ApiModel(value = "ProcessSample瀵硅薄", description = "鏍峰搧鎺ユ敹")
+public class ProcessSample implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sampleName;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("鏉ユ牱鍗曚綅")
+ private String sampleSupplier;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private Integer num;
+
+ @ApiModelProperty("鏍峰搧鐘舵��")
+ private String sampleState;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍏宠仈鎬昏〃鍘嗗彶id")
+ private Integer totalSampleId;
+
+ @ApiModelProperty("鏀舵牱鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate receiveDate;
+
+ @ApiModelProperty("鐣欐牱鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate leaveDate;
+
+ @ApiModelProperty("閫�鏍风鏀�/澶勭悊鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate dealTime;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java
new file mode 100644
index 0000000..0a0999e
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotalSample.java
@@ -0,0 +1,78 @@
+package com.ruoyi.process.pojo;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹鎬昏〃
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:58
+ */
+@Getter
+@Setter
+@TableName("cnas_process_total_sample")
+@ApiModel(value = "ProcessTotalSample瀵硅薄", description = "鏍峰搧鎺ユ敹鎬昏〃")
+public class ProcessTotalSample implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("瀹℃牳浜�")
+ private Integer examineUser;
+
+ @ApiModelProperty("瀹℃牳缁撴灉")
+ private String examineState;
+
+ @ApiModelProperty("瀹℃牳浜虹數瀛愮鍚島rl")
+ private String examineUrl;
+
+
+ @TableField(select = false, exist = false)
+ private String examineUserName;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private Integer ratifyUser;
+
+ @ApiModelProperty("鎵瑰噯缁撴灉")
+ private String ratifyState;
+
+ @ApiModelProperty("鎵瑰噯浜虹數瀛愮鍚島rl")
+ private String ratifyUrl;
+
+ @TableField(select = false, exist = false)
+ private String ratifyUserName;
+
+ @ApiModelProperty("鎻愪氦浜�")
+ private Integer submitUser;
+ @TableField(select = false, exist = false)
+ private String submitUserName;
+
+ @ApiModelProperty("鎻愪氦缁撴灉")
+ private String submitState;
+
+ @ApiModelProperty("鎻愪氦浜虹數瀛愮鍚島rl")
+ private String submitUrl;
+
+ @ApiModelProperty("鎬绘暟閲�")
+ private Integer totalNum;
+
+ @ApiModelProperty("鏈堜唤")
+ private String month;
+
+ @ApiModelProperty("鐢熸垚鐢宠琛ㄧ殑璺緞")
+ private String url;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java
new file mode 100644
index 0000000..ea23a7a
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessTotaldeal.java
@@ -0,0 +1,78 @@
+package com.ruoyi.process.pojo;
+
+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 io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶)
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 03:59:09
+ */
+@Getter
+@Setter
+@TableName("cnas_process_totaldeal")
+@ApiModel(value = "ProcessTotaldeal瀵硅薄", description = "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶)")
+public class ProcessTotaldeal implements Serializable {
+
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("瀹℃牳浜�")
+ private Integer examineUser;
+
+ @ApiModelProperty("瀹℃牳缁撴灉")
+ private String examineState;
+
+ @ApiModelProperty("瀹℃牳浜虹數瀛愮鍚島rl")
+ private String examineUrl;
+
+
+ @TableField(select = false, exist = false)
+ private String examineUserName;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private Integer ratifyUser;
+
+ @ApiModelProperty("鎵瑰噯缁撴灉")
+ private String ratifyState;
+
+ @ApiModelProperty("鎵瑰噯浜虹數瀛愮鍚島rl")
+ private String ratifyUrl;
+
+ @TableField(select = false, exist = false)
+ private String ratifyUserName;
+
+ @ApiModelProperty("鎻愪氦浜�")
+ private Integer submitUser;
+ @TableField(select = false, exist = false)
+ private String submitUserName;
+
+ @ApiModelProperty("鎻愪氦缁撴灉")
+ private String submitState;
+
+ @ApiModelProperty("鎻愪氦浜虹數瀛愮鍚島rl")
+ private String submitUrl;
+
+ @ApiModelProperty("鎬绘暟閲�")
+ private Integer totalNum;
+
+ @ApiModelProperty("鏈堜唤")
+ private String month;
+
+ @ApiModelProperty("鐢熸垚鐢宠琛ㄧ殑璺緞")
+ private String url;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java
new file mode 100644
index 0000000..8bca8d7
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitor.java
@@ -0,0 +1,78 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Data
+@TableName("cnas_quality_monitor")
+public class QualityMonitor {
+
+ @TableId(type = IdType.AUTO)
+ private Integer qualityMonitorId;
+
+ @ApiModelProperty("璁″垝鍚嶇О")
+ private String monitorName;
+
+ @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堢紪鍒朵汉锛�")
+ private Integer writeUserId;
+
+ @ApiModelProperty("缂栧埗鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime writeTime;
+
+ @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堝鏍镐汉锛�")
+ private Integer examineUserId;
+
+ @ApiModelProperty("瀹℃牳鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime examineTime;
+
+ @ApiModelProperty("瀹℃牳鐘舵�� , 0 涓嶉�氳繃, 1閫氳繃")
+ private Integer examineStatus;
+
+ @ApiModelProperty("瀹℃牳鍐呭")
+ private String examineRemark;
+
+ @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�")
+ private Integer ratifyUserId;
+
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime ratifyTime;
+
+ @ApiModelProperty("鎵瑰噯鐘舵��, 0 涓嶉�氳繃, 1閫氳繃")
+ private Integer ratifyStatus;
+
+ @ApiModelProperty("鎵瑰噯鍐呭")
+ private String ratifyRemark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java
new file mode 100644
index 0000000..a52c27b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetails.java
@@ -0,0 +1,70 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Data
+@TableName("cnas_quality_monitor_details")
+public class QualityMonitorDetails {
+
+ @TableId(type = IdType.AUTO)
+ private Integer qualityMonitorDetailsId;
+
+ @ApiModelProperty("鐩戞帶璁″垝id")
+ private Integer qualityMonitorId;
+
+ @ApiModelProperty("鐩戞帶鐩殑")
+ private String monitorPurpose;
+
+ @ApiModelProperty("璁″垝寮�灞曟椂闂�")
+ private String plannedTime;
+
+ @ApiModelProperty("鐩戞帶椤圭洰")
+ private String monitorProject;
+
+ @ApiModelProperty("鍙傚姞浜哄憳")
+ private String participant;
+
+ @ApiModelProperty("棰勭畻")
+ private String budget;
+
+ @ApiModelProperty("缁勭粐浜哄憳")
+ private String organization;
+
+ @ApiModelProperty("鐩戞帶鏂瑰紡")
+ private String monitorWay;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ // 瀵煎嚭浣跨敤
+ @TableField(select = false, exist = false)
+ private Integer index;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java
new file mode 100644
index 0000000..8b5a5b8
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluate.java
@@ -0,0 +1,86 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Data
+@TableName("cnas_quality_monitor_details_evaluate")
+public class QualityMonitorDetailsEvaluate {
+
+ @TableId(type = IdType.AUTO)
+ private Integer detailsEvaluateId;
+
+ @ApiModelProperty("鐩戞帶璁″垝璇︽儏id")
+ private Integer qualityMonitorDetailsId;
+
+ @ApiModelProperty("璇勫鐩殑")
+ private String reviewPurpose;
+
+ @ApiModelProperty("璇勫浜哄憳")
+ private String reviewUser;
+
+ @ApiModelProperty("璇勫鏃ユ湡")
+ private String reviewTime;
+
+ @ApiModelProperty("瀹炴柦鎯呭喌")
+ private String implementCondition;
+
+ @ApiModelProperty("瀹炴柦閮ㄩ棬")
+ private String implementDepartment;
+
+ @ApiModelProperty("瀹炴柦缁撴灉")
+ private String implementResult;
+
+ @ApiModelProperty("瀹炴柦鎶�鏈礋璐d汉")
+ private String implementUserId;
+
+ @ApiModelProperty("鎵瑰噯缁撹")
+ private String ratifyOpinion;
+
+ @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉")
+ private Integer ratifyUserId;
+
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime ratifyTime;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�")
+ private Integer isFinish;
+
+ @ApiModelProperty("瀹炴柦鎶�鏈礋璐d汉鍚嶇О")
+ @TableField(exist = false,select = false)
+ private String implementName;
+
+ @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉鍚嶇О")
+ @TableField(exist = false,select = false)
+ private String ratifyUserName;
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java
new file mode 100644
index 0000000..cf5fb01
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsEvaluateFile.java
@@ -0,0 +1,54 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_monitor_details_evaluate_file")
+public class QualityMonitorDetailsEvaluateFile {
+
+ @TableId(type = IdType.AUTO)
+ private Integer evaluateFileId;
+
+ @ApiModelProperty("璇勪环id")
+ private Integer detailsEvaluateId;
+
+ @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java
new file mode 100644
index 0000000..a4e1d13
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualityMonitorDetailsRatify.java
@@ -0,0 +1,85 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Data
+@TableName("cnas_quality_monitor_details_ratify")
+public class QualityMonitorDetailsRatify {
+
+ @TableId(type = IdType.AUTO)
+ private Integer detailsRatifyId;
+
+ @ApiModelProperty("鐩戞帶璁″垝璇︽儏id")
+ private Integer qualityMonitorDetailsId;
+
+ @ApiModelProperty("鐩戞帶椤圭洰")
+ private String monitorProject;
+
+ @ApiModelProperty("鐩戞帶鐩殑")
+ private String monitorPurpose;
+
+ @ApiModelProperty("鐩戞帶鏃堕棿")
+ private String monitorData;
+
+ @ApiModelProperty("鐩戞帶鏂规硶")
+ private String monitorMethod;
+
+ @ApiModelProperty("鍙傚姞浜哄憳")
+ private String participant;
+
+ @ApiModelProperty("杩囩▼鎺у埗")
+ private String processControl;
+
+ @ApiModelProperty("濡備綍璇勪环")
+ private String howEvaluate;
+
+ @ApiModelProperty("棰勭畻")
+ private String budget;
+
+ @ApiModelProperty("妫�娴嬮儴闂�")
+ private String inspectionDepartment;
+
+ @ApiModelProperty("鎵瑰噯鎰忚")
+ private String ratifyOpinion;
+
+ @ApiModelProperty("鎶�鏈礋璐d汉")
+ private Integer ratifyUserId;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�")
+ private Integer isFinish;
+
+ @ApiModelProperty("鎶�鏈礋璐d汉")
+ @TableField(exist = false,select = false)
+ private String ratifyName;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java
new file mode 100644
index 0000000..aceb1e1
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySupervise.java
@@ -0,0 +1,72 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_supervise")
+public class QualitySupervise {
+
+ @TableId(type = IdType.AUTO)
+ private Integer superviseId;
+
+ @ApiModelProperty("鐩戠潱鍚嶇О")
+ private String superviseName;
+
+ @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堢紪鍒朵汉锛�")
+ private Integer writeUserId;
+
+ @ApiModelProperty("缂栧埗浜�")
+ private String writeUserName;
+
+ @ApiModelProperty("缂栧埗鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime writeTime;
+
+ @ApiModelProperty("澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�")
+ private Integer ratifyUserId;
+
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private String ratifyUserName;
+
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime ratifyTime;
+
+ @ApiModelProperty("鎵瑰噯鐘舵��, 0 涓嶉�氳繃, 1閫氳繃")
+ private Integer ratifyStatus;
+
+ @ApiModelProperty("鎵瑰噯鍐呭")
+ private String ratifyRemark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java
new file mode 100644
index 0000000..678a4e6
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetails.java
@@ -0,0 +1,67 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_supervise_details")
+public class QualitySuperviseDetails {
+
+ @TableId(type = IdType.AUTO)
+ private Integer superviseDetailsId;
+
+ @ApiModelProperty("鐩戠潱璁″垝id")
+ private Integer superviseId;
+
+ @ApiModelProperty("鐩戠潱鏃ユ湡")
+ private String superviseTime;
+
+ @ApiModelProperty("鐩戠潱鐩殑")
+ private String supervisePurpose;
+
+ @ApiModelProperty("鐩戞帶椤圭洰")
+ private String superviseProject;
+
+ @ApiModelProperty("琚洃鐫d汉")
+ private String supervisee;
+
+ @ApiModelProperty("鐩戠潱鍘熷洜")
+ private String superviseReason;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ // 瀵煎嚭浣跨敤
+ @TableField(select = false, exist = false)
+ private Integer index;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java
new file mode 100644
index 0000000..c4563df
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsAccording.java
@@ -0,0 +1,139 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏涓嶇鍚堥」鎺у埗琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_supervise_details_according")
+public class QualitySuperviseDetailsAccording {
+
+ @TableId(type = IdType.AUTO)
+ private Integer superviseDetailsAccordingId;
+
+ @ApiModelProperty("鐩戠潱璇︽儏id")
+ private Integer superviseDetailsId;
+
+ @ApiModelProperty("0鍙戠敓閮ㄩ棬")
+ private String occurrenceDepartment;
+
+ @ApiModelProperty("0閮ㄩ棬璐熻矗浜�")
+ private String headDepartment;
+
+ @ApiModelProperty("0鍙戠幇閫斿緞,0:绠$悊璇勫,1:鍐呴儴瀹℃牳,2:妫�娴嬭繃绋嬫帶鍒�,3:鍐呴儴璐ㄩ噺鎺у埗,4:鍐呴儴鐩戠潱,5:澶栭儴璇勫,6:澶栭儴鎶曡瘔,7:鍏朵粬")
+ private Integer findWay;
+
+ @ApiModelProperty("0涓嶇鍚堣褰曡鎯�")
+ private String recordDetail;
+
+ @ApiModelProperty("0涓嶅悎鏍艰褰曚緷鎹�")
+ private String recordAccording;
+
+ @ApiModelProperty("0鍙戠幇閮ㄩ棬")
+ private String foundDepartment;
+
+ @ApiModelProperty("0璁板綍浜篿d")
+ private Integer recordUserId;
+
+ @ApiModelProperty("0璁板綍浜�")
+ private String recordUserName;
+
+ @ApiModelProperty("0璁板綍鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate recordTime;
+
+ @ApiModelProperty("0琚洃鐫d汉id")
+ private Integer supervisedUserId;
+
+ @ApiModelProperty("0琚洃鐫d汉")
+ private String supervisedUserName;
+
+ @ApiModelProperty("0琚洃鐫f椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate supervisedTime;
+
+ @ApiModelProperty("1娓呴櫎涓嶇鍚堟帾鏂�")
+ private String eliminateMeasure;
+
+ @ApiModelProperty("1璐d换閮ㄩ棬")
+ private String responsibleDepartment;
+
+ @ApiModelProperty("1澶勭悊浜篿d")
+ private Integer actionsUserId;
+
+ @ApiModelProperty("1澶勭悊浜�")
+ private String actionsUserName;
+
+ @ApiModelProperty("1澶勭悊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate actionsTime;
+
+ @ApiModelProperty("2绾犳鎺柦鍐呭")
+ private String correctContent;
+
+ @ApiModelProperty("2鏄惁绾犳澶勭悊, 0鍚�, 1鏄�")
+ private Integer isCorrect;
+
+ @ApiModelProperty("2绾犳鎶�鏈礋璐d汉id")
+ private Integer correctUserId;
+
+ @ApiModelProperty("2绾犳鎶�鏈礋璐d汉")
+ private String correctUserName;
+
+ @ApiModelProperty("2绾犳濉啓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate correctTime;
+
+ @ApiModelProperty("3鏄惁閫氱煡瀹㈡埛, 0鍚�, 1鏄�")
+ private Integer notifyCustomer;
+
+ @ApiModelProperty("3鏄惁鎭㈠宸ヤ綔, 0鍚�, 1鏄�")
+ private Integer backToWork;
+
+ @ApiModelProperty("3璐ㄩ噺璐熻矗浜篿d")
+ private Integer qualityManagerUserId;
+
+ @ApiModelProperty("3璐ㄩ噺璐熻矗浜�")
+ private String qualityManagerUserName;
+
+ @ApiModelProperty("3璐ㄩ噺璐熻矗浜哄~鍐欐椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate qualityManagerTime;
+
+ @ApiModelProperty("鏄惁缁撴潫,0: 鏈粨鏉�, 1:缁撴潫")
+ private Integer isFinish;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false,select = false)
+ @ApiModelProperty("娴佺▼, 0:涓嶇鍚堝伐浣滄儏鍐佃褰�, 1澶勭悊鎺柦, 2:绾犳鎺柦, 3:鏄惁閫氱煡瀹㈡埛鍙仮澶嶅伐浣�")
+ private Integer flowType;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java
new file mode 100644
index 0000000..ac5cc8d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrect.java
@@ -0,0 +1,123 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏绾犳澶勭悊琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_supervise_details_correct")
+public class QualitySuperviseDetailsCorrect {
+
+ @TableId(type = IdType.AUTO)
+ private Integer superviseDetailsCorrectId;
+
+ @ApiModelProperty("鐩戠潱璇︽儏id")
+ private Integer superviseDetailsId;
+
+ @ApiModelProperty("0涓嶅悎鏍兼弿杩�")
+ private String raiseResult;
+
+ @ApiModelProperty("0vde涓撳鍙戠幇")
+ private String vdeRaiseResult;
+
+ @ApiModelProperty("0鎻愬嚭閮ㄩ棬")
+ private String raiseDepartment;
+
+ @ApiModelProperty("0鎻愬嚭浜篿d")
+ private Integer raiseUserId;
+
+ @ApiModelProperty("0鎻愬嚭浜�")
+ private String raiseUserName;
+
+ @ApiModelProperty("0鎻愬嚭鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate raiseTime;
+
+ @ApiModelProperty("1鍘熷洜鍒嗘瀽")
+ private String causeResult;
+
+ @ApiModelProperty("1鍘熷洜鍒嗘瀽璐d换閮ㄩ棬")
+ private String causeDepartment;
+
+ @ApiModelProperty("1鍘熷洜鍒嗘瀽浜篿d")
+ private Integer causeUserId;
+
+ @ApiModelProperty("1鍘熷洜鍒嗘瀽浜�")
+ private String causeUserName;
+
+ @ApiModelProperty("1鍘熷洜鍒嗘瀽鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate causeTime;
+
+ @ApiModelProperty("2绾犳鎺柦")
+ private String correctResult;
+
+ @ApiModelProperty("2鎻愬嚭閮ㄩ棬纭")
+ private String raiseDepartmentAffirm;
+
+ @ApiModelProperty("2绾犳璐d换閮ㄩ棬")
+ private String correctDepartment;
+
+ @ApiModelProperty("2绾犳浜篿d")
+ private Integer correctUserId;
+
+ @ApiModelProperty("2绾犳浜�")
+ private String correctUserName;
+
+ @ApiModelProperty("2绾犳鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate correctTime;
+
+ @ApiModelProperty("3楠岃瘉缁撴灉")
+ private String validationResult;
+
+ @ApiModelProperty("3楠岃瘉閮ㄩ棬")
+ private String validationDepartment;
+
+ @ApiModelProperty("3楠岃瘉浜篿d")
+ private Integer validationUserId;
+
+ @ApiModelProperty("3楠岃瘉浜�")
+ private String validationUserName;
+
+ @ApiModelProperty("3楠岃瘉鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate validationTime;
+
+ @ApiModelProperty("鏄惁缁撴潫, 0: 鏈粨鏉�, 1:宸茬粨鏉�")
+ private Integer isFinish;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @TableField(exist = false,select = false)
+ @ApiModelProperty("娴佺▼, 0:涓嶅悎鏍兼彁鍑�, 1:鍘熷洜鍒嗘瀽, 2:绾犳鎺柦, 3:楠岃瘉缁撴灉")
+ private Integer flowType;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java
new file mode 100644
index 0000000..9945548
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsCorrectFile.java
@@ -0,0 +1,54 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏绾犳鎺柦闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-09
+ */
+@Data
+@TableName("cnas_quality_supervise_details_correct_file")
+public class QualitySuperviseDetailsCorrectFile {
+
+ @TableId(type = IdType.AUTO)
+ private Integer superviseDetailsCorrectFileId;
+
+ @ApiModelProperty("鐩戠潱璇︽儏绾犳鎺柦id")
+ private Integer superviseDetailsCorrectId;
+
+ @ApiModelProperty("绫诲瀷:1鍥剧墖/2鏂囦欢")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java
new file mode 100644
index 0000000..6f12fde
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/QualitySuperviseDetailsRecord.java
@@ -0,0 +1,119 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏璁板綍琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Data
+@TableName("cnas_quality_supervise_details_record")
+public class QualitySuperviseDetailsRecord {
+
+ @TableId
+ private Integer superviseDetailsRecordId;
+
+ @ApiModelProperty("鐩戠潱璇︽儏id")
+ private Integer superviseDetailsId;
+
+ @ApiModelProperty("妫�娴嬩汉鍛�")
+ private String testMember;
+
+ @ApiModelProperty("鐩戠潱鍛�")
+ private String supervisor;
+
+ @ApiModelProperty("妫�娴嬮」鐩�")
+ private String testItem;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleNumber;
+
+ @ApiModelProperty("妫�娴嬫棩鏈�")
+ private String testDate;
+
+ @ApiModelProperty("妫�娴嬭繃绋�")
+ private String testingProcess;
+
+ @ApiModelProperty("鎯呭喌璁板綍")
+ private String caseReload;
+
+ @ApiModelProperty("浜哄憳")
+ private String personnel;
+
+ @ApiModelProperty("浠櫒璁惧")
+ private String device;
+
+ @ApiModelProperty("鐜")
+ private String environment;
+
+ @ApiModelProperty("鏍峰搧閲囬泦")
+ private String sampleCollection;
+
+ @ApiModelProperty("鏍峰搧鍑嗗")
+ private String samplePreparation;
+
+ @ApiModelProperty("妫�娴嬫柟娉�")
+ private String detectionMethod;
+
+ @ApiModelProperty("妫�娴嬭褰�")
+ private String inspectionRecord;
+
+ @ApiModelProperty("妫�娴嬫姤鍛�")
+ private String examiningReport;
+
+ @ApiModelProperty("鐩戠潱鎯呭喌璇勪环")
+ private String supervisionEvaluation;
+
+ @ApiModelProperty("涓嶅悎鏍煎鐞嗘剰瑙�")
+ private String handlingAdvice;
+
+ @ApiModelProperty("鎵瑰噯缁撹")
+ private String ratifyOpinion;
+
+ @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉")
+ private Integer ratifyUserId;
+
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDateTime ratifyTime;
+
+ @ApiModelProperty("鏄惁绗﹀悎,0 涓嶇鍚�, 1绗﹀悎")
+ private Integer isAccording;
+
+ @ApiModelProperty("鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�")
+ private Integer isFinish;
+
+ @ApiModelProperty("鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("淇敼浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鎵瑰噯鎶�鏈礋璐d汉")
+ @TableField(exist = false,select = false)
+ private String ratifyUserName;
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java b/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java
new file mode 100644
index 0000000..a99b6df
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/schedule/ProcessTotaldealSchedule.java
@@ -0,0 +1,37 @@
+package com.ruoyi.process.schedule;
+
+import com.ruoyi.process.pojo.ProcessTotalSample;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+import com.ruoyi.process.service.ProcessTotalSampleService;
+import com.ruoyi.process.service.ProcessTotaldealService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+@Component
+public class ProcessTotaldealSchedule {
+
+ @Resource
+ private ProcessTotaldealService processTotaldealService;
+
+ @Resource
+ private ProcessTotalSampleService processTotalSampleService;
+
+ @Scheduled(cron = "0 0 2 1 * ?") //姣忔湀1鍙�2鐐�
+ public void processTotaldeal() {
+ ProcessTotaldeal processTotaldeal = new ProcessTotaldeal();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+ Calendar calendar = Calendar.getInstance();
+ String formattedDate = sdf.format(calendar.getTime());
+ processTotaldeal.setMonth(formattedDate);
+ processTotaldeal.setSubmitState("寰呮彁浜�");
+ processTotaldealService.save(processTotaldeal);
+ ProcessTotalSample processTotalSample = new ProcessTotalSample();
+ BeanUtils.copyProperties(processTotaldeal,processTotalSample);
+ processTotalSampleService.save(processTotalSample);
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java
new file mode 100644
index 0000000..eb5292c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionDetailService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.InconsistentDistributionDetail;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯冭鎯� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:33
+ */
+public interface InconsistentDistributionDetailService extends IService<InconsistentDistributionDetail> {
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java
new file mode 100644
index 0000000..9c63f79
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/InconsistentDistributionService.java
@@ -0,0 +1,63 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.InconsistentDistributionDto;
+import com.ruoyi.process.pojo.InconsistentDistribution;
+
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:20
+ */
+public interface InconsistentDistributionService extends IService<InconsistentDistribution> {
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冨垎椤垫煡璇�
+ * @param page
+ * @param inconsistentDistribution
+ * @return
+ */
+ IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, InconsistentDistribution inconsistentDistribution);
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冩柊澧�
+ * @param inconsistentDistribution
+ * @return
+ */
+ boolean addInconsistentDistribution(InconsistentDistributionDto inconsistentDistribution);
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冧慨鏀�
+ * @param inconsistentDistribution
+ * @return
+ */
+ boolean updateInconsistentDistribution(InconsistentDistributionDto inconsistentDistribution);
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冨垹闄�
+ * @param distributionId
+ * @return
+ */
+ boolean delInconsistentDistribution(Integer distributionId);
+
+ /**
+ * 涓嶇鍚堥」鐨勫垎甯冩煡鐪嬭鎯�
+ * @param distributionId
+ * @return
+ */
+ InconsistentDistributionDto getInconsistentDistributionOne(Integer distributionId);
+
+ /**
+ * 瀵煎嚭涓嶇鍚堥」鐨勫垎甯�
+ * @param distributionId
+ * @param response
+ */
+ void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java
new file mode 100644
index 0000000..2f05571
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessComplainService.java
@@ -0,0 +1,31 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.ProcessComplainDto;
+import com.ruoyi.process.pojo.ProcessComplain;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鎶曡瘔 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 09:29:11
+ */
+public interface ProcessComplainService extends IService<ProcessComplain> {
+
+ IPage<ProcessComplain> pageProcessComplain(Page page, ProcessComplain processComplain);
+
+ int addProcessComplain(ProcessComplain processComplain);
+
+ ProcessComplainDto getProcessComplain(Long id);
+
+ int doProcessComplain(ProcessComplain processComplain);
+
+ void exportProcessComplain(ProcessComplain processComplain, HttpServletResponse response) throws Exception;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java
new file mode 100644
index 0000000..6029ae5
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessDealService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessDeal;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 02:50:19
+ */
+public interface ProcessDealService extends IService<ProcessDeal> {
+
+ IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal);
+
+ int addProcessDeal(ProcessDeal processDeal);
+
+ int delProcessDeal(Integer id);
+
+ int doProcessDeal(ProcessDeal processDeal);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java
new file mode 100644
index 0000000..5d3cc83
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessEvaluateService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessEvaluate;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 01:10:43
+ */
+public interface ProcessEvaluateService extends IService<ProcessEvaluate> {
+
+ IPage<ProcessEvaluate> pageProcessEvaluate(Page page, ProcessEvaluate processEvaluate);
+
+ int addProcessEvaluate(MultipartFile file);
+
+ int doProcessEvaluate(ProcessEvaluate processEvaluate);
+
+ void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception;
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java
new file mode 100644
index 0000000..e940d5b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodSearchNewService.java
@@ -0,0 +1,49 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.ProcessMethodSearchNewDto;
+import com.ruoyi.process.pojo.ProcessMethodSearchNew;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鏍囧噯鏌ユ柊
+ *
+ * @author zhuo
+ * @since 2024-11-04
+ */
+public interface ProcessMethodSearchNewService extends IService<ProcessMethodSearchNew> {
+
+ /**
+ * 鏂板鏍囧噯鏌ユ柊
+ * @param processMethodSearchNewList
+ * @return
+ */
+ boolean addMethodSearchNew(List<ProcessMethodSearchNew> processMethodSearchNewList);
+
+ /**
+ * 鏍囧噯鏌ユ柊鍒楄〃
+ * @param processMethodSearchNew
+ * @return
+ */
+ IPage<ProcessMethodSearchNew> pageMethodSearchNew(Page page, ProcessMethodSearchNewDto processMethodSearchNew);
+
+ /**
+ * 鏍囧噯鏌ユ柊瀵煎嚭
+ * @param processMethodSearchNew
+ * @param response
+ */
+ void exportMethodSearchNew(ProcessMethodSearchNewDto processMethodSearchNew, HttpServletResponse response);
+
+ /**
+ * 瀵煎叆鏍囧噯鏌ユ柊
+ * @param file
+ * @return
+ */
+ boolean importMethodSearchNew(MultipartFile file);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java
new file mode 100644
index 0000000..76e60e0
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyCalibrationsFileService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧鏍″噯闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+public interface ProcessMethodVerifyCalibrationsFileService extends IService<ProcessMethodVerifyCalibrationsFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java
new file mode 100644
index 0000000..dfc9c5e
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMachineAttachmentService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+public interface ProcessMethodVerifyMachineAttachmentService extends IService<ProcessMethodVerifyMachineAttachment> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java
new file mode 100644
index 0000000..5d0bbab
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyMethodFileService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛�(CnasProcessMethodVerifyMethodFile)$desc
+ *
+ * @author makejava
+ * @since 2024-11-05 10:52:44
+ */
+public interface ProcessMethodVerifyMethodFileService extends IService<ProcessMethodVerifyMethodFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java
new file mode 100644
index 0000000..bbbbfdb
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyService.java
@@ -0,0 +1,87 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.ProcessMethodVerifyDto;
+import com.ruoyi.process.pojo.ProcessMethodVerify;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+public interface ProcessMethodVerifyService extends IService<ProcessMethodVerify> {
+
+ /**
+ * 鏍囧噯鏂规硶璺熸柊楠岃瘉鍒楄〃
+ * @param page
+ * @param methodVerifyDto
+ * @return
+ */
+ IPage<ProcessMethodVerify> pagesMethodVerify(Page page, ProcessMethodVerifyDto methodVerifyDto);
+
+ /**
+ * 鏂板鏍囧噯鏂规硶楠岃瘉
+ * @param methodVerifyDto
+ * @return
+ */
+ boolean addMethodSearchNew(ProcessMethodVerifyDto methodVerifyDto);
+
+ /**
+ * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏
+ * @param methodVerifyId
+ * @return
+ */
+ ProcessMethodVerifyDto getMethodVerifyOne(Integer methodVerifyId);
+
+ /**
+ * 淇敼鏍囧噯鏂规硶楠岃瘉
+ * @param methodVerifyDto
+ * @return
+ */
+ boolean updateMethodVerify(ProcessMethodVerifyDto methodVerifyDto);
+
+ /**
+ * 鍒犻櫎鏍囧噯鏂规硶楠岃瘉
+ * @param methodVerifyId
+ * @return
+ */
+ boolean delMethodVerify(Integer methodVerifyId);
+
+ /**
+ * 鏍囧噯鏂规硶楠岃瘉纭
+ * @param methodVerifyId
+ * @return
+ */
+ boolean methodVerifyAffirm(Integer methodVerifyId);
+
+ /**
+ * 鏍囧噯鏂规硶楠岃瘉鏂板鍘熷璁板綍
+ * @param methodVerifyId
+ * @param file
+ * @return
+ */
+ boolean uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file);
+
+ /**
+ * 鏍囧噯鏂规硶鏇存柊楠岃瘉鍘熷璁板綍鍒楄〃
+ * @return
+ */
+ List<ProcessMethodVerifyMethodFile> getVerifyMethodFileList(Integer methodVerifyId);
+
+ /**
+ * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉
+ *
+ * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id
+ * @param response
+ */
+ void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java
new file mode 100644
index 0000000..6d6b04f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessMethodVerifyWorkFileService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃
+ *
+ * @author zhuo
+ * @since 2024-11-12
+ */
+public interface ProcessMethodVerifyWorkFileService extends IService<ProcessMethodVerifyWorkFile> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java
new file mode 100644
index 0000000..82917be
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java
@@ -0,0 +1,29 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.ProcessOrderDto;
+import com.ruoyi.process.pojo.ProcessOrder;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+public interface ProcessOrderService extends IService<ProcessOrder> {
+
+ IPage<ProcessOrderDto> pageProcessOrder(Page page, ProcessOrderDto processOrderDto);
+
+ ProcessOrderDto getProcessOrder(Integer id);
+
+ int doProcessOrder(ProcessOrder processOrder);
+
+ void exportInspectionOrder(Integer id, HttpServletResponse response);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
new file mode 100644
index 0000000..610444e
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessReportService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessReport;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 08:58:39
+ */
+public interface ProcessReportService extends IService<ProcessReport> {
+
+ IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport);
+
+ String exportProcessReport(List<Integer> ids);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java
new file mode 100644
index 0000000..5f5d922
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessSampleService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessSample;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:49
+ */
+public interface ProcessSampleService extends IService<ProcessSample> {
+
+ IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample);
+
+ int addProcessSample(ProcessSample processSample);
+
+ int delProcessSample(Integer id);
+
+ int doProcessSample(ProcessSample processSample);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java
new file mode 100644
index 0000000..af83741
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotalSampleService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessTotalSample;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹鎬昏〃 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:58
+ */
+public interface ProcessTotalSampleService extends IService<ProcessTotalSample> {
+
+ IPage<ProcessTotalSample> pageProcessTotalSample(Page page, ProcessTotalSample processTotalSample);
+
+ int submitProcessTotalSample(Integer id);
+
+ int checkProcessTotalSample(Integer id, String state);
+
+ int ratifyProcessTotalSample(Integer id, String state);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java
new file mode 100644
index 0000000..918e32f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessTotaldealService.java
@@ -0,0 +1,27 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鏈嶅姟绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 03:59:09
+ */
+public interface ProcessTotaldealService extends IService<ProcessTotaldeal> {
+
+ IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, ProcessTotaldeal processTotaldeal);
+
+ int checkProcessTotaldeal(Integer id, String state);
+
+ int submitProcessTotaldeal(Integer id);
+
+ int ratifyProcessTotaldeal(Integer id, String state);
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java
new file mode 100644
index 0000000..6f6b47d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsEvaluateService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+public interface QualityMonitorDetailsEvaluateService extends IService<QualityMonitorDetailsEvaluate> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java
new file mode 100644
index 0000000..8596cf2
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsRatifyService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.QualityMonitorDetailsRatify;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+public interface QualityMonitorDetailsRatifyService extends IService<QualityMonitorDetailsRatify> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java
new file mode 100644
index 0000000..f3968e8
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorDetailsService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.QualityMonitorDetails;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+public interface QualityMonitorDetailsService extends IService<QualityMonitorDetails> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java
new file mode 100644
index 0000000..77b5753
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualityMonitorService.java
@@ -0,0 +1,144 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.QualityMonitorDto;
+import com.ruoyi.process.pojo.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+public interface QualityMonitorService extends IService<QualityMonitor> {
+
+ /**
+ * 瀵煎叆鐩戞帶璁″垝
+ * @param file
+ * @return
+ */
+ boolean importQualityMonitor(MultipartFile file,String suffix);
+
+
+ /**
+ * 鐩戞帶璁″垝瀹℃牳
+ * @param qualityMonitor
+ * @return
+ */
+ boolean examineQualityMonitor(QualityMonitor qualityMonitor);
+
+ /**
+ * 鐩戞帶璁″垝鎵瑰噯
+ * @param qualityMonitor
+ * @return
+ */
+ boolean ratifyQualityMonitor(QualityMonitor qualityMonitor);
+
+ /**
+ * 鐩戞帶璁″垝鍒楄〃
+ * @param page
+ * @param qualityMonitor
+ * @return
+ */
+ IPage<QualityMonitorDto> pageQualityMonitor(Page page, QualityMonitor qualityMonitor);
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏鍒楄〃
+ * @param page
+ * @param qualityMonitorDetails
+ * @return
+ */
+ IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails);
+
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝
+ *
+ * @param qualityMonitorId
+ * @param response
+ */
+ void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response);
+
+
+ /************************************************************ 瀹炴柦 *******************************************************************/
+
+ /**
+ * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ * @param qualityMonitorDetailsId
+ * @return
+ */
+ QualityMonitorDetailsRatify getQualityMonitorRatify(Integer qualityMonitorDetailsId);
+
+ /**
+ * 鏂板鐩戞帶璇︽儏瀹炴柦
+ * @param qualityMonitorDetailsRatify
+ * @return
+ */
+ boolean addQualityMonitorRatify(QualityMonitorDetailsRatify qualityMonitorDetailsRatify);
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏瀹炴柦鎰忚
+ * @param qualityMonitorDetailsRatify
+ * @return
+ */
+ boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify);
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ *
+ * @param detailsRatifyId 鐩戞帶璁″垝璇︽儏瀹炴柦id
+ * @param response
+ */
+ void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response);
+
+
+ /************************************************************ 璇勪环 *******************************************************************/
+
+ /**
+ *
+ * @param qualityMonitorDetailsId
+ * @return
+ */
+ QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId);
+
+ /**
+ * 鏂板鐩戞帶璇勪环
+ * @param qualityMonitorDetailsEvaluate
+ * @return
+ */
+ boolean addQualityMonitorEvaluate(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate);
+
+ /**
+ * 鐩戞帶璇勪环瀹℃壒鎰忚
+ * @param qualityMonitorDetailsEvaluate
+ * @return
+ */
+ boolean addMonitorEvaluateOpinion(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate);
+
+ /**
+ * 鏂板鐩戞帶璇勪环闄勪欢琛�
+ * @param detailsEvaluateId
+ * @param file
+ * @return
+ */
+ boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file);
+
+ /**
+ * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃
+ * @return
+ */
+ List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId);
+
+ /**
+ * 瀵煎嚭鐩戞帶璇勪环
+ * @param detailsEvaluateId 鐩戞帶璇勪环id
+ */
+ void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response);
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java
new file mode 100644
index 0000000..3bf040a
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseDetailsService.java
@@ -0,0 +1,15 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.pojo.QualitySuperviseDetails;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+public interface QualitySuperviseDetailsService extends IService<QualitySuperviseDetails> {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java
new file mode 100644
index 0000000..a06d514
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/QualitySuperviseService.java
@@ -0,0 +1,163 @@
+package com.ruoyi.process.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.process.dto.QualitySuperviseDetailsDto;
+import com.ruoyi.process.pojo.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 璐ㄩ噺鐩戠潱涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+public interface QualitySuperviseService extends IService<QualitySupervise> {
+
+ /**
+ * 瀵煎叆鐩戠潱璁″垝
+ * @param file
+ * @return
+ */
+ boolean importQualitySupervise(MultipartFile file);
+
+ /**
+ * 鐩戠潱璁″垝鎵瑰噯
+ * @param qualitySupervise
+ * @return
+ */
+ boolean ratifyQualitySupervise(QualitySupervise qualitySupervise);
+
+ /**
+ * 鐩戠潱璁″垝鍒楄〃
+ * @return
+ */
+ IPage<QualitySupervise> pageQualitySupervise(Page page, QualitySupervise qualitySupervise);
+
+ /**
+ * 鐩戠潱璁″垝璇︽儏鍒楄〃
+ * @return
+ */
+ IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, QualitySuperviseDetails qualitySuperviseDetails);
+
+ /**
+ * 瀵煎嚭鐩戠潱璁″垝
+ * @param superviseId
+ * @param response
+ */
+ void exportQualitySupervise(Integer superviseId, HttpServletResponse response);
+
+ /************************************************ 璁板綍 ******************************************************/
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍淇℃伅
+ * @param superviseDetailsId
+ * @return
+ */
+ QualitySuperviseDetailsRecord getSuperviseDetailRecord(Integer superviseDetailsId);
+
+ /**
+ * 鏂板鐩戠潱璁板綍淇℃伅
+ * @param qualitySuperviseDetailsRecord
+ * @return
+ */
+ boolean addSuperviseDetailRecord(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord);
+
+ /**
+ * 鐩戠潱璁板綍鎵瑰噯
+ * @param qualitySuperviseDetailsRecord
+ * @return
+ */
+ boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord);
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍琛�
+ * @param superviseDetailsId
+ * @param response
+ */
+ void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response);
+
+ /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/
+
+ /**
+ * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param qualitySuperviseDetailsAccording
+ * @return
+ */
+ boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording qualitySuperviseDetailsAccording);
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param superviseDetailsId
+ * @return
+ */
+ QualitySuperviseDetailsAccording getSuperviseDetailAccording(Integer superviseDetailsId);
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭垪琛�
+ * @param detailsAccording
+ * @return
+ */
+ IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, QualitySuperviseDetailsAccording detailsAccording);
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param superviseDetailAccordingId
+ * @param response
+ */
+ void superviseDetailAccordingExport(Integer superviseDetailAccordingId, HttpServletResponse response);
+
+ /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/
+
+ /**
+ * 鏂板鐩戠潱绾犳澶勭悊淇℃伅
+ * @param qualitySuperviseDetailsAccording
+ * @return
+ */
+ boolean addSuperviseDetailCorrect(QualitySuperviseDetailsCorrect qualitySuperviseDetailsAccording);
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳澶勭悊
+ * @param superviseDetailsId
+ * @return
+ */
+ QualitySuperviseDetailsCorrect getSuperviseDetailCorrect(Integer superviseDetailsId);
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃
+ * @param page
+ * @param detailsCorrect
+ * @return
+ */
+ IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailCorrect(Page page, QualitySuperviseDetailsCorrect detailsCorrect);
+
+ /**
+ * 鏂板鐩戠潱绾犳鎺柦闄勪欢
+ * @param superviseDetailsCorrectId
+ * @param file
+ * @return
+ */
+ boolean uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file);
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢
+ * @param superviseDetailsCorrectId
+ * @return
+ */
+ List<QualitySuperviseDetailsCorrectFile> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId);
+
+ /**
+ * 瀵煎嚭鐩戠潱绾犳鎺柦
+ * @param superviseDetailsCorrectId
+ * @param response
+ */
+ void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response);
+
+ /************************************************* 璐ㄩ噺鐩戠潱璁板綍 ********************************************************/
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java
new file mode 100644
index 0000000..96d3f41
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyCalibrationsFileServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.ProcessMethodVerifyCalibrationsFileMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyCalibrationsFile;
+import com.ruoyi.process.service.ProcessMethodVerifyCalibrationsFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃(CnasProcessMethodVerifyCalibrationsFile)$desc
+ *
+ * @author makejava
+ * @since 2024-11-12 09:55:06
+ */
+@Service
+public class CnasProcessMethodVerifyCalibrationsFileServiceImpl extends ServiceImpl<ProcessMethodVerifyCalibrationsFileMapper, ProcessMethodVerifyCalibrationsFile> implements ProcessMethodVerifyCalibrationsFileService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java
new file mode 100644
index 0000000..5400190
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/CnasProcessMethodVerifyWorkFileServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyWorkFile;
+import com.ruoyi.process.service.ProcessMethodVerifyWorkFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉涓婂矖璇侀檮浠惰〃(CnasProcessMethodVerifyWorkFile)$desc
+ *
+ * @author makejava
+ * @since 2024-11-12 09:55:06
+ */
+@Service
+public class CnasProcessMethodVerifyWorkFileServiceImpl extends ServiceImpl<ProcessMethodVerifyWorkFileMapper, ProcessMethodVerifyWorkFile> implements ProcessMethodVerifyWorkFileService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java
new file mode 100644
index 0000000..193165f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionDetailServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.InconsistentDistributionDetailMapper;
+import com.ruoyi.process.pojo.InconsistentDistributionDetail;
+import com.ruoyi.process.service.InconsistentDistributionDetailService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯冭鎯� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:33
+ */
+@Service
+public class InconsistentDistributionDetailServiceImpl extends ServiceImpl<InconsistentDistributionDetailMapper, InconsistentDistributionDetail> implements InconsistentDistributionDetailService {
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
new file mode 100644
index 0000000..0f6d198
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/InconsistentDistributionServiceImpl.java
@@ -0,0 +1,230 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.process.dto.InconsistentDistributionDto;
+import com.ruoyi.process.dto.InconsistentDistributionProportionDto;
+import com.ruoyi.process.mapper.InconsistentDistributionMapper;
+import com.ruoyi.process.pojo.InconsistentDistribution;
+import com.ruoyi.process.pojo.InconsistentDistributionDetail;
+import com.ruoyi.process.service.InconsistentDistributionDetailService;
+import com.ruoyi.process.service.InconsistentDistributionService;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * <p>
+ * 涓嶇鍚堥」鐨勫垎甯� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-15 09:53:20
+ */
+@Service
+@AllArgsConstructor
+@Transactional(rollbackFor = Exception.class)
+public class InconsistentDistributionServiceImpl extends ServiceImpl<InconsistentDistributionMapper, InconsistentDistribution> implements InconsistentDistributionService {
+
+ private InconsistentDistributionDetailService inconsistentDistributionDetailService;
+
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷鏌ヨ
+ * @param page
+ * @param inconsistentDistributionDto
+ * @return
+ */
+ @Override
+ public IPage<InconsistentDistributionDto> pageInconsistentDistribution(Page page, InconsistentDistribution inconsistentDistributionDto) {
+ return baseMapper.pageInconsistentDistribution(page, QueryWrappers.queryWrappers(inconsistentDistributionDto));
+ }
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷鏂板
+ * @param inconsistentDistributionDto
+ * @return
+ */
+ @Override
+ public boolean addInconsistentDistribution(InconsistentDistributionDto inconsistentDistributionDto) {
+ baseMapper.insert(inconsistentDistributionDto);
+ // 鏂板璇︽儏
+ for (InconsistentDistributionDetail distributionDetail : inconsistentDistributionDto.getDistributionDetailList()) {
+ distributionDetail.setDistributionId(inconsistentDistributionDto.getDistributionId());
+ }
+ inconsistentDistributionDetailService.saveBatch(inconsistentDistributionDto.getDistributionDetailList());
+ return true;
+ }
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷淇敼
+ * @param inconsistentDistributionDto
+ * @return
+ */
+ @Override
+ public boolean updateInconsistentDistribution(InconsistentDistributionDto inconsistentDistributionDto) {
+ inconsistentDistributionDetailService.updateBatchById(inconsistentDistributionDto.getDistributionDetailList());
+ return true;
+ }
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷鍒犻櫎
+ * @param distributionId
+ * @return
+ */
+ @Override
+ public boolean delInconsistentDistribution(Integer distributionId) {
+ inconsistentDistributionDetailService.remove(Wrappers.<InconsistentDistributionDetail>lambdaQuery()
+ .eq(InconsistentDistributionDetail::getDistributionId, distributionId));
+ baseMapper.deleteById(distributionId);
+ return true;
+ }
+
+ /**
+ * 涓嶇鍚堥」鍒嗗竷鏌ョ湅璇︽儏
+ * @param distributionId
+ * @return
+ */
+ @Override
+ public InconsistentDistributionDto getInconsistentDistributionOne(Integer distributionId) {
+ InconsistentDistributionDto distributionDto = new InconsistentDistributionDto();
+ InconsistentDistribution inconsistentDistribution = baseMapper.selectById(distributionId);
+ BeanUtils.copyProperties(distributionDto, inconsistentDistribution);
+ // 鏌ヨ璇︾粏
+ List<InconsistentDistributionDetail> distributionDetailList = inconsistentDistributionDetailService.list(Wrappers.<InconsistentDistributionDetail>lambdaQuery()
+ .eq(InconsistentDistributionDetail::getDistributionId, distributionId));
+
+ // 涓讳换姹囨��
+ int directorSum = distributionDetailList.stream()
+ .filter(detail -> detail.getDirector() != null)
+ .mapToInt(InconsistentDistributionDetail::getDirector)
+ .sum();
+
+ // 鎶�鏈礋璐d汉姹囨��
+ int technologySum = distributionDetailList.stream()
+ .filter(detail -> detail.getTechnology() != null)
+ .mapToInt(InconsistentDistributionDetail::getTechnology)
+ .sum();
+
+ // 璐ㄩ噺璐熻矗浜烘眹鎬�
+ int qualitySum = distributionDetailList.stream()
+ .filter(detail -> detail.getQuality() != null)
+ .mapToInt(InconsistentDistributionDetail::getQuality)
+ .sum();
+
+ // 缁煎悎瀹ゆ眹鎬�
+ int comprehensiveSum = distributionDetailList.stream()
+ .filter(detail -> detail.getComprehensive() != null)
+ .mapToInt(InconsistentDistributionDetail::getComprehensive)
+ .sum();
+
+ // 璇曢獙瀹ゆ眹鎬�
+ int testingSum = distributionDetailList.stream()
+ .filter(detail -> detail.getTesting() != null)
+ .mapToInt(InconsistentDistributionDetail::getTesting)
+ .sum();
+
+ // 鎬绘暟姹囨��
+ int sum = directorSum + technologySum + qualitySum + comprehensiveSum + testingSum;
+
+ //璁$畻鍚堣
+ for (InconsistentDistributionDetail distributionDetail : distributionDetailList) {
+ // 鎬绘暟
+ Integer total = (distributionDetail.getDirector() != null ? distributionDetail.getDirector() : 0)
+ + (distributionDetail.getTechnology() != null ? distributionDetail.getTechnology() : 0)
+ + (distributionDetail.getQuality() != null ? distributionDetail.getQuality() : 0)
+ + (distributionDetail.getComprehensive() != null ? distributionDetail.getComprehensive() : 0)
+ + (distributionDetail.getTesting() != null ? distributionDetail.getTesting() : 0);
+ distributionDetail.setTotal(total);
+ // 鍗犳瘮
+ distributionDetail.setProportion(calculatePercentage(total, sum));
+ }
+ // 娣诲姞鏈�鍚庝竴琛屽崰姣斿璞�
+ InconsistentDistributionProportionDto proportionDto = new InconsistentDistributionProportionDto();
+ proportionDto.setEssentials("鍗犳瘮 %");
+ proportionDto.setDirector(calculatePercentage(directorSum, sum));
+ proportionDto.setTechnology(calculatePercentage(technologySum, sum));
+ proportionDto.setQuality(calculatePercentage(qualitySum, sum));
+ proportionDto.setComprehensive(calculatePercentage(comprehensiveSum, sum));
+ proportionDto.setTesting(calculatePercentage(testingSum, sum));
+ proportionDto.setTotal(sum);
+
+ distributionDto.setDistributionDetailList(distributionDetailList);
+ distributionDto.setDistributionProportion(proportionDto);
+
+ return distributionDto;
+ }
+
+ /**
+ * 璁$畻鍗犳瘮
+ * @return
+ */
+ public BigDecimal calculatePercentage(Integer numeratorNum, Integer denominatorNum) {
+ BigDecimal numerator = new BigDecimal(numeratorNum);
+ BigDecimal denominator = new BigDecimal(denominatorNum);
+
+ // 妫�鏌ラ櫎鏁版槸鍚︿负0
+ if (denominator.compareTo(BigDecimal.ZERO) == 0) {
+ return BigDecimal.ZERO;
+ }
+ BigDecimal ratio = numerator.divide(denominator, 4, RoundingMode.HALF_UP); // 淇濈暀4浣嶅皬鏁�
+ BigDecimal percentage = ratio.multiply(new BigDecimal("100"));
+ BigDecimal percentageRounded = percentage.setScale(2, RoundingMode.HALF_UP);
+ return percentageRounded;
+ }
+
+
+ /**
+ * 瀵煎嚭涓嶇鍚堢殑鍒嗗竷
+ * @param distributionId
+ * @param response
+ */
+ @Override
+ public void exportInconsistentDistribution(Integer distributionId, HttpServletResponse response) {
+ InconsistentDistributionDto inconsistentDistributionOne = getInconsistentDistributionOne(distributionId);
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/inconsistent-distribution.docx");
+ Configure configure = Configure.builder()
+ .bind("distributionDetailList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("distributionDetailList", inconsistentDistributionOne.getDistributionDetailList());
+ put("proport", inconsistentDistributionOne.getDistributionProportion());
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "涓嶇鍚堥」鐨勫垎甯�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+
+ }
+
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java
new file mode 100644
index 0000000..384e6dc
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java
@@ -0,0 +1,94 @@
+package com.ruoyi.process.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.process.dto.ProcessComplainDto;
+import com.ruoyi.process.mapper.ProcessComplainMapper;
+import com.ruoyi.process.pojo.ProcessComplain;
+import com.ruoyi.process.service.ProcessComplainService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
+
+/**
+ * <p>
+ * 鎶曡瘔 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 09:29:11
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessComplainServiceImpl extends ServiceImpl<ProcessComplainMapper, ProcessComplain> implements ProcessComplainService {
+
+ @Resource
+ private ProcessComplainMapper processComplainMapper;
+// todo :妫�楠屾牱鍝佸拰鎶ュ憡妯″潡鎼縼涔嬪悗鏀惧紑
+// @Resource
+// private InsReportMapper insReportMapper;
+//
+// @Resource
+// private InsSampleMapper insSampleMapper;
+
+// @Resource
+// GiveCode giveCode;
+
+ @Override
+ public IPage<ProcessComplain> pageProcessComplain(Page page, ProcessComplain processComplain) {
+ return processComplainMapper.pageProcessComplain(page, QueryWrappers.queryWrappers(processComplain));
+ }
+
+ @Override
+ public int addProcessComplain(ProcessComplain processComplain) {
+ //鍒ゆ柇鎶ュ憡缂栧彿鍜屾牱鍝佺紪鍙锋槸鍚﹀瓨鍦�
+// InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().eq(InsReport::getCode, processComplain.getCode()));
+// if (ObjectUtils.isEmpty(insReport)) throw new ErrorException("鎶ュ憡缂栧彿杈撳叆鏈夎");
+// processComplain.setInsReportId(insReport.getId());
+// InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, processComplain.getSampleCode()));
+// if (ObjectUtils.isEmpty(insSample)) throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎");
+ //鎶曡瘔缂栧彿鐢熸垚
+// String giveCode = this.giveCode.giveCode("JCZX-", "cnas_process_complain", "", "yyMMdd");
+// processComplain.setComplainNo(giveCode);
+ return processComplainMapper.insert(processComplain);
+ }
+
+ @Override
+ public ProcessComplainDto getProcessComplain(Long id) {
+ return processComplainMapper.getProcessComplain(id);
+ }
+
+ @Override
+ public int doProcessComplain(ProcessComplain processComplain) {
+ return processComplainMapper.updateById(processComplain);
+ }
+
+ @Override
+ public void exportProcessComplain(ProcessComplain processComplain, HttpServletResponse response) throws Exception {
+ List<ProcessComplain> data = processComplainMapper.pageProcessComplain(new Page(-1, -1), QueryWrappers.queryWrappers(processComplain)).getRecords();
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("UTF-8");
+ String fileName = URLEncoder.encode("鎶曡瘔鍒楄〃瀵煎嚭", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ try {
+ // 鏂板缓ExcelWriter
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+ WriteSheet mainSheet = EasyExcel.writerSheet(0, "鎶曡瘔鍒楄〃瀵煎嚭").head(ProcessComplain.class).build();
+ excelWriter.write(data, mainSheet);
+ // 鍏抽棴娴�
+ excelWriter.finish();
+ } catch (IOException e) {
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java
new file mode 100644
index 0000000..a91f7ee
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessDealServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.process.mapper.ProcessDealMapper;
+import com.ruoyi.process.mapper.ProcessTotaldealMapper;
+import com.ruoyi.process.pojo.ProcessDeal;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+import com.ruoyi.process.service.ProcessDealService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 02:50:19
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessDealServiceImpl extends ServiceImpl<ProcessDealMapper, ProcessDeal> implements ProcessDealService {
+
+ @Resource
+ private ProcessDealMapper processDealMapper;
+
+ @Resource
+ private ProcessTotaldealMapper processTotaldealMapper;
+
+ @Override
+ public IPage<ProcessDeal> pageProcessDeal(Page page, ProcessDeal processDeal) {
+ if (ObjectUtils.isEmpty(processDeal.getTotaldealId())) {
+ //鑾峰彇褰撳墠鏈堜唤
+ LocalDate currentDate = LocalDate.now();
+ // 瀹氫箟鏃ユ湡鏍煎紡
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+ String currentMonth = currentDate.format(formatter);
+ //鏌ヨ鍘嗗彶
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth, currentMonth));
+ processDeal.setTotaldealId(processTotaldeal.getId());
+ }
+ return processDealMapper.pageProcessDeal(page, QueryWrappers.queryWrappers(processDeal));
+ }
+
+ @Override
+ public int addProcessDeal(ProcessDeal processDeal) {
+ ProcessTotaldeal processTotaldeal;
+ if (ObjectUtils.isEmpty(processDeal.getTotaldealId())){
+ LocalDate dealTime = LocalDate.now();
+ // 瀹氫箟鏃ユ湡鏍煎紡
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+ String currentMonth = dealTime.format(formatter);
+ processTotaldeal= processTotaldealMapper.selectOne(Wrappers.<ProcessTotaldeal>lambdaQuery().eq(ProcessTotaldeal::getMonth,currentMonth));
+ processDeal.setTotaldealId(processTotaldeal.getId());
+ }else {
+ processTotaldeal= processTotaldealMapper.selectById(processDeal.getTotaldealId());
+ }
+ processDealMapper.insert(processDeal);
+ processTotaldeal.setTotalNum(processDeal.getNum()+processTotaldeal.getTotalNum());
+ return processTotaldealMapper.updateById(processTotaldeal);
+ }
+
+ @Override
+ public int delProcessDeal(Integer id) {
+ ProcessDeal processDeal = processDealMapper.selectById(id);
+ processDealMapper.deleteById(id);
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
+ processTotaldeal.setTotalNum(processTotaldeal.getTotalNum()-processDeal.getNum());
+ return processTotaldealMapper.updateById(processTotaldeal);
+ }
+
+ @Override
+ public int doProcessDeal(ProcessDeal processDeal) {
+ if (ObjectUtils.isNotEmpty(processDeal.getNum())) {
+ ProcessDeal oldProcessDeal = processDealMapper.selectById(processDeal.getId());
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(processDeal.getTotaldealId());
+ processTotaldeal.setTotalNum(processTotaldeal.getTotalNum() - oldProcessDeal.getNum() + processDeal.getNum());
+ processTotaldealMapper.updateById(processTotaldeal);
+ }
+ return processDealMapper.updateById(processDeal);
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java
new file mode 100644
index 0000000..343a4c6
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessEvaluateServiceImpl.java
@@ -0,0 +1,99 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.process.mapper.ProcessEvaluateMapper;
+import com.ruoyi.process.pojo.ProcessEvaluate;
+import com.ruoyi.process.service.ProcessEvaluateService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 娴嬮噺涓嶇‘瀹氬害鐨勮瘎浠� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 01:10:43
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessEvaluateServiceImpl extends ServiceImpl<ProcessEvaluateMapper, ProcessEvaluate> implements ProcessEvaluateService {
+
+ @Resource
+ private ProcessEvaluateMapper processEvaluateMapper;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+ @Override
+ public IPage<ProcessEvaluate> pageProcessEvaluate(Page page, ProcessEvaluate processEvaluate) {
+ return processEvaluateMapper.pageProcessEvaluate(page, QueryWrappers.queryWrappers(processEvaluate));
+ }
+
+ @Override
+ public int addProcessEvaluate(MultipartFile file) {
+ String urlString;
+ String pathName;
+ String path=wordUrl;
+ ProcessEvaluate processEvaluate = new ProcessEvaluate();
+ processEvaluate.setReportName(file.getOriginalFilename());
+ try {
+ File realpath = new File(path);
+ if (!realpath.exists()) {
+ realpath.mkdirs();
+ }
+ pathName = UUID.randomUUID() + "_" + file.getOriginalFilename();
+ urlString = realpath + "/" + pathName;
+ file.transferTo(new File(urlString));
+ processEvaluate.setReportUrl(pathName);
+ return processEvaluateMapper.insert(processEvaluate);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.err.println("闄勪欢涓婁紶閿欒");
+ return 0;
+ }
+ }
+
+ @Override
+ public int doProcessEvaluate(ProcessEvaluate processEvaluate) {
+ return processEvaluateMapper.updateById(processEvaluate);
+ }
+
+ @Override
+ public void exportProcessEvaluate(ProcessEvaluate processEvaluate, HttpServletResponse response) throws Exception{
+ List<ProcessEvaluate> data = processEvaluateMapper.pageProcessEvaluate(new Page(-1, -1), QueryWrappers.queryWrappers(processEvaluate)).getRecords();
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("UTF-8");
+ String fileName = URLEncoder.encode("娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹氬鍑�", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ try {
+ // 鏂板缓ExcelWriter
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+ WriteSheet mainSheet = EasyExcel.writerSheet(0, "娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹氬鍑�").head(ProcessEvaluate.class).build();
+ excelWriter.write(data, mainSheet);
+ // 鍏抽棴娴�
+ excelWriter.finish();
+ } catch (IOException e) {
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java
new file mode 100644
index 0000000..855acfd
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodSearchNewServiceImpl.java
@@ -0,0 +1,317 @@
+package com.ruoyi.process.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.util.FileUtils;
+import com.alibaba.excel.util.ListUtils;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.process.dto.ProcessMethodSearchNewDto;
+import com.ruoyi.process.mapper.ProcessMethodSearchNewMapper;
+import com.ruoyi.process.pojo.ProcessMethodSearchNew;
+import com.ruoyi.process.service.ProcessMethodSearchNewService;
+import com.ruoyi.process.utils.UserUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鏍囧噯鏌ユ柊
+ *
+ * @author zhuo
+ * @since 2024-11-04
+ */
+@Service
+public class ProcessMethodSearchNewServiceImpl extends ServiceImpl<ProcessMethodSearchNewMapper, ProcessMethodSearchNew> implements ProcessMethodSearchNewService {
+
+ /**
+ * 鏂板鏍囧噯鏌ユ柊
+ *
+ * @param processMethodSearchNewList
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean addMethodSearchNew(List<ProcessMethodSearchNew> processMethodSearchNewList) {
+ for (ProcessMethodSearchNew processMethodSearchNew : processMethodSearchNewList) {
+ processMethodSearchNew.setIsNewStandard(1);
+ }
+ // 淇敼涔嬪墠鎵�鏈夋病鏈夊彉鏂扮殑
+ List<ProcessMethodSearchNew> processMethodSearchNews = baseMapper.selectList(Wrappers.<ProcessMethodSearchNew>lambdaQuery()
+ .eq(ProcessMethodSearchNew::getIsNewStandard, 1));
+ for (ProcessMethodSearchNew processMethodSearchNew : processMethodSearchNews) {
+ baseMapper.update(null, Wrappers.<ProcessMethodSearchNew>lambdaUpdate()
+ .set(ProcessMethodSearchNew::getMethodName, processMethodSearchNew.getNewMethodName())
+ .set(ProcessMethodSearchNew::getStandardNo, processMethodSearchNew.getNewStandardNo())
+ .set(ProcessMethodSearchNew::getFileNo, processMethodSearchNew.getNewStandardNo())
+ .set(ProcessMethodSearchNew::getIsNewStandard, 0)
+ .set(ProcessMethodSearchNew::getNewMethodName, null)
+ .set(ProcessMethodSearchNew::getNewStandardNo, null)
+ .eq(ProcessMethodSearchNew::getMethodSearchNewId, processMethodSearchNew.getMethodSearchNewId()));
+ }
+ // 鏂板
+ this.saveBatch(processMethodSearchNewList);
+ return true;
+ }
+
+ /**
+ * 鏍囧噯鏌ユ柊鍒楄〃
+ *
+ * @param processMethodSearchNew
+ * @return
+ */
+ @Override
+ public IPage<ProcessMethodSearchNew> pageMethodSearchNew(Page page, ProcessMethodSearchNewDto processMethodSearchNew) {
+ String beginDate = processMethodSearchNew.getBeginDate();
+ String endDate = processMethodSearchNew.getEndDate();
+ processMethodSearchNew.setBeginDate(null);
+ processMethodSearchNew.setEndDate(null);
+ // 鍒ゆ柇鏃ユ湡鏄惁涓轰粖骞达紝濡傛灉鏄粖骞村垯澶勭悊涓轰粖骞寸殑鏁版嵁
+ try {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime startDateTime = LocalDateTime.parse(beginDate, formatter);
+ LocalDateTime endDateTime = LocalDateTime.parse(endDate, formatter);
+ int currentYear = LocalDateTime.now().getYear();
+ // 鍒ゆ柇浼犲叆鐨勬棩鏈熸槸鍚︽槸浠婂勾鐨勬棩鏈熻寖鍥�
+ if (startDateTime.getYear() == currentYear && endDateTime.getYear() == currentYear) {
+ // 浼犲叆鐨勬槸浠婂勾鐨勬暟鎹紝鐩存帴杩斿洖褰撳墠鐨� beginDate 鍜� endDate
+ beginDate = startDateTime.toString();
+ endDate = endDateTime.toString();
+ } else {
+ beginDate = null;
+ endDate = null;
+ }
+ } catch (Exception e) {
+ beginDate = null;
+ endDate = null;
+ }
+ return baseMapper.pageMethodSearchNew(page, QueryWrappers.queryWrappers(processMethodSearchNew), beginDate, endDate);
+ }
+
+ /**
+ * 鏍囧噯鏌ユ柊瀵煎嚭
+ *
+ * @param processMethodSearchNew
+ * @param response
+ */
+ @Override
+ public void exportMethodSearchNew(ProcessMethodSearchNewDto processMethodSearchNew, HttpServletResponse response) {
+ // 鏌ヨ鏍囧噯鏌ユ柊
+ String beginDate = processMethodSearchNew.getBeginDate();
+ String endDate = processMethodSearchNew.getEndDate();
+ String writeUserId = processMethodSearchNew.getWriteUserId().toString();
+ String ratifyUserId = processMethodSearchNew.getRatifyUserId().toString();
+ String writeDate = processMethodSearchNew.getWriteDate();
+ String ratifyDate = processMethodSearchNew.getRatifyDate();
+ processMethodSearchNew.setBeginDate(null);
+ processMethodSearchNew.setEndDate(null);
+ processMethodSearchNew.setWriteUserId(null);
+ processMethodSearchNew.setRatifyUserId(null);
+ processMethodSearchNew.setWriteDate(null);
+ processMethodSearchNew.setRatifyDate(null);
+ List<ProcessMethodSearchNewDto> methodSearchNews = baseMapper.selectMethodSearchNew(QueryWrappers.queryWrappers(processMethodSearchNew), beginDate, endDate);
+
+ int index = 1;
+ // 鏍煎紡鍖栧弬鏁�
+ for (ProcessMethodSearchNewDto methodSearchNew : methodSearchNews) {
+ // 鏄惁鏄窡鏂版爣鍑�
+ if (methodSearchNew.getIsNewStandard().equals(1)) {
+ methodSearchNew.setIsNewStandardString("鏄�");
+ } else {
+ methodSearchNew.setIsNewStandardString("鍚�");
+ }
+
+ // 澶囨敞
+ if (methodSearchNew.getRemark() != null) {
+ if (methodSearchNew.getRemark().equals(1)) {
+ methodSearchNew.setRemarkString("鏇挎崲");
+ } else {
+ methodSearchNew.setRemarkString("浣滃簾");
+ }
+ }
+
+ if (methodSearchNew.getRemark() != null) {
+ if (methodSearchNew.getRemark().equals(1)) {
+ methodSearchNew.setRemarkString("鏇挎崲");
+ } else {
+ methodSearchNew.setRemarkString("浣滃簾");
+ }
+ }
+
+ switch (methodSearchNew.getSearchNewSource()) {
+ case 0:
+ methodSearchNew.setStandardNet("鈭�");
+ break;
+ case 1:
+ methodSearchNew.setInformationOffices("鈭�");
+ break;
+ case 2:
+ methodSearchNew.setStandardBookstore("鈭�");
+ break;
+ case 3:
+ methodSearchNew.setOther("鈭�");
+ break;
+ }
+ methodSearchNew.setIndex(index);
+ index++;
+
+ }
+ // 鏌ヨ绛惧悕鍦板潃
+ String writeUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(writeUserId));
+ String ratifyUserUrl = UserUtils.getUserSignatureUrl(Integer.valueOf(ratifyUserId));
+
+ //鍒涘缓ExcelWriter 鍙互鑷姩鍏虫祦浣嗚繕鏄墜鍔ㄥ叧涓�娆�
+ ExcelWriter excelWriter = null;
+
+ try {
+ // outputStream锛氳瀵煎嚭鐨勬枃浠剁殑杈撳嚭娴�
+ OutputStream outputStream = response.getOutputStream();
+ // 鑾峰彇妯$増鏂囦欢
+ ClassPathResource classPathResource = new ClassPathResource("/static/excel/check-records.xlsx");
+ // 浣跨敤妯$増鏂囦欢鐨勪袱绉嶆柟寮忥細
+ // 1銆佹枃浠惰矾寰勶細.withTemplate(templateFileName)
+ // 2銆佽緭鍏ユ祦锛�.withTemplate(inputStream)
+ // String templateFileName = classPathResource.getFile().getPath();
+ InputStream inputStream = classPathResource.getInputStream();
+ // 鍒涘缓ExcelWriter
+ excelWriter = EasyExcel.write(outputStream).withTemplate(inputStream).build();
+ // 鑾峰彇绗竴涓猻heet椤�
+ WriteSheet writeSheet = EasyExcel.writerSheet(0, "鏍囧噯鏌ユ柊瀵煎嚭").build();
+ //excelWriter.fill() 杩欏湴鏂瑰氨鏄~鍏呭睘鎬с��
+// excelWriter.fill(methodSearchNews, fillConfig, writeSheet); // 杩欓噷fillConfig鏄厤缃枃浠�
+ excelWriter.fill(methodSearchNews, writeSheet);
+
+ // 杩欓噷easy excel妯℃澘瀵煎嚭闂 浼氬垹闄ゅ悗闈㈠唴瀹瑰啀杩涜杩涜濉厖
+ // 鎵�浠ist 鍚庨潰杩樻湁鏁版嵁 鎯冲姙娉曟墜鍔ㄥ啓鍏�
+ // 鎵嬪姩鍒涘缓涓�涓猯ist 瀛樻斁鏁版嵁 鐒跺悗鍐嶈繘琛屽~鍏�
+ // 杩欓噷List<Object>鍙互鐢ㄥ璞′唬鏇� 鍋锋噿鐢╨ist
+ List<List<Object>> totalListList = ListUtils.newArrayList();
+ List<Object> totalList = ListUtils.newArrayList();
+ totalListList.add(totalList);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ // 绗竴鍒�
+ totalList.add("缂栧埗浜猴細");
+ // 绗簩鍒� 璁剧疆绛惧悕
+ totalList.add(FileUtils.readFileToByteArray(new File(writeUserUrl)));
+ // 绗笁鍒�
+ totalList.add("鏃ユ湡锛�");
+ // 绗簲鍒�
+ totalList.add(writeDate);
+ // 绗叚鍒�
+ totalList.add("瀹℃牳锛�");
+ // 绗竷鍒�
+ totalList.add(FileUtils.readFileToByteArray(new File(ratifyUserUrl)));
+ // 绗叓鍒�
+ totalList.add("鏃ユ湡锛�");
+ // 绗節鍒�
+ totalList.add(ratifyDate);
+ // 杩欓噷杩藉姞鏄痺rite 鍒拰fill 鎼為敊浜�
+ excelWriter.write(totalListList, writeSheet);
+
+ // 璁剧疆杈撳嚭娴佹牸寮忎互鍙婃枃浠跺悕锛�
+ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setCharacterEncoding("utf-8");
+ String fileName = URLEncoder.encode(
+ "鍘熸潗鏂欐娴嬩俊鎭鍑�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".xlsx");
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ // 鍗冧竾鍒繕璁癱lose鍏抽棴娴�
+ if (excelWriter != null) {
+ excelWriter.close();
+
+ }
+ }
+ }
+
+
+ /**
+ * 瀵煎叆鏍囧噯鏌ユ柊
+ *
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean importMethodSearchNew(MultipartFile file) {
+
+ List<ProcessMethodSearchNewDto> searchNewDtoList = new ArrayList<>();
+
+ try {
+ // excel瑙f瀽
+ EasyExcel.read(file.getInputStream(), ProcessMethodSearchNewDto.class, new AnalysisEventListener<ProcessMethodSearchNewDto>() {
+ @Override
+ public void invoke(ProcessMethodSearchNewDto searchNewDto, AnalysisContext analysisContext) {
+ searchNewDtoList.add(searchNewDto);
+ }
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+ }
+ }).sheet().doRead();
+ // 鏍煎紡鍖栨煡鏂板璞�
+ List<ProcessMethodSearchNew> collect = searchNewDtoList.stream().map(searchNewDto -> {
+ ProcessMethodSearchNew searchNew = new ProcessMethodSearchNew();
+ BeanUtils.copyProperties(searchNewDto, searchNew);
+ // 鏄惁鏄洿鏂�
+ if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) {
+ if (searchNewDto.getIsNewStandardString().equals("鏄�")) {
+ searchNew.setIsNewStandard(1);
+ } else {
+ searchNew.setIsNewStandard(0);
+ }
+ }
+ // 鏌ユ柊璁板綍
+ if (StringUtils.isNotBlank(searchNewDto.getStandardNet())) {
+ searchNew.setSearchNewSource(0);
+ } else if (StringUtils.isNotBlank(searchNewDto.getInformationOffices())) {
+ searchNew.setSearchNewSource(1);
+ } else if (StringUtils.isNotBlank(searchNewDto.getIsNewStandardString())) {
+ searchNew.setSearchNewSource(2);
+ } else if (StringUtils.isNotBlank(searchNewDto.getOther())) {
+ searchNew.setSearchNewSource(3);
+ }
+
+ // 澶囨敞
+ if (StringUtils.isNotBlank(searchNewDto.getRemarkString())) {
+ if (searchNewDto.getRemarkString().equals("鏇挎崲")) {
+ searchNew.setRemark(1);
+ } else if (searchNewDto.getRemarkString().equals("浣滃簾")) {
+ searchNew.setRemark(0);
+ }
+ }
+
+ return searchNew;
+ }).collect(Collectors.toList());
+ this.saveBatch(collect);
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return true;
+ }
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java
new file mode 100644
index 0000000..67ff06c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMachineAttachmentServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.ProcessMethodVerifyMachineAttachmentMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMachineAttachment;
+import com.ruoyi.process.service.ProcessMethodVerifyMachineAttachmentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉璁惧闄勪欢琛�
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Service
+public class ProcessMethodVerifyMachineAttachmentServiceImpl extends ServiceImpl<ProcessMethodVerifyMachineAttachmentMapper, ProcessMethodVerifyMachineAttachment> implements ProcessMethodVerifyMachineAttachmentService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java
new file mode 100644
index 0000000..9a68506
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyMethodFileServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.ProcessMethodVerifyMethodFileMapper;
+import com.ruoyi.process.pojo.ProcessMethodVerifyMethodFile;
+import com.ruoyi.process.service.ProcessMethodVerifyMethodFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉(娉�)闄勪欢琛�
+ *
+ * @author makejava
+ * @since 2024-11-05
+ */
+@Service
+public class ProcessMethodVerifyMethodFileServiceImpl extends ServiceImpl<ProcessMethodVerifyMethodFileMapper, ProcessMethodVerifyMethodFile> implements ProcessMethodVerifyMethodFileService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java
new file mode 100644
index 0000000..82b850c
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessMethodVerifyServiceImpl.java
@@ -0,0 +1,426 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.data.PictureRenderData;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.XWPFDocumentUtils;
+import com.ruoyi.process.utils.UserUtils;
+import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.process.dto.ProcessMethodVerifyDto;
+import com.ruoyi.process.dto.ProcessMethodVerifyExportWordDto;
+import com.ruoyi.process.mapper.ProcessMethodVerifyCalibrationsFileMapper;
+import com.ruoyi.process.mapper.ProcessMethodVerifyMapper;
+import com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper;
+import com.ruoyi.process.pojo.*;
+import com.ruoyi.process.service.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 鏍囧噯鏂规硶楠岃瘉
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessMethodVerifyServiceImpl extends ServiceImpl<ProcessMethodVerifyMapper, ProcessMethodVerify> implements ProcessMethodVerifyService {
+
+ @Resource
+ private ProcessMethodVerifyCalibrationsFileService processMethodVerifyCalibrationsFileService;
+ @Resource
+ private ProcessMethodVerifyMethodFileService processMethodVerifyMethodFileService;
+ @Resource
+ private ProcessMethodVerifyWorkFileService processMethodVerifyWorkFileService;
+ @Resource
+ private ProcessMethodVerifyMachineAttachmentService processMethodVerifyMachineAttachmentService;
+ @Resource
+ private ProcessMethodVerifyCalibrationsFileMapper processMethodVerifyCalibrationsFileMapper;
+ @Resource
+ private ProcessMethodVerifyWorkFileMapper processMethodVerifyWorkFileMapper;
+ @Resource
+ private UserMapper userMapper;
+
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+
+ /**
+ * 鏍囧噯鏂规硶璺熸柊楠岃瘉淇敼
+ *
+ * @param page
+ * @param methodVerifyDto
+ * @return
+ */
+ @Override
+ public IPage<ProcessMethodVerify> pagesMethodVerify(Page page, ProcessMethodVerifyDto methodVerifyDto) {
+ if (methodVerifyDto.getOperationType() == null) {
+ throw new ErrorException("璇烽�夋嫨鏄彉鏇磋繕鏄獙璇�");
+ }
+ return baseMapper.pagesMethodVerify(page, QueryWrappers.queryWrappers(methodVerifyDto));
+ }
+
+ /**
+ * 鏂板鏍囧噯鏂规硶楠岃瘉
+ *
+ * @param methodVerifyDto
+ * @return
+ */
+ @Override
+ public boolean addMethodSearchNew(ProcessMethodVerifyDto methodVerifyDto) {
+ if (methodVerifyDto.getOperationType() == null) {
+ throw new ErrorException("璇烽�夋嫨鏄彉鏇磋繕鏄獙璇�");
+ }
+ // 鏂板
+ baseMapper.insert(methodVerifyDto);
+
+ // 鍒ゆ柇纭浜烘槸鍚︿负绌�
+ if (StringUtils.isNotBlank(methodVerifyDto.getConfirmUser())) {
+ // 娣诲姞涓婂矖璇�
+ this.addWorkFile(methodVerifyDto);
+ }
+
+ // 鏂板璁惧淇℃伅
+ if (CollectionUtils.isNotEmpty(methodVerifyDto.getMachineAttachmentList())) {
+ this.addDevice(methodVerifyDto);
+ }
+
+ return true;
+ }
+
+ /**
+ * 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏
+ *
+ * @param methodVerifyId
+ * @return
+ */
+ @Override
+ public ProcessMethodVerifyDto getMethodVerifyOne(Integer methodVerifyId) {
+ ProcessMethodVerify processMethodVerify = baseMapper.selectById(methodVerifyId);
+ ProcessMethodVerifyDto processMethodVerifyDto = new ProcessMethodVerifyDto();
+ BeanUtil.copyProperties(processMethodVerify, processMethodVerifyDto);
+
+ // 鏌ヨ璁惧璇︽儏
+ processMethodVerifyDto.setMachineAttachmentList(processMethodVerifyMachineAttachmentService.list(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery()
+ .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId)));
+ // 鏌ヨ鍘熷璁板綍
+ processMethodVerifyDto.setMethodFileList(processMethodVerifyMethodFileService.list(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery()
+ .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId)));
+ // 鏌ヨ涓婂矖璇�
+ processMethodVerifyDto.setWorkFileList(processMethodVerifyWorkFileService.list(Wrappers.<ProcessMethodVerifyWorkFile>lambdaQuery()
+ .eq(ProcessMethodVerifyWorkFile::getMethodVerifyId, methodVerifyId)));
+ // 鏌ヨ鏍″噯璇佷功
+ processMethodVerifyDto.setCalibrationsFileList(processMethodVerifyCalibrationsFileMapper.selectCalibrationsFileList(methodVerifyId));
+
+
+ return processMethodVerifyDto;
+ }
+
+ /**
+ * 淇敼鏍囧噯鏂规硶楠岃瘉
+ *
+ * @param methodVerifyDto
+ * @return
+ */
+ @Override
+ public boolean updateMethodVerify(ProcessMethodVerifyDto methodVerifyDto) {
+ baseMapper.updateById(methodVerifyDto);
+
+ // 鍒犻櫎涓婂矖璇�
+ processMethodVerifyWorkFileService.remove(Wrappers.<ProcessMethodVerifyWorkFile>lambdaQuery()
+ .eq(ProcessMethodVerifyWorkFile::getMethodVerifyId, methodVerifyDto.getMethodVerifyId()));
+
+ // 鍒犻櫎鍘熸湰璁惧璇︽儏
+ processMethodVerifyMachineAttachmentService.remove(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery()
+ .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyDto.getMethodVerifyId()));
+
+ // 鍒犻櫎鍏冩牎鍑嗚瘉涔�
+ processMethodVerifyCalibrationsFileService.remove(Wrappers.<ProcessMethodVerifyCalibrationsFile>lambdaQuery()
+ .eq(ProcessMethodVerifyCalibrationsFile::getMethodVerifyId, methodVerifyDto.getMethodVerifyId()));
+
+ // 鍒ゆ柇纭浜烘槸鍚︿负绌�
+ if (StringUtils.isNotBlank(methodVerifyDto.getConfirmUser())) {
+ // 娣诲姞涓婂矖璇�
+ this.addWorkFile(methodVerifyDto);
+ }
+
+ // 鏂板璁惧淇℃伅
+ if (CollectionUtils.isNotEmpty(methodVerifyDto.getMachineAttachmentList())) {
+ this.addDevice(methodVerifyDto);
+ }
+ return true;
+ }
+
+ /**
+ * 鍒犻櫎鏍囧噯鏂规硶楠岃瘉
+ *
+ * @param methodVerifyId
+ * @return
+ */
+ @Override
+ public boolean delMethodVerify(Integer methodVerifyId) {
+ // 鍒犻櫎鎵�鏈夎澶�
+ processMethodVerifyMachineAttachmentService.remove(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery()
+ .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId));
+
+ // 鍒犻櫎鎵�鏈夊師濮嬭褰�
+ processMethodVerifyMethodFileService.remove(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery()
+ .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId));
+
+
+ baseMapper.deleteById(methodVerifyId);
+
+ return true;
+ }
+
+ /**
+ * 鏂规硶楠岃瘉纭
+ *
+ * @param methodVerifyId
+ * @return
+ */
+ @Override
+ public boolean methodVerifyAffirm(Integer methodVerifyId) {
+ baseMapper.update(null, Wrappers.<ProcessMethodVerify>lambdaUpdate()
+ .set(ProcessMethodVerify::getConfirmDate, LocalDateTime.now())
+ .eq(ProcessMethodVerify::getMethodVerifyId, methodVerifyId));
+ return true;
+ }
+
+ /**
+ * 鏂规硶楠岃瘉鏂板鍘熷璁板綍
+ *
+ * @param methodVerifyId
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean uploadVerifyMethodFile(Integer methodVerifyId, MultipartFile file) {
+ if (methodVerifyId == null) {
+ throw new ErrorException("缂哄皯鍘熷璁板綍id");
+ }
+
+ String urlString;
+ String pathName;
+ String path;
+ String filename = file.getOriginalFilename();
+ String contentType = file.getContentType();
+ ProcessMethodVerifyMethodFile methodFile = new ProcessMethodVerifyMethodFile();
+ methodFile.setMethodVerifyId(methodVerifyId);
+ methodFile.setFileName(filename);
+ if (contentType != null && contentType.startsWith("image/")) {
+ // 鏄浘鐗�
+ path = imgUrl;
+ methodFile.setType(1);
+ } else {
+ // 鏄枃浠�
+ path = wordUrl;
+ methodFile.setType(2);
+ }
+ try {
+ File realpath = new File(path);
+ if (!realpath.exists()) {
+ realpath.mkdirs();
+ }
+ pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename();
+ urlString = realpath + "/" + pathName;
+ file.transferTo(new File(urlString));
+ methodFile.setFileUrl(pathName);
+ return processMethodVerifyMethodFileService.save(methodFile);
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.err.println("闄勪欢涓婁紶閿欒");
+ return false;
+ }
+ }
+
+ /**
+ * 鏍囧噯鏂规硶楠岃瘉鍘熷璁板綍鍒楄〃
+ *
+ * @param methodVerifyId
+ * @return
+ */
+ @Override
+ public List<ProcessMethodVerifyMethodFile> getVerifyMethodFileList(Integer methodVerifyId) {
+ return processMethodVerifyMethodFileService.list(Wrappers.<ProcessMethodVerifyMethodFile>lambdaQuery()
+ .eq(ProcessMethodVerifyMethodFile::getMethodVerifyId, methodVerifyId));
+ }
+
+ /**
+ * 瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉
+ *
+ * @param methodVerifyId 鏍囧噯鏂规硶楠岃瘉id
+ * @param response
+ */
+ @Override
+ public void exportMethodVerify(Integer methodVerifyId, HttpServletResponse response) {
+ // 鑾峰彇鏍囧噯鏂规硶鏇存柊楠岃瘉鏁版嵁
+ ProcessMethodVerify processMethodVerify = baseMapper.selectById(methodVerifyId);
+
+ // 灏嗗唴閮ㄥ瓧娈佃浆鎹㈡垚灞曠ず鍒皐ord涓殑瀵硅薄
+ ProcessMethodVerifyExportWordDto exportWordTemplate = getExportWordTemplate(processMethodVerify);
+
+ // TODO:瀵煎嚭鏍囧噯鏂规硶鏇存柊楠岃瘉鑾峰彇浜哄憳绛惧悕鍒楄〃鏈缃�
+ // 鑾峰彇浜哄憳id瀛楃涓� 濡傦細1,2,3,4,5
+ String confirmUser = processMethodVerify.getConfirmUser();
+ // 瀵逛汉鍛榠d瀛楃涓茶繘琛屽垎鍓叉垚鏁扮粍
+ String[] userIds = confirmUser.split(",");
+ // 瀹氫箟涓�涓泦鍚堝瓨鏀句汉鍛樼鍚�
+ ArrayList<PictureRenderData> pictureRenderDataList = new ArrayList<>();
+ // 寰幆鑾峰彇浜哄憳绛惧悕
+ for (String userIdStr : userIds) {
+ // 杞崲涓篿nt绫诲瀷
+ Integer userId = Integer.valueOf(userIdStr);
+ // 鑾峰彇浜哄憳绛惧悕瀵硅薄
+ PictureRenderData finalUserSignatureUrl = UserUtils.getFinalUserSignatureUrl(userId,100,50);
+ // 灏嗕汉鍛樼鍚嶅璞℃坊鍔犲埌闆嗗悎涓�
+ pictureRenderDataList.add(finalUserSignatureUrl);
+ }
+
+ // 鑾峰彇璁惧淇℃伅
+ List<ProcessMethodVerifyMachineAttachment> processMethodVerifyMachineAttachmentList = processMethodVerifyMachineAttachmentService.list(Wrappers.<ProcessMethodVerifyMachineAttachment>lambdaQuery()
+ .eq(ProcessMethodVerifyMachineAttachment::getMethodVerifyId, methodVerifyId));
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/method-verify.docx");
+ Configure configure = Configure.builder()
+ .bind("processMethodVerifyMachineAttachmentList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("processMethodVerify", exportWordTemplate);
+ put("processMethodVerifyMachineAttachmentList", processMethodVerifyMachineAttachmentList);
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "鏍囧噯锛堟柟娉曪級纭璁板綍", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ private ProcessMethodVerifyExportWordDto getExportWordTemplate(ProcessMethodVerify processMethodVerify) {
+ ProcessMethodVerifyExportWordDto processMethodVerifyExportWordDto = new ProcessMethodVerifyExportWordDto();
+ BeanUtil.copyProperties(processMethodVerify, processMethodVerifyExportWordDto);
+ // 锛堜汉锛夋槸鍚︽弧瓒�
+ processMethodVerifyExportWordDto.setPersonIsSatisfiedStr(processMethodVerify.getPersonIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堟満锛夋槸鍚︽弧瓒�
+ processMethodVerifyExportWordDto.setMachineIsSatisfiedStr(processMethodVerify.getMachineIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堟枡锛夋槸鍚︽弧瓒�
+ processMethodVerifyExportWordDto.setMaterialIsSatisfiedStr(processMethodVerify.getMaterialIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堟硶锛夋槸鍚︽弧瓒�
+ processMethodVerifyExportWordDto.setMethodIsSatisfiedStr(processMethodVerify.getMethodIsSatisfied() == 1? "鈭�" : "脳");
+ // 锛堢幆锛夋槸鍚︽弧瓒�
+ processMethodVerifyExportWordDto.setEnvironmentIsSatisfiedStr(processMethodVerify.getEnvironmentIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堟祴閲忔函婧愭�э級鏄惁婊¤冻
+ processMethodVerifyExportWordDto.setTraceabilityIsSatisfiedStr(processMethodVerify.getTraceabilityIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堟牱鍝佺鐞嗛渶姹傦級鏄惁婊¤冻
+ processMethodVerifyExportWordDto.setManagementIsSatisfiedStr(processMethodVerify.getManagementIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 锛堝叾浠栵級鏄惁婊¤冻
+ processMethodVerifyExportWordDto.setOtherIsSatisfiedStr(processMethodVerify.getOtherIsSatisfied() == 1 ? "鈭�" : "脳");
+ // 纭鏃ユ湡
+ processMethodVerifyExportWordDto.setConfirmDateStr(processMethodVerify.getConfirmDate() != null ? processMethodVerify.getConfirmDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")): null);
+ return processMethodVerifyExportWordDto;
+ }
+
+
+ /**
+ * 娣诲姞涓婂矖璇�
+ *
+ * @param methodVerifyDto
+ */
+ private void addWorkFile(ProcessMethodVerifyDto methodVerifyDto) {
+ List<String> confirmUserIds = StrUtil.split(methodVerifyDto.getConfirmUser(), ",");
+ List<ProcessMethodVerifyWorkFile> workFileList = new ArrayList<>();
+ for (String confirmUserId : confirmUserIds) {
+ Integer userId = Integer.valueOf(confirmUserId);
+ String workName = processMethodVerifyWorkFileMapper.selectWorkFile(userId);
+ // 鍒ゆ柇鏄惁鏈夎瘉涔�
+ if (StringUtils.isNotBlank(workName)) {
+ User user = userMapper.selectById(userId);
+ ProcessMethodVerifyWorkFile workFile = new ProcessMethodVerifyWorkFile();
+ workFile.setMethodVerifyId(methodVerifyDto.getMethodVerifyId());
+ workFile.setType(1);
+ workFile.setFileUrl(workName);
+ workFile.setFileName(workName);
+ workFile.setUserId(user.getId());
+ workFile.setUserName(user.getName());
+ workFileList.add(workFile);
+ }
+ }
+ if (CollectionUtils.isNotEmpty(workFileList)) {
+ processMethodVerifyWorkFileService.saveBatch(workFileList);
+ }
+ }
+
+ /**
+ * 娣诲姞璁惧淇℃伅
+ *
+ * @param methodVerifyDto
+ */
+ private void addDevice(ProcessMethodVerifyDto methodVerifyDto) {
+ List<ProcessMethodVerifyCalibrationsFile> calibrationsFiles = new ArrayList<>();
+ for (ProcessMethodVerifyMachineAttachment machineAttachment : methodVerifyDto.getMachineAttachmentList()) {
+ machineAttachment.setMethodVerifyId(methodVerifyDto.getMethodVerifyId());
+ // 鏌ヨ鏍″噯璇佷功
+ String calibrationsName = processMethodVerifyCalibrationsFileMapper.selectCalibrationsFile(machineAttachment.getDeviceId());
+ // 鍒ゆ柇鏄惁鏈夎瘉涔�
+ if (StringUtils.isNotBlank(calibrationsName)) {
+ ProcessMethodVerifyCalibrationsFile calibrationsFile = new ProcessMethodVerifyCalibrationsFile();
+ calibrationsFile.setMethodVerifyId(methodVerifyDto.getMethodVerifyId());
+ calibrationsFile.setType(1);
+ calibrationsFile.setFileUrl(calibrationsName);
+ calibrationsFile.setFileName(calibrationsName);
+ calibrationsFile.setDeviceId((machineAttachment.getDeviceId()));
+ calibrationsFiles.add(calibrationsFile);
+ }
+ }
+ // 娣诲姞鏍″噯璇佷功
+ processMethodVerifyCalibrationsFileService.saveBatch(calibrationsFiles);
+
+ // 娣诲姞璁惧
+ processMethodVerifyMachineAttachmentService.saveBatch(methodVerifyDto.getMachineAttachmentList());
+ }
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderServiceImpl.java
new file mode 100644
index 0000000..fb9f07f
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderServiceImpl.java
@@ -0,0 +1,148 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.XWPFDocumentUtils;
+import com.ruoyi.process.dto.InspectionOrderDetail;
+import com.ruoyi.process.dto.InspectionOrderExportDto;
+import com.ruoyi.process.dto.ProcessOrderDto;
+import com.ruoyi.process.mapper.ProcessOrderMapper;
+import com.ruoyi.process.pojo.ProcessOrder;
+import com.ruoyi.process.service.ProcessOrderService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessOrderServiceImpl extends ServiceImpl<ProcessOrderMapper, ProcessOrder> implements ProcessOrderService {
+
+ @Resource
+ private ProcessOrderMapper processOrderMapper;
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Override
+ public IPage<ProcessOrderDto> pageProcessOrder(Page page, ProcessOrderDto processOrderDto) {
+ return processOrderMapper.pageProcessOrder(page, QueryWrappers.queryWrappers(processOrderDto));
+ }
+
+ @Override
+ public ProcessOrderDto getProcessOrder(Integer id) {
+ return processOrderMapper.getProcessOrder(id);
+ }
+
+ @Override
+ public int doProcessOrder(ProcessOrder processOrder) {
+ if (ObjectUtils.isNotEmpty(processOrder.getComprehensiveUser())) {
+ User user = userMapper.selectById(processOrder.getComprehensiveUser());
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒扮患鍚堝绛惧悕浜虹殑鐢靛瓙绛惧悕,璇蜂笂浼犵數瀛愮鍚�!");
+ }
+ if (ObjectUtils.isNotEmpty(processOrder.getIssueUser())) {
+ User user = userMapper.selectById(processOrder.getIssueUser());
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒伴鏍峰憳鐨勭數瀛愮鍚�,璇蜂笂浼犵數瀛愮鍚�!");
+ }
+ return processOrderMapper.updateById(processOrder);
+ }
+
+
+ @Override
+ public void exportInspectionOrder(Integer id, HttpServletResponse response) {
+ ProcessOrder processOrder = baseMapper.selectById(id);
+ InspectionOrderExportDto inspectionOrderExportDto = extracted(processOrder);
+ List<InspectionOrderDetail> list = baseMapper.selectInsOrder(processOrder.getInsOrderId());
+ int index = 1;
+ for (InspectionOrderDetail inspectionOrderDetail : list) {
+ inspectionOrderDetail.setIndex(index);
+ index++;
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/inspection-order.docx");
+ Configure configure = Configure.builder()
+ .bind("inspectionOrderDetailList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("inspectionOrder", inspectionOrderExportDto);
+ put("inspectionOrderDetailList", list);
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ inspectionOrderExportDto.getSample(), "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ private InspectionOrderExportDto extracted(ProcessOrder processOrder) {
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+ InspectionOrderExportDto inspectionOrderExportDto = new InspectionOrderExportDto();
+ ProcessOrderDto processOrderDto = getProcessOrder(processOrder.getId());
+ BeanUtils.copyProperties(processOrderDto, inspectionOrderExportDto);
+ if (processOrderDto.getCreateTime() != null) {
+ inspectionOrderExportDto.setCommissionDateString(processOrderDto.getCreateTime().format(formatter));
+ }
+ if (processOrder.getComprehensiveTime() != null) {
+ inspectionOrderExportDto.setReceiptDataString(processOrder.getComprehensiveTime().format(formatter));
+ }
+ if (processOrder.getIssueTime() != null) {
+ inspectionOrderExportDto.setSampleDataString(processOrder.getIssueTime().format(formatter));
+ }
+ if (processOrderDto.getAppointed() != null) {
+ inspectionOrderExportDto.setAppointedString(processOrderDto.getAppointed().format(formatter));
+ }
+
+ inspectionOrderExportDto.setIsLeave1(processOrderDto.getIsLeave() != null && processOrderDto.getIsLeave() == 1 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setIsLeave2(processOrderDto.getIsLeave() != null && processOrderDto.getIsLeave() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setSend0(processOrderDto.getSend() != null && processOrderDto.getSend() == 1 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setSend1(processOrderDto.getSend() != null && processOrderDto.getSend() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setProcessing0(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setProcessing1(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 1 ? "鈽�" : "鈻�");
+ if (ObjectUtils.isNotEmpty(processOrder.getRule())) {
+ inspectionOrderExportDto.setCriterionRule0(processOrder.getRule().equals("涓嶈�冭檻涓嶇‘瀹氬害") ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setCriterionRule1(processOrder.getRule().contains("-") ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setCriterionRuleRemark(processOrder.getRule().contains("-") ? processOrder.getRule().split("-")[1] : "");
+ }
+ return inspectionOrderExportDto;
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
new file mode 100644
index 0000000..0f78c44
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessReportServiceImpl.java
@@ -0,0 +1,422 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.*;
+import com.deepoove.poi.data.style.*;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.mapper.ProcessReportMapper;
+import com.ruoyi.process.pojo.ProcessReport;
+import com.ruoyi.process.service.ProcessReportService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.xwpf.usermodel.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 08:58:39
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessReportServiceImpl extends ServiceImpl<ProcessReportMapper, ProcessReport> implements ProcessReportService {
+
+ @Resource
+ private ProcessReportMapper processReportMapper;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Override
+ public IPage<ProcessReport> pageProcessReport(Page page, ProcessReport processReport) {
+ IPage<ProcessReport> processReportIPage = processReportMapper.pageProcessReport(page, QueryWrappers.queryWrappers(processReport));
+ for (ProcessReport record : processReportIPage.getRecords()) {
+ List<String> name = new ArrayList<>();
+ if(StringUtils.isNotBlank(record.getSignatory())){
+ for (String s : record.getSignatory().split(",")) {
+ User user = userMapper.selectById(Integer.parseInt(s));
+ name.add(user.getName());
+ }
+ String signatoryName = name.stream().collect(Collectors.joining(","));
+ record.setSignatoryName(signatoryName);
+ }
+ }
+ return processReportIPage;
+ }
+
+ @Override
+ public String exportProcessReport(List<Integer> ids) {
+ List<ProcessReport> processReports = processReportMapper.getIds(ids);
+ for (ProcessReport processReport : processReports) {
+ List<String> name = new ArrayList<>();
+ for (String s : processReport.getSignatory().split(",")) {
+ User user = userMapper.selectById(Integer.parseInt(s));
+ name.add(user.getName());
+ }
+ String signatoryName = name.stream().collect(Collectors.joining(","));
+ processReport.setSignatoryName(signatoryName);
+ }
+ //鐢熸垚妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃
+ String url;
+ try {
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/report-deal.docx");
+ File file = File.createTempFile("temp", ".tmp");
+ OutputStream outputStream = new FileOutputStream(file);
+ IOUtils.copy(inputStream, outputStream);
+ url = file.getAbsolutePath();
+ } catch (FileNotFoundException e) {
+ throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+
+ List<Map<String, Object>> reportList = new ArrayList<>();
+ Integer index = 1;
+ Integer index1 = 1;
+ for (int c = 0; c < processReports.size(); c++) {
+ //瓒呰繃15琛屾崲椤�
+ if (c % 15 == 0) {
+ List<RowRenderData> rows = new ArrayList<>();
+ //琛ㄦ牸鐨勮鏁�
+ for (int i = 0; i < 16; i++) {
+ RowRenderData rowRenderData = new RowRenderData();
+ RowStyle rowStyle = new RowStyle();
+ rowStyle.setHeight(40);
+ rowRenderData.setRowStyle(rowStyle);
+ List<CellRenderData> cells = new ArrayList<>();
+ //琛ㄦ牸鐨勫垪鏁�
+ for (int j = 0; j < 10; j++) {
+ CellRenderData cellRenderData = new CellRenderData();
+ CellStyle cellStyle = new CellStyle();
+ cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
+ cellRenderData.setCellStyle(cellStyle);
+ List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
+ ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+ ParagraphStyle paragraphStyle = new ParagraphStyle();
+ paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+ paragraphRenderData.setParagraphStyle(paragraphStyle);
+ List<RenderData> renderData = new ArrayList<>();
+ TextRenderData textRenderData = new TextRenderData();
+ Style style = new Style();
+ style.setFontFamily("瀹嬩綋");
+ style.setColor("000000");
+ textRenderData.setStyle(style);
+ if (i == 0) {
+ //绗竴琛�
+ if (j == 0) {
+ //绗竴鍒楀簭鍙�
+ textRenderData.setText("搴忓彿@No.");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒�
+ textRenderData.setText("妫�楠屾姤鍛婄紪鍙稝Inspection report number");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒�
+ textRenderData.setText("椤垫暟@Pages");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒�
+ textRenderData.setText("鍙戦�佷唤鏁癅Number of copies sent");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒�
+ textRenderData.setText("鍙戝線浣曞@Where to send to");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 5) {
+ //绗叚鍒�
+ textRenderData.setText("鍙戦�佹柟寮廆Send method");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 6) {
+ //绗竷鍒�
+ textRenderData.setText("鍙戦�佹棩鏈烜Date sent");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }else if (j == 7) {
+ //绗叓鍒�
+ textRenderData.setText("鍙戦�佷汉@Sender");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }else if (j == 8) {
+ //绗節鍒�
+ textRenderData.setText("绛炬敹浜篅Signatory");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }else{
+ //绗崄鍒�
+ textRenderData.setText("澶囨敞@Remark");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ else {
+ //鍏朵粬琛�
+ if (j == 0) {
+ //绗竴鍒�
+ try{
+ String insReportCode = processReports.get((i-1) + (index1 - 1) * 20).getInsReportCode();
+ textRenderData.setText(index + "");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ index++;
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getInsReportCode());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 2) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getPages());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 3) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getNumber());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 4) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSend());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 5) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getMethod());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 6) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSendTime()+"");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 7) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSendUserName());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 8) {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getSignatoryName());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else {
+ try{
+ textRenderData.setText(processReports.get((i-1) + (index1 - 1) * 20).getRemark());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ rowRenderData.setCells(cells);
+ if (rowRenderData.getCells().size() != 0) {
+ rows.add(rowRenderData);
+ }
+ }
+ TableRenderData tableRenderData = new TableRenderData();
+ tableRenderData.setRows(rows);
+ int countSize = tableRenderData.getRows().get(0).getCells().size();
+ for (RowRenderData row : tableRenderData.getRows()) {
+ if (row.getCells().size() != countSize) {
+ throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑");
+ }
+ }
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
+ tableStyle.setAlign(TableRowAlign.CENTER);
+ BorderStyle borderStyle = new BorderStyle();
+ borderStyle.setColor("000000");
+ borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
+ borderStyle.setSize(14);
+ tableStyle.setLeftBorder(borderStyle);
+ tableStyle.setTopBorder(borderStyle);
+ tableStyle.setRightBorder(borderStyle);
+ tableStyle.setBottomBorder(borderStyle);
+ tableRenderData.setTableStyle(tableStyle);
+ Map<String, Object> table = new HashMap<>();
+ table.put("report", tableRenderData);
+ table.put("index1", index1);
+ reportList.add(table);
+ index1++;
+ }
+ }
+ Integer finalIndex = index1;
+ XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("reportList", reportList);
+ }});
+ String name = UUID.randomUUID() + "_妫�楠屾姤鍛婂彂鏀剧櫥璁拌〃" + ".docx";
+ try {
+ template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ //澶勭悊涓嫳鏂囨崲琛岀殑闂
+ String path = wordUrl + "/" + name;
+ try {
+ FileInputStream stream1 = new FileInputStream(path);
+ XWPFDocument document1 = new XWPFDocument(stream1);
+ List<XWPFTable> xwpfTables1 = document1.getTables();
+ for (int i = 0; i < xwpfTables1.size(); i++) {
+ for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
+ for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
+ if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
+ String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
+ String[] split = text.split("@");
+ xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
+ XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
+ XWPFRun run = xwpfParagraph.createRun();
+ run.setText(split[0]);
+ if (ObjectUtils.isNotNull(split[1])) {
+ run.addBreak();
+ run.setText(split[1]);
+ }
+ xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
+ }
+ }
+ }
+ }
+ FileOutputStream fileOutputStream1 = new FileOutputStream(path);
+ document1.write(fileOutputStream1);
+ fileOutputStream1.close();
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return name;
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
new file mode 100644
index 0000000..2396ca9
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessSampleServiceImpl.java
@@ -0,0 +1,93 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.process.mapper.ProcessSampleMapper;
+import com.ruoyi.process.mapper.ProcessTotalSampleMapper;
+import com.ruoyi.process.pojo.ProcessSample;
+import com.ruoyi.process.pojo.ProcessTotalSample;
+import com.ruoyi.process.service.ProcessSampleService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:49
+ */
+@Service
+public class ProcessSampleServiceImpl extends ServiceImpl<ProcessSampleMapper, ProcessSample> implements ProcessSampleService {
+
+ @Resource
+ private ProcessSampleMapper processSampleMapper;
+
+ @Resource
+ private ProcessTotalSampleMapper processTotalSampleMapper;
+
+ @Override
+ public IPage<ProcessSample> pageProcessSample(Page page, ProcessSample processSample) {
+ if (ObjectUtils.isEmpty(processSample.getTotalSampleId())) {
+ //鑾峰彇褰撳墠鏈堜唤
+ LocalDate currentDate = LocalDate.now();
+ // 瀹氫箟鏃ユ湡鏍煎紡
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+ String currentMonth = currentDate.format(formatter);
+ //鏌ヨ鍘嗗彶
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth, currentMonth));
+ processSample.setTotalSampleId(processTotalSample.getId());
+ }
+ return processSampleMapper.pageProcessSample(page, QueryWrappers.queryWrappers(processSample));
+ }
+
+ @Override
+ public int addProcessSample(ProcessSample processSample) {
+ ProcessTotalSample processTotalSample;
+ if (ObjectUtils.isEmpty(processSample.getTotalSampleId())){
+ LocalDate dealTime = LocalDate.now();
+ // 瀹氫箟鏃ユ湡鏍煎紡
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+ // 鏍煎紡鍖栧綋鍓嶆棩鏈�
+ String currentMonth = dealTime.format(formatter);
+ processTotalSample= processTotalSampleMapper.selectOne(Wrappers.<ProcessTotalSample>lambdaQuery().eq(ProcessTotalSample::getMonth,currentMonth));
+ processSample.setTotalSampleId(processTotalSample.getId());
+ }else {
+ processTotalSample= processTotalSampleMapper.selectById(processSample.getTotalSampleId());
+ }
+ processSampleMapper.insert(processSample);
+ processTotalSample.setTotalNum(processSample.getNum()+processTotalSample.getTotalNum());
+ return processTotalSampleMapper.updateById(processTotalSample);
+ }
+
+ @Override
+ public int delProcessSample(Integer id) {
+ ProcessSample processSample = processSampleMapper.selectById(id);
+ processSampleMapper.deleteById(id);
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
+ processTotalSample.setTotalNum(processTotalSample.getTotalNum()-processSample.getNum());
+ return processTotalSampleMapper.updateById(processTotalSample);
+ }
+
+ @Override
+ public int doProcessSample(ProcessSample processSample) {
+ if (ObjectUtils.isNotEmpty(processSample.getNum())) {
+ ProcessSample oldProcessSample = processSampleMapper.selectById(processSample.getId());
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(processSample.getTotalSampleId());
+ processTotalSample.setTotalNum(processTotalSample.getTotalNum() - oldProcessSample.getNum() + processSample.getNum());
+ processTotalSampleMapper.updateById(processTotalSample);
+ }
+ return processSampleMapper.updateById(processSample);
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java
new file mode 100644
index 0000000..dee85ae
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotalSampleServiceImpl.java
@@ -0,0 +1,435 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.*;
+import com.deepoove.poi.data.style.*;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.mapper.ProcessSampleMapper;
+import com.ruoyi.process.mapper.ProcessTotalSampleMapper;
+import com.ruoyi.process.pojo.ProcessSample;
+import com.ruoyi.process.pojo.ProcessTotalSample;
+import com.ruoyi.process.service.ProcessTotalSampleService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.apache.commons.io.IOUtils;
+import org.apache.poi.xwpf.usermodel.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 鏍峰搧鎺ユ敹鎬昏〃 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-12-12 05:02:58
+ */
+@Service
+public class ProcessTotalSampleServiceImpl extends ServiceImpl<ProcessTotalSampleMapper, ProcessTotalSample> implements ProcessTotalSampleService {
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Resource
+ private ProcessTotalSampleMapper processTotalSampleMapper;
+
+ @Resource
+ private ProcessSampleMapper processSampleMapper;
+
+ @Override
+ public IPage<ProcessTotalSample> pageProcessTotalSample(Page page, ProcessTotalSample processTotalSample) {
+ return processTotalSampleMapper.pageProcessTotalSample(page, QueryWrappers.queryWrappers(processTotalSample));
+ }
+
+ @Override
+ public int submitProcessTotalSample(Integer id) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板~琛ㄤ汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id);
+ processTotalSample.setSubmitUser(userId);
+ processTotalSample.setSubmitState("宸叉彁浜�");
+ processTotalSample.setSubmitUrl(user.getSignatureUrl());
+ //鐢熸垚鏍峰搧澶勭悊鐢宠琛ㄥ苟灏嗗~琛ㄤ汉鐨勭數瀛愮鍚嶅嵃涓�
+ processTotalSample.setUrl(processTotalSample(id,user.getSignatureUrl()));
+ return processTotalSampleMapper.updateById(processTotalSample);
+ }
+
+ @Override
+ public int checkProcessTotalSample(Integer id, String state) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板鏍镐汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id);
+ processTotalSample.setExamineUser(userId);
+ processTotalSample.setExamineState(state);
+ processTotalSample.setExamineUrl(user.getSignatureUrl());
+ if (state.equals("涓嶉�氳繃")) {
+ processTotalSample.setSubmitState("寰呮彁浜�");
+ }
+ //灏嗗鏍镐汉鐨勭數瀛愮鍚嶅嵃涓�
+ wordInsertUrl(new HashMap<String, Object>() {{
+ put("examineUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl()));
+ }}, wordUrl+"/"+processTotalSample.getUrl());
+ return processTotalSampleMapper.updateById(processTotalSample);
+ }
+
+ @Override
+ public int ratifyProcessTotalSample(Integer id, String state) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒版壒鍑嗕汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotalSample processTotalSample = processTotalSampleMapper.selectById(id);
+ processTotalSample.setRatifyUser(userId);
+ processTotalSample.setRatifyState(state);
+ processTotalSample.setRatifyUrl(user.getSignatureUrl());
+ if (state.equals("涓嶉�氳繃")) {
+ processTotalSample.setSubmitState("寰呮彁浜�");
+ }
+ //灏嗘壒鍑嗕汉鐨勭鍚嶅嵃涓�
+ wordInsertUrl(new HashMap<String, Object>() {{
+ put("ratifyUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl()));
+ }}, wordUrl+"/"+processTotalSample.getUrl());
+ return processTotalSampleMapper.updateById(processTotalSample);
+ }
+
+ //鐢熸垚鏍峰搧澶勭悊琛╳ord
+ private String processTotalSample(Integer id,String signatureUrl){
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+ List<ProcessSample> processSamples = processSampleMapper.selectList(Wrappers.<ProcessSample>lambdaQuery().eq(ProcessSample::getTotalSampleId,id));
+ String url;
+ try {
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-receive.docx");
+ File file = File.createTempFile("temp", ".tmp");
+ OutputStream outputStream = new FileOutputStream(file);
+ IOUtils.copy(inputStream, outputStream);
+ url = file.getAbsolutePath();
+ } catch (FileNotFoundException e) {
+ throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+
+ List<Map<String, Object>> sampleList = new ArrayList<>();
+ Integer index = 1;
+ Integer index1 = 1;
+ for (int c = 0; c < processSamples.size(); c++) {
+ //瓒呰繃20琛屾崲椤�
+ if (c % 20 == 0) {
+ List<RowRenderData> rows = new ArrayList<>();
+ //琛ㄦ牸鐨勮鏁�
+ for (int i = 0; i < 21; i++) {
+ RowRenderData rowRenderData = new RowRenderData();
+ RowStyle rowStyle = new RowStyle();
+ rowStyle.setHeight(40);
+ rowRenderData.setRowStyle(rowStyle);
+ List<CellRenderData> cells = new ArrayList<>();
+ //琛ㄦ牸鐨勫垪鏁�
+ for (int j = 0; j < 8; j++) {
+ CellRenderData cellRenderData = new CellRenderData();
+ CellStyle cellStyle = new CellStyle();
+ cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
+ cellRenderData.setCellStyle(cellStyle);
+ List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
+ ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+ ParagraphStyle paragraphStyle = new ParagraphStyle();
+ paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+ paragraphRenderData.setParagraphStyle(paragraphStyle);
+ List<RenderData> renderData = new ArrayList<>();
+ TextRenderData textRenderData = new TextRenderData();
+ Style style = new Style();
+ style.setFontFamily("瀹嬩綋");
+ style.setColor("000000");
+ textRenderData.setStyle(style);
+ if (i == 0) {
+ //绗竴琛�
+ if (j == 0) {
+ //绗竴鍒楀簭鍙�
+ textRenderData.setText("鏀舵牱鏃ユ湡@Date of receipt");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒楁牱鍝佸悕绉�
+ textRenderData.setText("鏍峰搧缂栧彿@Sample number");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒楁牱鍝佺紪鍙�
+ textRenderData.setText("鏍峰搧鍚嶇О@Sample name");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒椾緵鏍峰崟浣�
+ textRenderData.setText("鏍峰搧鏁伴噺@Number of samples");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒楁暟閲�
+ textRenderData.setText("鏉ユ牱鍗曚綅@Sample unit");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 5) {
+ //绗叚鍒楀鐞嗘柟寮�
+ textRenderData.setText("鐣欐牱鏃ユ湡@Sample retention date");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 6) {
+ //绗叚鍒楀鐞嗘柟寮�
+ textRenderData.setText("鏍峰搧鐘舵�丂Sample status");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else {
+ //绗竷鍒楁椂闂�
+ textRenderData.setText("閫�鏍风鏀跺拰/鎴栧鐞嗘棩鏈烜Return signature and/or processing date");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ else {
+ //鍏朵粬琛�
+ if (j == 0) {
+ //绗竴鍒�
+ try{
+ String receiveDate = processSamples.get((i-1) + (index1 - 1) * 20).getReceiveDate().format(formatter);
+ textRenderData.setText(receiveDate);
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ index++;
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getSampleCode());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 2) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getSampleName());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 3) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getNum()+"");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 4) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getSampleSupplier());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 5) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getLeaveDate().format(formatter));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 5) {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getSampleState());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else {
+ try{
+ textRenderData.setText(processSamples.get((i-1) + (index1 - 1) * 20).getDealTime().format(formatter));
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ rowRenderData.setCells(cells);
+ if (rowRenderData.getCells().size() != 0) {
+ rows.add(rowRenderData);
+ }
+ }
+ TableRenderData tableRenderData = new TableRenderData();
+ tableRenderData.setRows(rows);
+ int countSize = tableRenderData.getRows().get(0).getCells().size();
+ for (RowRenderData row : tableRenderData.getRows()) {
+ if (row.getCells().size() != countSize) {
+ throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑");
+ }
+ }
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
+ tableStyle.setAlign(TableRowAlign.CENTER);
+ BorderStyle borderStyle = new BorderStyle();
+ borderStyle.setColor("000000");
+ borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
+ borderStyle.setSize(14);
+ tableStyle.setLeftBorder(borderStyle);
+ tableStyle.setTopBorder(borderStyle);
+ tableStyle.setRightBorder(borderStyle);
+ tableStyle.setBottomBorder(borderStyle);
+ tableRenderData.setTableStyle(tableStyle);
+ Map<String, Object> table = new HashMap<>();
+ table.put("sample", tableRenderData);
+ table.put("index1", index1);
+ sampleList.add(table);
+ index1++;
+ }
+ }
+ Integer finalIndex = index1;
+ XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("sampleList", sampleList);
+ put("size", finalIndex);
+ put("examineUrl", null);
+ put("ratifyUrl", null);
+ put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + signatureUrl));
+ }});
+ String name = UUID.randomUUID() + "_妫�楠屾牱鍝佺櫥璁拌〃" + ".docx";
+ try {
+ template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ //澶勭悊涓嫳鏂囨崲琛岀殑闂
+ String path = wordUrl + "/" + name;
+ try {
+ FileInputStream stream1 = new FileInputStream(path);
+ XWPFDocument document1 = new XWPFDocument(stream1);
+ List<XWPFTable> xwpfTables1 = document1.getTables();
+ for (int i = 0; i < xwpfTables1.size(); i++) {
+ for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
+ for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
+ if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
+ String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
+ String[] split = text.split("@");
+ xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
+ XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
+ XWPFRun run = xwpfParagraph.createRun();
+ run.setText(split[0]);
+ if (ObjectUtils.isNotNull(split[1])) {
+ run.addBreak();
+ run.setText(split[1]);
+ }
+ xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
+ }
+ }
+ }
+ }
+ FileOutputStream fileOutputStream1 = new FileOutputStream(path);
+ document1.write(fileOutputStream1);
+ fileOutputStream1.close();
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return name;
+ }
+
+ public int wordInsertUrl(Map<String, Object> map, String url) {
+ XWPFTemplate template = XWPFTemplate.compile(url).render(map);
+ try {
+ template.writeAndClose(Files.newOutputStream(Paths.get(url)));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return 1;
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
new file mode 100644
index 0000000..e04131b
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessTotaldealServiceImpl.java
@@ -0,0 +1,414 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.*;
+import com.deepoove.poi.data.style.*;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.process.mapper.ProcessDealMapper;
+import com.ruoyi.process.mapper.ProcessTotaldealMapper;
+import com.ruoyi.process.pojo.ProcessDeal;
+import com.ruoyi.process.pojo.ProcessTotaldeal;
+import com.ruoyi.process.service.ProcessTotaldealService;
+import com.ruoyi.system.mapper.UserMapper;
+import org.apache.commons.io.IOUtils;
+import org.apache.poi.xwpf.usermodel.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�昏〃(鍘嗗彶) 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-02 03:59:09
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class ProcessTotaldealServiceImpl extends ServiceImpl<ProcessTotaldealMapper, ProcessTotaldeal> implements ProcessTotaldealService {
+
+ @Resource
+ private ProcessTotaldealMapper processTotaldealMapper;
+
+ @Resource
+ private ProcessDealMapper processDealMapper;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Override
+ public IPage<ProcessTotaldeal> pageProcessTotaldeal(Page page, ProcessTotaldeal processTotaldeal) {
+ return processTotaldealMapper.pageProcessTotaldeal(page, QueryWrappers.queryWrappers(processTotaldeal));
+ }
+
+ @Override
+ public int submitProcessTotaldeal(Integer id) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板~琛ㄤ汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
+ processTotaldeal.setSubmitUser(userId);
+ processTotaldeal.setSubmitState("宸叉彁浜�");
+ processTotaldeal.setSubmitUrl(user.getSignatureUrl());
+ //鐢熸垚鏍峰搧澶勭悊鐢宠琛ㄥ苟灏嗗~琛ㄤ汉鐨勭數瀛愮鍚嶅嵃涓�
+ processTotaldeal.setUrl(processTotaldeal(id,user.getSignatureUrl()));
+ return processTotaldealMapper.updateById(processTotaldeal);
+ }
+
+ @Override
+ public int checkProcessTotaldeal(Integer id, String state) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒板鏍镐汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
+ processTotaldeal.setExamineUser(userId);
+ processTotaldeal.setExamineState(state);
+ processTotaldeal.setExamineUrl(user.getSignatureUrl());
+ if (state.equals("涓嶉�氳繃")) {
+ processTotaldeal.setSubmitState("寰呮彁浜�");
+ }
+ //灏嗗鏍镐汉鐨勭數瀛愮鍚嶅嵃涓�
+ wordInsertUrl(new HashMap<String, Object>() {{
+ put("examineUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl()));
+ }}, wordUrl+"/"+processTotaldeal.getUrl());
+ return processTotaldealMapper.updateById(processTotaldeal);
+ }
+
+ @Override
+ public int ratifyProcessTotaldeal(Integer id, String state) {
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("鏈壘鍒版壒鍑嗕汉鐨勭數瀛愮鍚�,璇蜂笂浼犺嚜宸辩殑鐢靛瓙绛惧悕!");
+ ProcessTotaldeal processTotaldeal = processTotaldealMapper.selectById(id);
+ processTotaldeal.setRatifyUser(userId);
+ processTotaldeal.setRatifyState(state);
+ processTotaldeal.setRatifyUrl(user.getSignatureUrl());
+ if (state.equals("涓嶉�氳繃")) {
+ processTotaldeal.setSubmitState("寰呮彁浜�");
+ }
+ //灏嗘壒鍑嗕汉鐨勭鍚嶅嵃涓�
+ wordInsertUrl(new HashMap<String, Object>() {{
+ put("ratifyUrl", new FilePictureRenderData(100,50,imgUrl + "/" + user.getSignatureUrl()));
+ }}, wordUrl+"/"+processTotaldeal.getUrl());
+ return processTotaldealMapper.updateById(processTotaldeal);
+ }
+
+ //鐢熸垚鏍峰搧澶勭悊琛╳ord
+ private String processTotaldeal(Integer id,String signatureUrl){
+ List<ProcessDeal> processDeals = processDealMapper.selectList(Wrappers.<ProcessDeal>lambdaQuery().eq(ProcessDeal::getTotaldealId,id));
+ String url;
+ try {
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/sample-deal.docx");
+ File file = File.createTempFile("temp", ".tmp");
+ OutputStream outputStream = new FileOutputStream(file);
+ IOUtils.copy(inputStream, outputStream);
+ url = file.getAbsolutePath();
+ } catch (FileNotFoundException e) {
+ throw new ErrorException("鎵句笉鍒版ā鏉挎枃浠�");
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+
+ List<Map<String, Object>> sampleList = new ArrayList<>();
+ Integer index = 1;
+ Integer index1 = 1;
+ for (int c = 0; c < processDeals.size(); c++) {
+ //瓒呰繃20琛屾崲椤�
+ if (c % 20 == 0) {
+ List<RowRenderData> rows = new ArrayList<>();
+ //琛ㄦ牸鐨勮鏁�
+ for (int i = 0; i < 21; i++) {
+ RowRenderData rowRenderData = new RowRenderData();
+ RowStyle rowStyle = new RowStyle();
+ rowStyle.setHeight(40);
+ rowRenderData.setRowStyle(rowStyle);
+ List<CellRenderData> cells = new ArrayList<>();
+ //琛ㄦ牸鐨勫垪鏁�
+ for (int j = 0; j < 7; j++) {
+ CellRenderData cellRenderData = new CellRenderData();
+ CellStyle cellStyle = new CellStyle();
+ cellStyle.setVertAlign(XWPFTableCell.XWPFVertAlign.CENTER);
+ cellRenderData.setCellStyle(cellStyle);
+ List<ParagraphRenderData> paragraphRenderDataList = new ArrayList<>();
+ ParagraphRenderData paragraphRenderData = new ParagraphRenderData();
+ ParagraphStyle paragraphStyle = new ParagraphStyle();
+ paragraphStyle.setAlign(ParagraphAlignment.CENTER);
+ paragraphRenderData.setParagraphStyle(paragraphStyle);
+ List<RenderData> renderData = new ArrayList<>();
+ TextRenderData textRenderData = new TextRenderData();
+ Style style = new Style();
+ style.setFontFamily("瀹嬩綋");
+ style.setColor("000000");
+ textRenderData.setStyle(style);
+ if (i == 0) {
+ //绗竴琛�
+ if (j == 0) {
+ //绗竴鍒楀簭鍙�
+ textRenderData.setText("搴忓彿@No.");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ //绗簩鍒楁牱鍝佸悕绉�
+ textRenderData.setText("鏍峰搧鍚嶇О@Sample name");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 2) {
+ //绗笁鍒楁牱鍝佺紪鍙�
+ textRenderData.setText("鏍峰搧缂栧彿@Sample number");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 3) {
+ //绗洓鍒椾緵鏍峰崟浣�
+ textRenderData.setText("渚涙牱鍗曚綅@Sample unit");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 4) {
+ //绗簲鍒楁暟閲�
+ textRenderData.setText("鏁伴噺@Quantity");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 5) {
+ //绗叚鍒楀鐞嗘柟寮�
+ textRenderData.setText("澶勭悊鏂瑰紡@Processing");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else {
+ //绗竷鍒楁椂闂�
+ textRenderData.setText("鏃堕棿@Date");
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ else {
+ //鍏朵粬琛�
+ if (j == 0) {
+ //绗竴鍒�
+ try{
+ String sampleName = processDeals.get((i-1) + (index1 - 1) * 20).getSampleName();
+ textRenderData.setText(index + "");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ index++;
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ } else if (j == 1) {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getSampleName());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 2) {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getSampleCode());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 3) {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getSampleSupplier());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 4) {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getNum()+"");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else if (j == 5) {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getDealMethod());
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ else {
+ try{
+ textRenderData.setText(processDeals.get((i-1) + (index1 - 1) * 20).getDealTime()+"");
+ } catch (Exception e) {
+ textRenderData.setText("");
+ }
+ renderData.add(textRenderData);
+ paragraphRenderData.setContents(renderData);
+ paragraphRenderDataList.add(paragraphRenderData);
+ cellRenderData.setParagraphs(paragraphRenderDataList);
+ cells.add(cellRenderData);
+ }
+ }
+ }
+ rowRenderData.setCells(cells);
+ if (rowRenderData.getCells().size() != 0) {
+ rows.add(rowRenderData);
+ }
+ }
+ TableRenderData tableRenderData = new TableRenderData();
+ tableRenderData.setRows(rows);
+ int countSize = tableRenderData.getRows().get(0).getCells().size();
+ for (RowRenderData row : tableRenderData.getRows()) {
+ if (row.getCells().size() != countSize) {
+ throw new ErrorException("姣忚鍗曞厓鏍间笉鐩哥瓑");
+ }
+ }
+ TableStyle tableStyle = new TableStyle();
+ tableStyle.setWidth(XWPFTable.DEFAULT_PERCENTAGE_WIDTH);
+ tableStyle.setAlign(TableRowAlign.CENTER);
+ BorderStyle borderStyle = new BorderStyle();
+ borderStyle.setColor("000000");
+ borderStyle.setType(XWPFTable.XWPFBorderType.THICK);
+ borderStyle.setSize(14);
+ tableStyle.setLeftBorder(borderStyle);
+ tableStyle.setTopBorder(borderStyle);
+ tableStyle.setRightBorder(borderStyle);
+ tableStyle.setBottomBorder(borderStyle);
+ tableRenderData.setTableStyle(tableStyle);
+ Map<String, Object> table = new HashMap<>();
+ table.put("sample", tableRenderData);
+ table.put("index1", index1);
+ sampleList.add(table);
+ index1++;
+ }
+ }
+ Integer finalIndex = index1;
+ XWPFTemplate template = XWPFTemplate.compile(url, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("sampleList", sampleList);
+ put("size", finalIndex);
+ put("examineUrl", null);
+ put("ratifyUrl", null);
+ put("writeUrl", new FilePictureRenderData(100,50,imgUrl + "/" + signatureUrl));
+ }});
+ String name = UUID.randomUUID() + "_鏍峰搧澶勭悊鐢宠琛�" + ".docx";
+ try {
+ template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ //澶勭悊涓嫳鏂囨崲琛岀殑闂
+ String path = wordUrl + "/" + name;
+ try {
+ FileInputStream stream1 = new FileInputStream(path);
+ XWPFDocument document1 = new XWPFDocument(stream1);
+ List<XWPFTable> xwpfTables1 = document1.getTables();
+ for (int i = 0; i < xwpfTables1.size(); i++) {
+ for (int j = 0; j < xwpfTables1.get(i).getRows().size(); j++) {
+ for (int k = 0; k < xwpfTables1.get(i).getRows().get(j).getTableCells().size(); k++) {
+ if (xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText().contains("@")) {
+ String text = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).getText();
+ String[] split = text.split("@");
+ xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).removeParagraph(0);
+ XWPFParagraph xwpfParagraph = xwpfTables1.get(i).getRows().get(j).getTableCells().get(k).addParagraph();
+ XWPFRun run = xwpfParagraph.createRun();
+ run.setText(split[0]);
+ if (ObjectUtils.isNotNull(split[1])) {
+ run.addBreak();
+ run.setText(split[1]);
+ }
+ xwpfParagraph.setAlignment(ParagraphAlignment.CENTER);
+ }
+ }
+ }
+ }
+ FileOutputStream fileOutputStream1 = new FileOutputStream(path);
+ document1.write(fileOutputStream1);
+ fileOutputStream1.close();
+ } catch (FileNotFoundException e) {
+ throw new RuntimeException(e);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return name;
+ }
+
+ public int wordInsertUrl(Map<String, Object> map, String url) {
+ XWPFTemplate template = XWPFTemplate.compile(url).render(map);
+ try {
+ template.writeAndClose(Files.newOutputStream(Paths.get(url)));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return 1;
+ }
+}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java
new file mode 100644
index 0000000..e71a39a
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsEvaluateServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.QualityMonitorDetailsEvaluateMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate;
+import com.ruoyi.process.service.QualityMonitorDetailsEvaluateService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏璇勪环琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Service
+public class QualityMonitorDetailsEvaluateServiceImpl extends ServiceImpl<QualityMonitorDetailsEvaluateMapper, QualityMonitorDetailsEvaluate> implements QualityMonitorDetailsEvaluateService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java
new file mode 100644
index 0000000..22785fe
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsRatifyServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.QualityMonitorDetailsRatifyMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetailsRatify;
+import com.ruoyi.process.service.QualityMonitorDetailsRatifyService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏鎵瑰噯琛�
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Service
+public class QualityMonitorDetailsRatifyServiceImpl extends ServiceImpl<QualityMonitorDetailsRatifyMapper, QualityMonitorDetailsRatify> implements QualityMonitorDetailsRatifyService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java
new file mode 100644
index 0000000..97b1377
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorDetailsServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.QualityMonitorDetailsMapper;
+import com.ruoyi.process.pojo.QualityMonitorDetails;
+import com.ruoyi.process.service.QualityMonitorDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝璇︽儏琛�
+ *
+ * @author makejava
+ * @since 2024-11-06
+ */
+@Service
+public class QualityMonitorDetailsServiceImpl extends ServiceImpl<QualityMonitorDetailsMapper, QualityMonitorDetails> implements QualityMonitorDetailsService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
new file mode 100644
index 0000000..bfd56ed
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualityMonitorServiceImpl.java
@@ -0,0 +1,647 @@
+package com.ruoyi.process.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.data.Pictures;
+import com.ruoyi.common.utils.DateImageUtil;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.XWPFDocumentUtils;
+import com.ruoyi.process.dto.QualityMonitorDetailsEvaluateDto;
+import com.ruoyi.process.dto.QualityMonitorDto;
+import com.ruoyi.process.excel.QualityMonitorDetailsUpload;
+import com.ruoyi.process.mapper.*;
+import com.ruoyi.process.pojo.*;
+import com.ruoyi.process.service.QualityMonitorDetailsEvaluateService;
+import com.ruoyi.process.service.QualityMonitorDetailsRatifyService;
+import com.ruoyi.process.service.QualityMonitorDetailsService;
+import com.ruoyi.process.service.QualityMonitorService;
+import com.ruoyi.process.utils.UserUtils;
+import com.ruoyi.system.mapper.UserMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hwpf.HWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+import org.apache.poi.xwpf.usermodel.XWPFTableCell;
+import org.apache.poi.xwpf.usermodel.XWPFTableRow;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+import org.apache.poi.hwpf.usermodel.*;
+/**
+ * 璐ㄩ噺鐩戞帶璁″垝涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-06
+ */
+@Service
+@Slf4j
+@Transactional(rollbackFor = Exception.class)
+public class QualityMonitorServiceImpl extends ServiceImpl<QualityMonitorMapper, QualityMonitor> implements QualityMonitorService {
+
+ @Resource
+ private QualityMonitorDetailsService qualityMonitorDetailsService;
+ @Resource
+ private QualityMonitorDetailsMapper qualityMonitorDetailsMapper;
+ @Resource
+ private UserMapper userMapper;
+ @Resource
+ private QualityMonitorDetailsRatifyMapper qualityMonitorDetailsRatifyMapper;
+ @Resource
+ private QualityMonitorDetailsRatifyService qualityMonitorDetailsRatifyService;
+ @Resource
+ private QualityMonitorDetailsEvaluateMapper qualityMonitorDetailsEvaluateMapper;
+ @Resource
+ private QualityMonitorDetailsEvaluateService qualityMonitorDetailsEvaluateService;
+ @Resource
+ private QualityMonitorDetailsEvaluateFileMapper qualityMonitorDetailsEvaluateFileMapper;
+
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+
+ /**
+ * 瀵煎叆鐩戞帶璁″垝
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean importQualityMonitor(MultipartFile file,String suffix) {
+ // 褰撳墠鐧诲綍鐢ㄦ埛
+ Integer userId = SecurityUtils.getUserId().intValue();
+ // 鏂囦欢鍚嶇О
+ String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
+ QualityMonitor qualityMonitor = new QualityMonitor();
+ qualityMonitor.setMonitorName(fileName);
+ qualityMonitor.setWriteUserId(userId);
+ qualityMonitor.setWriteTime(LocalDateTime.now());
+ baseMapper.insert(qualityMonitor);
+
+ List<QualityMonitorDetails> detailsUploadList = new ArrayList<>();
+ List<List<String>> lists = new ArrayList<>();
+ // 鏍规嵁鏂囦欢鍚庣紑鏉ユ墽琛�
+ if(suffix.toLowerCase().contains("xls")) {
+ // 瀵煎叆闄勪欢鍐呭
+ try {
+ // excel瑙f瀽
+ EasyExcel.read(file.getInputStream(), QualityMonitorDetailsUpload.class, new AnalysisEventListener<QualityMonitorDetailsUpload>() {
+ @Override
+ public void invoke(QualityMonitorDetailsUpload detailsUpload, AnalysisContext analysisContext) {
+ // 鍒ゆ柇鏄惁涓虹┖
+ if (StringUtils.isNotBlank(detailsUpload.getPlannedTime()) &&
+ StringUtils.isNotBlank(detailsUpload.getMonitorProject()) &&
+ StringUtils.isNotBlank(detailsUpload.getParticipant()) &&
+ StringUtils.isNotBlank(detailsUpload.getBudget()) &&
+ StringUtils.isNotBlank(detailsUpload.getOrganization()) &&
+ StringUtils.isNotBlank(detailsUpload.getMonitorWay())) {
+ // 瀵硅薄澶嶅埗
+ QualityMonitorDetails monitorDetails = new QualityMonitorDetails();
+ BeanUtils.copyProperties(detailsUpload, monitorDetails);
+ monitorDetails.setQualityMonitorId(qualityMonitor.getQualityMonitorId());
+
+ detailsUploadList.add(monitorDetails);
+ }
+ }
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+ }
+ }).sheet().doRead();
+ qualityMonitorDetailsService.saveBatch(detailsUploadList);
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }else if(suffix.toLowerCase().equals("doc")) {
+ try(InputStream inputStream = file.getInputStream(); HWPFDocument hwpfDocument = new HWPFDocument(inputStream)) {
+ // 鑾峰彇鏂囨。range
+ Range range = hwpfDocument.getRange();
+
+ TableIterator tableIterator = new TableIterator(range);
+ // 寰幆閬嶅巻琛ㄦ牸
+ while (tableIterator.hasNext()) {
+ Table next = tableIterator.next();
+ // 閬嶅巻姣忎竴琛�
+ for (int i = 0; i < next.numRows(); i++) {
+ ArrayList<String> list = new ArrayList<>();
+ TableRow row = next.getRow(i);
+ // 閬嶅巻姣忎竴涓崟鍏冩牸
+ for (int j = 0; j < row.numCells(); j++) {
+ TableCell cell = row.getCell(j);
+ String text = cell.text();
+ list.add(text);
+ }
+ lists.add(list);
+ }
+ }
+
+ String text = "";
+ // 杩涜娣诲姞
+ for (int i = 0; i < lists.size(); i++) {
+ String monitorPurpose = lists.get(i).get(1); // 鐩戞帶鐩殑
+ if (StringUtils.isNotEmpty(monitorPurpose)) {
+ text = monitorPurpose;
+ } else {
+ lists.get(i).set(1, text);
+ }
+ addQualityMonitorDetails(lists.get(i), qualityMonitor.getQualityMonitorId());
+ }
+ }catch (Exception e) {
+ throw new ErrorException("瀵煎叆澶辫触锛�" + e);
+ }
+ } else if (suffix.toLowerCase().equals("docx")) {
+ try(InputStream inputStream = file.getInputStream();
+ XWPFDocument xwpfDocument = new XWPFDocument(inputStream)) {
+ // 鑾峰彇琛ㄦ牸淇℃伅
+ List<XWPFTable> tables = xwpfDocument.getTables();
+ // 閬嶅巻琛ㄦ牸
+ for(XWPFTable table : tables) {
+ // 閬嶅巻姣忎竴琛�
+ for (XWPFTableRow row : table.getRows()) {
+ // 閬嶅巻姣忎竴鍗曞厓鏍�
+ List<String> list = new ArrayList<>();
+ for (XWPFTableCell cell : row.getTableCells()) {
+ String text = cell.getText();
+ list.add(text);
+ }
+ lists.add(list);
+ }
+ }
+ String text = "";
+ // 杩涜娣诲姞
+ for (int i = 0; i < lists.size(); i++) {
+ String monitorPurpose = lists.get(i).get(1); // 鐩戞帶鐩殑
+ if(StringUtils.isNotEmpty(monitorPurpose)) {
+ text = monitorPurpose;
+ }else {
+ lists.get(i).set(1,text);
+ }
+ addQualityMonitorDetails(lists.get(i),qualityMonitor.getQualityMonitorId());
+ }
+ }catch (Exception e) {
+ throw new ErrorException("瀵煎叆澶辫触锛�" + e);
+ }
+ }
+ return true;
+ }
+
+
+ public void addQualityMonitorDetails(List<String> list,Integer planId) {
+ log.info("浼犲叆鐨勬暟鎹細 {}",list);
+ if(StringUtils.isEmpty(list.get(0)) || NumberUtil.isInteger(list.get(0))) {
+ String monitorPurpose = list.get(1); // 鐩戞帶鐩殑
+ String plannedTime = list.get(2); // 璁″垝寮�灞曟椂闂�
+ String monitorProject = list.get(3); // 鐩戞帶椤圭洰
+ String participant = list.get(4); // 鍙傚姞鍗曚綅锛堜汉鍛橈級
+ String budget = list.get(5); // 棰勭畻
+ String organization = list.get(6); // 缁勭粐浜哄憳
+ String monitorWay = list.get(7); // 鐩戞帶鏂瑰紡
+ QualityMonitorDetails details = new QualityMonitorDetails();
+ details.setMonitorPurpose(monitorPurpose);
+ details.setPlannedTime(plannedTime);
+ details.setMonitorProject(monitorProject);
+ details.setParticipant(participant);
+ details.setBudget(budget);
+ details.setOrganization(organization);
+ details.setMonitorWay(monitorWay);
+ details.setQualityMonitorId(planId);
+ qualityMonitorDetailsMapper.insert(details);
+ }
+ }
+
+ /**
+ * 鐩戞帶璁″垝瀹℃牳
+ * @param qualityMonitor
+ * @return
+ */
+ @Override
+ public boolean examineQualityMonitor(QualityMonitor qualityMonitor) {
+ // 褰撳墠鐧诲綍鐢ㄦ埛
+ Integer userId = SecurityUtils.getUserId().intValue();
+ baseMapper.update(null, Wrappers.<QualityMonitor>lambdaUpdate()
+ .eq(QualityMonitor::getQualityMonitorId, qualityMonitor.getQualityMonitorId())
+ .set(QualityMonitor::getExamineUserId, userId)
+ .set(QualityMonitor::getExamineRemark, qualityMonitor.getExamineRemark())
+ .set(QualityMonitor::getExamineStatus, qualityMonitor.getExamineStatus())
+ .set(QualityMonitor::getExamineTime, LocalDateTime.now())
+ );
+ return true;
+ }
+
+ /**
+ * 鐩戞帶璁″垝鎵瑰噯
+ * @param qualityMonitor
+ * @return
+ */
+ @Override
+ public boolean ratifyQualityMonitor(QualityMonitor qualityMonitor) {
+ // 褰撳墠鐧诲綍鐢ㄦ埛
+ Integer userId = SecurityUtils.getUserId().intValue();
+ baseMapper.update(null, Wrappers.<QualityMonitor>lambdaUpdate()
+ .eq(QualityMonitor::getQualityMonitorId, qualityMonitor.getQualityMonitorId())
+ .set(QualityMonitor::getRatifyUserId, userId)
+ .set(QualityMonitor::getRatifyRemark, qualityMonitor.getRatifyRemark())
+ .set(QualityMonitor::getRatifyStatus, qualityMonitor.getRatifyStatus())
+ .set(QualityMonitor::getRatifyTime, LocalDateTime.now())
+ );
+ return true;
+ }
+
+ /**
+ * 鐩戞帶璁″垝鍒楄〃
+ * @param page
+ * @param qualityMonitor
+ * @return
+ */
+ @Override
+ public IPage<QualityMonitorDto> pageQualityMonitor(Page page, QualityMonitor qualityMonitor) {
+ return baseMapper.pageQualityMonitor(page, QueryWrappers.queryWrappers(qualityMonitor));
+ }
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏鍒楄〃
+ * @param page
+ * @param qualityMonitorDetails
+ * @return
+ */
+ @Override
+ public IPage<QualityMonitorDetails> pageQualityMonitorDetail(Page page, QualityMonitorDetails qualityMonitorDetails) {
+ if (qualityMonitorDetails.getQualityMonitorId() == null) {
+ return new Page();
+ }
+ return qualityMonitorDetailsMapper.pageQualityMonitorDetail(page, QueryWrappers.queryWrappers(qualityMonitorDetails));
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝
+ * @param qualityMonitorId
+ * @param response
+ */
+ @Override
+ public void exportQualityMonitorDetail(Integer qualityMonitorId, HttpServletResponse response) {
+ // 鏌ヨ璇︽儏
+ QualityMonitor qualityMonitor = baseMapper.selectById(qualityMonitorId);
+
+ //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃
+ String writeUrl = userMapper.selectById(qualityMonitor.getWriteUserId()).getSignatureUrl();
+ if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) {
+ throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�");
+ }
+
+ //鑾峰彇澶嶆牳浜虹殑绛惧悕鍦板潃
+ String examineUrl = null;
+ if (qualityMonitor.getExamineUserId() != null) {
+ examineUrl = userMapper.selectById(qualityMonitor.getExamineUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(examineUrl)) {
+ throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�");
+ }
+ }
+
+ //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃
+ String ratifyUrl = null;
+ if (qualityMonitor.getRatifyUserId() != null) {
+ ratifyUrl = userMapper.selectById(qualityMonitor.getRatifyUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(ratifyUrl)) {
+ throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�");
+ }
+ }
+
+ // 鏌ヨ璇︽儏
+ List<QualityMonitorDetails> qualityMonitorDetails = qualityMonitorDetailsMapper.selectList(Wrappers.<QualityMonitorDetails>lambdaQuery()
+ .eq(QualityMonitorDetails::getQualityMonitorId, qualityMonitorId));
+
+ // 鍒ゆ柇鐩戞帶鐩殑涓�鏍风殑鍊�
+ AtomicInteger count = new AtomicInteger(1);
+ Map<String, List<QualityMonitorDetails>> listMap = qualityMonitorDetails.stream().collect(Collectors.groupingBy(QualityMonitorDetails::getMonitorPurpose));
+ listMap.forEach((s, details) -> {
+ // 鏌ヨ鏁伴噺瓒呰繃1鐨�
+ if (details.size() > 1) {
+ for (QualityMonitorDetails detail : details) {
+ detail.setMonitorPurpose(detail.getMonitorPurpose() + "鈭�" + count);
+ }
+ count.getAndIncrement();
+ }
+ });
+
+ int index = 1;
+ for (QualityMonitorDetails qualityMonitorDetail : qualityMonitorDetails) {
+ qualityMonitorDetail.setIndex(index);
+ index++;
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor.docx");
+ String finalExamineUrl = examineUrl;
+ String finalRatifyUrl = ratifyUrl;
+ Configure configure = Configure.builder()
+ .bind("monitorDetailList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("monitorDetailList", qualityMonitorDetails);
+ put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null);
+ put("examineUrl", StringUtils.isNotBlank(finalExamineUrl) ? Pictures.ofLocal(imgUrl + "/" + finalExamineUrl).create() : null);
+ put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null);
+ put("writeDateUrl", qualityMonitor.getWriteTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getWriteTime())).create() : null);
+ put("examineDateUrl", qualityMonitor.getExamineTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getExamineTime())).create() : null);
+ put("ratifyDateUrl", qualityMonitor.getRatifyTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(qualityMonitor.getRatifyTime())).create() : null);
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ qualityMonitor.getMonitorName(), "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+
+
+ /************************************************************ 鎵瑰噯 *******************************************************************/
+
+ /**
+ * 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ * @param qualityMonitorDetailsId
+ * @return
+ */
+ @Override
+ public QualityMonitorDetailsRatify getQualityMonitorRatify(Integer qualityMonitorDetailsId) {
+ QualityMonitorDetailsRatify qualityMonitorDetailsRatify;
+ // 鏌ヨ鐩戞帶閮ㄩ棬id
+ qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectOne(Wrappers.<QualityMonitorDetailsRatify>lambdaQuery()
+ .eq(QualityMonitorDetailsRatify::getQualityMonitorDetailsId, qualityMonitorDetailsId));
+
+ if (qualityMonitorDetailsRatify == null) {
+ // 鏌ヨ璇︽儏璁″垝
+ QualityMonitorDetails qualityMonitorDetails = qualityMonitorDetailsMapper.selectById(qualityMonitorDetailsId);
+ qualityMonitorDetailsRatify = new QualityMonitorDetailsRatify();
+ qualityMonitorDetailsRatify.setQualityMonitorDetailsId(qualityMonitorDetailsId); // 璇︽儏id
+ qualityMonitorDetailsRatify.setMonitorProject(qualityMonitorDetails.getMonitorProject()); // 鐩戞帶椤圭洰
+ qualityMonitorDetailsRatify.setMonitorData(DateUtil.format(new Date(), "yyyy-MM")); // 鐩戞帶鏃堕棿
+ qualityMonitorDetailsRatify.setMonitorPurpose(qualityMonitorDetails.getMonitorPurpose()); // 鐩戞帶鐩殑
+ qualityMonitorDetailsRatify.setParticipant(qualityMonitorDetails.getParticipant()); // 鍙傚姞浜哄憳
+ qualityMonitorDetailsRatify.setBudget(qualityMonitorDetails.getBudget()); // 棰勭畻
+ qualityMonitorDetailsRatify.setInspectionDepartment(userMapper.selectUserDepartmentLimsName(SecurityUtils.getUserId().intValue()));
+ }
+
+ if (qualityMonitorDetailsRatify.getRatifyUserId() != null) {
+ qualityMonitorDetailsRatify.setRatifyName(userMapper.selectById(qualityMonitorDetailsRatify.getRatifyUserId()).getName());
+ }
+
+ return qualityMonitorDetailsRatify;
+ }
+
+ /**
+ * 鏂板鐩戞帶鎵瑰噯瀹炴柦
+ * @param qualityMonitorDetailsRatify
+ * @return
+ */
+ @Override
+ public boolean addQualityMonitorRatify(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) {
+ if (qualityMonitorDetailsRatify.getQualityMonitorDetailsId() == null) {
+ throw new ErrorException("缂哄皯鐩戞帶璇︾粏淇℃伅id");
+ }
+ qualityMonitorDetailsRatifyService.saveOrUpdate(qualityMonitorDetailsRatify);
+ return true;
+ }
+
+ /**
+ * 鐩戞帶璁″垝璇︽儏鎵瑰噯鎰忚
+ * @param qualityMonitorDetailsRatify
+ * @return
+ */
+ @Override
+ public boolean addQualityMonitorRatifyOpinion(QualityMonitorDetailsRatify qualityMonitorDetailsRatify) {
+ qualityMonitorDetailsRatifyService.update(Wrappers.<QualityMonitorDetailsRatify>lambdaUpdate()
+ .eq(QualityMonitorDetailsRatify::getDetailsRatifyId, qualityMonitorDetailsRatify.getDetailsRatifyId())
+ .set(QualityMonitorDetailsRatify::getRatifyOpinion, qualityMonitorDetailsRatify.getRatifyOpinion())
+ .set(QualityMonitorDetailsRatify::getIsFinish, 1));
+ return true;
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ *
+ * @param detailsRatifyId 鐩戞帶璁″垝璇︽儏瀹炴柦id
+ * @param response 鍝嶅簲
+ */
+ @Override
+ public void exportQualityMonitorRatify(Integer detailsRatifyId, HttpServletResponse response) {
+ QualityMonitorDetailsRatify qualityMonitorDetailsRatify = qualityMonitorDetailsRatifyMapper.selectOne(Wrappers.<QualityMonitorDetailsRatify>lambdaQuery().eq(QualityMonitorDetailsRatify::getQualityMonitorDetailsId, detailsRatifyId));
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-details-ratify.docx");
+ Configure configure = Configure.builder()
+ .bind("processMethodVerifyMachineAttachmentList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("qualityMonitorDetailsRatify", qualityMonitorDetailsRatify);
+ put("ratifyUserUrl", Objects.isNull(qualityMonitorDetailsRatify.getRatifyUserId())?null: UserUtils.getFinalUserSignatureUrl(qualityMonitorDetailsRatify.getRatifyUserId(),100,50));
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "璐ㄩ噺鐩戞帶瀹炴柦璁″垝", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ /************************************************************ 璇勪环 *******************************************************************/
+
+ /**
+ * 鏌ヨ璐ㄩ噺鐩戞帶璇勪环
+ * @param qualityMonitorDetailsId
+ * @return
+ */
+ @Override
+ public QualityMonitorDetailsEvaluate getQualityMonitorEvaluate(Integer qualityMonitorDetailsId) {
+ return qualityMonitorDetailsEvaluateMapper.getQualityMonitorEvaluate(qualityMonitorDetailsId);
+ }
+
+ /**
+ * 鏂板鐩戞帶璇勪环
+ * @param qualityMonitorDetailsEvaluate
+ * @return
+ */
+ @Override
+ public boolean addQualityMonitorEvaluate(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) {
+ if (qualityMonitorDetailsEvaluate.getQualityMonitorDetailsId() == null) {
+ throw new ErrorException("缂哄皯鐩戞帶璇︾粏淇℃伅id");
+ }
+ return qualityMonitorDetailsEvaluateService.saveOrUpdate(qualityMonitorDetailsEvaluate);
+ }
+
+ /**
+ * 鐩戞帶璇勪环瀹℃壒鎰忚
+ * @param qualityMonitorDetailsEvaluate
+ * @return
+ */
+ @Override
+ public boolean addMonitorEvaluateOpinion(QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate) {
+ qualityMonitorDetailsEvaluateService.update(Wrappers.<QualityMonitorDetailsEvaluate>lambdaUpdate()
+ .eq(QualityMonitorDetailsEvaluate::getDetailsEvaluateId, qualityMonitorDetailsEvaluate.getDetailsEvaluateId())
+ .set(QualityMonitorDetailsEvaluate::getRatifyOpinion, qualityMonitorDetailsEvaluate.getRatifyOpinion())
+ .set(QualityMonitorDetailsEvaluate::getRatifyTime, LocalDateTime.now())
+ .set(QualityMonitorDetailsEvaluate::getIsFinish, 1));
+ return true;
+ }
+
+ /**
+ * 鏂板鐩戞帶璇勪环闄勪欢琛�
+ * @param detailsEvaluateId
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean uploadEvaluateFile(Integer detailsEvaluateId, MultipartFile file) {
+ if (detailsEvaluateId == null) {
+ throw new ErrorException("缂哄皯鐩戞帶璇︽儏id");
+ }
+
+ String urlString;
+ String pathName;
+ String path;
+ String filename = file.getOriginalFilename();
+ String contentType = file.getContentType();
+ QualityMonitorDetailsEvaluateFile evaluateFile = new QualityMonitorDetailsEvaluateFile();
+ evaluateFile.setDetailsEvaluateId(detailsEvaluateId);
+ evaluateFile.setFileName(filename);
+ if (contentType != null && contentType.startsWith("image/")) {
+ // 鏄浘鐗�
+ path = imgUrl;
+ evaluateFile.setType(1);
+ } else {
+ // 鏄枃浠�
+ path = wordUrl;
+ evaluateFile.setType(2);
+ }
+ try {
+ File realpath = new File(path);
+ if (!realpath.exists()) {
+ realpath.mkdirs();
+ }
+ pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename();
+ urlString = realpath + "/" + pathName;
+ file.transferTo(new File(urlString));
+ evaluateFile.setFileUrl(pathName);
+ qualityMonitorDetailsEvaluateFileMapper.insert(evaluateFile);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.err.println("闄勪欢涓婁紶閿欒");
+ return false;
+ }
+ }
+
+ /**
+ * 鏌ヨ鐩戞帶璇勪环闄勪欢鍒楄〃
+ * @return
+ */
+ @Override
+ public List<QualityMonitorDetailsEvaluateFile> getEvaluateFileList(Integer detailsEvaluateId) {
+ return qualityMonitorDetailsEvaluateFileMapper.selectList(Wrappers.<QualityMonitorDetailsEvaluateFile>lambdaQuery()
+ .eq(QualityMonitorDetailsEvaluateFile::getDetailsEvaluateId, detailsEvaluateId));
+ }
+
+ /**
+ * 瀵煎嚭鐩戞帶璇勪环
+ * @param detailsEvaluateId 鐩戞帶璇勪环id
+ */
+ @Override
+ public void exportQualityMonitorEvaluate(Integer detailsEvaluateId, HttpServletResponse response) {
+ // 鏌ヨ鐩戞帶璇勪环淇℃伅
+ QualityMonitorDetailsEvaluate qualityMonitorDetailsEvaluate = qualityMonitorDetailsEvaluateMapper.selectOne(Wrappers.<QualityMonitorDetailsEvaluate>lambdaQuery().eq(QualityMonitorDetailsEvaluate::getQualityMonitorDetailsId,detailsEvaluateId));
+ // 娓叉煋word妯℃澘瀵硅薄
+ QualityMonitorDetailsEvaluateDto qualityMonitorDetailsEvaluateDto = new QualityMonitorDetailsEvaluateDto();
+ if(Objects.isNull(qualityMonitorDetailsEvaluate)) {
+ throw new ErrorException("璇ユ暟鎹湭杩涜璇勪环");
+ }
+ BeanUtils.copyProperties(qualityMonitorDetailsEvaluate, qualityMonitorDetailsEvaluateDto);
+ // 鏍煎紡鍖栨椂闂�
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ qualityMonitorDetailsEvaluateDto.setRatifyTimeStr(qualityMonitorDetailsEvaluate.getRatifyTime().format(dateTimeFormatter));
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-monitor-evaluate.docx");
+ Configure configure = Configure.builder()
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("qualityMonitorDetailsEvaluate", qualityMonitorDetailsEvaluateDto);
+ put("implementUserUrl", UserUtils.getFinalUserSignatureUrl(Integer.valueOf(qualityMonitorDetailsEvaluate.getImplementUserId()),100,50));
+ put("ratifyUserUrl", UserUtils.getFinalUserSignatureUrl(qualityMonitorDetailsEvaluate.getRatifyUserId(),100,50));
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "鐩戞帶璇勪环", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java
new file mode 100644
index 0000000..79be6f9
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseDetailsServiceImpl.java
@@ -0,0 +1,19 @@
+package com.ruoyi.process.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.process.mapper.QualitySuperviseDetailsMapper;
+import com.ruoyi.process.pojo.QualitySuperviseDetails;
+import com.ruoyi.process.service.QualitySuperviseDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 璐ㄩ噺鐩戠潱璇︽儏琛�
+ *
+ * @author makejava
+ * @since 2024-11-07
+ */
+@Service
+public class QualitySuperviseDetailsServiceImpl extends ServiceImpl<QualitySuperviseDetailsMapper, QualitySuperviseDetails> implements QualitySuperviseDetailsService {
+
+}
+
diff --git a/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
new file mode 100644
index 0000000..1e5091a
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
@@ -0,0 +1,829 @@
+package com.ruoyi.process.service.impl;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.deepoove.poi.config.ConfigureBuilder;
+import com.deepoove.poi.data.Pictures;
+import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.utils.DateImageUtil;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.inspect.util.XWPFDocumentUtils;
+import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto;
+import com.ruoyi.process.dto.QualitySuperviseDetailsCorrectDto;
+import com.ruoyi.process.dto.QualitySuperviseDetailsDto;
+import com.ruoyi.process.excel.QualitySuperviseDetailsUpload;
+import com.ruoyi.process.mapper.*;
+import com.ruoyi.process.pojo.*;
+import com.ruoyi.process.service.QualitySuperviseDetailsService;
+import com.ruoyi.process.service.QualitySuperviseService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+/**
+ * 璐ㄩ噺鐩戠潱涓昏〃
+ *
+ * @author zhuo
+ * @since 2024-11-07
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class QualitySuperviseServiceImpl extends ServiceImpl<QualitySuperviseMapper, QualitySupervise> implements QualitySuperviseService {
+
+ @Resource
+ private QualitySuperviseDetailsService qualitySuperviseDetailsService;
+ @Resource
+ private QualitySuperviseDetailsMapper qualitySuperviseDetailsMapper;
+ @Resource
+ private QualitySuperviseDetailsRecordMapper qualitySuperviseDetailsRecordMapper;
+ @Resource
+ private QualitySuperviseDetailsAccordingMapper qualitySuperviseDetailsAccordingMapper;
+ @Resource
+ private QualitySuperviseDetailsCorrectMapper qualitySuperviseDetailsCorrectMapper;
+ @Resource
+ private QualitySuperviseDetailsCorrectFileMapper qualitySuperviseDetailsCorrectFileMapper;
+ @Resource
+ private UserMapper userMapper;
+ @Value("${file.path}")
+ private String imgUrl;
+
+ @Value("${wordUrl}")
+ private String wordUrl;
+
+ /**
+ * 瀵煎叆鐩戠潱璁″垝
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean importQualitySupervise(MultipartFile file) {
+ // 褰撳墠鐧诲綍鐢ㄦ埛
+ Integer userId = SecurityUtils.getUserId().intValue();
+ User user = userMapper.selectById(userId);
+ // 鏂囦欢鍚嶇О
+ String fileName = file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf("."));
+ QualitySupervise qualitySupervise = new QualitySupervise();
+ qualitySupervise.setSuperviseName(fileName);
+ qualitySupervise.setWriteUserId(userId);
+ qualitySupervise.setWriteUserName(user.getName());
+ qualitySupervise.setWriteTime(LocalDateTime.now());
+ baseMapper.insert(qualitySupervise);
+
+ List<QualitySuperviseDetails> detailsUploadList = new ArrayList<>();
+
+ // 瀵煎叆闄勪欢鍐呭
+ try {
+ // excel瑙f瀽
+ EasyExcel.read(file.getInputStream(), QualitySuperviseDetailsUpload.class, new AnalysisEventListener<QualitySuperviseDetailsUpload>() {
+ @Override
+ public void invoke(QualitySuperviseDetailsUpload detailsUpload, AnalysisContext analysisContext) {
+ // 鍒ゆ柇鏄惁涓虹┖
+ if (StringUtils.isNotBlank(detailsUpload.getSuperviseTime()) &&
+ StringUtils.isNotBlank(detailsUpload.getSupervisePurpose()) &&
+ StringUtils.isNotBlank(detailsUpload.getSuperviseProject()) &&
+ StringUtils.isNotBlank(detailsUpload.getSupervisee()) &&
+ StringUtils.isNotBlank(detailsUpload.getSuperviseReason()) &&
+ StringUtils.isNotBlank(detailsUpload.getRemark())) {
+ // 瀵硅薄澶嶅埗
+ QualitySuperviseDetails superviseDetails = new QualitySuperviseDetails();
+ BeanUtils.copyProperties(detailsUpload, superviseDetails);
+ superviseDetails.setSuperviseId(qualitySupervise.getSuperviseId());
+
+ detailsUploadList.add(superviseDetails);
+ }
+ }
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+ }
+ }).sheet().doRead();
+ qualitySuperviseDetailsService.saveBatch(detailsUploadList);
+
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return true;
+ }
+
+ /**
+ * 鐩戠潱璁″垝鎵瑰噯
+ * @param qualitySupervise
+ * @return
+ */
+ @Override
+ public boolean ratifyQualitySupervise(QualitySupervise qualitySupervise) {
+ // 褰撳墠鐧诲綍鐢ㄦ埛
+ Integer userId = SecurityUtils.getUserId().intValue();
+ baseMapper.update(null, Wrappers.<QualitySupervise>lambdaUpdate()
+ .eq(QualitySupervise::getSuperviseId, qualitySupervise.getSuperviseId())
+ .set(QualitySupervise::getRatifyUserId, userId)
+ .set(QualitySupervise::getRatifyRemark, qualitySupervise.getRatifyRemark())
+ .set(QualitySupervise::getRatifyStatus, qualitySupervise.getRatifyStatus())
+ .set(QualitySupervise::getRatifyTime, LocalDateTime.now())
+ );
+ return true;
+ }
+
+ /**
+ * 鐩戠潱璁″垝鍒楄〃
+ * @param page
+ * @param qualitySupervise
+ * @return
+ */
+ @Override
+ public IPage<QualitySupervise> pageQualitySupervise(Page page, QualitySupervise qualitySupervise) {
+ return baseMapper.pageQualitySupervise(page, QueryWrappers.queryWrappers(qualitySupervise));
+ }
+
+ /**
+ * 鐩戠潱璁″垝璇︽儏鍒楄〃
+ * @return
+ */
+ @Override
+ public IPage<QualitySuperviseDetailsDto> pageQualitySuperviseDetail(Page page, QualitySuperviseDetails qualitySuperviseDetails) {
+ if (qualitySuperviseDetails.getSuperviseId() == null) {
+ return new Page();
+ }
+ return qualitySuperviseDetailsMapper.pageQualitySuperviseDetail(page, QueryWrappers.queryWrappers(qualitySuperviseDetails));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱璁″垝
+ * @param superviseId
+ * @param response
+ */
+ @Override
+ public void exportQualitySupervise(Integer superviseId, HttpServletResponse response) {
+ QualitySupervise qualitySupervise = baseMapper.selectById(superviseId);
+ //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃
+ String writeUrl = userMapper.selectById(qualitySupervise.getWriteUserId()).getSignatureUrl();
+ if (ObjectUtils.isEmpty(writeUrl) || writeUrl.equals("")) {
+ throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�");
+ }
+
+ //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃
+ String ratifyUrl = null;
+ if (qualitySupervise.getRatifyUserId() != null) {
+ ratifyUrl = userMapper.selectById(qualitySupervise.getRatifyUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(ratifyUrl)) {
+ throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�");
+ }
+ }
+
+ // 鏌ヨ璇︽儏
+ List<QualitySuperviseDetails> qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectList(Wrappers.<QualitySuperviseDetails>lambdaQuery()
+ .eq(QualitySuperviseDetails::getSuperviseId, superviseId));
+
+ // 鍒ゆ柇鐩戠潱鐩殑涓�鏍风殑鍊�
+ AtomicInteger count = new AtomicInteger(1);
+ Map<String, List<QualitySuperviseDetails>> listMap = qualitySuperviseDetails.stream().collect(Collectors.groupingBy(QualitySuperviseDetails::getSupervisePurpose));
+ listMap.forEach((s, details) -> {
+ // 鏌ヨ鏁伴噺瓒呰繃1鐨�
+ if (details.size() > 1) {
+ for (QualitySuperviseDetails detail : details) {
+ detail.setSupervisePurpose(detail.getSupervisePurpose() + "鈭�" + count);
+ }
+ count.getAndIncrement();
+ }
+ });
+
+ int index = 1;
+ for (QualitySuperviseDetails qualitySuperviseDetail : qualitySuperviseDetails) {
+ qualitySuperviseDetail.setIndex(index);
+ index++;
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/quality-supervise.docx");
+ String finalRatifyUrl = ratifyUrl;
+ Configure configure = Configure.builder()
+ .bind("superviseDetailList", new HackLoopTableRenderPolicy())
+ .build();
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
+ new HashMap<String, Object>() {{
+ put("superviseDetailList", qualitySuperviseDetails);
+ put("writeUrl", StringUtils.isNotBlank(writeUrl) ? Pictures.ofLocal(imgUrl + "/" + writeUrl).create() : null);
+ put("ratifyUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null);
+ put("writeDateUrl", qualitySupervise.getWriteTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(qualitySupervise.getWriteTime())).create() : null);
+ put("ratifyDateUrl", qualitySupervise.getRatifyTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(qualitySupervise.getRatifyTime())).create() : null);
+ }});
+
+ // 澶勭悊鎹㈣闂
+ XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ qualitySupervise.getSuperviseName(), "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+
+
+ }
+
+ /************************************************ 璁板綍 ******************************************************/
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍淇℃伅
+ * @param superviseDetailsId
+ * @return
+ */
+ @Override
+ public QualitySuperviseDetailsRecord getSuperviseDetailRecord(Integer superviseDetailsId) {
+ QualitySuperviseDetailsRecord detailsRecord;
+ detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery()
+ .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetailsId));
+ if (detailsRecord == null) {
+ detailsRecord = new QualitySuperviseDetailsRecord();
+ }
+ // 娣诲姞鎵瑰噯浜哄悕绉�
+ if (detailsRecord.getRatifyUserId() != null) {
+ User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
+ detailsRecord.setRatifyUserName(user.getName());
+ }
+ return detailsRecord;
+ }
+
+ /**
+ * 鏂板鐩戠潱璁板綍淇℃伅
+ * @param qualitySuperviseDetailsRecord
+ * @return
+ */
+ @Override
+ public boolean addSuperviseDetailRecord(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) {
+ if (qualitySuperviseDetailsRecord.getSuperviseDetailsId() == null) {
+ throw new ErrorException("缂哄皯鐩戠潱璇︾粏淇℃伅id");
+ }
+ qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord);
+ return true;
+ }
+
+ /**
+ * 鐩戠潱璁板綍鎵瑰噯
+ * @param qualitySuperviseDetailsRecord
+ * @return
+ */
+ @Override
+ public boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) {
+ if (qualitySuperviseDetailsRecord.getIsAccording() == null) {
+ throw new ErrorException("缂哄皯鏈�缁堢粨鏋�");
+ }
+
+ qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate()
+ .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, qualitySuperviseDetailsRecord.getSuperviseDetailsId())
+ .set(QualitySuperviseDetailsRecord::getRatifyOpinion, qualitySuperviseDetailsRecord.getRatifyOpinion())
+ .set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now())
+ .set(QualitySuperviseDetailsRecord::getIsAccording, qualitySuperviseDetailsRecord.getIsAccording())
+ .set(QualitySuperviseDetailsRecord::getIsFinish, 1));
+ return true;
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍琛�
+ * @param superviseDetailsId
+ * @param response
+ */
+ @Override
+ public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) {
+ QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId);
+
+ //鑾峰彇鎶�鏈礋璐d汉鐨勭鍚嶅湴鍧�
+ String ratifyUrl = null;
+ if (recordDto.getRatifyUserId() != null) {
+ ratifyUrl = userMapper.selectById(recordDto.getRatifyUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(ratifyUrl)) {
+ throw new ErrorException("鎵句笉鍒版妧鏈礋璐d汉鐨勭鍚�");
+ }
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-record.docx");
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+ String finalRatifyUrl = ratifyUrl;
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("supervision", recordDto);
+ put("technicalDirectorUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null);
+ put("technicalDirectorDateUrl", recordDto.getRatifyTime() != null ?
+ Pictures.ofStream(DateImageUtil.createDateImage(recordDto.getRatifyTime())).create() : null);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "瀵煎嚭鐩戠潱璁板綍琛�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ /************************************************* 涓嶅悎鏍煎伐浣滄帶鍒跺崟 ********************************************************/
+
+ /**
+ * 鏂板鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param detailsAccording
+ * @return
+ */
+ @Override
+ public boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) {
+ QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording();
+ // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂�
+ User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
+ String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
+ switch (detailsAccording.getFlowType()) {
+ // 涓嶇鍚堝伐浣滄儏鍐佃褰�
+ case 0:
+ if (detailsAccording.getSuperviseDetailsId() == null) {
+ throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id");
+ }
+ according.setSuperviseDetailsId(detailsAccording.getSuperviseDetailsId());
+ according.setOccurrenceDepartment(detailsAccording.getOccurrenceDepartment());//鍙戠敓閮ㄩ棬
+ according.setHeadDepartment(detailsAccording.getHeadDepartment());//閮ㄩ棬璐熻矗浜�
+ according.setFindWay(detailsAccording.getFindWay());//鍙戠幇閫斿緞
+ according.setRecordDetail(detailsAccording.getRecordDetail());//涓嶇鍚堣褰曡缁�
+ according.setRecordAccording(detailsAccording.getRecordAccording());//涓嶅悎鏍艰褰曚緷鎹�
+
+ according.setFoundDepartment(departmentLimsName);//鍙戠幇閮ㄩ棬
+ according.setRecordUserId(user.getId());//璁板綍浜篿d
+ according.setRecordUserName(user.getName());//璁板綍浜�
+ according.setRecordTime(LocalDate.now());//璁板綍鏃堕棿
+
+ // 澶勭悊浜轰俊鎭�
+ User actionsUser = userMapper.selectById(detailsAccording.getActionsUserId());
+ String actionsDepartmentLims = userMapper.selectUserDepartmentLimsName(actionsUser.getId());
+
+ according.setResponsibleDepartment(actionsDepartmentLims);//璐d换閮ㄩ棬
+ according.setActionsUserId(actionsUser.getId());//澶勭悊浜篿d
+ according.setActionsUserName(actionsUser.getName());//澶勭悊浜�
+
+ according.setSupervisedUserId(detailsAccording.getSupervisedUserId());//琚洃鐫d汉id
+ // 琚洃鐫d汉
+ User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId());
+ according.setSupervisedUserName(supervisedUser.getName());//琚洃鐫d汉
+ according.setActionsTime(detailsAccording.getSupervisedTime());//琚洃鐫f椂闂�
+ qualitySuperviseDetailsAccordingMapper.insert(according);
+ break;
+
+ // 1澶勭悊鎺柦
+ case 1:
+ according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
+ according.setEliminateMeasure(detailsAccording.getEliminateMeasure());//娓呴櫎涓嶇鍚堟帾鏂�
+ according.setActionsTime(LocalDate.now());//澶勭悊鏃堕棿
+
+ // 绾犳璐熻矗浜轰俊鎭�
+ User correctsUser = userMapper.selectById(detailsAccording.getCorrectUserId());
+
+ according.setCorrectUserId(correctsUser.getId());//绾犳璐熻矗浜篿d
+ according.setCorrectUserName(correctsUser.getName());//绾犳璐熻矗浜�
+
+ qualitySuperviseDetailsAccordingMapper.updateById(according);
+ break;
+
+ // 绾犳鎺柦
+ case 2:
+ according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
+ according.setCorrectContent(detailsAccording.getCorrectContent());//绾犳鎺柦鍐呭
+ according.setIsCorrect(detailsAccording.getIsCorrect());//鏄惁绾犳澶勭悊
+ according.setCorrectTime(LocalDate.now());//绾犳濉啓鏃堕棿
+
+ // 璐ㄩ噺璐熻矗浜�
+ User qualityUser = userMapper.selectById(detailsAccording.getQualityManagerUserId());
+ according.setQualityManagerUserId(qualityUser.getId());//璐ㄩ噺璐熻矗浜篿d
+ according.setQualityManagerUserName(qualityUser.getName());//璐ㄩ噺璐熻矗浜�
+
+ qualitySuperviseDetailsAccordingMapper.updateById(according);
+ break;
+
+ //鏄惁閫氱煡瀹㈡埛鍙仮澶嶅伐浣�
+ case 3:
+ according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
+ according.setNotifyCustomer(detailsAccording.getNotifyCustomer());//閫氱煡瀹㈡埛
+ according.setBackToWork(detailsAccording.getBackToWork());//鍥炲宸ヤ綔
+
+ according.setQualityManagerTime(LocalDate.now());//鏃ユ湡
+ according.setIsFinish(1);
+ qualitySuperviseDetailsAccordingMapper.updateById(according);
+ break;
+ }
+ return true;
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param superviseDetailsId
+ * @return
+ */
+ @Override
+ public QualitySuperviseDetailsAccording getSuperviseDetailAccording(Integer superviseDetailsId) {
+ QualitySuperviseDetailsAccording detailsAccording;
+
+ detailsAccording = qualitySuperviseDetailsAccordingMapper.selectOne(Wrappers.<QualitySuperviseDetailsAccording>lambdaQuery()
+ .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsId, superviseDetailsId));
+
+ if (detailsAccording == null) {
+ detailsAccording = new QualitySuperviseDetailsAccording();
+ }
+ return detailsAccording;
+ }
+
+ /**
+ * 鏌ヨ涓嶇鍚堥」
+ * @param page
+ * @param detailsAccording
+ * @return
+ */
+ @Override
+ public IPage<QualitySuperviseDetailsAccording> pageSuperviseDetailAccording(Page page, QualitySuperviseDetailsAccording detailsAccording) {
+ return qualitySuperviseDetailsAccordingMapper.pageSuperviseDetailAccording(page, QueryWrappers.queryWrappers(detailsAccording));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�
+ * @param superviseDetailAccordingId
+ * @param response
+ */
+ @Override
+ public void superviseDetailAccordingExport(Integer superviseDetailAccordingId, HttpServletResponse response) {
+ QualitySuperviseDetailsAccordingDto exportDto = qualitySuperviseDetailsAccordingMapper.selectSuperviseDetailsAccording(superviseDetailAccordingId);
+ // 鍙戠幇閮ㄩ棬
+ String discovererUrl = null;
+ if (exportDto.getRecordUserId() != null) {
+ discovererUrl = userMapper.selectById(exportDto.getRecordUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(discovererUrl)) {
+ throw new ErrorException("鎵句笉鍒板彂鐜伴儴闂ㄤ汉鐨勭鍚�");
+ }
+ }
+
+ // 澶勭悊鎺柦璐熻矗浜�
+ String responsibleUrl = null;
+ if (exportDto.getCorrectUserId() != null) {
+ responsibleUrl = userMapper.selectById(exportDto.getCorrectUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(responsibleUrl)) {
+ throw new ErrorException("鎵句笉鍒板鐞嗘帾鏂借礋璐d汉鐨勭鍚�");
+ }
+ }
+
+ // 鎶�鏈礋璐d汉
+ String correctiveUrl = null;
+ if (exportDto.getQualityManagerUserId() != null) {
+ correctiveUrl = userMapper.selectById(exportDto.getQualityManagerUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(correctiveUrl)) {
+ throw new ErrorException("鎵句笉鍒版妧鏈礋璐d汉鐨勭鍚�");
+ }
+ }
+
+ // 璐ㄩ噺璐熻矗浜�
+ String qualityUrl = null;
+ if (exportDto.getQualityManagerUserId() != null) {
+ qualityUrl = userMapper.selectById(exportDto.getQualityManagerUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(qualityUrl)) {
+ throw new ErrorException("鎵句笉鍒拌川閲忚礋璐d汉鐨勭鍚�");
+ }
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-according.docx");
+ ConfigureBuilder builder = Configure.builder();
+ String finalDiscovererUrl = discovererUrl;
+ String finalResponsibleUrl = responsibleUrl;
+ String finalCorrectiveUrl = correctiveUrl;
+ String finalQualityUrl = qualityUrl;
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("control", exportDto);
+ put("discovererUrl", StringUtils.isNotBlank(finalDiscovererUrl) ? Pictures.ofLocal(imgUrl + "/" + finalDiscovererUrl).create() : null);
+ put("responsibleUrl", StringUtils.isNotBlank(finalResponsibleUrl) ? Pictures.ofLocal(imgUrl + "/" + finalResponsibleUrl).create() : null);
+ put("correctiveUrl", StringUtils.isNotBlank(finalCorrectiveUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCorrectiveUrl).create() : null);
+ put("qualityUrl", StringUtils.isNotBlank(finalQualityUrl) ? Pictures.ofLocal(imgUrl + "/" + finalQualityUrl).create() : null);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "鐩戠潱璁板綍涓嶇鍚堟帶鍒朵俊鎭�", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ /************************************************* 绾犳鎺柦澶勭悊鍗� ********************************************************/
+
+
+ @Override
+ public boolean addSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) {
+ QualitySuperviseDetailsCorrect correct = new QualitySuperviseDetailsCorrect();
+ // 褰撳墠鐧诲綍鐢ㄦ埛淇℃伅鍜岄儴闂�
+ User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
+ String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
+
+ switch (detailsCorrect.getFlowType()) {
+ // 涓嶅悎鏍兼彁鍑�
+ case 0:
+ if (detailsCorrect.getSuperviseDetailsId() == null) {
+ throw new ErrorException("缂哄皯璐ㄩ噺鐩戠潱璇︽儏Id");
+ }
+ correct.setSuperviseDetailsId(detailsCorrect.getSuperviseDetailsId());
+ correct.setRaiseResult(detailsCorrect.getRaiseResult());//涓嶅悎鏍艰〃杩�
+ correct.setVdeRaiseResult(detailsCorrect.getVdeRaiseResult());//vde涓撳鍙戠幇
+ correct.setRaiseDepartment(departmentLimsName);//鎻愬嚭閮ㄩ棬
+ correct.setRaiseUserId(user.getId());//鎻愬嚭浜篿d
+ correct.setRaiseUserName(user.getName());// 鎻愬嚭浜�
+ correct.setRaiseTime(LocalDate.now());// 鎻愬嚭鏃堕棿
+
+ // 鍘熷洜鍒嗘瀽浜轰俊鎭�
+ User causeUser = userMapper.selectById(detailsCorrect.getCauseUserId());
+ String causeDepartmentLims = userMapper.selectUserDepartmentLimsName(causeUser.getId());
+
+ correct.setCauseDepartment(causeDepartmentLims);//鍘熷洜鍒嗘瀽璐d换閮ㄩ棬
+ correct.setCauseUserId(causeUser.getId());//1鍘熷洜鍒嗘瀽浜篿d
+ correct.setCauseUserName(causeUser.getName());// 1鍘熷洜鍒嗘瀽浜�
+ qualitySuperviseDetailsCorrectMapper.insert(correct);
+
+ break;
+
+ // 鍘熷洜鍒嗘瀽
+ case 1:
+ correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
+ correct.setCauseResult(detailsCorrect.getCauseResult());//鍘熷洜鍒嗘瀽
+ correct.setCauseTime(LocalDate.now());// 1鍘熷洜鍒嗘瀽鏃堕棿
+
+ // 绾犳浜轰俊鎭�
+ User correctUser = userMapper.selectById(detailsCorrect.getCorrectUserId());
+ String correctUserDepartmentLims = userMapper.selectUserDepartmentLimsName(correctUser.getId());
+
+ correct.setCorrectDepartment(correctUserDepartmentLims);//2绾犳璐d换閮ㄩ棬
+ correct.setCorrectUserId(correctUser.getId());//2绾犳浜篿d
+ correct.setCorrectUserName(correctUser.getName());// 2绾犳浜�
+ qualitySuperviseDetailsCorrectMapper.updateById(correct);
+ break;
+
+ // 绾犳鎺柦
+ case 2:
+ correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
+ correct.setCorrectResult(detailsCorrect.getCorrectResult());//2绾犳鎺柦
+ correct.setRaiseDepartmentAffirm(detailsCorrect.getRaiseDepartmentAffirm());//2鎻愬嚭閮ㄩ棬纭
+ correct.setCorrectTime(LocalDate.now());// 2绾犳鏃堕棿
+
+ // 楠岃瘉浜轰俊鎭�
+ User validationUser = userMapper.selectById(detailsCorrect.getValidationUserId());
+ String validationUserDepartmentLims = userMapper.selectUserDepartmentLimsName(validationUser.getId());
+
+ correct.setValidationDepartment(validationUserDepartmentLims);//3楠岃瘉閮ㄩ棬
+ correct.setValidationUserId(validationUser.getId());//3楠岃瘉浜篿d
+ correct.setValidationUserName(validationUser.getName());// 3楠岃瘉浜�
+ qualitySuperviseDetailsCorrectMapper.updateById(correct);
+ break;
+
+ // 楠岃瘉缁撴灉
+ case 3:
+ correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
+ correct.setValidationResult(detailsCorrect.getValidationResult());//3楠岃瘉缁撴灉
+ correct.setValidationTime(LocalDate.now());// 3楠岃瘉鏃堕棿
+ correct.setIsFinish(1);
+ qualitySuperviseDetailsCorrectMapper.updateById(correct);
+ break;
+ }
+
+ return true;
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳澶勭悊
+ * @param superviseDetailsId
+ * @return
+ */
+ @Override
+ public QualitySuperviseDetailsCorrect getSuperviseDetailCorrect(Integer superviseDetailsId) {
+ QualitySuperviseDetailsCorrect detailsCorrect;
+
+ detailsCorrect = qualitySuperviseDetailsCorrectMapper.selectOne(Wrappers.<QualitySuperviseDetailsCorrect>lambdaQuery()
+ .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsId, superviseDetailsId));
+
+ if (detailsCorrect == null) {
+ detailsCorrect = new QualitySuperviseDetailsCorrect();
+ }
+ return detailsCorrect;
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃
+ * @param page
+ * @param detailsCorrect
+ * @return
+ */
+ @Override
+ public IPage<QualitySuperviseDetailsCorrect> pageSuperviseDetailCorrect(Page page, QualitySuperviseDetailsCorrect detailsCorrect) {
+ return qualitySuperviseDetailsCorrectMapper.pageSuperviseDetailAccording(page, QueryWrappers.queryWrappers(detailsCorrect));
+ }
+
+ /**
+ * 鏂板鐩戠潱绾犳鎺柦闄勪欢
+ * @param superviseDetailsCorrectId
+ * @param file
+ * @return
+ */
+ @Override
+ public boolean uploadSuperviseDetailCorrectFile(Integer superviseDetailsCorrectId, MultipartFile file) {
+ if (superviseDetailsCorrectId == null) {
+ throw new ErrorException("缂哄皯绾犳鎺柦id");
+ }
+
+ String urlString;
+ String pathName;
+ String path;
+ String filename = file.getOriginalFilename();
+ String contentType = file.getContentType();
+ QualitySuperviseDetailsCorrectFile superviseDetailsCorrectFile = new QualitySuperviseDetailsCorrectFile();
+ superviseDetailsCorrectFile.setSuperviseDetailsCorrectId(superviseDetailsCorrectId);
+ superviseDetailsCorrectFile.setFileName(filename);
+ if (contentType != null && contentType.startsWith("image/")) {
+ // 鏄浘鐗�
+ path = imgUrl;
+ superviseDetailsCorrectFile.setType(1);
+ } else {
+ // 鏄枃浠�
+ path = wordUrl;
+ superviseDetailsCorrectFile.setType(2);
+ }
+ try {
+ File realpath = new File(path);
+ if (!realpath.exists()) {
+ realpath.mkdirs();
+ }
+ pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + file.getOriginalFilename();
+ urlString = realpath + "/" + pathName;
+ file.transferTo(new File(urlString));
+ superviseDetailsCorrectFile.setFileUrl(pathName);
+ qualitySuperviseDetailsCorrectFileMapper.insert(superviseDetailsCorrectFile);
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ErrorException(e.getMessage());
+ }
+ }
+
+ /**
+ * 鏌ヨ鐩戠潱绾犳鎺柦闄勪欢
+ * @param superviseDetailsCorrectId
+ * @return
+ */
+ @Override
+ public List<QualitySuperviseDetailsCorrectFile> getSuperviseDetailCorrectFileList(Integer superviseDetailsCorrectId) {
+ return qualitySuperviseDetailsCorrectFileMapper.selectList(Wrappers.<QualitySuperviseDetailsCorrectFile>lambdaQuery()
+ .eq(QualitySuperviseDetailsCorrectFile::getSuperviseDetailsCorrectId, superviseDetailsCorrectId));
+ }
+
+ /**
+ * 瀵煎嚭鐩戠潱绾犳鎺柦
+ * @param superviseDetailsCorrectId
+ * @param response
+ */
+ @Override
+ public void exportSuperviseDetaillCorrect(Integer superviseDetailsCorrectId, HttpServletResponse response) {
+ QualitySuperviseDetailsCorrect detailsCorrect = qualitySuperviseDetailsCorrectMapper.selectById(superviseDetailsCorrectId);
+ QualitySuperviseDetailsCorrectDto detailsCorrectDto = new QualitySuperviseDetailsCorrectDto();
+ BeanUtils.copyProperties(detailsCorrect, detailsCorrectDto);
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ // 鎻愬嚭鏃堕棿
+ detailsCorrectDto.setRaiseTimeString(detailsCorrectDto.getRaiseTime() != null
+ ? detailsCorrectDto.getRaiseTime().format(formatter) : null);
+ // 鍘熷洜鍒嗘瀽鏃堕棿
+ detailsCorrectDto.setCauseTimeString(detailsCorrectDto.getCauseTime() != null
+ ? detailsCorrectDto.getCauseTime().format(formatter) : null);
+
+ // 绾犳鏃堕棿
+ detailsCorrectDto.setCorrectTimeString(detailsCorrectDto.getCorrectTime() != null
+ ? detailsCorrectDto.getCorrectTime().format(formatter) : null);
+
+ // 楠岃瘉鏃堕棿
+ detailsCorrectDto.setValidationTimeString(detailsCorrectDto.getValidationTime() != null
+ ? detailsCorrectDto.getValidationTime().format(formatter) : null);
+
+
+ // 鎻愬嚭浜虹鍚�
+ String raiseUrl = null;
+ if (detailsCorrectDto.getRaiseUserId() != null) {
+ raiseUrl = userMapper.selectById(detailsCorrectDto.getRaiseUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(raiseUrl)) {
+ throw new ErrorException("鎵句笉鍒版彁鍑轰汉鐨勭鍚�");
+ }
+ }
+
+ // 鍘熷洜鍒嗘瀽浜�
+ String causeUrl = null;
+ if (detailsCorrectDto.getCauseUserId() != null) {
+ causeUrl = userMapper.selectById(detailsCorrectDto.getCauseUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(causeUrl)) {
+ throw new ErrorException("鎵句笉鍒板師鍥犲垎鏋愪汉鐨勭鍚�");
+ }
+ }
+
+ // 绾犳浜�
+ String correctUrl = null;
+ if (detailsCorrectDto.getCorrectUserId() != null) {
+ correctUrl = userMapper.selectById(detailsCorrectDto.getCorrectUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(correctUrl)) {
+ throw new ErrorException("鎵句笉鍒扮籂姝d汉鐨勭鍚�");
+ }
+ }
+
+ // 楠岃瘉浜�
+ String validationUrl = null;
+ if (detailsCorrectDto.getValidationUserId() != null) {
+ validationUrl = userMapper.selectById(detailsCorrectDto.getValidationUserId()).getSignatureUrl();
+ if (StringUtils.isBlank(validationUrl)) {
+ throw new ErrorException("鎵句笉鍒伴獙璇佷汉鐨勭鍚�");
+ }
+ }
+
+ // 鑾峰彇璺緞
+ InputStream inputStream = this.getClass().getResourceAsStream("/static/supervise-detail-correct.docx");
+ ConfigureBuilder builder = Configure.builder();
+ builder.useSpringEL(true);
+ String finalRaiseUrl = raiseUrl;
+ String finalCauseUrl = causeUrl;
+ String finalCorrectUrl = correctUrl;
+ String finalValidationUrl = validationUrl;
+ XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
+ new HashMap<String, Object>() {{
+ put("correct", detailsCorrectDto);
+ put("raiseUrl", StringUtils.isNotBlank(finalRaiseUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRaiseUrl).create() : null);
+ put("causeUrl", StringUtils.isNotBlank(finalCauseUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCauseUrl).create() : null);
+ put("correctUrl", StringUtils.isNotBlank(finalCorrectUrl) ? Pictures.ofLocal(imgUrl + "/" + finalCorrectUrl).create() : null);
+ put("validationUrl", StringUtils.isNotBlank(finalValidationUrl) ? Pictures.ofLocal(imgUrl + "/" + finalValidationUrl).create() : null);
+ }});
+
+ try {
+ response.setContentType("application/msword");
+ String fileName = URLEncoder.encode(
+ "鐩戠潱绾犳鎺柦", "UTF-8");
+ response.setHeader("Content-disposition",
+ "attachment;filename=" + fileName + ".docx");
+ OutputStream os = response.getOutputStream();
+ template.write(os);
+ os.flush();
+ os.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+
+ }
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java b/cnas-process/src/main/java/com/ruoyi/process/utils/UserUtils.java
similarity index 68%
rename from inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java
rename to cnas-process/src/main/java/com/ruoyi/process/utils/UserUtils.java
index 4ea9c59..4ab4ae2 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/util/UserUtils.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/utils/UserUtils.java
@@ -1,21 +1,17 @@
-package com.ruoyi.inspect.util;
+package com.ruoyi.process.utils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.deepoove.poi.data.FilePictureRenderData;
import com.deepoove.poi.data.PictureRenderData;
import com.deepoove.poi.data.Pictures;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.system.mapper.UserMapper;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
-/**
- * Author: yuan
- * Date: 2024-12-17 鏄熸湡浜� 10:35:50
- * Description: User宸ュ叿绫�
- */
@Component
public class UserUtils {
private static UserMapper userMapper;
@@ -46,10 +42,8 @@
if (StringUtils.isBlank(userSignatureUrl)) {
throw new ErrorException("鎵句笉鍒拌浜哄憳绛惧悕");
}
- return imgUrl + "\\" + userSignatureUrl;
- } else {
- return null;
}
+ return imgUrl + "\\" + userSignatureUrl;
}
/**
@@ -57,18 +51,38 @@
* @param userId 浜哄憳id
* @return 鐢ㄦ埛绛惧悕瀵硅薄 or null
*/
- public static PictureRenderData getFinalUserSignatureUrl(Integer userId) {
+ public static PictureRenderData getFinalUserSignatureUrl(Integer userId,int width,int height) {
+ width = width <= 0 ? 100 : width;
+ height = height <= 0 ? 50 : height;
String userSignatureUrl = null;
if (userId != null) {
- userSignatureUrl = userMapper.selectById(userId)
+ userSignatureUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
+ .eq(User::getId, userId))
.getSignatureUrl();
if (StringUtils.isBlank(userSignatureUrl)) {
throw new ErrorException("鎵句笉鍒拌浜哄憳绛惧悕");
}
}
- return StringUtils.isNotBlank(userSignatureUrl) ? Pictures.ofLocal(imgUrl + "/" + userSignatureUrl).create() : null;
+ return StringUtils.isNotBlank(userSignatureUrl) ? new FilePictureRenderData(width,height,imgUrl + "/" + userSignatureUrl) : null;
}
+ /**
+ * 閫氳繃鍚嶅瓧鑾峰彇鐢ㄦ埛绛惧悕鍦板潃
+ * @param userName 浜哄憳鍚嶅瓧
+ * @return 鐢ㄦ埛绛惧悕鍦板潃
+ */
+ public static String getUserSignatureUrl(String userName) {
+ String userSignatureUrl = null;
+ if (userName != null) {
+ userSignatureUrl = userMapper.selectOne(Wrappers.<User>lambdaQuery()
+ .eq(User::getName, userName))
+ .getSignatureUrl();
+ if (StringUtils.isBlank(userSignatureUrl)) {
+ throw new ErrorException("鎵句笉鍒拌浜哄憳绛惧悕");
+ }
+ }
+ return imgUrl + "/" + userSignatureUrl;
+ }
/**
* 閫氳繃鍚嶅瓧鑾峰彇娓叉煋Word鐢ㄦ埛绛惧悕瀵硅薄
diff --git a/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml b/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml
new file mode 100644
index 0000000..8dde5b2
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/InconsistentDistributionDetailMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.InconsistentDistributionDetailMapper">
+
+
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml b/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml
new file mode 100644
index 0000000..f8d88e1
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/InconsistentDistributionMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.InconsistentDistributionMapper">
+
+ <!-- 涓嶇鍚堥」鍒嗛〉鏌ヨ -->
+ <select id="pageInconsistentDistribution" resultType="com.ruoyi.process.dto.InconsistentDistributionDto">
+ select *
+ from (select cid.*,
+ u1.name create_user_name,
+ u2.name update_user_name
+ from cnas_inconsistent_distribution cid
+ left join user u1 on u1.id = cid.create_user
+ left join user u2 on u2.id = cid.update_user
+ order by cid.create_time desc) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml b/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml
new file mode 100644
index 0000000..6033fa3
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessComplainMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessComplainMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessComplain">
+ <id column="id" property="id"/>
+ <result column="complain_no" property="complainNo"/>
+ <result column="complain_name" property="complainName"/>
+ <result column="ins_report_id" property="insReportId"/>
+ <result column="sample_code" property="sampleCode"/>
+ <result column="create_user" property="createUser"/>
+ <result column="complainant" property="complainant"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_user" property="updateUser"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="complain_method" property="complainMethod"/>
+ <result column="problem_records" property="problemRecords"/>
+ <result column="problem_records_user" property="problemRecordsUser"/>
+ <result column="problem_records_time" property="problemRecordsTime"/>
+ <result column="duty_ownership" property="dutyOwnership"/>
+ <result column="duty_ownership_user" property="dutyOwnershipUser"/>
+ <result column="duty_ownership_time" property="dutyOwnershipTime"/>
+ <result column="cause_analysis" property="causeAnalysis"/>
+ <result column="cause_analysis_user" property="causeAnalysisUser"/>
+ <result column="cause_analysis_time" property="causeAnalysisTime"/>
+ <result column="corrective_action" property="correctiveAction"/>
+ <result column="corrective_action_user" property="correctiveActionUser"/>
+ <result column="corrective_action_time" property="correctiveActionTime"/>
+ <result column="corrective_action_confirmation" property="correctiveActionConfirmation"/>
+ <result column="corrective_action_confirmation_user" property="correctiveActionConfirmationUser"/>
+ <result column="corrective_action_confirmation_time" property="correctiveActionConfirmationTime"/>
+ </resultMap>
+ <select id="pageProcessComplain" resultType="com.ruoyi.process.pojo.ProcessComplain">
+ select *
+ from (select cpc.*,name complainant
+ from cnas_process_complain cpc left join user u on cpc.create_user = u.id)A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="getProcessComplain" resultType="com.ruoyi.process.dto.ProcessComplainDto">
+ select cpc.*,
+ ir.code,
+ u1.name complainant,
+ u1.phone,
+ u1.email,
+ u2.name problemRecordsUserName,
+ u3.name dutyOwnershipUserName,
+ u4.name causeAnalysisUserName,
+ u5.name correctiveActionUserName,
+ u6.name correctiveActionConfirmationUserName
+ from cnas_process_complain cpc
+ left join user u1 on cpc.create_user = u1.id
+ left join user u2 on cpc.problem_records_user = u2.id
+ left join user u3 on cpc.duty_ownership_user = u3.id
+ left join user u4 on cpc.cause_analysis_user = u4.id
+ left join user u5 on cpc.corrective_action_user = u5.id
+ left join user u6 on cpc.corrective_action_confirmation_user = u6.id
+ left join ins_report ir on cpc.ins_report_id = ir.id
+ where cpc.id=#{id}
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
new file mode 100644
index 0000000..b7e00d7
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessDealMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessDealMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessDeal">
+ <id column="id" property="id"/>
+ <result column="sample_name" property="sampleName"/>
+ <result column="sample_code" property="sampleCode"/>
+ <result column="sample_supplier" property="sampleSupplier"/>
+ <result column="num" property="num"/>
+ <result column="deal_method" property="dealMethod"/>
+ <result column="deal_time" property="dealTime"/>
+ <result column="create_user" property="createUser"/>
+ <result column="update_user" property="updateUser"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ <result column="totaldeal_id" property="totaldealId"/>
+ </resultMap>
+ <select id="pageProcessDeal" resultType="com.ruoyi.process.pojo.ProcessDeal">
+ select *
+ from (select * from cnas_process_deal) A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml b/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml
new file mode 100644
index 0000000..bea6799
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessEvaluateMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessEvaluateMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessEvaluate">
+ <id column="id" property="id"/>
+ <result column="report_name" property="reportName"/>
+ <result column="report_url" property="reportUrl"/>
+ <result column="evaluate_user" property="evaluateUser"/>
+ <result column="evaluateUserName" property="evaluateUserName"/>
+ <result column="evaluate_time" property="evaluateTime"/>
+ <result column="note" property="note"/>
+ <result column="create_user" property="createUser"/>
+ <result column="update_user" property="updateUser"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+ <select id="pageProcessEvaluate" resultType="com.ruoyi.process.pojo.ProcessEvaluate">
+ select * from (select cpe.*,u.name evaluateUserName
+ from cnas_process_evaluate cpe
+ left join user u on cpe.evaluate_user = u.id)A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml
new file mode 100644
index 0000000..3727524
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessMethodSearchNewMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.ProcessMethodSearchNewMapper">
+
+ <!-- 鏍囧噯鏌ユ柊鍒嗛〉鏌ヨ -->
+ <select id="pageMethodSearchNew" resultType="com.ruoyi.process.pojo.ProcessMethodSearchNew">
+ select *
+ from (select *
+ from cnas_process_method_search_new
+ <where>
+ <if test="beginDate != null and beginDate != '' and endDate != null and endDate != ''">
+ and create_time between #{beginDate} and #{endDate}
+ </if>
+ </where>
+ order by create_time desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="selectMethodSearchNew" resultType="com.ruoyi.process.dto.ProcessMethodSearchNewDto">
+ select *
+ from (select *
+ from cnas_process_method_search_new
+ <where>
+ <if test="beginDate != null and beginDate != '' and endDate != null and endDate != ''">
+ and create_time between #{beginDate} and #{endDate}
+ </if>
+ </where>
+ order by create_time desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml
new file mode 100644
index 0000000..b5e95d0
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyCalibrationsFileMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.ProcessMethodVerifyCalibrationsFileMapper">
+ <select id="selectCalibrationsFileList"
+ resultType="com.ruoyi.process.dto.ProcessMethodVerifyCalibrationsFileDto">
+ select cf.*,
+ d.device_name,
+ d.management_number
+ from cnas_process_method_verify_calibrations_file cf
+ left join device d on d.id = cf.device_id
+ where cf.method_verify_id = #{methodVerifyId}
+ </select>
+
+ <!-- 璁惧璇佷功鏌ヨ鏍″噯璇佷功 -->
+ <select id="selectCalibrationsFile" resultType="java.lang.String">
+ select system_file_name
+ from device_metric_record
+ where device_id = #{deviceId}
+ and type = 'calibrate'
+ and status = '0yes'
+ order by create_time desc
+ limit 1
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml
new file mode 100644
index 0000000..ff31958
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.ProcessMethodVerifyMapper">
+
+ <!-- 鏍囧噯鏂规硶璺熸柊楠岃瘉鍒楄〃 -->
+ <select id="pagesMethodVerify" resultType="com.ruoyi.process.pojo.ProcessMethodVerify">
+ select * from (
+ select method_verify_id,
+ method_name,
+ verify_reason,
+ technology_change,
+ confirm_date,
+ create_time,
+ operation_type
+ from cnas_process_method_verify
+ order by create_time desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml
new file mode 100644
index 0000000..f7dfffd
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessMethodVerifyWorkFileMapper.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.ProcessMethodVerifyWorkFileMapper">
+
+ <!-- 鏍规嵁鐢ㄦ埛id鏌ヨ涓婂矖璇佸湴鍧� -->
+ <select id="selectWorkFile" resultType="java.lang.String">
+ select system_file_name
+ from cnas_person_post_authorization_record
+ where user_id = #{userId}
+ order by create_time desc
+ limit 1
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml b/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml
new file mode 100644
index 0000000..c8f70af
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessOrderMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessOrder">
+ <id column="id" property="id"/>
+ <result column="ins_order_id" property="insOrderId"/>
+ <result column="rule" property="rule"/>
+ <result column="comprehensive_user" property="comprehensiveUser"/>
+ <result column="comprehensive_time" property="comprehensiveTime"/>
+ <result column="issue_user" property="issueUser"/>
+ <result column="issue_time" property="issueTime"/>
+ </resultMap>
+
+ <resultMap id="ProcessOrderDto" type="com.ruoyi.process.dto.ProcessOrderDto">
+ <id column="id" property="id"/>
+ <result column="entrust_code" property="entrustCode"/>
+ <result column="sample" property="sample"/>
+ <result column="create_time" property="createTime"/>
+ <result column="sampleType" property="sampleType"/>
+ <result column="company" property="company"/>
+ <result column="production" property="production"/>
+ <result column="productionEn" property="productionEn"/>
+ <result column="prepare_user" property="prepareUser"/>
+ <result column="sample_num" property="sampleNum"/>
+ <result column="ins_state" property="insState"/>
+ <result column="is_leave" property="isLeave"/>
+ <result column="processing" property="processing"/>
+ <result column="phones" property="phone"/>
+ <result column="appointed" property="appointed"/>
+ <result column="send" property="send"/>
+ <result column="rule" property="rule"/>
+ <result column="comprehensive_user" property="comprehensiveUser"/>
+ <result column="comprehensiveUserName" property="comprehensiveUserName"/>
+ <result column="comprehensiveUserUrl" property="comprehensiveUserUrl"/>
+ <result column="comprehensive_time" property="comprehensiveTime"/>
+ <result column="issue_user" property="issueUser"/>
+ <result column="issueUserName" property="issueUserName"/>
+ <result column="issueUserUrl" property="issueUserUrl"/>
+ <result column="issue_time" property="issueTime"/>
+ <collection property="sampleItems" resultMap="SampleItemDto"/>
+ </resultMap>
+ <resultMap id="SampleItemDto" type="com.ruoyi.process.dto.SampleItemDto">
+ <result column="code" property="code"/>
+ <result column="model" property="model"/>
+ <result column="product" property="product"/>
+ <result column="groupConcatTell" property="groupConcatTell"></result>
+ <result column="standardMethodList" property="standardMethodList"/>
+ <result column="remark" property="remark"/>
+ </resultMap>
+
+ <select id="pageProcessOrder" resultMap="ProcessOrderDto">
+ select * from
+ (
+ select cpo.*,
+ u1.signature_url comprehensiveUserUrl,
+ u2.signature_url issueUserUrl,
+ u3.phone phones,
+ ioo.*
+ from cnas_process_order cpo
+ left join user u1 on comprehensive_user = u1.id
+ left join user u2 on issue_user = u2.id
+ left join
+ (SELECT distinct
+ io.id AS iod,
+ io.entrust_code,
+ io.sample,
+ io.create_time,
+ fst.model AS sampleType,
+ io.company,
+ io.production,
+ io.prepare_user,
+ sc.sample_num,
+ io.ins_state,
+ io.is_leave,
+ io.processing,
+ appointed,
+ send
+ FROM cnas_process_order cpo
+ LEFT JOIN ins_order io ON cpo.ins_order_id = io.id
+ LEFT JOIN (
+ SELECT ins_order_id, COUNT(*) AS sample_num
+ FROM ins_sample is2
+ WHERE id in ( SELECT is3.id
+ FROM ins_sample is3 JOIN ins_product ip ON is3.id = ip.ins_sample_id where ip.id is not null)
+ GROUP BY ins_order_id
+ ) sc ON io.id = sc.ins_order_id
+ LEFT JOIN (
+ SELECT isa.ins_order_id, isa.model
+ FROM ins_sample isa
+ JOIN ins_product ip ON isa.id = ip.ins_sample_id
+ WHERE ip.id IS NOT NULL
+ AND ip.state = 1
+ AND isa.id = (
+ SELECT MIN(is2.id)
+ FROM ins_sample is2
+ JOIN ins_product ip2 ON is2.id = ip2.ins_sample_id
+ WHERE ip2.id IS NOT NULL
+ AND ip2.state = 1
+ AND isa.ins_order_id = is2.ins_order_id
+ )
+ ) fst ON io.id = fst.ins_order_id) ioo
+ on cpo.ins_order_id = ioo.iod
+ left join user u3 on prepare_user = u3.name
+ left join (select io2.id,
+ is2.sample_code,
+ GROUP_CONCAT(DISTINCT ip.inspection_item SEPARATOR ' ') AS product,
+ sm.code standardMethodList,
+ is2.remark
+ from ins_order io2
+ left join ins_sample is2 on io2.id = is2.ins_order_id
+ left join standard_method sm on standard_method_list_id = sm.id
+ left join ins_product ip on is2.id = ip.ins_sample_id
+ where ip.id is not null) A on A.id = cpo.ins_order_id
+ ) B
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="getProcessOrder" resultMap="ProcessOrderDto">
+ select cpo.*,
+ u1.name comprehensiveUserName,
+ u1.signature_url comprehensiveUserUrl,
+ u2.name issueUserName,
+ u2.signature_url issueUserUrl,
+ u3.phone phones,
+ u3.signature_url prepareUserUrl,
+ ioo.*,
+ A.*
+ from cnas_process_order cpo
+ left join user u1 on comprehensive_user = u1.id
+ left join user u2 on issue_user = u2.id
+ left join
+ (SELECT distinct cpo.id,
+ io.id AS iod,
+ io.entrust_code,
+ io.sample,
+ io.create_time,
+ fst.model AS sampleType,
+ io.company,
+ io.production,
+ io.prepare_user,
+ sc.sample_num,
+ io.ins_state,
+ io.is_leave,
+ io.processing,
+ appointed,
+ send
+ FROM cnas_process_order cpo
+ LEFT JOIN ins_order io ON cpo.ins_order_id = io.id
+ LEFT JOIN (
+ SELECT ins_order_id, COUNT(*) AS sample_num
+ FROM ins_sample is2
+ WHERE id in (SELECT is3.id
+ FROM ins_sample is3
+ JOIN ins_product ip ON is3.id = ip.ins_sample_id
+ where ip.id is not null)
+ GROUP BY ins_order_id
+ ) sc ON io.id = sc.ins_order_id
+ LEFT JOIN (
+ SELECT isa.ins_order_id, isa.model
+ FROM ins_sample isa
+ JOIN ins_product ip ON isa.id = ip.ins_sample_id
+ WHERE ip.id IS NOT NULL
+ AND ip.state = 1
+ AND isa.id = (
+ SELECT MIN(is2.id)
+ FROM ins_sample is2
+ JOIN ins_product ip2 ON is2.id = ip2.ins_sample_id
+ WHERE ip2.id IS NOT NULL
+ AND ip2.state = 1
+ AND isa.ins_order_id = is2.ins_order_id)
+ ) fst ON io.id = fst.ins_order_id) ioo on cpo.ins_order_id = ioo.iod
+ left join user u3 on prepare_user = u3.name
+ left join
+ (select io2.id,
+ is2.sample_code code,
+ is2.model,
+ GROUP_CONCAT(DISTINCT ip.inspection_item SEPARATOR ' ') AS product,
+-- sm.code standardMethodList,
+ '璇曢獙瑕佹眰' standardMethodList,
+ GROUP_CONCAT(DISTINCT ip.tell SEPARATOR ' ;') AS groupConcatTell,
+ is2.remark
+ from ins_order io2
+ left join ins_sample is2 on io2.id = is2.ins_order_id
+ left join standard_method sm on standard_method_list_id = sm.id
+ left join ins_product ip on is2.id = ip.ins_sample_id
+ left join cnas_process_order cpo2 on io2.id = cpo2.ins_order_id
+ where ip.id is not null
+ and cpo2.id = #{id}) A on A.id = cpo.ins_order_id
+ where cpo.id = #{id}
+ </select>
+ <select id="selectInsOrder" resultType="com.ruoyi.process.dto.InspectionOrderDetail">
+ select is2.sample_code sampleNumber,
+ is2.model,
+ GROUP_CONCAT(DISTINCT ip.inspection_item SEPARATOR ',') AS testItem,
+ sm.code testStandard,
+ is2.remark
+ from ins_sample is2
+ left join standard_method sm on standard_method_list_id = sm.id
+ left join ins_product ip on is2.id = ip.ins_sample_id
+ where ip.id is not null
+ and ins_order_id = #{id}
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
new file mode 100644
index 0000000..6c06783
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessReportMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessReportMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessReport">
+ <id column="id" property="id"/>
+ <result column="ins_report_code" property="insReportCode"/>
+ <result column="pages" property="pages"/>
+ <result column="number" property="number"/>
+ <result column="send" property="send"/>
+ <result column="method" property="method"/>
+ <result column="send_time" property="sendTime"/>
+ <result column="send_user" property="sendUser"/>
+ <result column="signatory" property="signatory"/>
+ <result column="remark" property="remark"/>
+ <result column="create_user" property="createUser"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_user" property="updateUser"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+ <select id="pageProcessReport" resultType="com.ruoyi.process.pojo.ProcessReport">
+ select * from (select cpr.* ,
+ u1.name sendUserName
+ from cnas_process_report cpr
+ left join user u1 on send_user=u1.id )A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="getIds" resultType="com.ruoyi.process.pojo.ProcessReport">
+ select cpr.* ,
+ u1.name sendUserName
+ from cnas_process_report cpr
+ left join user u1 on send_user=u1.id
+ where 1=1
+ and cpr.id in
+ <foreach collection="ids" separator="," item="id" open="(" close=")">
+ #{id}
+ </foreach>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml b/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml
new file mode 100644
index 0000000..3e27bb6
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessSampleMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessSampleMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessSample">
+ <id column="id" property="id" />
+ <result column="sample_name" property="sampleName" />
+ <result column="sample_code" property="sampleCode" />
+ <result column="sample_supplier" property="sampleSupplier" />
+ <result column="num" property="num" />
+ <result column="sample_state" property="sampleState" />
+ <result column="create_user" property="createUser" />
+ <result column="update_user" property="updateUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="total_sample_id" property="totalSampleId" />
+ <result column="receive_date" property="receiveDate" />
+ <result column="leave_date" property="leaveDate" />
+ <result column="deal_time" property="dealTime" />
+ </resultMap>
+ <select id="pageProcessSample" resultType="com.ruoyi.process.pojo.ProcessSample">
+ select *
+ from (select * from cnas_process_sample) A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml b/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml
new file mode 100644
index 0000000..5d8ac9c
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessTotalSampleMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessTotalSampleMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessTotalSample">
+ <id column="id" property="id" />
+ <result column="examine_user" property="examineUser"/>
+ <result column="examine_state" property="examineState"/>
+ <result column="examine_url" property="examineUrl"/>
+ <result column="examineUserName" property="examineUserName"/>
+ <result column="ratify_user" property="ratifyUser"/>
+ <result column="ratify_state" property="ratifyState"/>
+ <result column="ratify_url" property="ratifyUrl"/>
+ <result column="ratifyUserName" property="ratifyUserName"/>
+ <result column="submit_user" property="submitUser"/>
+ <result column="submit_state" property="submitState"/>
+ <result column="submit_url" property="submitUrl"/>
+ <result column="submitUserName" property="submitUserName"/>
+ <result column="total_num" property="totalNum"/>
+ <result column="month" property="month"/>
+ <result column="url" property="url"/>
+ </resultMap>
+ <select id="pageProcessTotalSample" resultType="com.ruoyi.process.pojo.ProcessTotalSample">
+ select *
+ from (select cpt.*, u1.name examineUserName , u2.name ratifyUserName,u3.name submitUserName
+ from cnas_process_total_sample cpt
+ left join user u1 on u1.id = examine_user
+ left join user u2 on u2.id = ratify_user
+ left join user u3 on u3.id = submit_user) A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml b/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml
new file mode 100644
index 0000000..64f16ae
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/ProcessTotaldealMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.process.mapper.ProcessTotaldealMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.process.pojo.ProcessTotaldeal">
+ <id column="id" property="id"/>
+ <result column="examine_user" property="examineUser"/>
+ <result column="examine_state" property="examineState"/>
+ <result column="examine_url" property="examineUrl"/>
+ <result column="examineUserName" property="examineUserName"/>
+ <result column="ratify_user" property="ratifyUser"/>
+ <result column="ratify_state" property="ratifyState"/>
+ <result column="ratify_url" property="ratifyUrl"/>
+ <result column="ratifyUserName" property="ratifyUserName"/>
+ <result column="submit_user" property="submitUser"/>
+ <result column="submit_state" property="submitState"/>
+ <result column="submit_url" property="submitUrl"/>
+ <result column="submitUserName" property="submitUserName"/>
+ <result column="total_num" property="totalNum"/>
+ <result column="month" property="month"/>
+ <result column="url" property="url"/>
+ </resultMap>
+ <select id="pageProcessTotaldeal" resultType="com.ruoyi.process.pojo.ProcessTotaldeal">
+ select *
+ from (select cpt.*, u1.name examineUserName , u2.name ratifyUserName,u3.name submitUserName
+ from cnas_process_totaldeal cpt
+ left join user u1 on u1.id = examine_user
+ left join user u2 on u2.id = ratify_user
+ left join user u3 on u3.id = submit_user) A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml
new file mode 100644
index 0000000..0f05609
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsEvaluateMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualityMonitorDetailsEvaluateMapper">
+
+ <!-- 鏌ヨ璐ㄩ噺鐩戞帶璇勪环 -->
+ <select id="getQualityMonitorEvaluate" resultType="com.ruoyi.process.pojo.QualityMonitorDetailsEvaluate">
+ select cqmde.*,
+ u1.name implement_name,
+ u2.name ratify_user_name
+ from cnas_quality_monitor_details_evaluate cqmde
+ left join user u1 on u1.id = cqmde.implement_user_id
+ left join user u2 on u2.id = cqmde.ratify_user_id
+ where cqmde.quality_monitor_details_id = #{qualityMonitorDetailsId}
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml
new file mode 100644
index 0000000..49726ac
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualityMonitorDetailsMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualityMonitorDetailsMapper">
+ <select id="pageQualityMonitorDetail" resultType="com.ruoyi.process.pojo.QualityMonitorDetails">
+ select * from (
+ select *
+ from cnas_quality_monitor_details
+ order by create_time desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml b/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml
new file mode 100644
index 0000000..0101f54
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualityMonitorMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualityMonitorMapper">
+ <!-- 鐩戞帶璁″垝鍒嗛〉鏌ヨ -->
+ <select id="pageQualityMonitor" resultType="com.ruoyi.process.dto.QualityMonitorDto">
+ select *
+ from (select cqm.*,
+ u1.name write_name,
+ u2.name examine_name,
+ u3.name ratify_name
+ from cnas_quality_monitor cqm
+ left join user u1 on u1.id = cqm.write_user_id
+ left join user u2 on u2.id = cqm.write_user_id
+ left join user u3 on u3.id = cqm.write_user_id
+ order by cqm.create_time desc) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml
new file mode 100644
index 0000000..be39018
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsAccordingMapper.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualitySuperviseDetailsAccordingMapper">
+
+ <!-- 鏌ヨ涓嶇鍚堟帶鍒跺崟鍒楄〃 -->
+ <select id="pageSuperviseDetailAccording"
+ resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsAccording">
+ select *
+ from (select *
+ from cnas_quality_supervise_details_according
+ order by create_time desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="selectSuperviseDetailsAccording"
+ resultType="com.ruoyi.process.dto.QualitySuperviseDetailsAccordingDto">
+ select sda.*,
+ DATE_FORMAT(sda.record_time, '%Y-%m-%d') discovererDateString, <!-- 鍙戠幇鏃堕棿 -->
+ DATE_FORMAT(sda.actions_time, '%Y-%m-%d') responsibleDepartmentDateString, <!-- 澶勭悊鏃堕棿 -->
+ DATE_FORMAT(sda.correct_time, '%Y-%m-%d') correctiveMeasureDateString, <!-- 绾犳鏃堕棿 -->
+ DATE_FORMAT(sda.quality_manager_time, '%Y-%m-%d') qualitySupervisorDateString,<!-- 璐ㄩ噺鏃堕棿 -->
+ DATE_FORMAT(sda.supervised_time, '%Y-%m-%d') supervisedTimeString, <!-- 琚洃鐫f椂闂� -->
+ case when sda.is_correct = 1 then '鈽�'
+ else '鈻�' end correctiveMeasureFollowTracksYes, <!-- 绾犳鎺柦澶勭悊鍗曡窡韪�(鏄�) -->
+ case when sda.is_correct = 2 then '鈽�'
+ else '鈻�' end correctiveMeasureFollowTracksNo, <!-- 绾犳鎺柦澶勭悊鍗曡窡韪�(鍚�) -->
+ case when sda.notify_customer = 1 then '鈽�'
+ else '鈻�' end whetherInformCustomerYes, <!-- 鍛婄煡瀹㈡埛(鏄�) -->
+ case when sda.notify_customer = 2 then '鈽�'
+ else '鈻�' end whetherInformCustomerNo, <!-- 鍛婄煡瀹㈡埛(鍚�) -->
+ case when sda.back_to_work = 1 then '鈽�'
+ else '鈻�' end whetherResumeWorkYes, <!-- 鎭㈠宸ヤ綔(鏄�) -->
+ case when sda.back_to_work = 2 then '鈽�'
+ else '鈻�' end whetherResumeWorkNo, <!-- 鎭㈠宸ヤ綔(鍚�) -->
+ case when sda.find_way = 0 then '鈽�'
+ else '鈻�' end discoveryApproach0,
+ case when sda.find_way = 1 then '鈽�'
+ else '鈻�' end discoveryApproach1,
+ case when sda.find_way = 2 then '鈽�'
+ else '鈻�' end discoveryApproach2,
+ case when sda.find_way = 3 then '鈽�'
+ else '鈻�' end discoveryApproach3,
+ case when sda.find_way = 4 then '鈽�'
+ else '鈻�' end discoveryApproach4,
+ case when sda.find_way = 5 then '鈽�'
+ else '鈻�' end discoveryApproach5,
+ case when sda.find_way = 6 then '鈽�'
+ else '鈻�' end discoveryApproach6,
+ case when sda.find_way = 7 then '鈽�'
+ else '鈻�' end discoveryApproach7
+ from cnas_quality_supervise_details_according sda
+ where sda.supervise_details_id = #{superviseDetailId}
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml
new file mode 100644
index 0000000..e0f4cea
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsCorrectMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualitySuperviseDetailsCorrectMapper">
+
+ <!-- 鏌ヨ鐩戠潱绾犳鎺柦鍒楄〃 -->
+ <select id="pageSuperviseDetailAccording" resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsCorrect">
+ select *
+ from (select *
+ from cnas_quality_supervise_details_correct
+ order by create_time desc) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml
new file mode 100644
index 0000000..7d8f6c4
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualitySuperviseDetailsMapper">
+
+ <!-- 璐ㄩ噺鐩戠潱璁″垝璇︽儏鍒楄〃 -->
+ <select id="pageQualitySuperviseDetail" resultType="com.ruoyi.process.dto.QualitySuperviseDetailsDto">
+ select *
+ from (select cd.*,
+ cr.is_according,
+ ca.is_correct,
+ cc.supervise_details_correct_id
+ from cnas_quality_supervise_details cd
+ left join cnas_quality_supervise_details_record cr
+ on cr.supervise_details_id = cd.supervise_details_id
+ left join cnas_quality_supervise_details_according ca
+ on ca.supervise_details_id = cd.supervise_details_id
+ left join cnas_quality_supervise_details_correct cc
+ on cc.supervise_details_id = cd.supervise_details_id
+ order by cd.create_time desc) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml
new file mode 100644
index 0000000..bdefd95
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseDetailsRecordMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualitySuperviseDetailsRecordMapper">
+
+ <!--瀵煎嚭鐩戠潱璁板綍琛�-->
+ <select id="selectSuperviseDetailRecord" resultType="com.ruoyi.process.pojo.QualitySuperviseDetailsRecord">
+ select cqsdr.*
+ from cnas_quality_supervise_details_record cqsdr
+ where cqsdr.supervise_details_id = #{superviseDetailsId}
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml b/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml
new file mode 100644
index 0000000..529ddba
--- /dev/null
+++ b/cnas-process/src/main/resources/mapper/QualitySuperviseMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ruoyi.process.mapper.QualitySuperviseMapper">
+
+ <!-- 鐩戠潱璁″垝鍒楄〃 -->
+ <select id="pageQualitySupervise" resultType="com.ruoyi.process.pojo.QualitySupervise">
+ select *
+ from (select *
+ from cnas_quality_supervise
+ order by create_time desc ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/cnas-process/src/main/resources/static/excel/check-records.xlsx b/cnas-process/src/main/resources/static/excel/check-records.xlsx
new file mode 100644
index 0000000..5f9b346
--- /dev/null
+++ b/cnas-process/src/main/resources/static/excel/check-records.xlsx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/inconsistent-distribution.docx b/cnas-process/src/main/resources/static/inconsistent-distribution.docx
new file mode 100644
index 0000000..12bb57a
--- /dev/null
+++ b/cnas-process/src/main/resources/static/inconsistent-distribution.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/inspection-order.docx b/cnas-process/src/main/resources/static/inspection-order.docx
new file mode 100644
index 0000000..d86aab4
--- /dev/null
+++ b/cnas-process/src/main/resources/static/inspection-order.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/method-verify.docx b/cnas-process/src/main/resources/static/method-verify.docx
new file mode 100644
index 0000000..8e2d65e
--- /dev/null
+++ b/cnas-process/src/main/resources/static/method-verify.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx b/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx
new file mode 100644
index 0000000..4ffd30e
--- /dev/null
+++ b/cnas-process/src/main/resources/static/quality-monitor-details-ratify.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx b/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx
new file mode 100644
index 0000000..3b578e1
--- /dev/null
+++ b/cnas-process/src/main/resources/static/quality-monitor-evaluate.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/quality-monitor.docx b/cnas-process/src/main/resources/static/quality-monitor.docx
new file mode 100644
index 0000000..fdcb4c2
--- /dev/null
+++ b/cnas-process/src/main/resources/static/quality-monitor.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/quality-supervise.docx b/cnas-process/src/main/resources/static/quality-supervise.docx
new file mode 100644
index 0000000..9ebb203
--- /dev/null
+++ b/cnas-process/src/main/resources/static/quality-supervise.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/report-deal.docx b/cnas-process/src/main/resources/static/report-deal.docx
new file mode 100644
index 0000000..7db561f
--- /dev/null
+++ b/cnas-process/src/main/resources/static/report-deal.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/sample-deal.docx b/cnas-process/src/main/resources/static/sample-deal.docx
new file mode 100644
index 0000000..f7a9bd3
--- /dev/null
+++ b/cnas-process/src/main/resources/static/sample-deal.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/sample-receive.docx b/cnas-process/src/main/resources/static/sample-receive.docx
new file mode 100644
index 0000000..35bebeb
--- /dev/null
+++ b/cnas-process/src/main/resources/static/sample-receive.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/supervise-detail-correct.docx b/cnas-process/src/main/resources/static/supervise-detail-correct.docx
new file mode 100644
index 0000000..93fbcfe
--- /dev/null
+++ b/cnas-process/src/main/resources/static/supervise-detail-correct.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/supervision-detail-according.docx b/cnas-process/src/main/resources/static/supervision-detail-according.docx
new file mode 100644
index 0000000..7ffbdfc
--- /dev/null
+++ b/cnas-process/src/main/resources/static/supervision-detail-according.docx
Binary files differ
diff --git a/cnas-process/src/main/resources/static/supervision-detail-record.docx b/cnas-process/src/main/resources/static/supervision-detail-record.docx
new file mode 100644
index 0000000..83b7692
--- /dev/null
+++ b/cnas-process/src/main/resources/static/supervision-detail-record.docx
Binary files differ
diff --git a/pom.xml b/pom.xml
index 8b5bb9f..8c3873f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -263,6 +263,13 @@
<version>${ruoyi.version}</version>
</dependency>
+ <!--cnas璧勬簮瑕佹眰-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>cnas-process</artifactId>
+ <version>${ruoyi.version}</version>
+ </dependency>
+
<!-- minio -->
<dependency>
@@ -290,6 +297,7 @@
<artifactId>poi-tl</artifactId>
<version>${poi.tl.version}</version>
</dependency>
+
</dependencies>
</dependencyManagement>
@@ -376,6 +384,7 @@
<module>inspect-server</module>
<module>performance-server</module>
<module>cnas-manage</module>
+ <module>cnas-process</module>
</modules>
<packaging>pom</packaging>
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index b3f8e8c..f3e566d 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -92,6 +92,12 @@
<groupId>com.ruoyi</groupId>
<artifactId>cnas-manage</artifactId>
</dependency>
+
+ <!--cnas璧勬簮瑕佹眰-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>cnas-process</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
index 1133e0c..affa7b7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
@@ -14,7 +14,7 @@
{
public static void main(String[] args)
{
- System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(RuoYiApplication.class, args);
+ System.out.println("<=====================>LIMS绯荤粺鍚姩鎴愬姛<=====================>");
}
}
--
Gitblit v1.9.3