From fd7bc95a3c91fb7d90a921b0ff762fa6095fabd1 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期四, 06 三月 2025 17:21:00 +0800
Subject: [PATCH] Merge branch 'dev' into dev_zj
---
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java | 29
inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelDto.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelV.java | 22
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java | 107
inspect-server/src/main/java/com/ruoyi/inspect/dto/SheathDto.java | 15
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderTemplate.java | 43
inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java | 13
inspect-server/src/main/java/com/ruoyi/inspect/mapper/ProcessOrder1Mapper.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFiber.java | 61
inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelPs.java | 9
inspect-server/src/main/resources/mapper/InsFiberMapper.xml | 23
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java | 318 +
inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml | 23
inspect-server/src/main/java/com/ruoyi/inspect/vo/ExportInsProductVO.java | 158
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportApproveConfigMapper.java | 24
inspect-server/src/main/java/com/ruoyi/inspect/dto/FibersDto.java | 16
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFibers.java | 59
inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductDto.java | 10
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java | 61
inspect-server/pom.xml | 4
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java | 58
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsFibersVO.java | 24
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleVo.java | 10
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java | 190
inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 892 ++++
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java | 224 +
inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java | 44
ruoyi-common/src/main/java/com/ruoyi/common/utils/EasyExcelUtils.java | 181
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java | 20
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java | 20
inspect-server/src/main/resources/mapper/SampleOrderMapper.xml | 62
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java | 43
inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardProductList.java | 191
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java | 56
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java | 76
inspect-server/src/main/resources/mapper/InsSampleUserMapper.xml | 20
inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderThingDto.java | 48
inspect-server/src/main/resources/mapper/InsProductUserMapper.xml | 18
inspect-server/src/main/resources/mapper/InsUnPassMapper.xml | 28
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductResultMapper.java | 24
inspect-server/src/main/java/com/ruoyi/inspect/dto/FactoryDto.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsBushingMapper.java | 28
inspect-server/src/main/java/com/ruoyi/inspect/util/SheetWriteHandlerUtil.java | 44
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java | 61
inspect-server/src/main/resources/mapper/InsBushingMapper.xml | 109
inspect-server/src/main/java/com/ruoyi/inspect/dto/CommissionFeesDto.java | 42
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReportApproveConfig.java | 46
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSampleUser.java | 72
pom.xml | 7
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductResult.java | 61
inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelChecked.java | 59
inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 1247 ++++++
inspect-server/src/main/resources/mapper/InsReportMapper.xml | 88
inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml | 27
inspect-server/src/main/java/com/ruoyi/inspect/dto/UpInsOrderDTO.java | 27
inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardMethodList.java | 83
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductFiberVO.java | 36
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSampleNew.java | 30
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.java | 75
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 2114 ++++++++++
cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java | 48
inspect-server/src/main/resources/mapper/InsOrderTemplateMapper.xml | 22
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductUser.java | 40
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderTemplateServiceImpl.java | 70
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java | 25
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderTemplateService.java | 24
inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTemplate.java | 76
inspect-server/src/main/java/com/ruoyi/inspect/dto/UnInsProductsDTO.java | 51
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java | 54
inspect-server/src/main/resources/mapper/WarehouseShelfMapper.xml | 18
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductResultDTO.java | 30
inspect-server/src/main/java/com/ruoyi/inspect/vo/UnInsProductsVO.java | 32
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessReport.java | 82
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java | 25
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml | 31
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderFileMapper.java | 23
inspect-server/src/main/java/com/ruoyi/inspect/dto/ApproveConfigDTO.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/dto/TemperatureCycling.java | 84
inspect-server/src/main/java/com/ruoyi/inspect/mapper/SampleOrderMapper.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessOrder.java | 56
inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductResultDto2.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleDto.java | 18
cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml | 6
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessOrderServiceImpl.java | 256 +
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsulatingDto.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java | 102
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDTODL.java | 70
inspect-server/src/main/java/com/ruoyi/inspect/pojo/Schedule.java | 54
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java | 56
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java | 54
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java | 42
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto3.java | 26
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFile.java | 57
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java | 26
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductVO.java | 41
inspect-server/src/main/java/com/ruoyi/inspect/dto/FiberDto.java | 14
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProduct.java | 249 +
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DetailTablePolicy.java | 12
inspect-server/src/main/resources/mapper/InsProductMapper.xml | 210 +
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java | 21
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java | 719 +++
inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviceVO.java | 30
inspect-server/src/main/java/com/ruoyi/inspect/dto/TasksShowDto.java | 66
inspect-server/src/main/java/com/ruoyi/inspect/excel/FiberRibboGeometricalParameterExcelData.java | 69
inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductThingDto.java | 20
inspect-server/src/main/resources/mapper/WarehouseMapper.xml | 33
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java | 35
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java | 6
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsChildrenVo.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/dto/BushingDto.java | 15
cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java | 3
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java | 12
inspect-server/src/main/java/com/ruoyi/inspect/dto/UnPassPageDto.java | 15
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java | 14
inspect-server/src/main/resources/mapper/InsOrderFileMapper.xml | 26
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductDto.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseHistoryDto.java | 14
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleNewMapper.java | 9
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderTemplateMapper.java | 20
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java | 27
inspect-server/src/main/resources/mapper/InsFibersMapper.xml | 20
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanCountDTO.java | 36
inspect-server/src/main/java/com/ruoyi/inspect/vo/ProductVo.java | 22
inspect-server/src/main/resources/mapper/InsReportApproveConfigMapper.xml | 34
inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java | 13
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java | 107
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java | 36
inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml | 40
inspect-server/src/main/java/com/ruoyi/inspect/dto/BatchApprovalReportDTO.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOderDto.java | 20
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleTypeDto.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/dto/LaboratoryDto.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java | 20
inspect-server/src/main/java/com/ruoyi/inspect/dto/CostStatisticsDto.java | 65
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java | 25
inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java | 14
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto2.java | 77
inspect-server/src/main/java/com/ruoyi/inspect/dto/productResultDto.java | 16
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFiberMapper.java | 22
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFibersMapper.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderState.java | 67
inspect-server/src/main/java/com/ruoyi/inspect/vo/StandardProductVO.java | 23
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java | 66
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsFatherVo.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelMc.java | 16
inspect-server/src/main/java/com/ruoyi/inspect/dto/ModelDto.java | 15
inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkTimeDTO.java | 79
inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTree.java | 91
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsBushing.java | 55
150 files changed, 11,953 insertions(+), 12 deletions(-)
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
index 03588e2..d897286 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/controller/ProcessOrderController.java
@@ -9,6 +9,7 @@
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;
@@ -36,6 +37,17 @@
return Result.success(processOrderService.pageProcessOrder(page, processOrderDto));
}
+ /**
+ * 涓婁紶鏂囦欢
+ * @param file
+ * @return
+ */
+ @PostMapping("/uploadFile")
+ public Result uploadFile(@RequestParam("file") MultipartFile file, @RequestParam("id") Integer id) {
+ processOrderService.uploadFile(file,id);
+ return Result.success();
+ }
+
@ApiOperation(value = "鍒犻櫎瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫")
@DeleteMapping("/delProcessOrder")
public Result delProcessOrder(Long id) {
diff --git a/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleNewMapper.java b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleNewMapper.java
new file mode 100644
index 0000000..245f32d
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessSampleNewMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.process.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.process.pojo.ProcessSampleNew;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ProcessSampleNewMapper extends BaseMapper<ProcessSampleNew> {
+}
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
index 305b06d..99d9c25 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessOrder.java
@@ -60,4 +60,52 @@
@ApiModelProperty("棰嗘牱鏃ユ湡")
private LocalDate issueTime;
+
+ @ApiModelProperty("鏄惁鍚敤涓婁紶")
+ private Integer isUpload;
+
+ @ApiModelProperty("璇曟牱鍚嶇О")
+ private String sampleS;
+
+ @ApiModelProperty("濮旀墭鏃堕棿")
+ private String entrustmentTimeS;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String sampleTypeS;
+
+ @ApiModelProperty("濮旀墭鍗曚綅")
+ private String companyS;
+
+ @ApiModelProperty("鐢熶骇鍗曚綅")
+ private String productionS;
+
+ @ApiModelProperty("濮旀墭浜�")
+ private String prepareUserS;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private Integer sampleNumS;
+
+ @ApiModelProperty("鏍峰搧鐘舵��")
+ private Integer insStateS;
+
+ @ApiModelProperty("鏄惁鐣欐牱")
+ private Integer isLeaveS;
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡")
+ private Integer processingS;
+
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ private String appointedS;
+
+ @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮�")
+ private Integer sendS;
+
+ @ApiModelProperty("濮旀墭浜虹鍚�")
+ private String prepareUserUrlS;
+
+ @ApiModelProperty("濮旀墭鏃ユ湡")
+ private String createTimeTwoS;
+
+ @ApiModelProperty("濮旀墭浜鸿仈绯荤數璇�")
+ private String phoneS;
}
diff --git a/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSampleNew.java b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSampleNew.java
new file mode 100644
index 0000000..020ec1a
--- /dev/null
+++ b/cnas-process/src/main/java/com/ruoyi/process/pojo/ProcessSampleNew.java
@@ -0,0 +1,30 @@
+package com.ruoyi.process.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@TableName("cnas_process_sample_new")
+public class ProcessSampleNew {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鍏宠仈cnas_process_order 琛╥d")
+ private Integer cnasOrderId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("璇曢獙椤圭洰")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠屼緷鎹�")
+ private String method;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+}
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
index 82917be..812e916 100644
--- a/cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java
+++ b/cnas-process/src/main/java/com/ruoyi/process/service/ProcessOrderService.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.process.dto.ProcessOrderDto;
import com.ruoyi.process.pojo.ProcessOrder;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@@ -21,6 +22,8 @@
IPage<ProcessOrderDto> pageProcessOrder(Page page, ProcessOrderDto processOrderDto);
+ void uploadFile(MultipartFile file, Integer id);
+
ProcessOrderDto getProcessOrder(Integer id);
int doProcessOrder(ProcessOrder processOrder);
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
index 3253e43..007ac3d 100644
--- 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
@@ -1,7 +1,10 @@
package com.ruoyi.process.service.impl;
+import cn.hutool.core.util.NumberUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
@@ -14,22 +17,36 @@
import com.ruoyi.process.dto.InspectionOrderDetail;
import com.ruoyi.process.dto.InspectionOrderExportDto;
import com.ruoyi.process.dto.ProcessOrderDto;
+import com.ruoyi.process.dto.SampleItemDto;
import com.ruoyi.process.mapper.ProcessOrderMapper;
+import com.ruoyi.process.mapper.ProcessSampleNewMapper;
import com.ruoyi.process.pojo.ProcessOrder;
+import com.ruoyi.process.pojo.ProcessSampleNew;
import com.ruoyi.process.service.ProcessOrderService;
import com.ruoyi.system.mapper.UserMapper;
+import lombok.extern.slf4j.Slf4j;
+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.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.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Objects;
/**
* <p>
@@ -40,8 +57,12 @@
* @since 2024-11-05 03:06:20
*/
@Service
+@Slf4j
@Transactional(rollbackFor = Exception.class)
public class ProcessOrderServiceImpl extends ServiceImpl<ProcessOrderMapper, ProcessOrder> implements ProcessOrderService {
+
+ @Resource
+ private ProcessSampleNewMapper processSampleNewMapper;
@Resource
private ProcessOrderMapper processOrderMapper;
@@ -55,8 +76,182 @@
}
@Override
+ public void uploadFile(MultipartFile file, Integer id) {
+ ProcessOrder processOrder = processOrderMapper.selectById(id);
+ ArrayList<String> list = new ArrayList<>();
+ try (InputStream inputStream = file.getInputStream()) {
+ XWPFDocument xwpfDocument = new XWPFDocument(inputStream);
+ // 鑾峰彇鎵�鏈夎〃鏍�
+ List<XWPFTable> tables = xwpfDocument.getTables();
+ for (XWPFTable table : tables) {
+ // 鑾峰彇琛ㄦ牸鐨勮
+ List<XWPFTableRow> rows = table.getRows();
+ for (int i = 0; i < rows.size(); i++) {
+ // 鑾峰彇姣忎竴琛�
+ List<XWPFTableCell> tableCells = rows.get(i).getTableCells();
+ for (int j = 0; j < tableCells.size(); j++) {
+ // 鑾峰彇姣忎竴鍗曞厓鏍�
+ String text = rows.get(i).getCell(j).getText();
+ log.info("璇诲彇鐨勫唴瀹�:{}", text);
+ list.add(text);
+ }
+ }
+ }
+ // 鏍规嵁鑾峰彇鍒扮殑鍐呭杩涜璧嬪��
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+ processOrder.setIsUpload(1); // 鏄惁涓婁紶
+ processOrder.setSampleS(list.get(1)); // 璇曟牱鍚嶇О
+ processOrder.setEntrustmentTimeS(list.get(3)); // 濮旀墭鏃堕棿
+ processOrder.setSampleTypeS(list.get(5)); // 鍨嬪彿
+ processOrder.setCompanyS(list.get(7)); // 濮旀墭鍗曚綅
+ processOrder.setProductionS(list.get(9)); // 鐢熶骇鍗曚綅
+ processOrder.setPrepareUserS(list.get(11)); // 濮旀墭浜�
+ if (NumberUtil.isNumber(list.get(13))) {
+ processOrder.setSampleNumS(Integer.parseInt(list.get(13))); // 鏍峰搧鏁伴噺
+ }
+ // 鏍峰搧鐘舵��
+ switch (list.get(15)) {
+ case "寰呭鏍�":
+ processOrder.setInsStateS(0);
+ break;
+ case "寰呮楠�":
+ processOrder.setInsStateS(1);
+ break;
+ case "宸叉楠�":
+ processOrder.setInsStateS(4);
+ break;
+ case "閫�鍥�":
+ processOrder.setInsStateS(2);
+ break;
+ case "鎾ら攢":
+ processOrder.setInsStateS(3);
+ break;
+ }
+ if (list.get(17).contains("鈽戞槸Yes")) {
+ processOrder.setIsLeaveS(1); // 鏄惁鐣欐牱
+ } else {
+ processOrder.setIsLeaveS(0); // 鏄惁鐣欐牱
+ }
+
+ if (list.get(19).contains("鈽戝鎵樺崟浣嶅彇鍥�")) {
+ processOrder.setProcessingS(0); // 鏍峰搧澶勭悊鏂瑰紡
+ }
+ if(list.get(19).contains("鈽戝疄楠屽澶勭悊")){
+ processOrder.setProcessingS(1); // 鏍峰搧澶勭悊鏂瑰紡
+ }
+ processOrder.setAppointedS(list.get(21)); // 绾﹀畾鏃堕棿
+ if (list.get(23).contains("鈽戣嚜鍙�")) {
+ processOrder.setSendS(1); // 鏄惁鑷彇
+ }
+ if(list.get(23).contains("鈽戝叾瀹�")) {
+ processOrder.setSendS(0); // 鏄惁鑷彇
+ }
+ // 浠�30寮�濮嬫槸鏍峰搧琛ㄦ牸鏁版嵁 鍒� 鍊间负鍒ゅ畾瑙勫垯缁撴潫
+ ArrayList<String> sampleList = new ArrayList<>();
+ for (int i = 29; i < list.size(); i++) {
+ if (list.get(i).contains("鍒ゅ畾瑙勫垯")) {
+ break;
+ }
+ sampleList.add(list.get(i));
+ }
+ // 鏍峰搧琛ㄦ牸鏁版嵁
+ // 鏍规嵁orderId 灏嗗師鏈殑鍒犻櫎
+ processSampleNewMapper.delete(new LambdaQueryWrapper<ProcessSampleNew>().eq(ProcessSampleNew::getCnasOrderId, id));
+ for (int i = 0; i < sampleList.size(); i += 5) {
+ ProcessSampleNew processSampleNew = new ProcessSampleNew();
+ processSampleNew.setCnasOrderId(id);
+ processSampleNew.setSampleCode(sampleList.get(i + 1));
+ processSampleNew.setInspectionItem(sampleList.get(i + 2));
+ processSampleNew.setMethod(sampleList.get(i + 3));
+ processSampleNew.setRemark(sampleList.get(i + 4));
+ processSampleNewMapper.insert(processSampleNew);
+ }
+ int len = sampleList.size() + 28;
+ // 鍒ゅ畾瑙勫垯
+ processOrder.setPrepareUserUrlS(list.get(len + 4)); // 濮旀墭浜虹鍚�
+ if (StringUtils.isNotEmpty(list.get(len + 6))) {
+ String date = list.get(len + 6).substring(0, list.get(len + 6).indexOf("鏃�") + 1);
+ processOrder.setCreateTimeTwoS(date); // 濮旀墭鏃ユ湡
+ }
+
+ processOrder.setPhoneS(list.get(len + 8)); // 鑱旂郴鏂瑰紡
+ Integer comprehensiveUser = null;
+ if (StringUtils.isNotEmpty(list.get(len + 10))) {
+ List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, list.get(len + 10)));
+ comprehensiveUser = users.get(0).getId();
+ }
+ processOrder.setComprehensiveUser(comprehensiveUser); // 缁煎悎瀹ょ鍚�
+
+ if (StringUtils.isNotEmpty(list.get(len + 12))) {
+ String date = list.get(len + 12).substring(0, list.get(len + 12).indexOf("鏃�") + 1);
+ if (StringUtils.isNotEmpty(date)) {
+ LocalDate parse = LocalDate.parse(date, formatter);
+ processOrder.setComprehensiveTime(parse); // 鎺ユ敹鏃ユ湡
+ }
+ }
+ if (StringUtils.isNotEmpty(list.get(len + 14))) {
+ List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, list.get(len + 14)));
+ processOrder.setIssueUser(users.get(0).getId()); // 棰嗘牱鍛�
+ }
+ if (StringUtils.isNotEmpty(list.get(len + 16))) {
+ String date = list.get(len + 16).substring(0, list.get(len + 16).indexOf("鏃�") + 1);
+ if (StringUtils.isNotEmpty(date)) {
+ LocalDate parse = LocalDate.parse(date, formatter);
+ processOrder.setIssueTime(parse); // 棰嗘牱鏃ユ湡
+ }
+ }
+ processOrderMapper.updateById(processOrder);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ErrorException("涓婁紶澶辫触");
+ }
+ }
+
+ @Override
public ProcessOrderDto getProcessOrder(Integer id) {
- return processOrderMapper.getProcessOrder(id);
+ ProcessOrderDto a = processOrderMapper.getProcessOrder(id);
+ // 濡傛灉涓婁紶浜嗗垯閲囩敤涓婁紶浜嗙殑瀛楁
+ if (Objects.nonNull(a.getIsUpload()) && a.getIsUpload().equals(1)) {
+ a = getNewValue(a);
+ }
+ return a;
+ }
+ public ProcessOrderDto getNewValue(ProcessOrderDto a) {
+ List<ProcessSampleNew> processSampleNews = processSampleNewMapper.selectList(new LambdaQueryWrapper<ProcessSampleNew>()
+ .eq(ProcessSampleNew::getCnasOrderId, a.getId()));
+ a.setSample(a.getSampleS()); // 璇曟牱鍚嶇О
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃�");
+ if (StringUtils.isNotEmpty(a.getEntrustmentTimeS())) {
+ LocalDate parse = LocalDate.parse(a.getEntrustmentTimeS(), dateTimeFormatter);
+ LocalDateTime localDateTime = LocalDateTime.of(parse, LocalTime.MIDNIGHT);
+ a.setCreateTime(localDateTime); // 濮旀墭鏃堕棿
+ }
+ a.setSampleType(a.getSampleTypeS()); // 鍨嬪彿
+ a.setCompany(a.getCompanyS()); // 濮旀墭鍗曚綅
+ a.setProduction(a.getProductionS()); // 鐢熶骇鍗曚綅
+ a.setPrepareUser(a.getPrepareUserS()); // 濮旀墭浜�
+ a.setSampleNum(a.getSampleNumS() + ""); // 鏍峰搧鏁伴噺
+ a.setInsState(a.getInsStateS()); // 鏍峰搧鐘舵��
+ a.setIsLeave(a.getIsLeaveS()); // 鏄惁鐣欐牱
+ a.setProcessing(a.getProcessingS()); // 鏍峰搧澶勭悊鏂瑰紡
+ a.setPhone(a.getPhoneS()); // 鑱旂郴鏂瑰紡
+
+ if (StringUtils.isNotEmpty(a.getAppointedS())) {
+ LocalDate parse = LocalDate.parse(a.getAppointedS(), dateTimeFormatter);
+ a.setAppointed(parse); // 绾﹀畾鏃堕棿
+ }
+ a.setSend(a.getSendS()); // 鎶ュ憡鍙戦�佹柟寮�
+ ArrayList<SampleItemDto> sampleItemDtos = new ArrayList<>();
+ for (ProcessSampleNew b : processSampleNews) {
+ SampleItemDto sampleItemDto = new SampleItemDto();
+ sampleItemDto.setCode(b.getSampleCode());
+ sampleItemDto.setProduct(b.getInspectionItem());
+ sampleItemDto.setStandardMethodList(b.getMethod());
+ sampleItemDto.setRemark(b.getRemark());
+ sampleItemDtos.add(sampleItemDto);
+ }
+ a.setSampleItems(sampleItemDtos);
+ return a;
}
@Override
@@ -77,13 +272,56 @@
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++;
+ final List<InspectionOrderDetail> list;
+ // 濡傛灉璇ユ暟鎹笂浼犱簡鏂囦欢 灏变娇鐢ㄤ笂浼犵殑鏁版嵁
+ if(Objects.nonNull(processOrder.getIsUpload()) && processOrder.getIsUpload().equals(1)) {
+ list = new ArrayList<>();
+ List<ProcessSampleNew> processSampleNews = processSampleNewMapper.selectList(new LambdaQueryWrapper<ProcessSampleNew>()
+ .eq(ProcessSampleNew::getCnasOrderId, id));
+ inspectionOrderExportDto.setSample(processOrder.getSampleS()); // 璇曟牱鍚嶇О
+ inspectionOrderExportDto.setCommissionDateString(processOrder.getEntrustmentTimeS()); // 濮旀墭鏃堕棿
+ inspectionOrderExportDto.setSampleType(processOrder.getSampleTypeS()); // 鍨嬪彿
+ inspectionOrderExportDto.setCompany(processOrder.getCompanyS()); // 濮旀墭鍗曚綅
+ inspectionOrderExportDto.setProduction(processOrder.getProductionS()); // 鐢熶骇鍗曚綅
+ inspectionOrderExportDto.setPrepareUser(processOrder.getPrepareUserS()); // 濮旀墭浜�
+ inspectionOrderExportDto.setSampleNum(processOrder.getSampleNumS() + ""); // 鏍峰搧鏁伴噺
+ inspectionOrderExportDto.setInsState(processOrder.getInsStateS()); // 鏍峰搧鐘舵��
+ // 鏄惁鐣欐牱
+ inspectionOrderExportDto.setIsLeave1(processOrder.getIsLeaveS() == 1 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setIsLeave2(processOrder.getIsLeaveS() == 0 ? "鈽�" : "鈻�");
+ // 鏍峰搧澶勭悊鏂瑰紡
+ inspectionOrderExportDto.setProcessing0(processOrder.getProcessingS() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setProcessing1(processOrder.getProcessingS() == 1 ? "鈽�" : "鈻�");
+ // 绾﹀畾鏃堕棿
+ inspectionOrderExportDto.setAppointedString(processOrder.getAppointedS());
+ // 鏄惁鑷彇
+ inspectionOrderExportDto.setSend0(processOrder.getSendS() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setSend1(processOrder.getSendS() == 1 ? "鈽�" : "鈻�");
+ int i = 1;
+ for(ProcessSampleNew a : processSampleNews) {
+ InspectionOrderDetail inspectionOrderDetail = new InspectionOrderDetail();
+ inspectionOrderDetail.setSampleNumber(a.getSampleCode());
+ inspectionOrderDetail.setTestItem(a.getInspectionItem());
+ inspectionOrderDetail.setTestStandard(a.getMethod());
+ inspectionOrderDetail.setRemark(a.getRemark());
+ inspectionOrderDetail.setIndex(i);
+ list.add(inspectionOrderDetail);
+ i++;
+ }
+ // 濮旀墭浜虹鍚�
+ inspectionOrderExportDto.setPrepareUser(processOrder.getPrepareUserS());
+ // 濮旀墭鏃ユ湡
+ inspectionOrderExportDto.setCommissionDateString(processOrder.getEntrustmentTimeS());
+ // 鑱旂郴鏂瑰紡
+ inspectionOrderExportDto.setPhone(processOrder.getPhoneS());
+ }else {
+ 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()
@@ -133,8 +371,8 @@
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.setSend0(processOrderDto.getSend() != null && processOrderDto.getSend() == 0 ? "鈽�" : "鈻�");
+ inspectionOrderExportDto.setSend1(processOrderDto.getSend() != null && processOrderDto.getSend() == 1 ? "鈽�" : "鈻�");
inspectionOrderExportDto.setProcessing0(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 0 ? "鈽�" : "鈻�");
inspectionOrderExportDto.setProcessing1(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 1 ? "鈽�" : "鈻�");
if (ObjectUtils.isNotEmpty(processOrder.getRule())) {
diff --git a/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml b/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml
index c8f70af..9662709 100644
--- a/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml
+++ b/cnas-process/src/main/resources/mapper/ProcessOrderMapper.xml
@@ -178,7 +178,8 @@
is2.model,
GROUP_CONCAT(DISTINCT ip.inspection_item SEPARATOR ' ') AS product,
-- sm.code standardMethodList,
- '璇曢獙瑕佹眰' standardMethodList,
+-- '璇曢獙瑕佹眰' standardMethodList,
+ ip.method_s standardMethodList,
GROUP_CONCAT(DISTINCT ip.tell SEPARATOR ' ;') AS groupConcatTell,
is2.remark
from ins_order io2
@@ -194,7 +195,8 @@
select is2.sample_code sampleNumber,
is2.model,
GROUP_CONCAT(DISTINCT ip.inspection_item SEPARATOR ',') AS testItem,
- sm.code testStandard,
+-- sm.code testStandard,
+ ip.method_s testStandard,
is2.remark
from ins_sample is2
left join standard_method sm on standard_method_list_id = sm.id
diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml
index ed779d7..ecadd7d 100644
--- a/inspect-server/pom.xml
+++ b/inspect-server/pom.xml
@@ -12,6 +12,10 @@
<artifactId>inspect-server</artifactId>
<dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-amqp</artifactId>
+ </dependency>
<!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
new file mode 100644
index 0000000..fbc26ce
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -0,0 +1,318 @@
+package com.ruoyi.inspect.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.inspect.dto.*;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsOrderTemplate;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.service.InsOrderService;
+import com.ruoyi.inspect.service.InsOrderTemplateService;
+import com.ruoyi.inspect.service.InsProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/insOrder")
+@Api(tags="妫�楠屽崟妯″潡")
+public class InsOrderController {
+
+ private InsOrderService insOrderService;
+
+ private InsProductService insProductService;
+
+ private InsOrderTemplateService insOrderTemplateService;
+
+ //鑾峰彇妫�楠屼笅鍗曟暟鎹�
+ @ApiOperation(value = "鏌ョ湅鎵�灞炲崟浣嶆楠屽崟")
+ @GetMapping("/selectInsOrderParameter")
+ public Result selectInsOrderParameter(Page page, SampleOrderDto sampleOrderDto) {
+ return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
+ }
+
+ //鐢ㄤ簬妫�楠屼笅鍗曞尯鍒煡鐪嬫墍鏈夎鍗曞拰鍙煡鐪嬪悓涓�涓鎵樺崟浣嶇殑璁㈠崟
+ @ApiOperation(value = "鍒ゆ柇褰撳墠瀹㈡埛绱ф�ラ搴︽槸鍚︾敤瀹�")
+ @GetMapping("/hasSendUrgentOrder")
+ public Result hasSendUrgentOrder() {
+ return Result.success(insOrderService.hasSendUrgentOrder());
+ }
+
+ //鐢ㄤ簬妫�楠屼笅鍗曞尯鍒煡鐪嬫墍鏈夎鍗曞拰鍙煡鐪嬪悓涓�涓鎵樺崟浣嶇殑璁㈠崟
+ @ApiOperation(value = "鏌ョ湅鎵�鏈夋楠屽崟")
+ @PostMapping("/selectAllInsOrderParameter")
+ public Result selectAllInsOrderParameter() {
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "鍒嗛厤鎸夐挳")
+ @PostMapping("/upInsOrder")
+ public Result<?> upInsOrder(@RequestBody UpInsOrderDTO upInsOrderDTO) {
+ return Result.success(insOrderService.upInsOrder(upInsOrderDTO));
+ }
+
+ @ApiOperation(value = "涓嬪崟鎸夐挳")
+ @PostMapping("/addInsOrder")
+ public Result<?> addInsOrder(String str) {
+ Map<String, Object> map = JSON.parseObject(str, Map.class);
+ JSONArray jsonArray = JSON.parseArray(map.get("list")+"");
+ List<SampleProductDto> list = jsonArray.toJavaList(SampleProductDto.class);
+ InsOrder insOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), InsOrder.class);
+ List<List<Integer>> pairing = JSON.parseArray(map.get("pairing")+"");
+ List<List<Integer>> fiberPairing = JSON.parseArray(map.get("fiberPairing")+"");//鍏夌氦閰嶇疆閲岀殑鐔旀帴閰嶅
+ return Result.success(insOrderService.addInsOrder(list, insOrder, pairing,fiberPairing));
+ }
+
+ @ApiOperation(value = "鏌ヨ璁㈠崟鏈�闀块璁℃椂闂�")
+ @PostMapping("/selectOrderManDay")
+ public Result<?> selectOrderManDay(Integer id) {
+ int day = insProductService.selectOrderManDay(id);
+ return Result.success("鎴愬姛", LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ }
+
+ @ApiOperation(value = "鏌ヨ妫�楠屼笅鍗曞唴瀹硅鎯�")
+ @PostMapping("/getInsOrder")
+ public Result<?> getInsOrder(Integer orderId) {
+ return Result.success(insOrderService.getInsOrder(orderId));
+ }
+
+ @ApiOperation(value = "瀹℃牳鎸夐挳")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class),
+ @ApiImplicitParam(name = "state", value = "瀹℃牳缁撴灉 1:閫氳繃 2锛氫笉閫氳繃", dataTypeClass = Integer.class)
+ })
+ @PostMapping("/upInsOrderOfState")
+ public Result<?> upInsOrderOfState(@RequestBody InsOrder insOrder) {
+ return Result.success(insOrderService.upInsOrderOfState(insOrder));
+ }
+
+ @ApiOperation(value = "淇濆瓨妫�楠屾ā鏉挎寜閽�")
+ @PostMapping("/addInsOrderTemplate")
+ public Result<?> addInsOrderTemplate(@RequestBody InsOrderTemplate insOrderTemplate) {
+ return Result.success(insOrderTemplateService.addInsOrderTemplate(insOrderTemplate));
+ }
+
+ @ApiOperation(value = "鍒犻櫎妫�楠屾ā鏉挎寜閽�")
+ @PostMapping("/delInsOrderTemplate")
+ public Result<?> delInsOrderTemplate(Integer id) {
+ return Result.success(insOrderTemplateService.delInsOrderTemplate(id));
+ }
+
+ @ApiOperation(value = "鏌ヨ妫�楠屽崟妯℃澘")
+ @GetMapping("/selectInsOrderTemplate")
+ public Result<?> selectInsOrderTemplate(String company) {
+ return Result.success(insOrderTemplateService.selectInsOrderTemplate(company));
+ }
+
+ @ApiOperation(value = "閫氳繃妫�楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭")
+ @PostMapping("/selectInsOrderTemplateById")
+ public Result<?> selectInsOrderTemplateById(Integer id) {
+ return Result.success( insOrderTemplateService.selectInsOrderTemplateById(id),"鎴愬姛");
+ }
+
+ @ApiOperation(value = "閫氳繃妫�楠屽崟鏌ヨ妫�楠屾暟鎹紙鏁版嵁鏌ョ湅锛�")
+ @PostMapping("/selectSampleAndProductByOrderId")
+ public Result<?> selectSampleAndProductByOrderId(@RequestBody Map<String, Object> data) throws Exception {
+ SampleProductDto2 sampleProductDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleProductDto2.class);
+ return Result.success(insOrderService.selectSampleAndProductByOrderId(sampleProductDto));
+ }
+ //鏁版嵁鏌ョ湅涓嬬殑鏌ョ湅璇︽儏锛堝崟鏍瑰瀭鐩寸噧鐑у拰鏉惧绠�
+ @PostMapping("/viewDetails")
+ public Result<?> viewDetails(@RequestBody Map<String, Object> data) {
+ return Result.success(insOrderService.viewDetails(data));
+ }
+
+ @ApiOperation(value = "瀵煎嚭宸叉濮旀墭鍗�")
+ @PostMapping("/exportChecked")
+ public void exportChecked(@RequestBody Map<String, Object> data, HttpServletResponse response) {
+ insOrderService.exportChecked(data,response);
+ }
+
+ @ApiOperation(value = "璐圭敤缁熻鑾峰彇鎬讳环")
+ @PostMapping("/costStatistics2")
+ public Result<?> costStatistics2(@RequestBody Map<String, Object> data) throws Exception {
+ CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
+ return Result.success(insOrderService.costStatistics2(costStatisticsDto));
+ }
+
+ @ApiOperation(value = "鎾ら攢鎸夐挳")
+ @PutMapping("/updateStatus")
+ public Result<?> updateStatus(Integer id) {
+ insOrderService.updateStatus(id);
+ return Result.success();
+ }
+
+ //寰呮鐨勬挙閿�鐨勬煡璇㈠緟妫�椤圭洰
+ @PostMapping("/selectNoProducts")
+ public Result<?> selectNoProducts(@RequestBody Map<String, Object> data,Integer orderId ,String ids) throws Exception {
+ Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+ InsProduct insProduct = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsProduct.class);
+ return Result.success(insProductService.selectNoProducts(page, insProduct,orderId,ids));
+ }
+
+ /**
+ * 鏌ヨ闇�瑕佹挙閿�鐨勬楠岄」鐩牱鍝�
+ * @param orderId
+ * @return Map<String, Object>
+ */
+ @GetMapping("/selectSampleByOrderId")
+ public Result<?> selectSampleByOrderId(Integer orderId) {
+ return Result.success(insProductService.selectSampleByOrderId(orderId));
+ }
+
+ /**
+ * 鏌ヨ妫�楠岄」鐩�
+ * @param sampleId
+ * @return Map<String, Object>
+ */
+ @GetMapping("/selectProductsBySampleId")
+ public Result<?> selectProductsBySampleId(Integer sampleId,Integer orderId) {
+ return Result.success(insProductService.selectProductsBySampleId(sampleId,orderId));
+ }
+
+ /**
+ * 鏌ヨ妫�楠岄」鐩负娓╁害寰幆鐨勬楠屾鏁�
+ */
+ @GetMapping("/selectTemperatureByProductId")
+ public Result selectTemperatureByproductId(Integer productId) {
+ return Result.success(insProductService.selectTemperatureByProductId(productId));
+ }
+
+ /**
+ * 鏌ヨ娓╁害寰幆鐨勬鏁颁竴鑷寸殑娓╁害鐐�
+ */
+ @GetMapping("/selectTemperatureNumberByProductId")
+ public Result selectTemperatureNumberByproductId(Integer parentId,String inspectionItem) {
+ return Result.success(insProductService.selectTemperatureNumberByProductId(parentId,inspectionItem));
+ }
+
+ /**
+ * 鎾ら攢
+ * @param data
+ * @return
+ */
+ @PostMapping("/revoke")
+ public Result<?> revoke(@RequestBody Map<String, Object> data) {
+ insProductService.revoke(data);
+ return Result.success();
+ }
+
+ /**
+ * 鏌ヨ鎾ら攢瀹℃牳鐨勬牱鍝�
+ * @param orderId
+ * @param
+ * @return
+ */
+ @GetMapping("/revokeReviewSample")
+ public Result<?> revokeReviewSample(Integer orderId) {
+ return Result.success(insProductService.revokeReviewSample(orderId));
+ }
+
+
+ /**
+ * 鎾ら攢鐨勫惊鐜鏁颁竴鑷寸殑娓╁害鐐�
+ * @return
+ */
+ @GetMapping("/revokeReviewConsistentByProductId")
+ public Result<?> revokeReviewConsistentByProductId(Integer parentId,String inspectionItem){
+ return Result.success(insProductService.revokeReviewConsistentByProductId(parentId,inspectionItem));
+ }
+
+ /**
+ * 鎾ら攢鐨勬俯搴﹀惊鐜殑寰幆娆℃暟
+ * @return
+ */
+ @GetMapping("/revokeReviewTemperatureByProductId")
+ public Result<?> revokeReviewTemperatureByProductId(Integer productId){
+ return Result.success(insProductService.revokeReviewTemperatureByProductId(productId));
+ }
+
+ /**
+ * 鏌ヨ鎾ら攢瀹℃牳 娓╁害寰幆
+ */
+ @GetMapping("/revokeReviewProduct")
+ public Result<?> revokeReviewProduct(Integer orderId,Integer sampleId){
+ return Result.success(insProductService.revokeReviewProduct(orderId,sampleId));
+ }
+
+
+
+ /**
+ * 鎾ら攢瀹℃牳閫氳繃
+ * @param orderId
+ * @return
+ */
+ @GetMapping("/revocationPassed")
+ public Result<?> revocationPassed(Integer orderId){
+ insProductService.revocationPassed(orderId);
+ return Result.success();
+ }
+
+ /**
+ * 鎾ら攢瀹℃牳鍙栨秷
+ * @param orderId
+ * @return
+ */
+ @GetMapping("/revocationCancel")
+ public Result<?> revocationCancel(Integer orderId){
+ insProductService.revocationCancel(orderId);
+ return Result.success();
+ }
+
+
+ @ApiOperation(value = "寰呮鐨勬挙閿�")
+ @PutMapping("/updateInspected")
+ public Result<?> updateInspected(Integer orderId,String ids){
+ insProductService.updateInspected(orderId,ids);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鎾ら攢瀹℃牳鎸夐挳")
+ @PostMapping("/checkUpdate")
+ public Result<?> checkUpdate(Integer orderId,Integer state){
+ insProductService.checkUpdate(orderId,state);
+ return Result.success();
+ }
+
+ @ApiOperation(value = "鏍囩鎵撳嵃鎸夐挳")
+ @PostMapping("/labelPrinting")
+ public Result<?> labelPrinting(String ids) {
+ return Result.success(insOrderService.labelPrinting(ids));
+ }
+
+ @ApiOperation(value = "鏌ョ湅璐圭敤缁熻鍒楄〃")
+ @PostMapping("/costStatistics")
+ public Result<?> costStatistics(@RequestBody Map<String, Object> data) throws Exception {
+ Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+ CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class);
+ return Result.success(insOrderService.costStatistics(page, costStatisticsDto));
+ }
+
+ @ApiOperation(value = "鏌ョ湅缁撴灉鎸夐挳(娓╁害寰幆)")
+ @PostMapping("/getInsOrderTemList")
+ public Result getInsOrderTemList(@RequestBody Map<String, Object> data) {
+ return Result.success(insOrderService.getInsOrderTemList(data));
+ }
+
+ /**
+ * 鑾峰彇鐔旀帴鏁伴噺
+ */
+ @GetMapping("/permute")
+ public Result permute(Integer num, Boolean isValue) {
+ return Result.success(insOrderService.permute(num,isValue));
+ }
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
new file mode 100644
index 0000000..e7ec846
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WarehouseController.java
@@ -0,0 +1,102 @@
+package com.ruoyi.inspect.controller;
+
+
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.pojo.Warehouse;
+import com.ruoyi.inspect.pojo.WarehouseShelf;
+import com.ruoyi.inspect.service.WarehouseService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/warehouse")
+@RestController
+@AllArgsConstructor
+@Api(tags = "鏍峰搧绠$悊")
+public class WarehouseController {
+
+ private WarehouseService warehouseService;
+
+ @PostMapping("/addWarehouse")
+ @ApiOperation("娣诲姞浠撳簱")
+ public Result addWarehouse(String name) {
+ return Result.success(warehouseService.addWarehouse(name));
+ }
+
+ @GetMapping("/selectWarehouse")
+ @ApiOperation("鏌ヨ浠撳簱")
+ public Result selectWarehouse() {
+ return Result.success(warehouseService.selectWarehouse());
+ }
+
+ @PostMapping("/addShelf")
+ @ApiOperation("娣诲姞璐ф灦")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "name", name = "鍚嶇О", dataTypeClass = String.class),
+ @ApiImplicitParam(value = "row", name = "琛�", dataTypeClass = Integer.class),
+ @ApiImplicitParam(value = "col", name = "鍒�", dataTypeClass = Integer.class),
+ @ApiImplicitParam(value = "warehouseId", name = "浠撳簱id", dataTypeClass = Integer.class)
+ })
+
+ public Result addShelf(@RequestBody WarehouseShelf warehouseShelf) {
+ return Result.success(warehouseService.addShelf(warehouseShelf));
+ }
+
+ @PostMapping("/delWarehouse")
+ @ApiOperation("鍒犻櫎浠撳簱")
+ public Result delWarehouse(Integer id) {
+ return Result.success(warehouseService.delWarehouse(id));
+ }
+
+ @PostMapping("/upWarehouse")
+ @ApiOperation("淇敼浠撳簱")
+ public Result upWarehouse(@RequestBody Warehouse warehouse) {
+ return Result.success(warehouseService.upWarehouse(warehouse));
+ }
+
+ @PostMapping("/delShelf")
+ @ApiOperation("鍒犻櫎璐ф灦")
+ public Result delShelf(Integer id) {
+ return Result.success(warehouseService.delShelf(id));
+ }
+
+ @PostMapping("/upShelf")
+ @ApiOperation("淇敼璐ф灦")
+ public Result upShelf(@RequestBody WarehouseShelf warehouseShelf) {
+ return Result.success(warehouseService.upShelf(warehouseShelf));
+ }
+
+ @GetMapping("/getWarehouse")
+ @ApiOperation("鏌ヨ璐ф灦涓嬬殑瀛樻斁淇℃伅")
+ public Result getWarehouse(Integer shelfId) {
+ return Result.success(warehouseService.getWarehouse(shelfId));
+ }
+
+ @PostMapping("/inWarehouse")
+ @ApiOperation("鏍峰搧鍏ュ簱")
+ public Result inWarehouse(String trees, String sampleCode) {
+ return Result.success(warehouseService.inWarehouse(trees, sampleCode));
+ }
+
+ @PostMapping("/outWarehouse")
+ @ApiOperation("鏍峰搧鍑哄簱")
+ public Result outWarehouse(String sampleCode) {
+ return Result.success(warehouseService.outWarehouse(sampleCode));
+ }
+
+ @PostMapping("/getSampleRecord")
+ @ApiOperation("鏌ヨ鏍峰搧璇︾粏璁板綍")
+ public Result getSampleRecord(Integer id) {
+ return Result.success(warehouseService.getSampleRecord(id));
+ }
+
+ @PostMapping("/searchSampleId")
+ @ApiOperation("閫氳繃鏍峰搧缂栧彿杩涜妫�绱�")
+ public Result searchSampleId(String sampleCode) {
+ return Result.success(warehouseService.searchSampleId(sampleCode));
+ }
+
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ApproveConfigDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ApproveConfigDTO.java
new file mode 100644
index 0000000..bb80c4f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ApproveConfigDTO.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsReportApproveConfig;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class ApproveConfigDTO implements Serializable {
+
+ /**
+ * 閰嶇疆鍒楄〃
+ */
+ List<InsReportApproveConfig> configList;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/BatchApprovalReportDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/BatchApprovalReportDTO.java
new file mode 100644
index 0000000..900d535
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/BatchApprovalReportDTO.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 涓�閿鎵筪to
+ */
+@Data
+public class BatchApprovalReportDTO implements Serializable {
+
+ /**
+ * 閫変腑鐨勬姤鍛奿d鍒楄〃
+ */
+ List<Integer> ids;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/BushingDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/BushingDto.java
new file mode 100644
index 0000000..3019aab
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/BushingDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsBushing;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class BushingDto extends InsBushing {
+
+ private List<FiberDto> fiber;
+
+ private List<FibersDto> fibers;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/CommissionFeesDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/CommissionFeesDto.java
new file mode 100644
index 0000000..0b6aa70
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/CommissionFeesDto.java
@@ -0,0 +1,42 @@
+package com.ruoyi.inspect.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+
+@Data
+@ColumnWidth(30)
+public class CommissionFeesDto {
+ @ExcelProperty("鏃ユ湡")
+ private String createTime;
+
+ @ExcelProperty("妫�楠岀紪鍙�")
+ private String entrustCode;
+
+ @ExcelProperty("鏍峰搧鍚嶇О")
+ private String sampleName;
+
+ @ExcelProperty("瑙勬牸鍨嬪彿")
+ private String sampleModel;
+
+ @ExcelProperty("鏍峰搧鏁伴噺")
+ private String sampleNum;
+
+ @ExcelProperty("鎬讳环")
+ private String totalPrice;
+
+ @ExcelProperty("璇曢獙椤圭洰")
+ private String insItem;
+
+ @ExcelProperty("鐢熶骇鍗曚綅")
+ private String production;
+
+ @ExcelProperty("濮旀墭鍗曚綅")
+ private String company;
+
+ @ExcelProperty("濮旀墭浜�")
+ private String custom;
+
+ @ExcelProperty("宸ョ▼鍚嶇О")
+ private String engineering;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/CostStatisticsDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/CostStatisticsDto.java
new file mode 100644
index 0000000..92e2cb2
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/CostStatisticsDto.java
@@ -0,0 +1,65 @@
+package com.ruoyi.inspect.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class CostStatisticsDto {
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","鏃ユ湡"})
+ private LocalDateTime createTime;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","妫�楠岀紪鍙�"})
+ private String entrustCode;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鍚嶇О"})
+ private String sample;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","瑙勬牸鍨嬪彿"})
+ private String model;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鏁伴噺"})
+ private Integer num;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鎬讳环"})
+ private BigDecimal price;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","璇曢獙椤圭洰"})
+ private String inspectionItem;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭鍗曚綅"})
+ private String company;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭浜�"})
+ private String name;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鐢熶骇鍗曚綅"})
+ private String production;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","宸ョ▼鍚嶇О"})
+ private String engineering;
+
+ @ExcelIgnore
+ private Integer createUser;
+
+ @ExcelIgnore
+ private Integer insSampleId;
+
+ @ExcelIgnore
+ private Double cost;//宸ユ椂
+
+ @TableField(exist = false,select = false)
+ @ExcelIgnore
+ private String dates;
+ @ExcelIgnore
+ private String laboratory;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelChecked.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelChecked.java
new file mode 100644
index 0000000..a72c4fb
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelChecked.java
@@ -0,0 +1,59 @@
+package com.ruoyi.inspect.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.converters.localdate.LocalDateStringConverter;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class ExcelChecked {
+ @ExcelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ExcelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ExcelProperty("濂楃鑹叉爣")
+ private String bushColor;
+
+ @ExcelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ @ExcelProperty("鍏夌氦鑹叉爣")
+ private String color;
+
+ @ExcelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ @ExcelProperty("妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+
+ @ExcelProperty("璇曢獙瑕佹眰")
+ private String tell;
+
+ @ExcelProperty("妫�楠屽��")
+ private String lastValue;
+
+ @ExcelProperty("缁撴灉鍒ゅ畾")
+ private String insResult;
+
+ @ExcelProperty("鍗曚綅")
+ private String unit;
+
+ @ExcelProperty("妫�楠屼汉")
+ private String checkName;
+
+ @ExcelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ExcelProperty("鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ExcelProperty("涓嬪崟浜�")
+ private String customName;
+
+ @ExcelProperty(value = "涓嬪崟鏃堕棿",converter = LocalDateStringConverter.class)
+ private LocalDate createTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelDto.java
new file mode 100644
index 0000000..ca22b47
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ExcelDto implements Serializable {
+
+ Integer r;
+
+ Integer c;
+
+ Integer mc;
+
+ ExcelV v;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelMc.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelMc.java
new file mode 100644
index 0000000..e6eb344
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelMc.java
@@ -0,0 +1,16 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class ExcelMc {
+
+ Integer r;
+
+ Integer c;
+
+ Integer rs;
+
+ Integer cs;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelPs.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelPs.java
new file mode 100644
index 0000000..16d0e6f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelPs.java
@@ -0,0 +1,9 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class ExcelPs {
+ String value;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelV.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelV.java
new file mode 100644
index 0000000..48688f3
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ExcelV.java
@@ -0,0 +1,22 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class ExcelV {
+
+ String v;
+
+ String ff;
+
+ String fc;
+
+ String fs;
+
+ String ht;
+
+ ExcelMc mc;
+
+ ExcelPs ps;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/FactoryDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FactoryDto.java
new file mode 100644
index 0000000..a5b36d9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FactoryDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FactoryDto {
+
+ private String code = "[1]";
+
+ private String label;
+
+ private String value;
+
+ private List<LaboratoryDto> children;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/FiberDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FiberDto.java
new file mode 100644
index 0000000..02a4c44
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FiberDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsFiber;
+import com.ruoyi.inspect.pojo.InsProduct;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FiberDto extends InsFiber {
+
+ private List<InsProduct> productList;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/FibersDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FibersDto.java
new file mode 100644
index 0000000..e215a4d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/FibersDto.java
@@ -0,0 +1,16 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsFibers;
+import com.ruoyi.inspect.pojo.InsProduct;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FibersDto extends InsFibers {
+
+ private List<FiberDto> fiber;
+
+ private List<InsProduct> productList;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java
new file mode 100644
index 0000000..8bb9834
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/HistoryDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.WarehouseHistory;
+import lombok.Data;
+
+@Data
+public class HistoryDto extends WarehouseHistory {
+
+ private String createUserName;
+
+ private String warehouseCode;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOderDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOderDto.java
new file mode 100644
index 0000000..92de0a4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOderDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author gaoaoy
+ * @version 1.0.0
+ * @create 2024/3/14 16:44
+ **/
+@Data
+public class InsOderDto {
+
+ private Integer id;
+ private Integer orderName;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private LocalDateTime date;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanCountDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanCountDTO.java
new file mode 100644
index 0000000..bfccbd1
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanCountDTO.java
@@ -0,0 +1,36 @@
+package com.ruoyi.inspect.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏌ヨ鏃堕棿鑼冨洿鍐呮楠屼换鍔¤鍒掓暟閲廌TO
+ */
+@Data
+public class InsOrderPlanCountDTO implements Serializable {
+
+ /**
+ * 瀛愬疄楠屽
+ */
+ @ApiModelProperty(value = "瀛愬疄楠屽")
+ private String sonLaboratory;
+
+ /**
+ * 寮�濮嬩笅鍙戞椂闂�
+ */
+ @ApiModelProperty(value = "寮�濮嬩笅鍙戞椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime startTime;
+
+ /**
+ * 缁撴潫涓嬪彂鏃堕棿
+ */
+ @ApiModelProperty(value = "缁撴潫涓嬪彂鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime endTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java
new file mode 100644
index 0000000..827bb90
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java
@@ -0,0 +1,43 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class InsOrderPlanDTO implements Serializable {
+
+ @ApiModelProperty("妫�楠屼换鍔′富閿甶d")
+ private Long insSampleId;
+
+ @ApiModelProperty("鐢ㄦ埛id")
+ private Long userId;
+
+ @ApiModelProperty("鐘舵��(妫�楠屽鐞�)")
+ private Integer state;
+
+ @ApiModelProperty("瀛愬疄楠屽")
+ private String sonLaboratory;
+
+ @ApiModelProperty("妫�楠岀姸鎬�")
+ private String insState;
+
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("鏍峰搧澶х被")
+ private String sampleType;
+
+ @ApiModelProperty("涓嬪彂鏃堕棿鑼冨洿")
+ private List<LocalDateTime> sendTimeRange;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductDto.java
new file mode 100644
index 0000000..ec34dcf
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductDto.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.dto;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InsProductDto {
+
+ private List<Integer> ids;
+
+ private String temperature;
+
+ private String humidity;
+
+ private Integer insOrderId;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductResultDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductResultDTO.java
new file mode 100644
index 0000000..215890f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductResultDTO.java
@@ -0,0 +1,30 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProductResult;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class InsProductResultDTO extends InsProductResult implements Serializable {
+
+ /**
+ * 璁㈠崟id
+ */
+ @ApiModelProperty("璁㈠崟id")
+ private Integer orderId;
+
+ /**
+ *鏍峰搧id
+ */
+ @ApiModelProperty("鏍峰搧id")
+ private Integer sampleId;
+
+ /**
+ *鍘熷璁板綍妯℃澘鍚嶇О
+ */
+ @ApiModelProperty("鍘熷璁板綍妯℃澘鍚嶇О")
+ private String templateName;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsulatingDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsulatingDto.java
new file mode 100644
index 0000000..d4884c5
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsulatingDto.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InsulatingDto {
+
+ private Integer standardMethodListId;
+
+ private Integer num;
+
+ private List<InsProduct> insProduct;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/LaboratoryDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/LaboratoryDto.java
new file mode 100644
index 0000000..59d088d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/LaboratoryDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LaboratoryDto {
+
+ private String code = "[2]";
+
+ private String label;
+
+ private String value;
+
+ private List<SampleTypeDto> children;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ModelDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ModelDto.java
new file mode 100644
index 0000000..5ed39bf
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ModelDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class ModelDto {
+
+ private String code = "[5]";
+
+ private String label;
+
+ private String value;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderThingDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderThingDto.java
new file mode 100644
index 0000000..5829a16
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderThingDto.java
@@ -0,0 +1,48 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class OrderThingDto {
+
+ @ApiModelProperty("涓婚敭id")
+ private Integer id;
+
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("濮旀墭浜哄悕绉�")
+ private String custom;
+
+ @ApiModelProperty("濮旀墭鍗曚綅")
+ private String company;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private Double sampleNum;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("妫�楠屽崟缁撹")
+ private String insResult;
+
+ @ApiModelProperty("涓嬪崟鏃堕棿")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("妫�楠岄」鐩�")
+ private List<ProductThingDto> products;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductDto.java
new file mode 100644
index 0000000..b7e58dd
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductDto.java
@@ -0,0 +1,10 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class ProductDto {
+
+ private String name;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductResultDto2.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductResultDto2.java
new file mode 100644
index 0000000..f3beda5
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductResultDto2.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ProductResultDto2 extends InsProduct {
+
+ @ApiModelProperty("妫�楠岃澶�")
+ private String equipValue;
+
+ @ApiModelProperty("妫�楠屼汉")
+ private String updateUserName;
+
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductThingDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductThingDto.java
new file mode 100644
index 0000000..31efd4f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductThingDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProductThingDto {
+
+ private Integer productId;
+
+ private String inspectionItem;
+
+ private String lastValue;
+
+ private Integer insResult;
+
+ private List<productResultDto> productResults;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java
new file mode 100644
index 0000000..cc84162
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java
@@ -0,0 +1,29 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsReport;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class ReportPageDto extends InsReport implements Serializable {
+
+ @ApiModelProperty(value = "鏄惁宸蹭笂浼�(0:鏈笂浼狅紝1:宸蹭笂浼�)")
+ private Integer isUpload;
+
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ private String writeUserName;
+
+ private String ratifyUser;
+
+ private String examineUser;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿鑼冨洿")
+ private List<LocalDateTime> createTimeRange;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleDto.java
new file mode 100644
index 0000000..68cc34a
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleDto {
+
+ private String code = "[4]";
+
+ private String label;
+
+ private String value;
+
+ private List<ModelDto> children;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
new file mode 100644
index 0000000..d9df360
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleOrderDto.java
@@ -0,0 +1,66 @@
+package com.ruoyi.inspect.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.inspect.pojo.InsOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author gaoaoy
+ * @version 1.0.0
+ * @create 2024/3/14 18:46
+ **/
+@Data
+public class SampleOrderDto extends InsOrder {
+
+ @ApiModelProperty("妫�楠屽璞�")
+ private String sampleType;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sampleName;
+
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String sampleModel;
+
+ private String assign;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private Integer sampleNum;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("妫�楠岃繘搴�%")
+ private String insProgress;
+
+ @ApiModelProperty("鎶ュ憡id")
+ private String reportId;
+
+ @ApiModelProperty("鏄惁鎵瑰噯")
+ private Integer isRatify;
+
+ @TableField("`url`")
+ private String url;
+
+ private String urlS;
+
+ private String name;
+
+ /**
+ * 鐢ㄤ簬鍒ゆ柇鍗曞瓙鏄惁璁ら
+ */
+ private Integer inspectId;
+
+ /**
+ * 涓嬭浇pdf鍦板潃
+ */
+ private String tempUrlPdf;
+
+ /**
+ * 鏃堕棿鑼冨洿
+ */
+ private List<String> startAndEndTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDTODL.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDTODL.java
new file mode 100644
index 0000000..81e419f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDTODL.java
@@ -0,0 +1,70 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鏁版嵁鏌ョ湅瀵硅薄锛堢數鍔涜瘯楠屽锛�
+ */
+@Data
+public class SampleProductDTODL implements Serializable {
+
+ private Integer id;
+
+ private Integer insProductId;
+
+ @ApiModelProperty(name = "濮旀墭鍗曞彿")
+ private String entrustCode;
+
+ @ApiModelProperty(name = "鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty(name = "鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty(name = "鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty(name = "妫�楠岄」")
+ private String inspectionItem;
+
+ @ApiModelProperty(name = "妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+
+ @ApiModelProperty(name = "妫�楠岀粨鏋�")
+ private String lastValue;
+
+ @ApiModelProperty(name = "缁撴灉鍒ゅ畾")
+ private Integer insResult;
+
+ @ApiModelProperty(name = "鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty(name = "璇曢獙瑕佹眰")
+ private String tell;
+
+ @ApiModelProperty(name = "妫�楠屼汉")
+ private String checkName;
+
+ @ApiModelProperty(name = "妫�楠屾棩鏈�")
+ private String checkTime;
+
+ @ApiModelProperty(name = "璇曢獙瀹ゅ悕绉�")
+ private String sonLaboratory;
+
+// @ApiModelProperty(value = 5, name = "鏍峰搧鐘舵��")
+ private Integer insState;
+
+ private String inspectionItemType;
+
+// @ApiModelProperty(value = 11, name = "妫�楠屽�肩被鍨�")
+ private String inspectionValueType;
+
+ private String equipValue;
+
+ @ApiModelProperty(value = "妫�楠岃繃绋嬪��")
+ private String insValue;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java
new file mode 100644
index 0000000..ba9bb95
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto.java
@@ -0,0 +1,25 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsSample;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleProductDto extends InsSample {
+
+ private List<InsProduct> insProduct;
+
+ private List<BushingDto> bushing;
+
+ private List<SampleProductDto> childSampleList;
+
+ private InsulatingDto insulating;
+
+ private SheathDto sheath;
+
+ //妫�楠屼汉
+ private String checkName;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto2.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto2.java
new file mode 100644
index 0000000..97aa5fd
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto2.java
@@ -0,0 +1,77 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SampleProductDto2 implements Serializable {
+
+ private Integer id;
+ private Integer insProductId;
+
+ @ApiModelProperty("濮旀墭鍗曞彿")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("绠″鑹叉爣")
+ private String bushColor;
+
+ @ApiModelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ @ApiModelProperty("鍏夌氦鑹叉爣")
+ private String color;
+
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private String lastValue;
+
+ @ApiModelProperty("缁撴灉鍒ゅ畾")
+ private Integer insResult;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("璇曢獙瑕佹眰")
+ private String tell;
+
+ @ApiModelProperty("妫�楠屼汉")
+ private String checkName;
+
+ @ApiModelProperty("妫�楠屾棩鏈�")
+ private String checkTime;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("璇曢獙瀹ゅ悕绉�")
+ private String sonLaboratory;
+
+// @ApiModelProperty(value = 5, "鏍峰搧鐘舵��")
+ private Integer insState;
+
+ private String inspectionItemType;
+
+// @ApiModelProperty(value = 11, "妫�楠屽�肩被鍨�")
+ private String inspectionValueType;
+
+ private String equipValue;
+
+ @ApiModelProperty(value = "妫�楠岃繃绋嬪��")
+ private String insValue;
+
+ private Integer insSampleId;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto3.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto3.java
new file mode 100644
index 0000000..a7f62ab
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductDto3.java
@@ -0,0 +1,26 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsSample;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleProductDto3 extends InsSample {
+
+ private List<InsProduct> insProduct;
+
+ private List<BushingDto> bushing;
+
+ private List<SampleProductDto3> childSampleList;
+
+ private InsulatingDto insulating;
+
+ private SheathDto sheath;
+ private String code;
+ private String ioSampleType;
+
+ private Integer isLeave;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleTypeDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleTypeDto.java
new file mode 100644
index 0000000..9a85ac7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleTypeDto.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleTypeDto {
+
+ private String code = "[3]";
+
+ private String label;
+
+ private String value;
+
+ private List<SampleDto> children;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SheathDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SheathDto.java
new file mode 100644
index 0000000..646e9d9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SheathDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SheathDto {
+
+ private Integer standardMethodListId;
+
+ private List<InsProduct> insProduct;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/TasksShowDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/TasksShowDto.java
new file mode 100644
index 0000000..f93a6be
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/TasksShowDto.java
@@ -0,0 +1,66 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class TasksShowDto {
+
+ /**
+ * 濮旀墭鍗曞彿
+ */
+ private String entrustCode;
+
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String sample;
+
+ /**
+ * 濮旀墭鍗曚綅
+ */
+ private String company;
+
+ /**
+ * 濮旀墭鏃堕棿
+ */
+ private String createTime;
+
+ /**
+ * 娴嬭瘯
+ */
+ private String state;
+
+
+ /**
+ * 澶嶆牳
+ */
+ private String insState;
+
+ /**
+ * 鎶ュ憡
+ */
+ private String code;
+
+ /**
+ * 瀹℃牳
+ */
+ private String isExamine;
+
+ /**
+ * 鎵瑰噯
+ */
+ private String isRatify;
+
+
+ /**
+ * 妫�娴嬩汉
+ */
+ private String name;
+
+ /**
+ * 绱ф�ョ▼搴�
+ */
+ private String type;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/TemperatureCycling.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/TemperatureCycling.java
new file mode 100644
index 0000000..d06e004
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/TemperatureCycling.java
@@ -0,0 +1,84 @@
+package com.ruoyi.inspect.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+@Data
+public class TemperatureCycling {
+ @ExcelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ExcelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ExcelProperty("濂楃鑹叉爣")
+ private String bushColor;
+
+ @ExcelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ @ExcelProperty("鍏夌氦缂栧彿")
+ private String color;
+
+ @ExcelProperty("寰幆娆℃暟")
+ private String inspectionItem;
+
+ @ExcelProperty("娓╁害鐐�")
+ private String inspectionItemSubclass;
+
+ @ExcelProperty("琛板噺绯绘暟1310")
+ private String attenuationCoefficient1310;
+
+ @ExcelProperty("琛板噺宸�1")
+ private String attenuationDifference1;
+
+ @ExcelProperty("琛板噺绯绘暟1550")
+ private String attenuationCoefficient1550;
+
+ @ExcelProperty("琛板噺宸�2")
+ private String attenuationDifference2;
+
+ @ExcelProperty("琛板噺绯绘暟1625")
+ private String attenuationCoefficient1625;
+
+ @ExcelProperty("琛板噺宸�3")
+ private String attenuationDifference3;
+
+ @ExcelProperty("琛板噺1383")
+ private String attenuationCoefficient1383;
+
+ @ExcelProperty("琛板噺宸�4")
+ private String attenuationDifference4;
+
+ @ExcelProperty("琛板噺1490")
+ private String attenuationCoefficient1490;
+
+ @ExcelProperty("琛板噺宸�5")
+ private String attenuationDifference5;
+
+
+ @ExcelProperty("琛板噺宸甅ax")
+ private String attenuationDifferenceMax;
+
+ @ExcelProperty("鏄惁鍚堟牸")
+ private String insResult;
+
+
+ @ExcelProperty("妫�楠屼汉")
+ private String checkName;
+
+ @ExcelProperty(value = "妫�娴嬫椂闂�")
+ private LocalDate insTime;
+
+ @TableField(exist = false)
+ @ExcelIgnore
+ private LocalDate sendTime;
+
+ @TableField(exist = false)
+ @ExcelIgnore
+ private String sample;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnInsProductsDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnInsProductsDTO.java
new file mode 100644
index 0000000..1b3f053
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnInsProductsDTO.java
@@ -0,0 +1,51 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class UnInsProductsDTO {
+
+ /**
+ * 寮�濮嬫椂闂�
+ */
+ @ApiModelProperty(value = "寮�濮嬫椂闂�")
+ private String startDate;
+
+ /**
+ * 缁撴潫鏃堕棿
+ */
+ @ApiModelProperty(value = "缁撴潫鏃堕棿")
+ private String endDate;
+
+ /**
+ * 濮旀墭缂栧彿
+ */
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ /**
+ * 妫�楠岀姸鎬�
+ */
+ @ApiModelProperty(value = "妫�楠岀姸鎬�")
+ private String insState;
+
+ /**
+ * 鏍峰搧缂栧彿
+ */
+ @ApiModelProperty(value = "鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ /**
+ * 鏍峰搧澶х被/鏍峰搧鍚嶇О
+ */
+ @ApiModelProperty(value = "鏍峰搧澶х被/鏍峰搧鍚嶇О")
+ private String sample;
+
+ /**
+ * 瀛愬疄楠屽
+ */
+ @ApiModelProperty(value = "瀛愬疄楠屽")
+ private String sonLaboratory;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnPassPageDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnPassPageDto.java
new file mode 100644
index 0000000..d188fe5
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UnPassPageDto.java
@@ -0,0 +1,15 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsUnPass;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author 鏈变匠鍚�
+ * @date 2024/5/8 12:38
+ */
+@Data
+public class UnPassPageDto extends InsUnPass implements Serializable {
+
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/UpInsOrderDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UpInsOrderDTO.java
new file mode 100644
index 0000000..c8da5f7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/UpInsOrderDTO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class UpInsOrderDTO implements Serializable {
+
+ @ApiModelProperty(value = "璁㈠崟id")
+ private Integer orderId;
+
+ @ApiModelProperty(value = "鏍峰搧id")
+ private Integer sampleId;
+
+ @ApiModelProperty(value = "绾﹀畾鏃堕棿")
+ private String appointed;
+
+ @ApiModelProperty(value = "鎸囨淳浜哄憳")
+ private List<Integer> userIdList;
+
+ @ApiModelProperty(value = "瀛愯瘯楠屽")
+ private String sonLaboratory;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java
new file mode 100644
index 0000000..59f3939
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseCellAndSampleDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.pojo.WarehouseCell;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WarehouseCellAndSampleDto extends WarehouseCell {
+
+ private List<InsSample> samples;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java
new file mode 100644
index 0000000..180e741
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.Warehouse;
+import com.ruoyi.inspect.pojo.WarehouseShelf;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WarehouseDto extends Warehouse {
+
+ List<WarehouseShelf> warehouseShelfList;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseHistoryDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseHistoryDto.java
new file mode 100644
index 0000000..87af8b2
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WarehouseHistoryDto.java
@@ -0,0 +1,14 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.pojo.WarehouseHistory;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WarehouseHistoryDto extends WarehouseHistory {
+
+ List<InsSample> insSamples;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkTimeDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkTimeDTO.java
new file mode 100644
index 0000000..ace7261
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkTimeDTO.java
@@ -0,0 +1,79 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsProductResult;
+import com.ruoyi.inspect.pojo.InsSample;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 宸ユ椂璁$畻鏁版嵁浼犺緭瀵硅薄
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class WorkTimeDTO implements Serializable {
+
+ /**
+ *鐢ㄦ埛id
+ */
+ @ApiModelProperty("鐢ㄦ埛id")
+ Integer userId;
+
+ /**
+ *璁㈠崟涓讳綋
+ */
+ @ApiModelProperty("璁㈠崟涓讳綋")
+ InsOrder insOrder;
+
+ /**
+ *鏍峰搧淇℃伅
+ */
+ @ApiModelProperty("鏍峰搧淇℃伅")
+ InsSample insSample;
+
+ /**
+ *妫�楠岄」淇℃伅
+ */
+ @ApiModelProperty("妫�楠岄」淇℃伅")
+ InsProduct insProduct;
+
+ /**
+ *鐖舵楠岄」淇℃伅
+ */
+ @ApiModelProperty("鐖舵楠岄」淇℃伅")
+ InsProduct parentInsProduct;
+
+ /**
+ *褰撳墠鏍峰搧id
+ */
+ @ApiModelProperty("褰撳墠鏍峰搧id")
+ Integer currentSampleId;
+
+ /**
+ *寰幆key,褰撳墠妫�楠岄」id
+ */
+ @ApiModelProperty("寰幆key,褰撳墠妫�楠岄」id")
+ String insProductId;
+
+ /**
+ *鏃х殑妫�楠岀粨鏋滃垪琛�
+ */
+ @ApiModelProperty("鏃х殑妫�楠岀粨鏋滃垪琛�")
+ List<InsProductResult> oldResults;
+
+ /**
+ *鏂扮殑妫�楠岀粨鏋�
+ */
+ @ApiModelProperty("鏂扮殑妫�楠岀粨鏋�")
+ InsProductResult newResult;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/productResultDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/productResultDto.java
new file mode 100644
index 0000000..de6c4e7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/productResultDto.java
@@ -0,0 +1,16 @@
+package com.ruoyi.inspect.dto;
+
+import lombok.Data;
+
+@Data
+public class productResultDto {
+
+ private Integer id;
+
+ private String insValue;
+
+ private Integer insResult;
+
+ private String remark;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/excel/FiberRibboGeometricalParameterExcelData.java b/inspect-server/src/main/java/com/ruoyi/inspect/excel/FiberRibboGeometricalParameterExcelData.java
new file mode 100644
index 0000000..287601f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/excel/FiberRibboGeometricalParameterExcelData.java
@@ -0,0 +1,69 @@
+package com.ruoyi.inspect.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.converters.localdate.LocalDateStringConverter;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * 鍏夌氦甯︾姸鍑犱綍鍙傛暟
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FiberRibboGeometricalParameterExcelData implements Serializable {
+
+ @ExcelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ExcelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ExcelProperty("濂楃鑹叉爣")
+ private String bushColor;
+
+ @ExcelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ @ExcelProperty("妫�楠岄」鐩垎绫�")
+ private String inspectionItemType;
+
+ @ExcelProperty("妫�楠屼汉")
+ private String inspector;
+
+ @ExcelProperty(value = "妫�楠屾椂闂�",converter = LocalDateStringConverter.class)
+ private LocalDate insTime;
+
+ @ExcelProperty("鍏夌氦甯﹀帤搴绔�")
+ private String thicknessA;
+
+ @ExcelProperty("鍏夌氦甯﹀帤搴绔�")
+ private String thicknessB;
+
+ @ExcelProperty("鍏夌氦甯﹀搴绔�")
+ private String widthA;
+
+ @ExcelProperty("鍏夌氦甯﹀搴绔�")
+ private String widthB;
+
+ @ExcelProperty("涓や晶鍏夌氦姘村钩闂磋窛A绔�")
+ private String sideSpacingA;
+
+ @ExcelProperty("涓や晶鍏夌氦姘村钩闂磋窛B绔�")
+ private String sideSpacingB;
+
+ @ExcelProperty("骞虫暣搴绔�")
+ private String evennessA;
+
+ @ExcelProperty("骞虫暣搴绔�")
+ private String evennessB;
+
+ @ExcelProperty("鐩搁偦鍏夌氦姘村钩闂磋窛A绔�")
+ private String adjacentSpacingA;
+
+ @ExcelProperty("鐩搁偦鍏夌氦姘村钩闂磋窛B绔�")
+ private String adjacentSpacingB;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsBushingMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsBushingMapper.java
new file mode 100644
index 0000000..9347de6
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsBushingMapper.java
@@ -0,0 +1,28 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.dto.FiberDto;
+import com.ruoyi.inspect.dto.FibersDto;
+import com.ruoyi.inspect.pojo.InsBushing;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫绠¤〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:58:16
+ */
+@Mapper
+public interface InsBushingMapper extends BaseMapper<InsBushing> {
+
+ List<FibersDto> selectFibersByBushingId(Integer bushingId);
+
+ List<FiberDto> selectFiberByBushingId(Integer bushingId);
+
+ List<FiberDto> selectFiberByFibersId(Integer fibersId);
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFiberMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFiberMapper.java
new file mode 100644
index 0000000..1be0f69
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFiberMapper.java
@@ -0,0 +1,22 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsFiber;
+import com.ruoyi.inspect.pojo.InsFibers;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫厜绾よ〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:59:01
+ */
+@Mapper
+public interface InsFiberMapper extends BaseMapper<InsFiber> {
+
+ List<InsFibers> selectInsFibersByInsFiberId(Integer id);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFibersMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFibersMapper.java
new file mode 100644
index 0000000..a4aa0b3
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsFibersMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsFibers;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫厜绾ゅ甫琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:59:13
+ */
+@Mapper
+public interface InsFibersMapper extends BaseMapper<InsFibers> {
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderFileMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderFileMapper.java
new file mode 100644
index 0000000..9168bf9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderFileMapper.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.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.inspect.pojo.InsOrderFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 妫�楠屽崟涓嬬殑闄勪欢鍒楄〃 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-06-06 10:08:21
+ */
+@Mapper
+public interface InsOrderFileMapper extends BaseMapper<InsOrderFile> {
+
+ IPage<InsOrderFile> getFileList(Page page, @Param("ew") QueryWrapper<InsOrderFile> ew, @Param("insOrderId") Integer insOrderId);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
new file mode 100644
index 0000000..512ba4d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -0,0 +1,107 @@
+package com.ruoyi.inspect.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.inspect.dto.*;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.vo.DeviceVO;
+import com.ruoyi.inspect.vo.ExportInsProductVO;
+import com.ruoyi.inspect.vo.SampleDefectsFatherVo;
+import com.ruoyi.inspect.vo.UnInsProductsVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author gaoaoy
+ * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2024-03-12 16:17:55
+ * @Entity com.ruoyi.inspect.pojo.InsOrder
+ */
+@Mapper
+public interface InsOrderMapper extends BaseMapper<InsOrder> {
+ // 鑾峰彇妫�楠屼换鍔℃煡鐪嬬粨鏋滆〃鏍兼暟鎹�
+ List<Map<String,Object>> getInsOrderPlanList(@Param("sonLaboratory") String sonLaboratory,
+ @Param("entrustCode") String entrustCode,
+ @Param("sampleCode") String sampleCode,
+ @Param("createUser") Integer createUser,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime,
+ @Param("sampleType")String sampleType);
+
+ //鍔ㄦ�佽幏鍙杢ab琛ㄥご
+ List<Map<String,Object>> getTabHeader(@Param("sonLaboratory") String sonLaboratory,@Param("sample") String sample);
+
+ //鑾峰彇妫�楠屼笅鍗曟暟鎹�
+ IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page, QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime,
+ @Param("eqState") String eqState,
+ @Param("neState") String neState
+ );
+
+ // 鑾峰彇瀵煎嚭宸叉楠屾暟鎹�
+ List<ExportInsProductVO> exportChecked(@Param("names") List<String> names, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+
+ //淇敼妫�楠屼笅鍗曟暟鎹�
+ int upInsOrderParameter(InsOrder itemParameter);
+
+ String getLaboratoryCode(String name);
+
+ List<SampleProductDto2> selectSampleAndProductByOrderId(@Param("ew") QueryWrapper<SampleProductDto2> ew, @Param("id") Integer id);
+
+ IPage<CostStatisticsDto> selectCostStatistics(IPage<CostStatisticsDto> page, QueryWrapper<CostStatisticsDto> ew, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("laboratory") String laboratory);
+
+ List<CostStatisticsDto> selectCostStatistics2(@Param("ew") QueryWrapper<CostStatisticsDto> ew,@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("laboratory") String laboratory);
+
+ DeviceVO selectDeviceList(String name);
+ List<SampleDefectsFatherVo> selectSampleDefects(Page page, @Param("inspectionItems") String inspectionItems, @Param("orderNumber") String orderNumber);
+
+ Long getCount(@Param("inspectionItems") String inspectionItems, @Param("orderNumber") String orderNumber);
+
+ String getEnumLabelByValue(String value);
+
+ String getStandardMethodCode(Integer id);
+
+ int updateStatus( Integer id);
+
+ String selLaboratoryCode(String laboratory);
+
+ List<Map<Integer, Object>> selectReportModelByOrderId(@Param("id") Integer id, @Param("laboratory") String laboratory);
+
+ String seldepLimsId(int depLimsId);
+ // 鑾峰彇閮ㄩ棬
+ String getDepartment(Integer id);
+
+ /**
+ * 濮旀墭璐圭敤
+ */
+ List<CommissionFeesDto> selectCommissionFees(@Param("laboratory") String laboratory, @Param("company") String company, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+ List<UnInsProductsVO> selectUnInsProducts(@Param("laboratory")String laboratory,
+ @Param("startDateTime")LocalDateTime startDateTime,
+ @Param("endDateTime")LocalDateTime endDateTime,
+ @Param("dto") UnInsProductsDTO unInsProductsDTO);
+
+ IPage<TasksShowDto> getTasksShow(Page page, @Param("sonLaboratory") String sonLaboratory);
+
+ Map<String,Object> selectCurrentCompanyUrgentQuota(Integer userId);
+
+ int selectPlanCountBySonLaboratory(
+ @Param("sonLaboratory") String sonLaboratory,
+ @Param("startOfMonth")LocalDateTime startOfMonth,
+ @Param("endOfMonth")LocalDateTime endOfMonth);
+
+ List<ExportInsProductVO> getInsOrderTemList(@Param("entrustCode") String entrustCode,
+ @Param("sampleCode") String sampleCode,
+ @Param("startTime") String startTime,
+ @Param("endTime") String endTime,
+ @Param("checkName") String checkName
+ );
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java
new file mode 100644
index 0000000..a3afa32
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsOrderState;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author admin
+* @description 閽堝琛ㄣ�恑ns_order_state銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-01 11:44:50
+* @Entity com.ruoyi.inspect.pojo.InsOrderState
+*/
+@Mapper
+public interface InsOrderStateMapper extends BaseMapper<InsOrderState> {
+
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderTemplateMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderTemplateMapper.java
new file mode 100644
index 0000000..9923e6e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderTemplateMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsOrderTemplate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_order_template銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-18 14:14:54
+* @Entity com.ruoyi.inspect.pojo.InsOrderTemplate
+*/
+@Mapper
+public interface InsOrderTemplateMapper extends BaseMapper<InsOrderTemplate> {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
new file mode 100644
index 0000000..e491d44
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
@@ -0,0 +1,54 @@
+package com.ruoyi.inspect.mapper;
+
+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.inspect.dto.ProductResultDto2;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.vo.InsProductFiberVO;
+import com.ruoyi.inspect.vo.InsProductVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_product(妫�楠岄」鐩�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-08 09:45:03
+* @Entity com.ruoyi.inspect.pojo.InsProduct
+*/
+@Mapper
+public interface InsProductMapper extends BaseMapper<InsProduct> {
+
+ int selectOrderManDay(Integer orderId);
+
+ Map<String, String> selectUserById(Integer userId);
+
+ List<ProductResultDto2> getProductAndResult(Integer sampleId);
+
+ int updateInspected(@Param("id") Integer id);
+
+ List<InsProduct> selectFiberInsProduct(List<Integer> ids, String laboratory);
+
+ IPage<InsProduct> selectNoProducts(Page page, Integer orderId);
+
+ int selectInsProductCountByOrderId(Integer orderId);
+
+ List<InsProduct> findSagTemperatureProducts(Integer sampleId, String inspectionItem);
+
+ List<InsProductVO> selectProductByOrderId(Integer orderId,String sonLaboratory);
+
+ List<InsProductFiberVO> selectInsProductInsFiberList(Integer sampleId);
+
+ List<InsProductFiberVO> selectInsProductInsBushList(Integer sampleId);
+
+ List<InsProductFiberVO> selectInsProductInsFibersList(Integer sampleId);
+
+ List<InsProductFiberVO> selectProductBySampleId(Integer sampleId);
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductResultMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductResultMapper.java
new file mode 100644
index 0000000..8f3bcce
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductResultMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsProductResult;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_product_result(妫�楠岄」鐩殑缁撴灉)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-28 10:29:37
+* @Entity com.ruoyi.inspect.pojo.InsProductResult
+*/
+@Mapper
+public interface InsProductResultMapper extends BaseMapper<InsProductResult> {
+
+ List<InsProductResult> selDetail(@Param("ips") List<Integer> ips);
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java
new file mode 100644
index 0000000..1691d74
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsProductUser;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恑ns_product_user(妫�楠岄」鐩殑浜哄憳妫�楠岃褰�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-17 13:42:44
+* @Entity com.ruoyi.inspect.pojo.InsProductUser
+*/
+@Mapper
+public interface InsProductUserMapper extends BaseMapper<InsProductUser> {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportApproveConfigMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportApproveConfigMapper.java
new file mode 100644
index 0000000..2d547e4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportApproveConfigMapper.java
@@ -0,0 +1,24 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsReportApproveConfig;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.Map;
+
+/**
+* @author 27233
+* @description 閽堝琛ㄣ�恑ns_report_approve_config(鎶ュ憡瀹℃壒绛惧悕閰嶇疆)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-12-10 09:36:10
+* @Entity com.ruoyi.inspect.pojo.InsReportApproveConfig
+*/
+@Mapper
+public interface InsReportApproveConfigMapper extends BaseMapper<InsReportApproveConfig> {
+
+ Map<String,Object> selectApprovalConfigByLaboratory(String laboratory);
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
new file mode 100644
index 0000000..0ee1257
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
@@ -0,0 +1,35 @@
+package com.ruoyi.inspect.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.ruoyi.inspect.dto.ReportPageDto;
+import com.ruoyi.inspect.pojo.InsReport;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_report(妫�楠屾姤鍛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-17 22:10:02
+* @Entity com.ruoyi.inspect.pojo.InsReport
+*/
+@Mapper
+public interface InsReportMapper extends BaseMapper<InsReport> {
+
+ IPage<ReportPageDto> pageInsReport(IPage<ReportPageDto> page,
+ @Param("ew") QueryWrapper<ReportPageDto> ew,
+ @Param("laboratory") String laboratory);
+
+ String getLaboratoryByName(String name);
+
+ List<ReportPageDto> findReportCountInfo(@Param("ew") QueryWrapper<ReportPageDto> reportPageDtoQueryWrapper,
+ @Param("laboratory") String laboratory,
+ @Param("queryField") String queryField);
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java
new file mode 100644
index 0000000..e5f1577
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java
@@ -0,0 +1,76 @@
+package com.ruoyi.inspect.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.inspect.dto.InsOrderPlanDTO;
+import com.ruoyi.inspect.dto.SampleProductDto;
+import com.ruoyi.inspect.dto.SampleProductDto3;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo;
+import com.ruoyi.inspect.vo.InsOrderPlanVO;
+import com.ruoyi.inspect.vo.SampleVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample(妫�楠屾牱鍝�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-14 17:14:57
+* @Entity com.ruoyi.inspect.pojo.InsSample
+*/
+@Mapper
+public interface InsSampleMapper extends BaseMapper<InsSample> {
+
+ IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page,
+ @Param("userName") String userName,
+ @Param("checkName") String checkName,
+ @Param("sonLaboratory") String sonLaboratory,
+ @Param("sample") String sample,
+ @Param("sampleCode") String sampleCode,
+ @Param("laboratory") String laboratory,
+ @Param("entrustCode") String entrustCode,
+ @Param("insState") String insState,
+ @Param("ew") QueryWrapper<InsOrderPlanDTO> ew,
+ @Param("sendTimeRange") List<LocalDateTime> sendTimeRange);
+
+ IPage<InsOrderPlanTaskSwitchVo> inspectionOrderDetailsTaskSwitching(Page page, @Param("ew") QueryWrapper<InsOrderPlanDTO> ew, @Param("userId") Integer userId, @Param("sonLaboratory") String sonLaboratory, @Param("laboratory") String laboratory);
+
+ List<SampleProductDto> selectSampleProductListByOrderId(Integer id);
+
+ List<SampleProductDto> selectSampleProductListByOrderId2(Integer id);
+
+ List<SampleProductDto3> selectSampleProductListByOrderId3(List<Integer> ids);
+
+ List<SampleProductDto> getInsOrderAndSample(Integer id, String laboratory);
+
+ String getSampleEn(String sample);
+
+ List<InsProduct> getInsProduct1(Integer id, String laboratory);
+
+ List<InsProduct> getInsProduct5(Integer id, String laboratory);
+
+ List<InsProduct> getInsProduct2(@Param("id") Integer id, @Param("sonLaboratory") String sonLaboratory);
+
+ List<InsProduct> getInsProduct3(@Param("id") Integer id, @Param("sonLaboratory") String sonLaboratory);
+
+ List<InsProduct> getInsProduct6(@Param("id") Integer id, @Param("sonLaboratory") String sonLaboratory);
+
+ List<InsProduct> getInsProduct4(@Param("id") Integer id, @Param("sonLaboratory") String sonLaboratory);
+
+ List<Map<String, Object>> getReportModel(@Param("orderId") Integer orderId, @Param("id") Integer id, @Param("laboratory") String laboratory);
+
+ SampleVo getDetailById(Integer sampleId);
+
+ String selMethodById(Integer sampleId);
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
new file mode 100644
index 0000000..e1ebacc
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsSampleUser;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-14 17:12:02
+* @Entity com.ruoyi.inspect.pojo.InsSampleUser
+*/
+@Mapper
+public interface InsSampleUserMapper extends BaseMapper<InsSampleUser> {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java
new file mode 100644
index 0000000..e4e04a7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnPassMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.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.ruoyi.inspect.dto.UnPassPageDto;
+import com.ruoyi.inspect.pojo.InsUnPass;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author 鏈变匠鍚�
+ * @date 2024/5/8 13:05
+ */
+@Mapper
+public interface InsUnPassMapper extends BaseMapper<InsUnPass> {
+ IPage<UnPassPageDto> pageInsUnPass(IPage<UnPassPageDto> page, QueryWrapper<UnPassPageDto> ew);
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ProcessOrder1Mapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ProcessOrder1Mapper.java
new file mode 100644
index 0000000..8990456
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/ProcessOrder1Mapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.ProcessOrder;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * <p>
+ * 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫 Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
+ * @since 2024-11-05 03:06:20
+ */
+@Mapper
+public interface ProcessOrder1Mapper extends BaseMapper<ProcessOrder> {
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SampleOrderMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SampleOrderMapper.java
new file mode 100644
index 0000000..ba13115
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SampleOrderMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.dto.SampleOrderDto;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author gaoaoy
+ * @version 1.0.0
+ * @create 2024/3/14 18:54
+ **/
+@Mapper
+public interface SampleOrderMapper extends BaseMapper<SampleOrderDto> {
+ List<SampleOrderDto> selectSampleOrderList();
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java
new file mode 100644
index 0000000..ad95d30
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseCellMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
+import com.ruoyi.inspect.pojo.WarehouseCell;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse_cell(璐ф灦鍗曞厓鏍�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-06 12:12:12
+* @Entity com.ruoyi.inspect.pojo.WarehouseCell
+*/
+@Mapper
+public interface WarehouseCellMapper extends BaseMapper<WarehouseCell> {
+
+ List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId);
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java
new file mode 100644
index 0000000..d8f8967
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseHistoryMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.dto.HistoryDto;
+import com.ruoyi.inspect.pojo.WarehouseHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse_history(鍑哄叆搴撹褰�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-06 12:12:12
+* @Entity com.ruoyi.inspect.pojo.WarehouseHistory
+*/
+@Mapper
+public interface WarehouseHistoryMapper extends BaseMapper<WarehouseHistory> {
+
+ String getUserNameById(Integer userId);
+
+ List<HistoryDto> getHistoryListBySampleId(Integer sampleId);
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java
new file mode 100644
index 0000000..caae846
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseMapper.java
@@ -0,0 +1,25 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.dto.WarehouseDto;
+import com.ruoyi.inspect.pojo.Warehouse;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-06 12:12:12
+* @Entity com.ruoyi.inspect.pojo.Warehouse
+*/
+@Mapper
+public interface WarehouseMapper extends BaseMapper<Warehouse> {
+
+ List<WarehouseDto> selectWarehouseList();
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java
new file mode 100644
index 0000000..d03309c
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WarehouseShelfMapper.java
@@ -0,0 +1,20 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.WarehouseShelf;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse_shelf(璐ф灦)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-06 12:12:12
+* @Entity com.ruoyi.inspect.pojo.WarehouseShelf
+*/
+@Mapper
+public interface WarehouseShelfMapper extends BaseMapper<WarehouseShelf> {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsBushing.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsBushing.java
new file mode 100644
index 0000000..a68e107
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsBushing.java
@@ -0,0 +1,55 @@
+package com.ruoyi.inspect.pojo;
+
+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.LocalDateTime;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫绠¤〃
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:58:16
+ */
+@Getter
+@Setter
+@TableName("ins_bushing")
+@ApiModel(value = "InsBushing瀵硅薄", description = "鍏夌氦閰嶇疆鐨勫绠¤〃")
+public class InsBushing implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("绠¤壊鏍�")
+ private String color;
+
+ @ApiModelProperty("鏍囬噺")
+ private Integer standNum;
+
+ @ApiModelProperty("娴嬭瘯閲�")
+ private Integer testNum;
+
+ @ApiModelProperty("鍏宠仈 鏍峰搧id")
+ private Integer insSampleId;
+
+ @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;
+
+ @TableField(exist = false,select = false)
+ private Integer state;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFiber.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFiber.java
new file mode 100644
index 0000000..2af6ea1
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFiber.java
@@ -0,0 +1,61 @@
+package com.ruoyi.inspect.pojo;
+
+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.LocalDateTime;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫厜绾よ〃
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:59:01
+ */
+@Getter
+@Setter
+@TableName("ins_fiber")
+@ApiModel(value = "InsFiber瀵硅薄", description = "鍏夌氦閰嶇疆鐨勫厜绾よ〃")
+public class InsFiber implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("绠″鑹叉爣")
+ private String bushColor;
+
+ @ApiModelProperty("鍏夌氦鑹叉爣")
+ private String color;
+
+ @ApiModelProperty("鍏夌氦瑙勬牸")
+ private String model;
+
+ @ApiModelProperty("鍙傝�冩爣鍑�")
+ private String standard;
+
+ @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;
+
+ @ApiModelProperty("鍏宠仈 濂楃琛╥d")
+ private Integer insBushingId;
+
+ @ApiModelProperty("鍏宠仈 鍏夌氦甯﹁〃id")
+ private Integer insFibersId;
+
+ @TableField(exist = false,select = false)
+ private Integer state;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFibers.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFibers.java
new file mode 100644
index 0000000..9a7dce7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsFibers.java
@@ -0,0 +1,59 @@
+package com.ruoyi.inspect.pojo;
+
+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.LocalDateTime;
+
+/**
+ * <p>
+ * 鍏夌氦閰嶇疆鐨勫厜绾ゅ甫琛�
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-05-30 05:59:13
+ */
+@Getter
+@Setter
+@TableName("ins_fibers")
+@ApiModel(value = "InsFibers瀵硅薄", description = "鍏夌氦閰嶇疆鐨勫厜绾ゅ甫琛�")
+public class InsFibers implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ @ApiModelProperty("鍏夌氦甯﹁鏍�")
+ private String model;
+
+ @ApiModelProperty("鍙傝�冩爣鍑�")
+ private String standard;
+
+ @ApiModelProperty("鍏夌氦妫�娴嬮噺")
+ private String num;
+
+ @ApiModelProperty("鍏宠仈 濂楃琛╥d")
+ private Integer insBushingId;
+
+ @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;
+
+ @TableField(exist = false,select = false)
+ private Integer state;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
new file mode 100644
index 0000000..34e487d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
@@ -0,0 +1,224 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+* 妫�楠屼笅鍗�
+* @TableName ins_order
+*/
+@Data
+@TableName("ins_order")
+@AllArgsConstructor
+@NoArgsConstructor
+public class InsOrder implements Serializable {
+
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 濮旀墭缂栧彿
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String entrustCode;
+
+ /**
+ * 澶栭儴濮旀墭缂栧彿
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty(value = "澶栭儴濮旀墭缂栧彿")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String outEntrustCode;
+
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty(value = "妫�楠岀被鍒�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String orderType;
+
+ /**
+ * 涓嬪崟瀹㈡埛
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("鍒跺崟浜�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String custom;
+
+ /**
+ * 涓嬪崟鍗曚綅
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("濮旀墭鍗曚綅")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String company;
+
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("鑱旂郴鏂瑰紡")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String phone;
+
+ /**
+ * 宸ュ巶鍩�
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("宸ュ巶鍩�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String code;
+
+ /**
+ * 绱ф�ョ▼搴� 锛�0鏅�� 1浼樺厛 2绱ф�ワ級
+ */
+ @ApiModelProperty("绱ф�ョ▼搴� 锛�0鏅�� 1浼樺厛 2绱ф�ワ級")
+ private Integer type;
+
+ /**
+ * 绾﹀畾鏃堕棿
+ */
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate appointed;
+
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private Integer insResult;
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡")
+ private Integer processing;
+
+ @ApiModelProperty("鏄惁鐣欐牱")
+ private Integer isLeave;
+
+ /**
+ * 1锛氭楠屽鐞� 0锛氬緟瀹℃牳 2锛氶��鍥� 3锛氭挙閿�
+ */
+ @ApiModelProperty("鐘舵��")
+ private Integer state;
+
+ /**
+ * 澶囨敞
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("澶囨敞")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String remark;
+
+ /**
+ * OTC璁㈠崟鍙�
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("OTC璁㈠崟鍙�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String otcCode;
+
+// @ValueTableShow(11)
+ @ApiModelProperty("涓嬪崟浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+ /**
+ *
+ */
+ @ApiModelProperty("涓嬪崟鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("涓嬪彂鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime sendTime;
+
+ /**
+ *鏇存柊浜�
+ */
+ @ApiModelProperty("鏇存柊浜�")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ /**
+ *
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ private Integer userId;
+
+ private Integer mating;
+
+ @ApiModelProperty("妫�楠岀姸鎬�(0锛氬緟妫�楠� 1:妫�楠屼腑 2:宸叉楠� 3锛氬緟澶嶆牳 4锛氬鏍告湭閫氳繃 5锛氬鏍搁�氳繃)")
+ private Integer insState;
+
+ /**
+ * 妫�楠屽伐鍘�
+ */
+ private String factory;
+
+ /**
+ * 瀹為獙瀹ゅ悕绉�
+ */
+ private String laboratory;
+
+ /**
+ * 鏍峰搧绫诲瀷
+ */
+ private String sampleType;
+
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String sample;
+
+ @ApiModelProperty("妫�楠屾椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime insTime;
+
+ private String tell;
+
+ private Integer send;
+
+ private String formType;
+
+ @ApiModelProperty("瀹℃牳鏃堕棿")
+ private LocalDateTime examineTime;
+
+ private String engineering;
+
+ private String engineeringEn;
+
+ private String production;
+
+ private String productionEn;
+
+ private Long companyId;
+
+ private String prepareUser;
+
+ @ApiModelProperty("鏄惁瀹℃牳鎾ら攢")
+ private Integer isRevocation;
+
+ @ApiModelProperty("瀹℃牳鎾ら攢鐨勯」鐩甶d")
+ private String revocationInsProductIds;
+
+ @ApiModelProperty("绛惧彂鏃ユ湡")
+ private LocalDateTime issuingDate;
+
+ @ApiModelProperty("鎾ら攢鏃ユ湡")
+ private LocalDateTime revocationTime;
+
+
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFile.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFile.java
new file mode 100644
index 0000000..fab1430
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFile.java
@@ -0,0 +1,57 @@
+package com.ruoyi.inspect.pojo;
+
+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.LocalDateTime;
+
+/**
+ * <p>
+ * 妫�楠屽崟涓嬬殑闄勪欢鍒楄〃
+ * </p>
+ *
+ * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃
+ * @since 2024-06-06 10:08:21
+ */
+@Getter
+@Setter
+@TableName("ins_order_file")
+@ApiModel(value = "InsOrderFile瀵硅薄", description = "妫�楠屽崟涓嬬殑闄勪欢鍒楄〃")
+public class InsOrderFile implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鍏宠仈 妫�楠屽崟澶栭敭id")
+ private Integer insOrderId;
+
+ @ApiModelProperty("绫诲瀷")
+ private Integer type;
+
+ @ApiModelProperty("闄勪欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("闄勪欢鍚嶇О")
+ private String fileName;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("涓婁紶浜�")
+ @TableField(exist = false, select = false)
+ private String name;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty("涓婁紶鏃堕棿")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderState.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderState.java
new file mode 100644
index 0000000..34f72f1
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderState.java
@@ -0,0 +1,67 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * @TableName ins_order_state
+ */
+@TableName(value ="ins_order_state")
+@Data
+public class InsOrderState implements Serializable {
+ /**
+ *
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 澶栭敭锛歩ns_order琛╥d
+ */
+ @TableField(value = "ins_order_id")
+ private Integer insOrderId;
+
+ /**
+ * 瀹為獙瀹�
+ */
+ @TableField(value = "laboratory")
+ private String laboratory;
+
+ /**
+ * 妫�楠岀姸鎬�(0锛氬緟妫�楠�1:妫�楠屼腑 2:宸叉楠�3锛氬緟澶嶆牳4锛氬鏍告湭閫氳繃 5锛氬鏍搁�氳繃)
+ */
+ @TableField(value = "ins_state")
+ private Integer insState;
+
+ @ApiModelProperty("妫�楠屾椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime insTime;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("澶嶆牳浜�")
+ private Integer verifyUser;
+
+ @ApiModelProperty("澶嶆牳鐞嗙敱")
+ private String verifyTell;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderTemplate.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderTemplate.java
new file mode 100644
index 0000000..19fd5fe
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderTemplate.java
@@ -0,0 +1,43 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ * @TableName ins_order_template
+ */
+@TableName(value ="ins_order_template")
+@Data
+public class InsOrderTemplate implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 妯℃澘鍚嶇О
+ */
+ @ApiModelProperty("妯℃澘鍚嶇О")
+ private String name;
+
+ /**
+ * 妯℃澘鍐呭
+ */
+ @ApiModelProperty("妯℃澘鍐呭")
+ private String thing;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProduct.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProduct.java
new file mode 100644
index 0000000..2f5cfe4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProduct.java
@@ -0,0 +1,249 @@
+package com.ruoyi.inspect.pojo;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 妫�楠岄」鐩�
+ *
+ * @TableName ins_product
+ */
+@TableName(value = "ins_product")
+@Data
+public class InsProduct implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @TableId(type = IdType.AUTO)
+
+ private Integer id;
+
+ @TableField(exist = false,select = false)
+ private String sampleCode;
+
+ /**
+ * 妫�楠岄」
+ */
+ private String inspectionItem;
+
+ private String inspectionItemEn;
+
+ /**
+ * 妫�楠岄」鍒嗙被
+ */
+ @ApiModelProperty(value = "妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+
+ @ApiModelProperty(value = "妫�楠岄」鍒嗙被EN")
+ private String inspectionItemClassEn;
+
+ /**
+ * 妫�楠岄」瀛愮被
+ */
+ private String inspectionItemSubclass;
+
+ private String inspectionItemSubclassEn;
+
+ /**
+ * 宸ュ巶
+ */
+ private String factory;
+
+ /**
+ * 瀹為獙瀹�
+ */
+ private String laboratory;
+
+ /**
+ * 鏍峰搧鍒嗙被
+ */
+ private String sampleType;
+
+ /**
+ * 鏍峰搧
+ */
+ private String sample;
+
+ /**
+ * 鍨嬪彿
+ */
+ private String model;
+
+ private String methodS;
+
+ /**
+ * 瀛愬疄楠屽
+ */
+ private String sonLaboratory;
+
+ /**
+ * 璁¢噺鍗曚綅
+ */
+ private String unit;
+
+ /**
+ * 鍗曚环(鍏�)
+ */
+ private BigDecimal price;
+
+ /**
+ * 宸ユ椂(H)
+ */
+ private Double manHour;
+
+ /**
+ * 宸ユ椂鍒嗙粍
+ */
+ private String manHourGroup;
+
+ /**
+ * 妫�楠岄」绫诲瀷
+ */
+ private String inspectionItemType;
+
+ /**
+ * 妫�楠屽�肩被鍨�
+ */
+ private String inspectionValueType;
+
+ /**
+ * 璁惧缁�
+ */
+ private String deviceGroup;
+
+ /**
+ * 妫�楠屾鏁�
+ */
+ private Integer checkoutNumber;
+
+ /**
+ * 鍖洪棿
+ */
+ private String section;
+
+ /**
+ * 鍙栧�肩被鍨�
+ */
+ private String valueType;
+
+ /**
+ * 鏂规硶
+ */
+ private String method;
+
+ /**
+ * 棰勮鏃堕棿(h)
+ */
+ private Integer manDay;
+
+ /**
+ * 鐗规畩鏍囪瘑
+ */
+ private String bsm;
+
+ /**
+ * 瑕佹眰鍊�
+ */
+ private String ask;
+
+ /**
+ * 瑕佹眰鎻忚堪
+ */
+ private String tell;
+
+ /**
+ * 鏈�缁堝��
+ */
+ @TableField("`last_value`")
+ private String lastValue;
+
+ /**
+ * 1锛氬悎鏍� 0锛氫笉鍚堟牸 2:寰呭畾 3:涓嶅垽瀹�
+ */
+ private Integer insResult;
+
+ /**
+ * 1锛氭湁鏁� 0锛氭棤鏁�
+ */
+ private Integer state;
+
+ /**
+ * 澶栭敭锛歩ns_sample琛╥d
+ */
+ private Integer insSampleId;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 澶栭敭锛歴tandard_template琛╥d
+ */
+ private Integer templateId;
+
+ @TableField(exist = false)
+ private List<JSONObject> template;
+
+ @TableField(exist = false)
+ private Map<String, Object> style;
+
+ @TableField(exist = false)
+ private InsProductResult insProductResult;
+
+ @TableField(exist = false)
+ private String templateName;
+
+ private String dic;
+ //娓╁害
+ private String temperature;
+ //婀垮害
+ private String humidity;
+
+ private Integer insFiberId;
+
+ private Integer insFibersId;
+
+ private Integer insBushId;
+
+ private Integer standardMethodListId;
+
+ /**
+ * 鐗规畩绗﹀彿鏇挎崲鍊�
+ */
+ private String specialValue;
+
+ /**
+ * 鐗规畩椤圭洰鐖秈d
+ */
+ private Integer specialItemParentId;
+
+ //杩斿洖鐨�20搴﹀父娓╃殑璁$畻鍊�(娓╁害寰幆)
+ @TableField(exist = false ,select = false)
+ private String complue;
+
+ /**
+ * 寮规�фā閲�
+ */
+ private String elasticityModulus;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductResult.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductResult.java
new file mode 100644
index 0000000..388377d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductResult.java
@@ -0,0 +1,61 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 妫�楠岄」鐩殑缁撴灉
+ * @TableName ins_product_result
+ */
+@TableName(value ="ins_product_result")
+@Data
+public class InsProductResult implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 澶栭敭锛氭楠岄」鐩甶d
+ */
+ private Integer insProductId;
+
+ /**
+ * 妫�楠屽��
+ */
+ private String insValue;
+
+ /**
+ * 璁$畻鍊�
+ */
+ private String comValue;
+
+ /**
+ * 璁惧鍊�
+ */
+ private String equipValue;
+
+ private String equipName;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductUser.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductUser.java
new file mode 100644
index 0000000..931bf31
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductUser.java
@@ -0,0 +1,40 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 妫�楠岄」鐩殑浜哄憳妫�楠岃褰�
+ * @TableName ins_product_user
+ */
+@TableName(value ="ins_product_user")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class InsProductUser implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ /**
+ * 澶栭敭锛歩ns_product琛╥d
+ */
+ private Integer insProductId;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java
new file mode 100644
index 0000000..eb5b503
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java
@@ -0,0 +1,107 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 妫�楠屾姤鍛�
+ * @TableName ins_report
+ */
+@TableName(value ="ins_report")
+@Data
+public class InsReport implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("鎶ュ憡缂栧彿")
+ private String code;
+
+ /**
+ * 澶栭敭锛氭楠屽崟id
+ */
+ private Integer insOrderId;
+
+ /**
+ * 绯荤粺鐢熸垚鎶ュ憡鍦板潃
+ */
+ private String url;
+
+ /**
+ * 鎵嬪姩涓婁紶鎶ュ憡鍦板潃
+ */
+ private String urlS;
+
+ /**
+ * 1锛氭壒鍑� 0锛氫笉鎵瑰噯
+ */
+ private Integer isRatify;
+
+ private String ratifyTell;
+
+ /**
+ * 1锛氬鏍搁�氳繃 0锛氬鏍镐笉閫氳繃
+ */
+ private Integer isExamine;
+
+ private String examineTell;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堟彁浜や汉锛�
+ */
+ private Integer writeUserId;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�
+ */
+ private Integer ratifyUserId;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堝鏍镐汉锛�
+ */
+ private Integer examineUserId;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 1锛氬凡鎻愪氦 0锛氬緟鎻愪氦
+ */
+ private Integer state;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime writeTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime examineTime;
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime ratifyTime;
+
+ /**
+ * 涓存椂鎶ュ憡鍦板潃
+ */
+ private String tempUrlPdf;
+
+
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReportApproveConfig.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReportApproveConfig.java
new file mode 100644
index 0000000..962ef8a
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReportApproveConfig.java
@@ -0,0 +1,46 @@
+package com.ruoyi.inspect.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 lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎶ュ憡瀹℃壒绛惧悕閰嶇疆
+ * @TableName ins_report_approve_config
+ */
+@TableName(value ="ins_report_approve_config")
+@Data
+public class InsReportApproveConfig implements Serializable {
+ /**
+ * 涓婚敭
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 缂栧埗浜�
+ */
+ private Integer editor;
+
+ /**
+ * 瀹℃牳浜�
+ */
+ private Integer examiner;
+
+ /**
+ * 鎵瑰噯浜�
+ */
+ private Integer approver;
+
+ /**
+ * 瀹為獙瀹�
+ */
+ private String laboratory;
+
+ @TableField(exist = false)
+ private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java
index f3657e4..ae45b48 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java
@@ -120,4 +120,10 @@
@TableField(select = false,exist = false)
private Integer num=1;
+ /**
+ * 鏄惁涓虹啍鎺ユ崯鑰楃壒娈婇」鐢熸垚鐨勬牱鍝佺粍鍚�(0:鍚� 1:鏄�)
+ */
+ @ApiModelProperty("鏄惁涓虹啍鎺ユ崯鑰楃壒娈婇」鐢熸垚鐨勬牱鍝佺粍鍚�(0:鍚� 1:鏄�)")
+ private String isPairing;
+
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSampleUser.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSampleUser.java
new file mode 100644
index 0000000..8c88185
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSampleUser.java
@@ -0,0 +1,72 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏍峰搧璐熻矗浜鸿褰�
+ * @TableName ins_sample_user
+ */
+@TableName(value ="ins_sample_user")
+@Data
+@NoArgsConstructor
+public class InsSampleUser implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 澶栭敭锛氭楠屾牱鍝乮ns_sample琛╥d
+ */
+ private Integer insSampleId;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d 璐熻矗浜�
+ */
+ private Integer userId;
+
+ /**
+ * 1锛氱‘璁� 0锛氭湭纭
+ */
+ //1鏄鏍镐汉 0鏄楠屼汉
+ private Integer state;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 瀛愯瘯楠屽
+ * @param insSampleId
+ * @param userId
+ * @param state
+ */
+ private String sonLaboratory;
+
+ public InsSampleUser(Integer insSampleId, Integer userId, Integer state,String sonLaboratory) {
+ this.insSampleId = insSampleId;
+ this.userId = userId;
+ this.state = state;
+ this.sonLaboratory = sonLaboratory;
+ }
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.java
new file mode 100644
index 0000000..a82b9da
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.java
@@ -0,0 +1,75 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author 鏈变匠鍚�
+ * @date 2024/5/8 14:11
+ */
+@Data
+@TableName("ins_un_pass")
+public class InsUnPass implements Serializable {
+ /**
+ * 涓嶅悎鏍糹d
+ */
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String model;
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String sample;
+ /**
+ * 妫�娴嬮」
+ */
+ private String inspectionItem;
+ /**
+ * 妫�娴嬪瓙椤�
+ */
+ private String inspectionItemSubclass;
+ /**
+ * 妫�娴嬬粨鏋�
+ */
+ @TableField("`last_value`")
+ private String lastValue;
+ /**
+ * 澶勭悊鎰忚
+ */
+ private String handleSuggestion;
+ /**
+ * 濮旀墭缂栧彿
+ */
+ private String entrustCode;
+ /**
+ * 鐢ㄦ埛鍚�
+ */
+ private String name;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessOrder.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessOrder.java
new file mode 100644
index 0000000..17d4797
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessOrder.java
@@ -0,0 +1,56 @@
+package com.ruoyi.inspect.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 comprehensiveUserUrl;
+
+ @ApiModelProperty("鎺ユ敹鏃ユ湡")
+ private LocalDate comprehensiveTime;
+
+ @ApiModelProperty("棰嗘牱鍛�")
+ private Integer issueUser;
+
+ @TableField(select = false,exist = false)
+ private String issueUserUrl;
+
+ @ApiModelProperty("棰嗘牱鏃ユ湡")
+ private LocalDate issueTime;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessReport.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessReport.java
new file mode 100644
index 0000000..b88c923
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/ProcessReport.java
@@ -0,0 +1,82 @@
+package com.ruoyi.inspect.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;
+
+ @ApiModelProperty("鍙戦�佷汉鍚嶇О")
+ @TableField(select = false,exist = false)
+ private String sendUserName;
+
+ @ApiModelProperty("绛炬敹浜�")
+ private String signatory;
+
+ @TableField(select = false,exist = false)
+ private String signatoryUrl;
+
+ @ApiModelProperty("绛炬敹浜哄悕绉�")
+ @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/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Schedule.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Schedule.java
new file mode 100644
index 0000000..d1f3e79
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Schedule.java
@@ -0,0 +1,54 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("schedule")
+public class Schedule implements Serializable {
+
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty(value = "鍏宠仈鐢ㄦ埛id")
+ private Integer userId;
+
+ @ApiModelProperty(value = "鏃ョ▼鍐呭")
+ private String text;
+
+ @ApiModelProperty(value = "鏃ョ▼鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime scheduleTime;
+
+
+ @ApiModelProperty(value = "鍒涘缓鏃ユ湡")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+
+ @ApiModelProperty(value = "鏇存柊鏃ユ湡")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "鏇存柊鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardMethodList.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardMethodList.java
new file mode 100644
index 0000000..5b6a799
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardMethodList.java
@@ -0,0 +1,83 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏍戜笅鐨勬爣鍑嗗垪琛�
+ * @TableName standard_method_list
+ */
+@TableName(value ="standard_method_list")
+@Data
+public class StandardMethodList implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鏍囧噯缂栧彿
+ */
+ @ApiModelProperty("鏍囧噯缂栧彿")
+ private String code;
+
+ /**
+ * 鏍囧噯鍚嶇О
+ */
+ @ApiModelProperty("鏍囧噯绉板彿")
+ private String name;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("宸ュ巶")
+ private String factory;
+
+ @ApiModelProperty("瀹為獙瀹�")
+ private String laboratory;
+
+ @ApiModelProperty("鏍峰搧鍒嗙被")
+ private String sampleType;
+
+ @ApiModelProperty("鏍峰搧")
+ private String sample;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(exist = false)
+ private String createUserName;
+ /**
+ *
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+ /**
+ *
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardProductList.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardProductList.java
new file mode 100644
index 0000000..a5127b0
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardProductList.java
@@ -0,0 +1,191 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯鏍戜笅鐨勬楠岄」鐩�
+ * @TableName standard_product_list
+ */
+@TableName(value ="standard_product_list")
+@Data
+public class StandardProductList implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @TableId(value = "id",type = IdType.ASSIGN_ID)
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Long id;
+
+ /**
+ * 妫�楠岄」
+ */
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠岄」EN")
+ private String inspectionItemEn;
+
+ /**
+ * 妫�楠岄」灏忕被
+ */
+ @ApiModelProperty("妫�楠岄」灏忕被")
+ private String inspectionItemSubclass;
+
+ @ApiModelProperty("妫�楠岄」灏忕被EN")
+ private String inspectionItemSubclassEn;
+
+ /**
+ * 瀹為獙瀹�
+ */
+ @ApiModelProperty("瀹為獙瀹�")
+ private String laboratory;
+
+ @ApiModelProperty("瀛愬疄楠屽")
+ private String sonLaboratory;
+
+ /**
+ * 璁¢噺鍗曚綅
+ */
+ @ApiModelProperty("璁¢噺鍗曚綅")
+ private String unit;
+
+ /**
+ * 鍗曚环(鍏�)
+ */
+ @ApiModelProperty("鍗曚环")
+ private String price;
+
+ /**
+ * 宸ユ椂(H)
+ */
+ @ApiModelProperty("宸ユ椂")
+ private String manHour;
+
+ /**
+ * 宸ユ椂鍒嗙粍
+ */
+ @ApiModelProperty("宸ユ椂鍒嗙粍")
+ private String manHourGroup;
+
+ /**
+ * 妫�楠岄」绫诲瀷
+ */
+ @ApiModelProperty("妫�楠岄」绫诲瀷")
+ private String inspectionItemType;
+
+ /**
+ * 妫�楠屽�肩被鍨�
+ */
+ @ApiModelProperty("妫�楠屽�肩被鍨�")
+ private String inspectionValueType;
+
+ /**
+ * 妫�楠屾鏁�
+ */
+ @ApiModelProperty("妫�楠屾鏁�")
+ private Integer checkoutNumber;
+
+ /**
+ * 鍖洪棿
+ */
+ @ApiModelProperty("鍖洪棿")
+ private String section;
+
+ /**
+ * 鏂规硶
+ */
+ @ApiModelProperty("鏂规硶鍒楄〃")
+ private String method;
+
+ @ApiModelProperty("鏂规硶")
+ private String methodS;
+
+ /**
+ * 棰勮鏃堕棿(澶�)
+ */
+ @ApiModelProperty("棰勮鏃堕棿")
+ private Integer manDay;
+
+ /**
+ * 鐗规畩鏍囪瘑
+ */
+ @ApiModelProperty("鐗规畩鏍囪瘑")
+ private String bsm;
+
+ /**
+ * 瑕佹眰鍊�
+ */
+ @ApiModelProperty("瑕佹眰鍊�")
+ private String ask;
+
+ @ApiModelProperty("瑕佹眰鎻忚堪")
+ private String tell;
+
+ /**
+ * 澶栭敭锛氭爣鍑嗘柟娉昳d
+ */
+ @ApiModelProperty("鏍囧噯鏂规硶id")
+ private Integer standardMethodListId;
+
+ @ApiModelProperty("宸ュ巶")
+ private String factory;
+
+ @ApiModelProperty("鏍峰搧鍒嗙被")
+ private String sampleType;
+
+ @ApiModelProperty("鏍峰搧")
+ private String sample;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("鍨嬪彿")
+ private Integer templateId;
+
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+ /**
+ *
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+ /**
+ *
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("1锛氭湁鏁� 0锛氭棤鏁�")
+ private Integer state;
+
+ private String dic;
+
+ private String tree;
+
+ private Integer structureItemParameterId;
+
+ @ApiModelProperty(value = "妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+
+ @ApiModelProperty(value = "妫�楠岄」鍒嗙被EN")
+ private String inspectionItemClassEn;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTemplate.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTemplate.java
new file mode 100644
index 0000000..1a4557f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTemplate.java
@@ -0,0 +1,76 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鏍囧噯妯℃澘
+ * @TableName standard_template
+ */
+@TableName(value ="standard_template")
+@Data
+public class StandardTemplate implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 妯℃澘鍚嶇О
+ */
+ @ApiModelProperty("妯℃澘鍚嶇О")
+ private String name;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ /**
+ * 妯℃澘缁撴瀯
+ */
+ private String thing;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+ /**
+ *
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+ /**
+ *
+ */
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+ /**
+ *
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+ @TableField(exist = false)
+ private String createUserName;
+
+ @ApiModelProperty("鏇存柊鐢ㄦ埛")
+ @TableField(exist = false)
+ private String updateUserName;
+
+ /**
+ * 妯℃澘缂栧彿
+ */
+ @ApiModelProperty("妯℃澘缂栧彿")
+ private String number;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTree.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTree.java
new file mode 100644
index 0000000..a30372e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/StandardTree.java
@@ -0,0 +1,91 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+* 鏍囧噯鏍�
+* @TableName standard_tree
+*/
+@TableName(value ="standard_tree")
+@Data
+public class StandardTree implements Serializable {
+
+ /**
+ *
+ */
+ @NotNull(message="[]涓嶈兘涓虹┖")
+ @ApiModelProperty("")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 宸ュ巶
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("宸ュ巶")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String factory;
+ /**
+ * 瀹為獙瀹�
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("瀹為獙瀹�")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String laboratory;
+ /**
+ * 鏍峰搧澶х被
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("鏍峰搧澶х被")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String sampleType;
+ /**
+ * 鏍峰搧
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("鏍峰搧")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String sample;
+ /**
+ * 鍨嬪彿
+ */
+ @Size(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ @ApiModelProperty("鍨嬪彿")
+ @Length(max= 255,message="缂栫爜闀垮害涓嶈兘瓒呰繃255")
+ private String model;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+ /**
+ *
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+ /**
+ *
+ */
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+ /**
+ *
+ */
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java
new file mode 100644
index 0000000..c77d629
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/Warehouse.java
@@ -0,0 +1,44 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 浠撳簱
+ * @TableName warehouse
+ */
+@TableName(value ="warehouse")
+@Data
+public class Warehouse implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 浠撳簱鍚嶇О
+ */
+ private String name;
+
+ /**
+ *
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java
new file mode 100644
index 0000000..c0686d3
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseCell.java
@@ -0,0 +1,61 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 璐ф灦鍗曞厓鏍�
+ * @TableName warehouse_cell
+ */
+@TableName(value ="warehouse_cell")
+@Data
+public class WarehouseCell implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 琛�
+ */
+ @TableField("`row`")
+ private Integer row;
+
+ /**
+ * 鍒�
+ */
+ @TableField("`col`")
+ private Integer col;
+
+ /**
+ *
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 鏄惁鏈夋晥 1锛氭湁鏁� 0锛氭棤鏁�
+ */
+ private Integer state;
+
+ /**
+ * 澶栨锛氳揣鏋秈d
+ */
+ private Integer shelfId;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java
new file mode 100644
index 0000000..b9929f7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseHistory.java
@@ -0,0 +1,56 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 鍑哄叆搴撹褰�
+ * @TableName warehouse_history
+ */
+@TableName(value ="warehouse_history")
+@Data
+public class WarehouseHistory implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ private String warehouseCode;
+
+ /**
+ * 澶栭敭锛氭牱鍝乮d
+ */
+ private Integer insSampleId;
+
+ /**
+ * 鐘舵�侊細1锛氬叆搴� 2锛氬嚭搴�
+ */
+ private Integer state;
+
+ /**
+ *
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 澶栭敭锛氬崟鍏冩牸id
+ */
+ private Integer cellId;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java
new file mode 100644
index 0000000..9ce3d47
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WarehouseShelf.java
@@ -0,0 +1,61 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 璐ф灦
+ * @TableName warehouse_shelf
+ */
+@TableName(value ="warehouse_shelf")
+@Data
+public class WarehouseShelf implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 璐ф灦鍚嶇О
+ */
+ private String name;
+
+ /**
+ * 琛�
+ */
+ @TableField("`row`")
+ private Integer row;
+
+ /**
+ * 鍒�
+ */
+ @TableField("`col`")
+ private Integer col;
+
+ /**
+ *
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ /**
+ * 澶栭敭锛氫粨搴搃d
+ */
+ private Integer warehouseId;
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
new file mode 100644
index 0000000..e585141
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -0,0 +1,58 @@
+package com.ruoyi.inspect.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.inspect.dto.*;
+import com.ruoyi.inspect.pojo.InsOrder;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author gaoaoy
+ * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2024-03-12 16:17:55
+ */
+public interface InsOrderService extends IService<InsOrder> {
+
+ //鑾峰彇鍗曚綅妫�楠屼笅鍗曟暟鎹�
+ Map<String, Object> selectInsOrderParameter(Page<InsOrder> page, SampleOrderDto sampleOrderDto);
+
+ //淇敼妫�楠屼笅鍗曟暟鎹�
+ int upInsOrder(UpInsOrderDTO upInsOrderDTO);
+
+ int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing,List<List<Integer>> fiberPairing);
+
+ Map<String, Object> getInsOrder(Integer id);
+
+ int upInsOrderOfState(InsOrder insOrder);
+
+ Map<String, Object> getInsOrderAndSample(Integer id, String laboratory);
+
+ Map<String, Object> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto);
+ List<Map<String, Object>> viewDetails(Map<String,Object> map);
+
+ void exportChecked(Map<String,Object> data, HttpServletResponse response);
+
+ Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
+
+ Map<String, Object> costStatistics2(CostStatisticsDto costStatisticsDto);
+
+ Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber);
+
+ int updateStatus(Integer id);
+
+ List<SampleProductDto3> labelPrinting(String ids);
+
+ void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response)throws IOException, ServletException;
+
+ Boolean hasSendUrgentOrder();
+
+ List<Map<String,Object>> getInsOrderTemList(Map<String,Object> data);
+
+ Map<String,Object> permute(Integer num,Boolean isValue);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderTemplateService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderTemplateService.java
new file mode 100644
index 0000000..c80a430
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderTemplateService.java
@@ -0,0 +1,24 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.pojo.InsOrderTemplate;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_order_template銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-03-18 14:14:54
+*/
+public interface InsOrderTemplateService extends IService<InsOrderTemplate> {
+
+ int addInsOrderTemplate(InsOrderTemplate insOrderTemplate);
+
+ List<InsOrderTemplate> selectInsOrderTemplate(String company);
+
+ Map<String,Object> selectInsOrderTemplateById(Integer id);
+
+ int delInsOrderTemplate(Integer id);
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
new file mode 100644
index 0000000..4ec492e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
@@ -0,0 +1,54 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.dto.InsProductDto;
+import com.ruoyi.inspect.pojo.InsProduct;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_product(妫�楠岄」鐩�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-03-17 23:57:39
+*/
+public interface InsProductService extends IService<InsProduct> {
+
+ int selectOrderManDay(Integer orderId);
+
+ int updateInspected(Integer id,String ids);
+
+ boolean write(InsProductDto insProductDto);
+
+ Map<String,Object> selectNoProducts(Page page, InsProduct insProduct,Integer orderId,String ids);
+
+ List<Map<String,Object>> selectSampleByOrderId(Integer orderId);
+
+ List<Map<String,Object>> selectProductsBySampleId(Integer sampleId,Integer orderId);
+
+ List<Map<String,Object>> selectTemperatureByProductId(Integer productId);
+
+
+ List<Map<String,Object>> selectTemperatureNumberByProductId(Integer parentId,String inspectionItem);
+
+ void revoke(Map<String,Object> data);
+
+ List<Map<String,Object>> revokeReviewSample(Integer orderId);
+
+ List<Map<String,Object>> revokeReviewTemperatureByProductId(Integer productId);
+
+
+ List<Map<String,Object>> revokeReviewProduct(Integer orderId,Integer sampleId);
+
+ List<Map<String,Object>> revokeReviewConsistentByProductId(Integer parentId,String inspectionItem);
+
+ void revocationPassed(Integer id);
+
+ void revocationCancel(Integer orderId);
+
+ void checkUpdate(Integer orderId,Integer state);
+
+ int write2(Integer id, String elasticityModulus);
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java
new file mode 100644
index 0000000..ce04742
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseCellService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.pojo.WarehouseCell;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-04-06 12:13:57
+*/
+public interface WarehouseCellService extends IService<WarehouseCell> {
+
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java
new file mode 100644
index 0000000..4987ad4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/WarehouseService.java
@@ -0,0 +1,42 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
+import com.ruoyi.inspect.dto.WarehouseDto;
+import com.ruoyi.inspect.pojo.Warehouse;
+import com.ruoyi.inspect.pojo.WarehouseShelf;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恮arehouse(浠撳簱)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-04-06 12:13:57
+*/
+public interface WarehouseService extends IService<Warehouse> {
+
+ int addWarehouse(String name);
+
+ List<WarehouseDto> selectWarehouse();
+
+ int addShelf(WarehouseShelf warehouseShelf);
+
+ int delWarehouse(Integer id);
+
+ int upWarehouse(Warehouse warehouse);
+
+ int delShelf(Integer id);
+
+ int upShelf(WarehouseShelf warehouseShelf);
+
+ List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId);
+
+ int inWarehouse(String trees, String sampleCode);
+
+ int outWarehouse(String sampleCode);
+
+ Map<String, Object> getSampleRecord(Integer id);
+
+ int searchSampleId(String sampleCode);
+}
\ No newline at end of file
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DetailTablePolicy.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DetailTablePolicy.java
new file mode 100644
index 0000000..e6a2b0e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DetailTablePolicy.java
@@ -0,0 +1,12 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.deepoove.poi.policy.DynamicTableRenderPolicy;
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+
+public class DetailTablePolicy extends DynamicTableRenderPolicy {
+ @Override
+ public void render(XWPFTable xwpfTable, Object data) throws Exception {
+ if (null == data) return;
+
+ }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
new file mode 100644
index 0000000..3f1c275
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -0,0 +1,2114 @@
+package com.ruoyi.inspect.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+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.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.domain.entity.Custom;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import com.ruoyi.common.core.domain.entity.User;
+
+import com.ruoyi.common.numgen.NumberGenerator;
+import com.ruoyi.common.utils.EasyExcelUtils;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.*;
+import com.ruoyi.inspect.excel.FiberRibboGeometricalParameterExcelData;
+import com.ruoyi.inspect.mapper.*;
+import com.ruoyi.inspect.pojo.*;
+import com.ruoyi.inspect.service.InsOrderService;
+import com.ruoyi.inspect.service.InsProductService;
+import com.ruoyi.inspect.vo.ExportInsProductVO;
+import com.ruoyi.inspect.vo.SampleDefectsFatherVo;
+import com.ruoyi.system.mapper.CustomMapper;
+import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.system.service.ISysDictTypeService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLEncoder;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * @author gaoaoy
+ * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2024-03-12 16:17:55
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class InsOrderServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder>
+ implements InsOrderService {
+
+ private InsOrderMapper insOrderMapper;
+
+ private InsSampleMapper insSampleMapper;
+
+ private InsProductMapper insProductMapper;
+
+ private InsProductService insProductService;
+
+ private InsProductUserMapper insProductUserMapper;
+
+ private NumberGenerator<InsOrder> numberGenerator;
+
+ private InsSampleUserMapper insSampleUserMapper;
+
+ private InsOrderStateMapper insOrderStateMapper;
+
+ UserMapper userMapper;
+
+ private InsBushingMapper insBushingMapper;
+
+ private InsFibersMapper insFibersMapper;
+
+ private InsFiberMapper insFiberMapper;
+
+ private InsProductResultMapper insProductResultMapper;
+
+ CustomMapper customMapper;
+
+ private ISysDictTypeService dictTypeService;
+
+ private ProcessOrder1Mapper processOrderMapper;
+
+
+ //鑾峰彇妫�楠屼笅鍗曟暟鎹�
+ @Override
+ public Map<String, Object> selectInsOrderParameter(Page<InsOrder> page, SampleOrderDto sampleOrderDto) {
+ page.setOptimizeCountSql(false);
+ List<String> startAndEndTime = sampleOrderDto.getStartAndEndTime();
+ String startTime = "";
+ String endTime = "";
+ if (CollectionUtils.isNotEmpty(startAndEndTime)) {
+ startTime = startAndEndTime.get(0) + " 00:00:00";
+ endTime = startAndEndTime.get(1) + " 23:59:59";
+ }
+
+ Map<String, Object> map = new HashMap<>();
+//// map.put("head", PrintChina.printChina(SampleOrderDto.class));
+// //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
+// Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
+// User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉
+// Integer roleId = user.getRoleId();
+// //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
+// String departLimsId = user.getDepartLimsId();
+ String laboratory = null;
+// if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.isEmpty()) {
+// String[] split = departLimsId.split(",");
+// //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
+// String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
+// if (departLims.contains("瀹為獙瀹�")) {
+// laboratory = departLims;
+// }
+// }
+// //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
+// Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrderParameter"));
+// if (ObjectUtils.isEmpty(power)) {
+// if (map1.get("look") == 1) {
+// //涓汉
+// sampleOrderDto.setCreateUser(map1.get("userId"));
+// } else {
+// //缁勭粐
+// try {
+// sampleOrderDto.setCompany(customMapper.selectById(user.getCompany()).getCompany());
+// } catch (NullPointerException e) {
+// throw new ErrorException("鎵句笉鍒版墍灞炲崟浣�");
+// }
+// }
+// }
+ Integer state = sampleOrderDto.getState();
+ sampleOrderDto.setState(null);
+ IPage<SampleOrderDto> sampleOrderDtoIPage = insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory, startTime, endTime, String.valueOf(state), null);
+ if (sampleOrderDtoIPage.getRecords().isEmpty() && (StringUtils.isNotBlank(sampleOrderDto.getEntrustCode()) || StringUtils.isNotBlank(sampleOrderDto.getOutEntrustCode()))) {
+ QueryWrapper<SampleOrderDto> wrapper = QueryWrappers.queryWrappers(sampleOrderDto);
+ IPage<InsOrder> orderPage = new Page<>();
+ BeanUtil.copyProperties(page, orderPage);
+ IPage<SampleOrderDto> otherPage = insOrderMapper.selectInsOrderPage(orderPage, wrapper, laboratory, startTime, endTime, null, String.valueOf(state));
+ if (1 == otherPage.getRecords().size()) {
+ sampleOrderDtoIPage = otherPage;
+ }
+ }
+ sampleOrderDtoIPage.getRecords().parallelStream().forEach(i -> {
+ if (ObjectUtils.isNotEmpty(i.getSampleCode()) && i.getSampleCode().contains("锛�")) {
+ String[] split = i.getSampleCode().split("锛�");
+ i.setSampleCode(split[0]);
+ }
+ });
+ map.put("body", sampleOrderDtoIPage);
+ return map;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int upInsOrder(UpInsOrderDTO upInsOrderDTO) {
+ InsOrder insOrder = new InsOrder();
+ insOrder.setId(upInsOrderDTO.getOrderId());
+ insOrder.setAppointed(LocalDate.parse(upInsOrderDTO.getAppointed()));
+ insOrder.setSendTime(LocalDateTime.now());
+ insOrderMapper.updateById(insOrder);
+ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, upInsOrderDTO.getOrderId()).select(InsSample::getId));
+ List<Integer> ids = insSamples.stream().map(InsSample::getId).collect(Collectors.toList());
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+ .in(InsProduct::getInsSampleId, ids)
+ .eq(InsProduct::getState, 1)
+// .isNull(InsProduct::getInsFibersId)
+// .isNull(InsProduct::getInsFiberId)
+ .select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory));
+ //鏌ヨins_order_state,娌℃湁鎵嶆柊澧�
+ long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, upInsOrderDTO.getOrderId()));
+ if (count == 0) {
+ for (InsProduct insProduct : insProducts) {
+ InsOrderState insOrderState = new InsOrderState();
+ insOrderState.setInsOrderId(upInsOrderDTO.getOrderId());
+ try {
+ insOrderState.setLaboratory(insProduct.getSonLaboratory());
+ } catch (NullPointerException e) {
+ throw new ErrorException("璇ユ楠屽崟鏈夋湭缁存姢瀹為獙瀹ょ殑妫�楠岄」鐩�");
+ }
+ insOrderState.setInsState(0);
+ insOrderStateMapper.insert(insOrderState);
+ }
+ }
+ //娣诲姞鏍峰搧妫�楠屼汉鍛�
+ if (CollectionUtils.isNotEmpty(upInsOrderDTO.getUserIdList())) {
+ upInsOrderDTO.getUserIdList().forEach(userId -> {
+ InsSampleUser insSampleUser = new InsSampleUser();
+ insSampleUser.setState(0);
+ insSampleUser.setUserId(userId);
+ insSampleUser.setInsSampleId(upInsOrderDTO.getOrderId());
+ insSampleUser.setSonLaboratory(upInsOrderDTO.getSonLaboratory());
+ insSampleUserMapper.insert(insSampleUser);
+ });
+ }
+ return 1;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing, List<List<Integer>> fiberPairing) {
+ insOrder.setState(0);
+ //鍒ゆ柇閫夋嫨鐨勫鎵樺崟浣嶄笌鍒跺崟浜虹殑濮旀墭鍗曚綅鏄惁涓�鑷�
+ Integer userId = 1;
+ String company = userMapper.selectById(userId).getCompany();
+ if (!company.equals(insOrder.getCompanyId() + "")) {
+ //濡傛灉涓嶄竴鑷撮偅涔堝鎵樹汉瀛楁蹇呭~
+ if (ObjectUtils.isEmpty(insOrder.getPrepareUser())) {
+ throw new ErrorException("濮旀墭浜轰笉鑳戒负绌�");
+ }
+ } else {
+ //濡傛灉涓�鑷�,閭d箞鍒跺崟浜哄氨鏄鎵樹汉
+ insOrder.setPrepareUser(insOrder.getCustom());
+ }
+ //瀹㈡埛浠e彿
+ Custom custom = customMapper.selectById(insOrder.getCompanyId());
+ String customCode = custom.getCode2();
+ if (!custom.getCompany().equals(insOrder.getCompany())) {
+ Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, insOrder.getCompany()));
+ insOrder.setCompanyId(one.getId());
+ customCode = one.getCode2();
+ }
+ //瀹為獙瀹ょ紪鍙�
+ String laboratoryCode = baseMapper.selLaboratoryCode(insOrder.getLaboratory());
+ if (StringUtils.isEmpty(laboratoryCode)) {
+ laboratoryCode = "";
+ }
+ //澶栭儴濮旀墭缂栧彿
+ String outEntrustCodePrefix = getOutEntrustCodePrefix(customCode, laboratoryCode);
+ String outEntrustCode = numberGenerator.generateNumberWithPrefix(5, outEntrustCodePrefix, InsOrder::getOutEntrustCode);
+ insOrder.setOutEntrustCode(outEntrustCode);
+// String giveCode = this.giveCode.giveCode("JCZX-" + customCode + "-", "ins_sample", "", "yyMMdd");
+ String giveCode = "";
+// insOrder.setOutEntrustCode(giveCode.giveCode3("ZT/" + code2 + "-" + code + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
+// String giveCode = this.giveCode.giveCode("JCZX-" + code + "-", "ins_sample", "", "yyMMdd");
+ insOrderMapper.insert(insOrder);
+ AtomicInteger count = new AtomicInteger();
+ List<FiberDto> fiberList = new ArrayList<>();
+ list.forEach(a -> {
+ count.getAndIncrement();
+ a.setId(null);
+ a.setInsOrderId(insOrder.getId());
+ if (StrUtil.isEmpty(a.getSampleCode())) {
+ a.setSampleCode(giveCode.split("-")[2] + "-" + count.get());
+ } else {
+ //鍘婚櫎鎵嬭緭鐨勬牱鍝佺紪鍙蜂腑棣栧熬鍙兘鍖呭惈鐨勭┖鏍�
+ a.setSampleCode(a.getSampleCode().trim());
+ }
+ insSampleMapper.insert(a);
+ if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
+ addInsProductMethod(a.getId(), a.getInsProduct(), null, 0, false);
+ if (ObjectUtil.isNotEmpty(a.getBushing())) {
+ for (BushingDto bushingDto : a.getBushing()) {
+ bushingDto.setInsSampleId(a.getId());
+ insBushingMapper.insert(bushingDto);
+ //鍏夌氦涓嶄负绌�
+ if (!bushingDto.getFiber().isEmpty()) {
+ fiberList.addAll(bushingDto.getFiber());
+ for (FiberDto fiberDto : bushingDto.getFiber()) {
+ fiberDto.setInsBushingId(bushingDto.getId());
+ insFiberMapper.insert(fiberDto);
+ addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
+ addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
+ }
+ }
+ //鍏夌氦甯︿笉涓虹┖
+ if (!bushingDto.getFibers().isEmpty()) {
+ for (FibersDto fibersDto : bushingDto.getFibers()) {
+ fibersDto.setInsBushingId(bushingDto.getId());
+ if (StringUtils.isBlank(fibersDto.getCode())) {
+// fibersDto.setCode(this.giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
+ fibersDto.setCode("");
+ }
+ insFibersMapper.insert(fibersDto);
+ for (FiberDto fiberDto : fibersDto.getFiber()) {
+ fiberDto.setInsFibersId(fibersDto.getId());
+ insFiberMapper.insert(fiberDto);
+ addInsProductMethod(a.getId(), a.getInsProduct(), fiberDto.getId(), 2, true);
+ addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
+ }
+ //addInsProductMethod(a.getId(), a.getInsProduct(), fibersDto.getId(), 1);
+ addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false);
+ }
+ }
+ //閮戒负绌� 鍙厤缃簡濂楃 杩欑鎯呭喌鍙檺浜庨」鐩垨瀛愰」鏄惈鏈夋澗濂楃鐨�
+ if (StringUtils.isNotBlank(bushingDto.getColor())) {
+ //妫�楠岄」鎷兼帴瀛楃
+ String insItem = a.getInsProduct().stream().map(InsProduct::getInspectionItem).distinct().collect(Collectors.joining(","));
+ //妫�楠屽瓙椤规嫾鎺ュ瓧绗�
+ String insItemSubclass = a.getInsProduct().stream().map(InsProduct::getInspectionItemSubclass).distinct().collect(Collectors.joining(","));
+ if (insItem.contains("鏉惧绠�") || insItemSubclass.contains("鏉惧绠�")) {
+ //鑾峰彇妫�楠岄」鐩悎鎴栧瓙椤逛腑鍖呭惈鏉惧绠$殑妫�楠岄」鐩�
+ List<InsProduct> products = a.getInsProduct().stream()
+ .filter(insProduct -> insProduct.getInspectionItem().contains("鏉惧绠�") ||
+ insProduct.getInspectionItemSubclass().contains("鏉惧绠�"))
+ .collect(Collectors.toList());
+ for (InsProduct product : products) {
+ product.setInsBushId(bushingDto.getId());
+ product.setId(null);
+ product.setCreateTime(null);
+ product.setCreateUser(null);
+ product.setUpdateTime(null);
+ product.setUpdateUser(null);
+ product.setInsSampleId(a.getId());
+ if (product.getInspectionItemSubclass() == null) {
+ product.setInspectionItemSubclass("");
+ }
+ insProductMapper.insert(product);
+ }
+ }
+// else {
+// throw new ErrorException("鏍峰搧鐨勫厜绾ら厤缃俊鎭噷闈㈡病鏈夐厤缃厜绾ゅ甫淇℃伅涔熸病鏈夊厜绾や俊鎭�,璇烽噸鏂伴厤缃繚瀛樺啀鎻愪氦涓嬪崟!!!");
+// }
+ }
+ }
+ }
+ }
+ if (ObjectUtil.isNotEmpty(a.getInsulating())) {
+ List<InsProduct> ip2 = new ArrayList<>();
+ for (Integer i = 0; i < a.getInsulating().getNum(); i++) {
+ ip2.addAll(a.getInsulating().getInsProduct());
+ }
+ for (InsProduct product : ip2) {
+ product.setStandardMethodListId(a.getInsulating().getStandardMethodListId());
+ }
+ addInsProductMethod(a.getId(), ip2, null, 0, false);
+ }
+ if (ObjectUtil.isNotEmpty(a.getSheath())) {
+ for (InsProduct product : a.getSheath().getInsProduct()) {
+ product.setStandardMethodListId(a.getSheath().getStandardMethodListId());
+ }
+ addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0, false);
+ }
+ if (ObjectUtil.isNotEmpty(a.getChildSampleList())) {
+ for (SampleProductDto b : a.getChildSampleList()) {
+ for (int i = 0; i < b.getNum(); i++) {
+ b.setId(null);
+ b.setInsOrderId(insOrder.getId());
+ b.setParentId(a.getId());
+ if (StrUtil.isEmpty(b.getSampleCode())) {
+// b.setSampleCode(this.giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
+ b.setSampleCode("");
+ }
+ insSampleMapper.insert(b);
+ if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
+ addInsProductMethod(b.getId(), b.getInsProduct(), null, 0, false);
+ }
+ }
+ }
+ }
+ if (ObjectUtil.isEmpty(a.getInsProduct()) && ObjectUtil.isNotEmpty(a.getBushing())) {
+ for (BushingDto bushingDto : a.getBushing()) {
+ bushingDto.setInsSampleId(a.getId());
+ insBushingMapper.insert(bushingDto);
+ if (!bushingDto.getFiber().isEmpty()) {
+ fiberList.addAll(bushingDto.getFiber());
+ for (FiberDto fiberDto : bushingDto.getFiber()) {
+ fiberDto.setInsBushingId(bushingDto.getId());
+ insFiberMapper.insert(fiberDto);
+ addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
+ }
+ } else {
+ for (FibersDto fibersDto : bushingDto.getFibers()) {
+ fibersDto.setInsBushingId(bushingDto.getId());
+ fibersDto.setCode("");
+ insFibersMapper.insert(fibersDto);
+ for (FiberDto fiberDto : fibersDto.getFiber()) {
+ fiberDto.setInsFibersId(fibersDto.getId());
+ insFiberMapper.insert(fiberDto);
+ addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false);
+ }
+ addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false);
+ }
+ }
+ }
+ }
+ });
+ //鏈夊厜绾ゆ帴澶存崯鑰楃壒娈婇」鐨勬牱鍝佹墠娣诲姞涓や袱缁勫悎
+ for (List<Integer> i : pairing) {
+ SampleProductDto sample = JSON.parseObject(JSON.toJSONString(list.get(i.get(0) - 1)), SampleProductDto.class);
+ List<InsProduct> insProducts = sample.getInsProduct().stream().filter(a -> Objects.equals(a.getInspectionItem(), "鍏夌氦鎺ュご鎹熻��")).collect(Collectors.toList());
+ if (!insProducts.isEmpty()) {
+ sample.setSampleCode(list.get(i.get(0) - 1).getSampleCode() + "/" + list.get(i.get(1) - 1).getSampleCode());
+ sample.setId(null);
+ sample.setIsPairing("1");
+ insSampleMapper.insert(sample);
+ try {
+ for (InsProduct insProduct : insProducts) {
+ insProduct.setId(null);
+ insProduct.setInsSampleId(sample.getId());
+ insProductMapper.insert(insProduct);
+ }
+ } catch (Exception e) {
+ }
+ }
+ }
+ //鍏夌氦閰嶇疆鐨勭啍鎺ラ厤瀵�
+ if (!fiberPairing.isEmpty()) {
+ for (List<Integer> integers : fiberPairing) {
+ StringBuilder code1 = new StringBuilder(list.get(0).getSampleCode() + "-");
+ StringBuilder code2 = new StringBuilder(list.get(1).getSampleCode() + "-");
+ //閰嶅鐨勪袱涓厜绾よ壊鏍�
+ FiberDto fiberDto1 = fiberList.get(integers.get(0) - 1);
+ code1.append(fiberDto1.getBushColor()).append("-").append(fiberDto1.getColor());
+ FiberDto fiberDto2 = fiberList.get(integers.get(1) - 1);
+ code2.append(fiberDto2.getBushColor()).append("-").append(fiberDto2.getColor());
+ //鍕鹃�夌殑鍏夌氦鎺ュご鎹熻�楁楠岄」
+ //List<InsProduct> insProducts = fiberDto1.getProductList().stream().filter(a -> Objects.equals(a.getInspectionItem(), "鍏夌氦鎺ュご鎹熻��")).collect(Collectors.toList());
+
+ //閰嶅鍚庣殑鏍峰搧
+ InsSample insSample = new InsSample();
+ BeanUtil.copyProperties(list.get(0), insSample);
+ insSample.setSampleCode(code1 + "/" + code2);
+ insSample.setId(null);
+ insSample.setIsPairing("1");
+ insSampleMapper.insert(insSample);
+
+
+ // 濡傛灉鏄厜绾ら厤缃殑鐔旀帴閰嶅锛屽彧闇�瑕佽幏鍙杔ist鐨刡ushing灏辫锛岀敓鎴愮殑鏍峰搧涓暟涓庝笅鍗曠晫闈㈡牱鍝佷釜鏁版棤鍏�
+ // 涓�涓牱鍝佷笅闈㈠彧闇�瑕佹坊鍔犱竴娆roduct 鍙坊鍔犲厜绾ゆ帴澶存崯鑰楃殑妫�楠岄」
+ // 娣诲姞濂楃
+ List<BushingDto> bushing = list.get(0).getBushing();
+ if (CollectionUtils.isNotEmpty(bushing)) {
+ for (int j = 0; j < bushing.size(); j++) {
+ bushing.get(j).setId(null);
+ bushing.get(j).setInsSampleId(insSample.getId());
+ insBushingMapper.insert(bushing.get(j));
+ Integer bushingId = bushing.get(j).getId();
+ // 娣诲姞鍏夌氦甯�
+ List<FibersDto> fibers = bushing.get(j).getFibers();
+ if (CollectionUtils.isNotEmpty(fibers)) {
+ fibers.forEach(item -> {
+ item.setId(null);
+ item.setInsBushingId(bushingId); // 濂楃id
+ insFibersMapper.insert(item);
+ // 灏嗘楠岄」鐨勫厜绾ゅ甫id璧嬪��
+ if (CollectionUtils.isNotEmpty(item.getProductList())) {
+ item.getProductList().forEach(insProduct -> {
+ if (insProduct.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
+ insProduct.setInsFibersId(item.getId()); // 鍏夌氦甯d
+ insProduct.setInsSampleId(insSample.getId()); // 鏍峰搧id
+ insProduct.setId(null);
+ insProductMapper.insert(insProduct);
+ }
+ });
+ }
+ // 鏄惁鍚湁鍏夌氦
+ if (CollectionUtils.isNotEmpty(item.getFiber())) {
+ List<FiberDto> fiber = item.getFiber();
+ fiber.forEach(f -> {
+ f.setId(null);
+ f.setInsBushingId(bushingId); // 濂楃id
+ insFiberMapper.insert(f);
+ f.getProductList().forEach(insProduct -> {
+ if (insProduct.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
+ insProduct.setInsFiberId(f.getId()); // 鍏夌氦id
+ insProduct.setInsSampleId(insSample.getId()); // 鏍峰搧id
+ insProduct.setId(null);
+ insProductMapper.insert(insProduct);
+ }
+ });
+ });
+ }
+
+ });
+ }
+ // 鍙湁鍏夌氦鐨勬儏鍐典笅
+ else {
+ bushing.get(j).getFiber().forEach(f -> {
+ f.setInsBushingId(bushingId); // 濂楃id
+ f.setId(null);
+ insFiberMapper.insert(f);
+ f.getProductList().forEach(insProduct -> {
+ if (insProduct.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
+ insProduct.setInsFiberId(f.getId()); // 鍏夌氦id
+ insProduct.setInsSampleId(insSample.getId()); // 鏍峰搧id
+ insProduct.setId(null);
+ insProductMapper.insert(insProduct);
+ }
+ });
+ });
+ }
+ }
+ }
+
+ // 娌℃湁杩涜鍏夌氦閰嶇疆鐨勭啍鎺ラ厤瀵癸紝鐩存帴娣诲姞鏍峰搧
+// try {
+// for (InsProduct insProduct : insProducts) {
+// insProduct.setId(null);
+// insProduct.setInsSampleId(insSample.getId());
+// insProductMapper.insert(insProduct);
+// }
+// } catch (Exception e) {
+// }
+ }
+ }
+ return insOrder.getId();
+ }
+
+ /**
+ * 鐢熸垚澶栭儴濮旀墭缂栧彿鍓嶇紑锛歓T/TX-01-2411XXXXX
+ *
+ * @param customCode 瀹㈡埛浠e彿
+ * @param labCode 璇曢獙瀹や唬鍙�
+ * @return
+ */
+ private static String getOutEntrustCodePrefix(String customCode, String labCode) {
+ String currentMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMM"));
+ return "ZT/" + labCode + "-" + customCode + "-" + currentMonth;
+ }
+
+ /**
+ * 鐢熸垚妫�娴嬩腑蹇冨鎵樼紪鍙峰墠缂�锛欽CZX/TX-01-2411XXXXX
+ *
+ * @param customCode 瀹㈡埛浠e彿
+ * @param labCode 璇曢獙瀹や唬鍙�
+ * @return
+ */
+ private static String getEntrustCodePrefix(String customCode, String labCode) {
+ String currentMonth = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMM"));
+ return "JCZX/" + labCode + "-" + customCode + "-" + currentMonth;
+ }
+
+ private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) {
+ InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId());
+ String name = insSampleMapper.selMethodById(sampleId);
+ for (InsProduct product : productList) {
+ if (product.getInspectionItem().contains("鏉惧绠�") || (!Objects.isNull(product.getInspectionItemSubclass()) && product.getInspectionItemSubclass().contains("鏉惧绠�"))) {
+ continue;
+ }
+ if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) {
+ //鍒ゆ柇鍏夌紗鐨勬俯搴﹀惊鐜」鐩坊鍔�
+ if (insOrder.getSampleType().equals("鍏夌紗") && product.getInspectionItem().equals("娓╁害寰幆") && type != 0) {
+ //鍒ゆ柇閫夋嫨鐨勬爣鍑嗘柟娉曟槸濮旀墭瑕佹眰杩樻槸鍏朵粬鏍囧噯鏂规硶
+ if (!name.equals("濮旀墭瑕佹眰")) {
+ //鍒ゆ柇鏍囧噯鏂规硶鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪鏄惁鏈夊~鍐�
+ if (ObjectUtils.isEmpty(product.getTell()) || product.getTell().isEmpty()) {
+ throw new ErrorException("鍏夌紗鐨勬俯搴﹀惊鐜殑瑕佹眰鎻忚堪涓虹┖,闇�瑕佸湪鏍囧噯搴撻厤缃姹傛弿杩�!!!");
+ } else {
+ //瑙f瀽(娓╁害鑼冨洿锛�20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km)
+ String tell = product.getTell().replace("锛�", ")")
+ .replace("(", "锛�")
+ .replace(")", "锛�")
+ .replace("锛�", ",")
+ .replace("锛�", ":")
+ .replace("锛�", ";")
+ .replace("涓嶅ぇ浜�", "鈮�")
+ .replace("涓嶅皬浜�", "鈮�")
+ .replace("澶т簬", ">")
+ .replace("灏忎簬", "<")
+ .replace("绛変簬", "=");
+ String[] message = null;
+ String[] nm = null;
+ String ask = null;
+ String count = null;
+ try {
+ String[] strings = tell.split(";");
+ //娓╁害
+ String temperature = strings[0];
+ String[] split = temperature.split(":");
+ message = split[1].split(",");
+ //寰幆娆℃暟
+ count = strings[2].split(":")[1].split("娆�")[0];
+ //鍏夌氦椤圭洰鍜岃姹傚��
+ String string = strings[3];
+ nm = string.split("锛�")[1].split("锛�")[0].split(",");
+ ask = string.split("琛板噺")[1].split("dB")[0];
+ } catch (Exception e) {
+ throw new ErrorException("娓╁害寰幆鐨勮姹傛弿杩版牸寮忓紓甯�,璇峰弬鐓ф俯搴﹁寖鍥达細20鈩冿紝-40鈩冿紝65鈩冿紱淇濇俯鏃堕棿锛�12h锛� 寰幆娆℃暟锛�2娆★紱 鍏夌氦锛�1310nm锛�1550nm锛夐檮鍔犺“鍑忎笉澶т簬0.03dB/km");
+ }
+ //鎷兼帴
+ String s = "";
+ for (int i = 0; i < nm.length; i++) {
+ s += "20鈩�(甯告俯)," + nm[i] + ",null;";
+ for (int j = 0; j < message.length; j++) {
+ s += message[j] + "," + nm[i] + "," + ask + ";";
+ }
+ }
+ s += count;
+ product.setAsk(s);
+ insProductMapper.updateById(product);
+ dealWithTemperatureLoop(type, id, sampleId, product);
+ }
+ } else {
+ //20鈩�(甯告俯),1310nm,null;-40鈩�,1310nm,鈮�0.2;75鈩�,1310nm,<0.3;20鈩�,1310nm,鈮�0.1;20鈩�(甯告俯),1550nm,null;-40鈩�,1550nm,鈮�0.2;75鈩�,1550nm,<0.3;20鈩�,1550nm,鈮�0.1;3
+ dealWithTemperatureLoop(type, id, sampleId, product);
+ }
+ }
+ //鍒ゆ柇鐑惊鐜」鐩殑娣诲姞鍜屾俯鍗囪瘯楠岄」鐩殑娣诲姞
+ else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) {
+ List<InsProduct> insProductess = new ArrayList<>();
+ product.setId(null);
+ product.setInsSampleId(sampleId);
+ insProductMapper.insert(product);
+// insProductess.add(product);
+ List<InsProduct> insProductes = new ArrayList<>();
+ List<InsProduct> insProducts = new ArrayList<>();
+ String[] strings = product.getAsk().split(";");
+ //寰幆娆℃暟
+ int count = Integer.parseInt(strings[strings.length - 1]);
+ for (int i = 0; i < strings.length - 1; i++) {
+ String[] split = strings[i].split(",");
+ InsProduct insProduct = new InsProduct();
+ insProduct.setInspectionItem("1");//妫�楠岀埗椤�--寰幆娆℃暟
+ insProduct.setInspectionItemSubclass(split[0]);//妫�楠屽瓙椤�--鐜娓╁害/瀵肩嚎娓╁害/鑰愬紶娓╁害/鎺ョ画娓╁害
+ insProduct.setInspectionItemSubclassEn(split[1]);//妫�楠屽瓙椤硅嫳鏂�--鐜娓╁害/瀵肩嚎娓╁害/鑰愬紶娓╁害/鎺ョ画娓╁害
+ insProduct.setAsk(null);//妫�楠岃姹�
+ insProduct.setTell(null);//妫�楠屾弿杩�
+ insProduct.setInsSampleId(sampleId);
+ insProduct.setState(1);
+ insProduct.setFactory(product.getFactory());
+ insProduct.setLaboratory(product.getLaboratory());
+ insProduct.setSampleType(product.getSampleType());
+ insProduct.setSample(product.getSample());
+ insProduct.setModel(product.getModel());
+ insProduct.setSonLaboratory(product.getSonLaboratory());
+ insProduct.setUnit("鈩�");//鍗曚綅
+ insProduct.setManHour(product.getManHour());//宸ユ椂
+ insProduct.setManHourGroup(product.getManHourGroup());
+ insProduct.setInspectionItemType("0");
+ insProduct.setInspectionValueType("1");
+ insProduct.setTemplateId(product.getTemplateId());//娣诲姞妯℃澘id
+ insProduct.setSpecialItemParentId(product.getId());//鐗规畩椤圭埗id
+ if (product.getInspectionItem().equals("鐑惊鐜�")) {
+ insProduct.setInspectionItemClass("鐩存祦鐢甸樆");//妫�楠屽瓙瀛愰」--鐩存祦鐢甸樆
+ insProduct.setInspectionItemClassEn("DC resistance");//妫�楠屽瓙瀛愰」鑻辨枃--鐩存祦鐢甸樆
+ insProduct.setUnit("惟/km");//鍗曚綅
+ }
+ insProducts.add(insProduct);
+ insProductes.add(insProduct);
+ insProductess.add(insProduct);
+ }
+ //鐑惊鐜墠鏈夊娆″惊鐜鏁�
+ if (count > 1) {
+ //寰幆瓒呰繃1娆�
+ for (int j = 2; j <= count; j++) {
+ for (InsProduct insProduct : insProductes) {
+ InsProduct insProduct1 = new InsProduct();
+ BeanUtils.copyProperties(insProduct, insProduct1);
+ insProduct1.setInspectionItem(j + "");//寰幆娆℃暟
+ insProductess.add(insProduct1);
+ }
+ }
+ }
+ insProductService.saveBatch(insProductess);
+ }
+ //寮у瀭鐗规畩椤�
+ else if (product.getInspectionItem().contains("寮у瀭")) {
+ product.setId(null);
+ product.setInsSampleId(sampleId);
+ insProductMapper.insert(product);
+ //闇�瑕佹坊鍔犵殑瀛愰」
+ List<Map<String, Object>> childrenMapList = initChildrenList();
+ //瀛愰」
+ List<InsProduct> childrenProducts = new ArrayList<>();
+ for (Map<String, Object> map : childrenMapList) {
+ InsProduct insProduct = new InsProduct();
+ insProduct.setInspectionItem(product.getInspectionItem());
+ insProduct.setInspectionItemSubclass(map.get("inspectionItem").toString());
+ insProduct.setUnit(map.get("unit").toString());
+ insProduct.setAsk(null);//妫�楠岃姹�
+ insProduct.setTell(null);//妫�楠屾弿杩�
+ insProduct.setInsSampleId(sampleId);
+ insProduct.setState(1);
+ insProduct.setFactory(product.getFactory());
+ insProduct.setLaboratory(product.getLaboratory());
+ insProduct.setSampleType(product.getSampleType());
+ insProduct.setSample(product.getSample());
+ insProduct.setModel(product.getModel());
+ insProduct.setSonLaboratory(product.getSonLaboratory());
+ insProduct.setManHour(product.getManHour());//宸ユ椂
+ insProduct.setManHourGroup(product.getManHourGroup());
+ insProduct.setInspectionItemType("0");
+ insProduct.setInspectionValueType("1");
+ insProduct.setTemplateId(product.getTemplateId());//娣诲姞妯℃澘id
+ insProduct.setSpecialItemParentId(product.getId());//鐗规畩椤圭埗id
+ childrenProducts.add(insProduct);
+ }
+ insProductService.saveBatch(childrenProducts);
+ } else {
+ if (!is) {
+ switch (type) {
+ case 1:
+ product.setInsFibersId(id);
+ break;
+ case 2:
+ product.setInsFiberId(id);
+ break;
+ }
+ product.setId(null);
+ product.setCreateTime(null);
+ product.setCreateUser(null);
+ product.setUpdateTime(null);
+ product.setUpdateUser(null);
+ product.setInsSampleId(sampleId);
+ if (product.getInspectionItemSubclass() == null) {
+ product.setInspectionItemSubclass("");
+ }
+ // 鏅�氶」鐩� 濡傛灉ask鍖呭惈浜� % 灏卞幓闄�
+ if(product.getAsk().contains("%")) {
+ String ask = product.getAsk().replace("%", "").trim();
+ product.setAsk(ask);
+ }
+ insProductMapper.insert(product);
+ }
+ }
+ }
+
+
+ }
+ }
+
+ /**
+ * 鍒濆鍖栧姬鍨傜壒娈婇」鐩瓙椤�
+ * 鍥哄畾瀛愰」锛氶瀹氭媺鏂姏锛岃法璺濋暱搴︼紝杞借嵎锛岄珮搴︼紝寮у瀭锛屽绾挎俯搴︼紝瀹ゆ俯锛屽紶鍔�
+ *
+ * @return
+ */
+ private List<Map<String, Object>> initChildrenList() {
+ List<Map<String, Object>> maps = new ArrayList<>();
+ Map<String, Object> map1 = new HashMap<>();
+ map1.put("inspectionItem", "棰濆畾鎷夋柇鍔�");
+ map1.put("unit", "kN");
+ Map<String, Object> map2 = new HashMap<>();
+ map2.put("inspectionItem", "璺ㄨ窛闀垮害");
+ map2.put("unit", "m");
+ Map<String, Object> map3 = new HashMap<>();
+ map3.put("inspectionItem", "杞借嵎");
+ map3.put("unit", "kN");
+ Map<String, Object> map5 = new HashMap<>();
+ map5.put("inspectionItem", "寮у瀭");
+ map5.put("unit", "mm");
+ Map<String, Object> map6 = new HashMap<>();
+ map6.put("inspectionItem", "瀵肩嚎娓╁害");
+ map6.put("unit", "鈩�");
+ Map<String, Object> map7 = new HashMap<>();
+ map7.put("inspectionItem", "瀹ゆ俯");
+ map7.put("unit", "鈩�");
+ Map<String, Object> map8 = new HashMap<>();
+ map8.put("inspectionItem", "寮犲姏");
+ map8.put("unit", "kN");
+
+ maps.add(map1);
+ maps.add(map2);
+ maps.add(map3);
+ maps.add(map5);
+ maps.add(map6);
+ maps.add(map7);
+ maps.add(map8);
+
+ return maps;
+ }
+
+ //娓╁害寰幆鐨勫鐞�
+ private void dealWithTemperatureLoop(Integer type, Integer id, Integer sampleId, InsProduct product) {
+ List<InsProduct> insProductes = new ArrayList<>();
+ List<InsProduct> insProducts = new ArrayList<>();
+ String[] strings = product.getAsk().split(";");
+ for (int i = 0; i < strings.length; i++) {
+ int count = Integer.parseInt(strings[strings.length - 1]);
+ if (i != strings.length - 1) {
+ InsProduct insProduct = new InsProduct();
+ switch (type) {
+ case 1:
+ insProduct.setInsFibersId(id);
+ break;
+ case 2:
+ insProduct.setInsFiberId(id);
+ break;
+ }
+ String[] split = strings[i].split(",");
+ if (split[0].equals("20鈩�")) {
+ insProduct.setInspectionItem(count + "");//妫�楠岄」--寰幆娆℃暟
+ } else {
+ insProduct.setInspectionItem("1");//妫�楠岄」--寰幆娆℃暟
+ }
+ insProduct.setInspectionItemSubclass(split[0]);//妫�楠岄」--娓╁害
+ insProduct.setInspectionItemClass(split[1]);//妫�楠岄」--鍏夌氦椤圭洰
+ insProduct.setAsk(split[2]);//妫�楠岃姹�
+ insProduct.setTell(strings[i]);//妫�楠屾弿杩�
+ insProduct.setInsSampleId(sampleId);
+ insProduct.setState(1);
+ insProduct.setFactory(product.getFactory());
+ insProduct.setLaboratory(product.getLaboratory());
+ insProduct.setSampleType(product.getSampleType());
+ insProduct.setSample(product.getSample());
+ insProduct.setModel(product.getModel());
+ insProduct.setSonLaboratory(product.getSonLaboratory());
+ insProduct.setUnit(product.getUnit());
+ insProduct.setManHourGroup(product.getManHourGroup());
+ insProduct.setManHour(product.getManHour());
+ insProduct.setInspectionItemType("0");
+ insProduct.setInspectionValueType("1");
+ insProduct.setTemplateId(product.getTemplateId());//娣诲姞妯℃澘id
+ insProduct.setSpecialItemParentId(product.getId());//鐗规畩椤圭埗id
+ insProducts.add(insProduct);
+ insProductes.add(insProduct);
+ } else {
+ //鏈�鍚庝竴涓暟鎹槸璇存槑浼氬惊鐜灏戞
+ if (count > 1) {
+ //寰幆瓒呰繃1娆�
+ for (int j = 2; j <= count; j++) {
+ for (InsProduct insProduct : insProducts) {
+ if (!insProduct.getInspectionItemSubclass().equals("20鈩�") && !insProduct.getInspectionItemSubclass().equals("20鈩�(甯告俯)")) {
+ InsProduct insProduct1 = new InsProduct();
+ BeanUtils.copyProperties(insProduct, insProduct1);
+ insProduct1.setInspectionItem(j + "");
+ insProductes.add(insProduct1);
+ }
+ }
+ }
+ }
+ }
+ }
+ insProductService.saveBatch(insProductes);
+ }
+
+ @Override
+ public Map<String, Object> getInsOrder(Integer id) {
+ Map<String, Object> map = new HashMap<>();
+ InsOrder insOrder = insOrderMapper.selectById(id);
+ List<SampleProductDto> list = insSampleMapper.selectSampleProductListByOrderId2(id);
+ // 濡傛灉鏄厜绾ら厤缃帴澶存崯鑰楀彧闇�灞曠ずA绔�丅绔�佸钩鍧囧��
+ if (CollectionUtils.isNotEmpty(list)) {
+ for (SampleProductDto dto : list) {
+ // 鑾峰彇妫�楠岄」鐩�
+ List<InsProduct> insProducts = dto.getInsProduct();
+ if (CollectionUtils.isNotEmpty(insProducts)) {
+ // 杩囨护鍑哄厜绾ら厤缃殑鍏夌氦鎺ュご鎹熻�楁楠岄」鐩�
+ List<InsProduct> productList = insProducts.stream().filter(item -> item.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")
+ && (!Objects.isNull(item.getInsFiberId()) || !Objects.isNull(item.getInsFibersId()))).collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(productList)) {
+ // 鍙繑鍥炲厜绾よ澶存崯鑰楁楠岄」鐩� 涓� 鍙睍绀轰竴娆�
+ // 鏍规嵁妫�楠岄」杩涜鍒嗙粍
+ Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItemSubclass));
+ List<InsProduct> productList2 = new ArrayList<>();
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> entry = iterator.next();
+ productList2.add(entry.getValue().get(0));
+ }
+ dto.setInsProduct(productList2);
+ }
+
+ }
+ }
+ }
+ map.put("insOrder", insOrder);
+ map.put("sampleProduct", list);
+ return map;
+ }
+
+ @Override
+ public int upInsOrderOfState(InsOrder insOrder) {
+ InsOrder order = insOrderMapper.selectById(insOrder.getId());
+ insOrder.setCompany(order.getCompany());
+ insOrder.setExamineTime(LocalDateTime.now());
+ if (insOrder.getState() == 1) {
+ //瀹℃牳閫氳繃鎵嶄細鐢熸垚濮旀墭缂栧彿
+ String laboratoryCode = baseMapper.selLaboratoryCode(insOrder.getLaboratory());
+ if (StringUtils.isEmpty(laboratoryCode)) {
+ laboratoryCode = "";
+ }
+ Custom custom = customMapper.selectById(order.getCompanyId());
+// System.out.println("============="+custom.getCompany());
+// System.out.println("-------------"+order.getCompany());
+ String customCode = custom.getCode2();
+ if (!custom.getCompany().equals(order.getCompany())) {
+ Custom one = customMapper.selectOne(Wrappers.<Custom>lambdaQuery().eq(Custom::getCompany, order.getCompany()));
+ insOrder.setCompanyId(one.getId());
+ customCode = one.getCode2();
+ }
+ String entrustCodePrefix = getEntrustCodePrefix(customCode, laboratoryCode);
+ String entrustCode = numberGenerator.generateNumberWithPrefix(4, entrustCodePrefix, InsOrder::getEntrustCode);
+ insOrder.setEntrustCode(entrustCode);
+// insOrder.setEntrustCode(giveCode.giveCode2("JCZX/" + code + "-" + code2 + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
+ /*瀹℃牳閫氳繃杩橀渶瑕佹柊澧炰竴鏉nas瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫*/
+ ProcessOrder processOrder = new ProcessOrder();
+ processOrder.setInsOrderId(insOrder.getId());
+ processOrderMapper.insert(processOrder);
+ }
+ return insOrderMapper.updateById(insOrder);
+ }
+
+ @Override
+ public Map<String, Object> getInsOrderAndSample(Integer id, String laboratory) {
+ Map<String, Object> map = new HashMap<>();
+ InsOrder insOrder = insOrderMapper.selectById(id);
+ Integer insState = insOrderStateMapper.selectOne(new LambdaQueryWrapper<InsOrderState>().eq(InsOrderState::getLaboratory, laboratory).eq(InsOrderState::getInsOrderId, id)).getInsState();
+ List<SampleProductDto> list = insSampleMapper.getInsOrderAndSample(id, laboratory);
+ for (SampleProductDto sampleProductDto : list) {
+ List<Integer> ids = sampleProductDto.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList());
+ List<InsProductUser> insProductUsers = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery()
+ .in(InsProductUser::getInsProductId, ids));
+ if (CollectionUtils.isNotEmpty(insProductUsers)) {
+ List<Integer> userIds = insProductUsers.stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
+ String collect = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
+ sampleProductDto.setCheckName(collect);
+ }
+ }
+ map.put("insOrder", insOrder);
+ map.put("sampleProduct", list);
+ map.put("insState", insState);
+ //鏌ヨ鎵�鏈夎褰曟ā鐗堝幓閲�
+ List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(id, laboratory);
+ map.put("reportModel", list2);
+ return map;
+ }
+
+ @Override
+ public Map<String, Object> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto) {
+ Map<String, Object> map = new HashMap<>();
+ List<Map<String, Object>> headList = new ArrayList<>();
+ List<SampleProductDto2> SampleProductDto2S = null;
+ if (!Objects.isNull(sampleProductDto.getId())) {
+ String laboratory = insOrderMapper.selectById(sampleProductDto.getId()).getLaboratory();
+ if (laboratory.equals("鐢靛姏浜у搧瀹為獙瀹�")) {
+ //鐢靛姏璇曢獙瀹ょ殑鏁版嵁鏌ョ湅锛屽垹闄ゅ厜绾ら厤缃浉鍏冲瓧娈�
+// headList = PrintChina.printChina(SampleProductDTODL.class);
+ SampleProductDto2S = insOrderMapper.selectSampleAndProductByOrderId(
+ QueryWrappers.queryWrappers(sampleProductDto).orderByAsc("ins_product_id"),
+ sampleProductDto.getId());
+ } else {
+// headList = PrintChina.printChina(SampleProductDto2.class);
+ SampleProductDto2S = insOrderMapper.selectSampleAndProductByOrderId(
+ QueryWrappers.queryWrappers(sampleProductDto)
+ .orderByAsc("son_laboratory"),
+// .orderByAsc("inspection_item")
+// .orderByAsc("inspection_item_subclass"),
+ sampleProductDto.getId());
+ List<SampleProductDto2> collect = SampleProductDto2S
+ .stream()
+ .filter(item -> item.getInspectionItem().contains("鏉惧绠�") || item.getInspectionItemSubclass()
+ .contains("鏉惧绠�")).collect(Collectors.toList());
+ // 鏍峰搧涓嬬殑鏉惧绠�
+ Map<String, List<SampleProductDto2>> collect1 = collect
+ .stream()
+ .collect(Collectors.groupingBy(item -> item.getSampleCode() + '@' + item.getInspectionItemSubclass() + '@' + item.getInspectionItem()));
+ Iterator<Map.Entry<String, List<SampleProductDto2>>> iterator = collect1.entrySet().iterator();
+ ArrayList<SampleProductDto2> list = new ArrayList<>();
+ while (iterator.hasNext()) {
+ SampleProductDto2 sampleProductDto2 = new SampleProductDto2();
+ double avg = 0.0;
+ double count = 0.0;
+ boolean flag = true;
+ Map.Entry<String, List<SampleProductDto2>> next = iterator.next();
+ for (SampleProductDto2 s : next.getValue()) {
+ if (StringUtils.isNotEmpty(s.getLastValue()) && (NumberUtil.isNumber(s.getLastValue()))) {
+ count += Double.parseDouble(s.getLastValue());
+ } else if (!NumberUtil.isNumber(s.getLastValue()) && StringUtils.isNotEmpty(s.getLastValue())) {
+ flag = false;
+ }
+ }
+ BeanUtil.copyProperties(next.getValue().get(0), sampleProductDto2);
+ sampleProductDto2.setBushColor("");
+ List<SampleProductDto2> collect2 = next.getValue().stream().filter(item -> Objects.nonNull(item.getInsResult()) && item.getInsResult().equals(0)).collect(Collectors.toList()); // 涓嶅悎鏍�
+ List<SampleProductDto2> collect3 = next.getValue().stream().filter(item -> Objects.nonNull(item.getInsResult()) && item.getInsResult().equals(3)).collect(Collectors.toList()); // 涓嶅垽瀹�
+ List<SampleProductDto2> collect4 = next.getValue().stream().filter(item -> StringUtils.isNotEmpty(item.getLastValue())).collect(Collectors.toList()); // 涓嶅垽瀹�
+ if (CollectionUtils.isNotEmpty(collect2)) {
+ sampleProductDto2.setInsResult(0);
+ sampleProductDto2.setLastValue(collect2.get(0).getLastValue());
+ } else if (CollectionUtils.isNotEmpty(collect3)) {
+ sampleProductDto2.setInsResult(3);
+ } else if (CollectionUtils.isNotEmpty(collect4)) {
+ sampleProductDto2.setInsResult(1);
+ } else {
+ sampleProductDto2.setInsResult(null);
+ }
+ if (flag) {
+ avg = BigDecimal.valueOf(count).divide(BigDecimal.valueOf(next.getValue().size()), 4, RoundingMode.HALF_UP).doubleValue();
+ if (avg == 0.0) {
+ sampleProductDto2.setLastValue("");
+ } else {
+ sampleProductDto2.setLastValue(String.valueOf(avg));
+ }
+ }
+ sampleProductDto2.setInspectionItem(next.getKey().split("@")[2]);
+ sampleProductDto2.setInspectionItemSubclass(next.getKey().split("@")[1]);
+ list.add(sampleProductDto2);
+ }
+ // 杩囨护鍑轰笉鍖呭惈涓烘澗濂楃涓斾笉涓哄厜绾ゆ帴澶存崯鑰楃殑鏁版嵁
+ List<SampleProductDto2> collect2 = SampleProductDto2S
+ .stream()
+ .filter(item -> !item.getInspectionItem().contains("鏉惧绠�") && !item.getInspectionItemSubclass()
+ .contains("鏉惧绠�") && !item.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")).collect(Collectors.toList());
+ // 濡傛灉鏄厜绾ゆ帴澶存崯鑰� 涓�涓牱鍝佸彧鍙栧叾涓竴涓殑A绔�丅绔�佸钩鍧囧��
+ Map<String, List<SampleProductDto2>> fiberMap = SampleProductDto2S
+ .stream()
+ .filter(item -> item.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��"))
+ .collect(Collectors.groupingBy(e -> e.getSampleCode() + e.getInspectionItem() + e.getInspectionItemSubclass()));
+ Iterator<Map.Entry<String, List<SampleProductDto2>>> iterator1 = fiberMap.entrySet().iterator();
+ while (iterator1.hasNext()) {
+ Map.Entry<String, List<SampleProductDto2>> entry = iterator1.next();
+ list.add(entry.getValue().get(0));
+ }
+ collect2.addAll(list);
+ SampleProductDto2S = collect2;
+// SampleProductDto2S.sort(new CustomComparator(enumService));
+ }
+ }
+ for (SampleProductDto2 record : SampleProductDto2S) {
+ List<String> values = new ArrayList<>();
+ //鍏夌氦甯︾紪鍙蜂笉涓虹┖&&妫�楠岃繃绋嬪�间笉涓虹┖
+ if (StringUtils.isNotBlank(record.getCode()) && (StringUtils.isNotBlank(record.getInsValue()) || Objects.equals(record.getInsValue(), "[]"))) {
+ JSONArray insValueJsonArray = JSON.parseArray(record.getInsValue());
+ for (Object o : insValueJsonArray) {
+ JSONObject insValue = JSON.parseObject(JSON.toJSONString(o));
+ if (StringUtils.isNotBlank(insValue.get("v").toString())) {
+ values.add(insValue.get("v").toString());
+ }
+ }
+ record.setLastValue(String.join(",", values));
+ }
+ }
+ map.put("head", headList);
+ map.put("body", SampleProductDto2S);
+ return map;
+ }
+
+ @Override
+ public List<Map<String, Object>> viewDetails(Map<String, Object> map) {
+ List<Map<String, Object>> list = new ArrayList<>();
+ String inspectionItem = map.get("inspectionItem").toString(); // 妫�楠岄」
+ if (inspectionItem.equals("鍗曟牴鍨傜洿鐕冪儳")) {
+ ArrayList<Integer> numbers = new ArrayList<>();
+ InsProduct insProduct = insProductMapper.selectById(Integer.parseInt(map.get("insProductId").toString()));
+ String[] split = insProduct.getTell().split(",");
+ Pattern pattern = Pattern.compile("-?\\d+");
+ Matcher matcher = pattern.matcher(split[1]);
+ while (matcher.find()) {
+ String numberStr = matcher.group();
+ numbers.add(Integer.parseInt(numberStr));
+ }
+ InsProductResult result = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>()
+ .eq(InsProductResult::getInsProductId, Integer.parseInt(map.get("insProductId").toString())));
+
+
+ for (int i = 0; i < numbers.get(0); i++) {
+ HashMap<String, Object> map1 = new HashMap<>();
+ map1.put("entrustCode", map.get("entrustCode")); // 濮旀墭缂栧彿
+ map1.put("sampleCode", map.get("sampleCode")); // 鏍峰搧缂栧彿
+ map1.put("color", ""); // 濂楃
+ map1.put("inspectionItem", inspectionItem); // 妫�楠岄」
+ if (!Objects.isNull(result)) {
+ List<Map> maps = JSONArray.parseArray(result.getInsValue(), Map.class);
+ if (maps.size() - 1 < i) {
+ map1.put("insValue", ""); // 妫�楠岀粨鏋�
+ } else {
+ map1.put("insValue", maps.get(i).get("v")); // 妫�楠岀粨鏋�
+ }
+ }
+ list.add(map1);
+ }
+ } else if (inspectionItem.equals("鎶楁媺寮哄害")) {
+ InsProduct insProduct = insProductMapper.selectById(Integer.parseInt(map.get("insProductId").toString()));
+ InsProductResult insProductResult = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>()
+ .eq(InsProductResult::getInsProductId, insProduct.getId()));
+ if(Objects.isNull(insProductResult)) {
+ return list;
+ }
+ List<Map<String, Object>> values = JSON.parseObject(insProductResult.getInsValue(), new TypeReference<List<Map<String, Object>>>() {
+ });
+ // 杩涜鎺掑簭 鏍规嵁鍧愭爣
+ values.sort((o1, o2) -> {
+ int i = Integer.parseInt(o1.get("r").toString());
+ int i1 = Integer.parseInt(o2.get("r").toString());
+ return Integer.compare(i,i1);
+ });
+ // 灏嗗緱鍒扮殑瀹藉害銆佸帤搴︺�佹楠屽�煎垎鍒繘琛屽瓨鍌�
+ Map<Object, List<Map<String, Object>>> group = values.stream().collect(Collectors.groupingBy(item -> item.get("r")));
+ Iterator<Map.Entry<Object, List<Map<String, Object>>>> iterator = group.entrySet().iterator();
+ List<String> widths = new ArrayList<>();
+ List<String> thickness = new ArrayList<>();
+ List<String> testValue = new ArrayList<>();
+ Integer count = 0;
+ while (iterator.hasNext()) {
+ Map.Entry<Object, List<Map<String, Object>>> entry = iterator.next();
+ List<Map<String, Object>> value = entry.getValue();
+ for(Map<String,Object> m : value) {
+ if(count == 0) {
+ widths.add(m.get("v").toString());
+ }else if(count == 1) {
+ thickness.add(m.get("v").toString());
+ }else {
+ testValue.add(m.get("v").toString());
+ }
+ }
+ count++;
+ }
+ // 杩涜灏佽杩斿洖
+ // 鎵惧埌鏈�闀跨殑閭d釜闆嗗悎
+ List<Integer> list1 = Arrays.asList(widths.size(), thickness.size(), testValue.size());
+ list1.sort((a1, a2) -> {
+ return Integer.compare(a2,a1);
+ });
+ for (int i = 0; i < list1.get(0); i++) {
+ HashMap<String, Object> map1 = new HashMap<>();
+ map1.put("inspectionItem",insProduct.getInspectionItem()); // 妫�楠岄」
+ map1.put("inspectionItemSubclass",insProduct.getInspectionItemSubclass()); // 妫�楠屽瓙椤�
+ map1.put("width",""); // 瀹藉害
+ map1.put("thickness",""); // 鍘氬害
+ map1.put("testValue",""); // 妫�楠屽��
+ if(i < widths.size() ) {
+ map1.put("width",widths.get(i));
+ }
+ if(i < thickness.size()) {
+ map1.put("thickness",thickness.get(i));
+ }
+ if(i < testValue.size()) {
+ map1.put("testValue",testValue.get(i));
+ }
+ list.add(map1);
+ }
+
+ } else if(inspectionItem.equals("鏂浼搁暱鐜�")) {
+ InsProduct insProduct = insProductMapper.selectById(Integer.parseInt(map.get("insProductId").toString()));
+ InsProductResult insProductResult = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>()
+ .eq(InsProductResult::getInsProductId, insProduct.getId()));
+ if(Objects.isNull(insProductResult)) {
+ return list;
+ }
+ List<Map<String, Object>> values = JSON.parseObject(insProductResult.getInsValue(), new TypeReference<List<Map<String, Object>>>() {
+ });
+ HashMap<String, Object> map1 = new HashMap<>();
+ map1.put("inspectionItem",insProduct.getInspectionItem()); // 妫�椤归」
+ map1.put("inspectionItemSubclass",insProduct.getInspectionItemSubclass()); // 妫�椤瑰瓙椤�
+ ArrayList<Map<String, Object>> tableHeader = new ArrayList<>();
+ for (int i = 0; i < values.size(); i++) {
+ HashMap<String, Object> map2 = new HashMap<>();
+ map2.put("testValue" + i,values.get(i).get("v")); // 妫�椤瑰�� 琛ㄥご
+ tableHeader.add(map2);
+ map1.put("testValue" + i,values.get(i).get("v"));
+ }
+ map1.put("tableHeader",tableHeader);
+ list.add(map1);
+ } else {
+ // 鏉惧绠� 杩囨护鍑烘楠岄」鍚嶇О涓�鑷寸殑鏁版嵁
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, Integer.parseInt(map.get("insSampleId").toString())))
+ .stream()
+ .filter(item -> item.getInspectionItem().equals(inspectionItem))
+ .collect(Collectors.toList());
+ for (InsProduct product : productList) {
+ HashMap<String, Object> map2 = new HashMap<>();
+ map2.put("entrustCode", map.get("entrustCode")); // 濮旀墭缂栧彿
+ map2.put("sampleCode", map.get("sampleCode")); // 鏍峰搧缂栧彿
+ map2.put("inspectionItem", product.getInspectionItem()); // 妫�楠岄」
+ map2.put("insValue", product.getLastValue()); // 妫�楠岀粨鏋�
+ // 鎷垮埌鐩稿簲鐨勫绠�
+ String color = "";
+ if (!Objects.isNull(product.getInsBushId())) {
+ color = insBushingMapper.selectById(product.getInsBushId()).getColor(); // 濂楃
+ }
+ map2.put("color", color); // 濂楃棰滆壊
+// InsProductResult result = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>()
+// .eq(InsProductResult::getInsProductId, product.getId()));
+// if(!Objects.isNull(result)) {
+// List<Map> maps = JSONArray.parseArray(result.getInsValue(), Map.class);
+// map2.put("insValue",maps.get(0).get("v").toString()); // 妫�楠岀粨鏋�
+// }
+ list.add(map2);
+ }
+ }
+ return list;
+ }
+
+ /**
+ * 瀵煎嚭宸叉濮旀墭鍗�
+ *
+ * @param data
+ * @param response
+ */
+ @Override
+ public void exportChecked(Map<String, Object> data, HttpServletResponse response) {
+// Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+ Integer userId = Integer.valueOf(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
+ User user = userMapper.selectById(userId);
+ List<String> names = null;
+ String startTime = "";
+ String endTime = "";
+ if (data.containsKey("startTime")) {
+ startTime = data.get("startTime").toString() + " 00:00:00";
+ }
+ if (data.containsKey("endTime")) {
+ endTime = data.get("endTime").toString() + " 23:59:59";
+ }
+ List<ExcelChecked> list = new ArrayList<>();
+
+ // 濡傛灉鏄娴嬩腑蹇冧汉鍛樺彲浠ュ鍏ユ墍鏈夊鎴蜂笅鐨勫崟 锛� 濡傛灉鏄鎴凤紝鍙互瀵煎嚭璇ュ崟浣嶆墍鏈夌殑鍗�
+ if (user.getIsCustom().equals(0)) {
+ names = new ArrayList<>();
+ } else {
+ String company = user.getCompany();
+ List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>()
+ .eq(User::getCompany, company)
+ .eq(User::getIsCustom, 1)
+ .eq(User::getStatus, 0));
+ if (CollectionUtils.isNotEmpty(users)) {
+ names = users.stream().map(item -> item.getName()).collect(Collectors.toList());
+ }
+ }
+ //鎬荤殑妫�楠岀粨鏋�
+ List<ExportInsProductVO> exportInsProductVOS = insOrderMapper.exportChecked(names, startTime, endTime);
+ //鎺掗櫎鍏夌氦甯﹀嚑浣曞弬鏁�(灏哄鍙傛暟)锛屾俯搴﹀惊鐜殑妫�楠岀粨鏋�
+// List<ExcelChecked> excelCheckeds = exportInsProductVOS.stream().map(e -> {
+// ExcelChecked excelChecked = new ExcelChecked();
+// BeanUtil.copyProperties(e, excelChecked);
+// return excelChecked;
+// }).collect(Collectors.toList());
+ // 鎺掗櫎鍏夌氦甯﹀嚑浣曞弬鏁�(灏哄鍙傛暟)锛屾俯搴﹀惊鐜殑妫�楠岀粨鏋�
+ List<ExportInsProductVO> excelCheckeds = exportInsProductVOS.stream().filter(e -> !e.getInspectionItem().equals("娓╁害寰幆")
+ && !(NumberUtil.isInteger(e.getInspectionItem()) && Objects.nonNull(e.getSpecialItemParentId()))
+ && !(e.getInspectionItem().equals("灏哄鍙傛暟")
+ && e.getSampleType().equals("鍏夌氦甯�")))
+ .collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(excelCheckeds)) {
+ for (ExportInsProductVO a : excelCheckeds) {
+ ExcelChecked excelChecked = new ExcelChecked();
+ BeanUtil.copyProperties(a, excelChecked);
+ list.add(excelChecked);
+ }
+ }
+ //杩囨护鍑哄厜绾ゅ甫鍑犱綍鍙傛暟鐨勬楠岀粨鏋�
+ List<ExportInsProductVO> sizeParameter = exportInsProductVOS.stream().filter(e ->
+ e.getInspectionItem().equals("灏哄鍙傛暟")
+ && e.getSampleType().equals("鍏夌氦甯�"))
+ .collect(Collectors.toList());
+ List<FiberRibboGeometricalParameterExcelData> fiberList = new ArrayList<>();
+ if (CollectionUtils.isNotEmpty(sizeParameter)) {
+ // 鏍规嵁濮旀墭鍗曞彿銆佹牱鍝佺紪鍙枫�佸绠°�佸厜绾ゅ甫缂栧彿杩涜鍒嗙粍
+ Map<String, List<ExportInsProductVO>> groupData = sizeParameter.stream().sorted(Comparator.comparing(ExportInsProductVO::getSampleCode))
+ .collect(Collectors.toMap(e ->
+ e.getEntrustCode() + '@' + e.getSampleCode() + '@' + e.getBushColor() + '@' + e.getCode(),
+ Collections::singletonList,
+ (left, right) -> {
+ ArrayList<ExportInsProductVO> list1 = new ArrayList<>(left);
+ list1.addAll(right);
+ return list1;
+ },
+ TreeMap::new));
+ Iterator<Map.Entry<String, List<ExportInsProductVO>>> iterator = groupData.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<ExportInsProductVO>> entry = iterator.next();
+ FiberRibboGeometricalParameterExcelData fiber = new FiberRibboGeometricalParameterExcelData();
+ ExportInsProductVO exportInsProductVO = entry.getValue().get(0);
+ fiber.setEntrustCode(exportInsProductVO.getEntrustCode()); // 濮旀墭鍗曞彿
+ fiber.setSampleCode(exportInsProductVO.getSampleCode()); // 鏍峰搧缂栧彿
+ fiber.setBushColor(exportInsProductVO.getBushColor()); // 濂楃鑹叉爣
+ fiber.setCode(exportInsProductVO.getCode()); // 鍏夌氦甯︾紪鍙�
+ fiber.setInspectionItemType("鍏夌氦鍑犱綍鍙傛暟"); // 妫�楠岄」
+ fiber.setInspector(exportInsProductVO.getCheckName()); // 妫�楠屼汉
+
+ for (ExportInsProductVO a : entry.getValue()) {
+ if (Objects.isNull(fiber.getInsTime())) {
+ if (Objects.nonNull(a.getCheckTime())) {
+ String format = a.getCheckTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ fiber.setInsTime(LocalDate.parse(format)); // 妫�楠屾椂闂�
+ }
+ }
+ switch (a.getInspectionItemSubclass()) {
+ case "瀹藉害":
+ List<Map> maps1 = getInsValueList(a.getInsValue());
+ if (CollectionUtils.isNotEmpty(maps1)) {
+ if (maps1.size() >= 2) {
+ fiber.setWidthA(maps1.get(0).get("v").toString());
+ fiber.setWidthB(maps1.get(1).get("v").toString());
+ } else {
+ fiber.setWidthA(maps1.get(0).get("v").toString());
+ }
+ }
+ break;
+ case "鍘氬害":
+ List<Map> maps2 = getInsValueList(a.getInsValue());
+ if (CollectionUtils.isNotEmpty(maps2)) {
+ if (maps2.size() >= 2) {
+ fiber.setThicknessA(maps2.get(0).get("v").toString());
+ fiber.setThicknessB(maps2.get(1).get("v").toString());
+ } else {
+ fiber.setThicknessA(maps2.get(0).get("v").toString());
+ }
+ }
+ break;
+ case "鐩搁偦鍏夌氦姘村钩闂磋窛":
+ List<Map> maps3 = getInsValueList(a.getInsValue());
+ if (CollectionUtils.isNotEmpty(maps3)) {
+ if (maps3.size() >= 2) {
+ fiber.setAdjacentSpacingA(maps3.get(0).get("v").toString());
+ fiber.setAdjacentSpacingB(maps3.get(1).get("v").toString());
+ } else {
+ fiber.setAdjacentSpacingA(maps3.get(0).get("v").toString());
+ }
+ }
+ break;
+ case "涓や晶鍏夌氦姘村钩闂磋窛":
+ List<Map> maps4 = getInsValueList(a.getInsValue());
+ if (CollectionUtils.isNotEmpty(maps4)) {
+ if (maps4.size() >= 2) {
+ fiber.setSideSpacingA(maps4.get(0).get("v").toString());
+ fiber.setSideSpacingB(maps4.get(1).get("v").toString());
+ } else {
+ fiber.setSideSpacingA(maps4.get(0).get("v").toString());
+ }
+ }
+ break;
+ case "骞虫暣搴�":
+ List<Map> maps5 = getInsValueList(a.getInsValue());
+ if (CollectionUtils.isNotEmpty(maps5)) {
+ if (maps5.size() >= 2) {
+ fiber.setEvennessA(maps5.get(0).get("v").toString());
+ fiber.setEvennessB(maps5.get(1).get("v").toString());
+ } else {
+ fiber.setEvennessA(maps5.get(0).get("v").toString());
+ }
+ }
+ break;
+ }
+ }
+ fiberList.add(fiber);
+ }
+ }
+
+ //杩囨护鍑烘俯搴﹀惊鐜�
+ List<ExportInsProductVO> temperatureCycling = exportInsProductVOS.stream().filter(e ->
+ NumberUtil.isInteger(e.getInspectionItem()) && Objects.nonNull(e.getSpecialItemParentId()) && e.getSonLaboratory().equals("鍏夌氦璇曢獙瀹�"))
+ .collect(Collectors.toList());
+
+ List<TemperatureCycling> temperatureCyclingList = getTemList(temperatureCycling);
+ try {
+ String fileName = URLEncoder.encode("宸叉濮旀墭鍗�", "UTF-8");
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ HorizontalCellStyleStrategy arveStyleStrategy = EasyExcelUtils.getStyleStrategy();
+ ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(arveStyleStrategy).build();
+ WriteSheet build = EasyExcel.writerSheet().sheetName("Sheet1").head(ExcelChecked.class).build();
+ excelWriter.write(list, build);
+ if (CollectionUtils.isNotEmpty(fiberList)) {
+ WriteSheet build1 = EasyExcel.writerSheet().sheetName("鍏夌氦鍑犱綍鍙傛暟").head(FiberRibboGeometricalParameterExcelData.class).build();
+ excelWriter.write(fiberList, build1);
+ }
+ if (CollectionUtils.isNotEmpty(temperatureCycling)) {
+ WriteSheet build2 = EasyExcel.writerSheet().sheetName("娓╁害寰幆").head(TemperatureCycling.class).build();
+ excelWriter.write(temperatureCyclingList, build2);
+ }
+ excelWriter.finish();
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.out.println("瀵煎嚭澶辫触" + e.getMessage());
+ }
+ }
+
+ @Override
+ public List<Map<String, Object>> getInsOrderTemList(Map<String, Object> data) {
+ String entrustCode = data.get("entrustCode").toString();
+ Integer createUser = null;
+ String name= "";
+ if (StringUtils.isNotBlank(data.get("createUser").toString())) {
+ createUser = Integer.parseInt(data.get("createUser").toString());
+// name = userMapper.selectByCreaterUser(createUser);
+ }
+ String sampleCode = data.get("sampleCode").toString();
+ String startTime = "";
+ String endTime = "";
+ List<Map<String, Object>> maps = new ArrayList<>();
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ if (StringUtils.isNotBlank(data.get("insTime").toString()) && !Objects.isNull(data.get("insTime"))) {
+ List insTime = objectMapper.readValue(JSONUtil.toJsonStr(data.get("insTime")), List.class);
+ startTime = insTime.get(0).toString();
+ endTime = insTime.get(1).toString();
+ }
+ List<ExportInsProductVO> insOrderTemList = insOrderMapper.getInsOrderTemList(entrustCode, sampleCode, startTime, endTime,name);
+ List<TemperatureCycling> temList = getTemList(insOrderTemList);;
+// if (StringUtils.isEmpty(name)) {
+// temList = getTemList(insOrderTemList);
+// } else {
+// temList = getTemList(insOrderTemList).stream()
+// .filter(tl -> name.equals(tl.getCheckName()))
+// .collect(Collectors.toList());
+// }
+ maps = new ArrayList<>(temList.size());
+ for (TemperatureCycling map : temList) {
+ Map<String, Object> resultMap = new HashMap<>();
+ resultMap.put("entrustCode", map.getEntrustCode()); //濮旀墭鍗曞彿
+ resultMap.put("sampleCode", map.getSampleCode()); //鏍峰搧缂栧彿
+ resultMap.put("bushing", map.getBushColor()); //濂楃
+ resultMap.put("fiber", map.getColor()); //鍏夌氦
+ resultMap.put("fibers", map.getCode()); //鍏夌氦甯�
+ resultMap.put("userName", map.getCheckName()); //妫�楠屼汉
+ resultMap.put("insTime", map.getInsTime()); //妫�娴嬫椂闂�
+ resultMap.put("sendTime", map.getSendTime()); //涓嬪彂鏃堕棿
+// resultMap.put("inspectionItem", map.getSample()); //妫�楠岄」鐩�
+ //娓╁害寰幆瀛愰」
+ resultMap.put("inspectionItems", map.getInspectionItem());
+ resultMap.put("inspectionItemSubclass", map.getInspectionItemSubclass());
+ resultMap.put("attenuationCoefficient1310", map.getAttenuationCoefficient1310());
+ resultMap.put("attenuationDifference1", map.getAttenuationDifference1());
+ resultMap.put("attenuationCoefficient1550", map.getAttenuationCoefficient1550());
+ resultMap.put("attenuationDifference2", map.getAttenuationDifference2());
+ resultMap.put("attenuationCoefficient1625", map.getAttenuationCoefficient1625());
+ resultMap.put("attenuationDifference3", map.getAttenuationDifference3());
+ resultMap.put("attenuationCoefficient1383", map.getAttenuationCoefficient1383());
+ resultMap.put("attenuationDifference4", map.getAttenuationDifference4());
+ resultMap.put("attenuationCoefficient1490", map.getAttenuationCoefficient1490());
+ resultMap.put("attenuationDifference5", map.getAttenuationDifference5());
+ resultMap.put("attenuationDifferenceMax", map.getAttenuationDifferenceMax());
+ resultMap.put("insResult", map.getInsResult());
+ maps.add(resultMap);
+ }
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
+ return maps;
+ }
+
+ @Override
+ public Map<String,Object> permute(Integer num,Boolean isValue) {
+ HashMap<String, Object> map = new HashMap<>();
+ ArrayList<Integer> integers = new ArrayList<>();
+ for (int i = 1; i <= num; i++) { // 浣跨敤杈冨皬鐨勬暟瀛楄寖鍥磋繘琛屾祴璇�
+ integers.add(i);
+ }
+ List<List<Integer>> result = permutes(integers);
+ if(isValue) {
+ map.put("resultData",result);
+ }else {
+ map.put("resultData",result.size());
+ }
+ return map;
+ }
+
+ private static List<List<Integer>> permutes(List<Integer> nums) {
+ List<List<Integer>> result = new ArrayList<>();
+ backtrack(new ArrayList<>(), nums, result);
+ return result;
+ }
+
+ private static void backtrack(List<Integer> temp, List<Integer> nums, List<List<Integer>> result) {
+ if (temp.size() == 2) {
+ result.add(new ArrayList<>(temp)); // 娣诲姞褰撳墠缁勫悎鍒扮粨鏋滃垪琛�
+ return;
+ }
+
+ for (int i = 0; i < nums.size(); i++) {
+ // 瑙勫畾椤哄簭锛岄伩鍏嶉噸澶嶇粍鍚�
+ if (temp.size() > 0 && nums.get(i) < temp.get(temp.size() - 1)) continue;
+ temp.add(nums.get(i)); // 娣诲姞褰撳墠鏁板瓧鍒颁复鏃剁粍鍚�
+ backtrack(temp, nums, result); // 閫掑綊璋冪敤
+ temp.remove(temp.size() - 1); // 鎭㈠鐘舵��
+ }
+ }
+
+ public List<TemperatureCycling> getTemList(List<ExportInsProductVO> temperatureCycling) {
+ List<TemperatureCycling> temperatureCyclingList = new ArrayList<>();
+ List<TemperatureCycling> newTemperatureCyclingList = new ArrayList<>(); // 杩斿洖鐨勬俯搴﹀惊鐜暟鎹�
+ if (CollectionUtils.isNotEmpty(temperatureCycling)) {
+ // 鏍规嵁濮旀墭鍗曞彿銆佹牱鍝佺紪鍙枫�佸绠°�佸厜绾胯壊鏍囥�佸惊鐜殑娆℃暟杩涜鍒嗙粍
+ List<ExportInsProductVO> collect = temperatureCycling.stream()
+ .sorted(Comparator.comparing(ExportInsProductVO::getInspectionItem)).collect(Collectors.toList());
+ Map<String, List<ExportInsProductVO>> temperatureGroup = collect.stream()
+ .sorted(Comparator.comparing(t -> getInspectionItemSubclassOrder(t.getInspectionItemSubclass()))).collect(Collectors.groupingBy(e ->
+ e.getEntrustCode() + "@" + e.getSampleCode() + "@" + e.getBushColor() + "@" + e.getColor() + "@" + e.getInspectionItem() + "@" + e.getInspectionItemSubclass(),
+ TreeMap::new,
+ Collectors.toList()));
+ // 鑾峰彇20鈩冪殑鏁版嵁 鏉ヨ繘琛屽樊鍊肩殑杩愮畻 鍙幏鍙栫涓�娆$殑20鈩冨父娓╃殑鏁版嵁,鏍规嵁鍗曞彿銆佹牱鍝佺紪鍙峰ソ銆佸绠″拰鍏夌氦鏉ワ紙浼氬瓨鍦ㄥ涓崟瀛愬涓牱鍝侊級
+ Map<String, BigDecimal> map = new HashMap<>();
+ for (ExportInsProductVO a : collect) {
+ if (a.getInspectionItem().equals("1") && a.getInspectionItemSubclass().equals("20鈩�(甯告俯)")) {
+ switch (a.getInspectionItemClass()) {
+ case "1310nm":
+ List<Map> insValue = getInsValueList(a.getComValue());
+ BigDecimal decay1310 = BigDecimal.ZERO;
+ if (CollectionUtils.isNotEmpty(insValue)) {
+ decay1310 = new BigDecimal(isNumber(insValue.get(0).get("v").toString()));
+
+ }
+ map.put(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass(), decay1310);
+ break;
+ case "1550nm":
+ List<Map> insValue1 = getInsValueList(a.getComValue());
+ BigDecimal decay1550 = BigDecimal.ZERO;
+ if (CollectionUtils.isNotEmpty(insValue1)) {
+ decay1550 = new BigDecimal(isNumber(insValue1.get(0).get("v").toString()));
+ }
+ map.put(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass(), decay1550);
+ break;
+ case "1625nm":
+ List<Map> insValue2 = getInsValueList(a.getComValue());
+ BigDecimal decay1625 = BigDecimal.ZERO;
+ if (CollectionUtils.isNotEmpty(insValue2)) {
+ decay1625 = new BigDecimal(isNumber(insValue2.get(0).get("v").toString()));
+ }
+ map.put(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass(), decay1625);
+ break;
+ case "1383nm":
+ List<Map> insValue3 = getInsValueList(a.getComValue());
+ BigDecimal decay1383 = BigDecimal.ZERO;
+ if (CollectionUtils.isNotEmpty(insValue3)) {
+ decay1383 = new BigDecimal(isNumber(insValue3.get(0).get("v").toString()));
+ }
+ map.put(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass(), decay1383);
+ break;
+ case "1490nm":
+ List<Map> insValue4 = getInsValueList(a.getComValue());
+ BigDecimal decay1490 = BigDecimal.ZERO;
+ if (CollectionUtils.isNotEmpty(insValue4)) {
+ decay1490 = new BigDecimal(isNumber(insValue4.get(0).get("v").toString()));
+ }
+ map.put(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass(), decay1490);
+ break;
+ }
+ }
+ }
+
+ // 鏍规嵁濮旀墭缂栧彿銆佹牱鍝佺紪鍙枫�佸惊鐜鏁般�佹俯搴︾偣杩涜鍒嗙粍
+ Map<String, List<ExportInsProductVO>> collect1 = temperatureCycling.stream()
+ .collect(Collectors.groupingBy(e -> e.getEntrustCode() + "@" + e.getSampleCode() + "@" + e.getInspectionItem() + "@" + e.getInspectionItemSubclass()));
+
+
+ // 灏嗗樊鍊间繚瀛�
+ Map<String, List<BigDecimal>> map1 = new HashMap<>();
+ Set<String> strings = new HashSet<>();
+ Iterator<Map.Entry<String, List<ExportInsProductVO>>> iterator1 = collect1.entrySet().iterator();
+ while (iterator1.hasNext()) {
+ Map.Entry<String, List<ExportInsProductVO>> entry = iterator1.next();
+ for (ExportInsProductVO a : entry.getValue()) {
+ // 灏嗗緱鍒扮殑琛板噺绯绘暟淇濆瓨 鍚庨潰瑕佺敤鍒�
+ strings.add(a.getInspectionItemClass());
+ switch (a.getInspectionItemClass()) {
+ case "1310nm":
+ case "1490nm":
+ case "1383nm":
+ case "1550nm":
+ case "1625nm":
+ List<Map> insValue = getInsValueList(a.getComValue());
+ if (CollectionUtils.isNotEmpty(insValue)) {
+ ArrayList<BigDecimal> bigDecimals = new ArrayList<>();
+ BigDecimal bigDecimal = new BigDecimal(isNumber(insValue.get(0).get("v").toString()));// 褰撳墠琛板噺鍊�
+ BigDecimal bigDecimal1 = map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass());// 20鈩冪殑琛板噺鍊�
+ BigDecimal v = bigDecimal.subtract(bigDecimal1);
+ bigDecimals.add(v.abs());
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + a.getInspectionItemClass())) {
+ map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + a.getInspectionItemClass()).addAll(bigDecimals);
+ } else {
+ map1.put(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + a.getInspectionItemClass(), bigDecimals);
+ }
+ } else {
+ if (!map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + a.getInspectionItemClass())) {
+ map1.put(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + a.getInspectionItemClass(), new ArrayList<>());
+ }
+ }
+ break;
+ }
+ }
+ }
+
+
+ Iterator<Map.Entry<String, List<ExportInsProductVO>>> iterator = temperatureGroup.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<ExportInsProductVO>> entry = iterator.next();
+ TemperatureCycling temperature = new TemperatureCycling();
+ for (ExportInsProductVO a : entry.getValue()) {
+ BeanUtils.copyProperties(a, temperature);
+ // 鏃堕棿鏍煎紡鍖�
+ if (Objects.nonNull(a.getCheckTime())) {
+ String format = a.getCheckTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ LocalDate parse = LocalDate.parse(format);
+ temperature.setInsTime(parse);
+ }
+ // 琛板噺绯绘暟鑾峰彇璁$畻鍊�
+ List<Map> insValue = getInsValueList(a.getComValue());
+ if (CollectionUtils.isNotEmpty(insValue)) {
+ switch (a.getInspectionItemClass()) {
+ case "1310nm":
+ temperature.setAttenuationCoefficient1310(isNumber(insValue.get(0).get("v").toString()));
+ // 20鈩�(甯告俯)鐨勬槸娌℃湁宸�肩殑
+ if (!a.getInspectionItemSubclass().contains("20鈩�(甯告俯)")) {
+ BigDecimal v = new BigDecimal(isNumber(insValue.get(0).get("v").toString())).subtract(map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass()));
+ String attenuationDifference = v.abs().toString();
+ temperature.setAttenuationDifference1(attenuationDifference);
+ }
+ break;
+ case "1550nm":
+ temperature.setAttenuationCoefficient1550(isNumber(insValue.get(0).get("v").toString()));
+ // 20鈩�(甯告俯)鐨勬槸娌℃湁宸�肩殑
+ if (!a.getInspectionItemSubclass().contains("20鈩�(甯告俯)")) {
+ BigDecimal v = new BigDecimal(isNumber(insValue.get(0).get("v").toString())).subtract(map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass()));
+ String attenuationDifference = v.abs().toString();
+ temperature.setAttenuationDifference2(attenuationDifference);
+ }
+ break;
+ case "1625nm":
+ temperature.setAttenuationCoefficient1625(isNumber(insValue.get(0).get("v").toString()));
+ // 20鈩�(甯告俯)鐨勬槸娌℃湁宸�肩殑
+ if (!a.getInspectionItemSubclass().contains("20鈩�(甯告俯)")) {
+ BigDecimal v = new BigDecimal(isNumber(insValue.get(0).get("v").toString())).subtract(map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass()));
+ String attenuationDifference = v.abs().toString();
+ temperature.setAttenuationDifference3(attenuationDifference);
+ }
+ break;
+ case "1383nm":
+ temperature.setAttenuationCoefficient1383(isNumber(insValue.get(0).get("v").toString()));
+ // 20鈩�(甯告俯)鐨勬槸娌℃湁宸�肩殑
+ if (!a.getInspectionItemSubclass().contains("20鈩�(甯告俯)")) {
+ BigDecimal v = new BigDecimal(isNumber(insValue.get(0).get("v").toString())).subtract(map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass()));
+ String attenuationDifference = v.abs().toString();
+ temperature.setAttenuationDifference4(attenuationDifference);
+ }
+ break;
+ case "1490nm":
+ temperature.setAttenuationCoefficient1490(isNumber(insValue.get(0).get("v").toString()));
+ // 20鈩�(甯告俯)鐨勬槸娌℃湁宸�肩殑
+ if (!a.getInspectionItemSubclass().contains("20鈩�(甯告俯)")) {
+ BigDecimal v = new BigDecimal(isNumber(insValue.get(0).get("v").toString())).subtract(map.get(a.getEntrustCode() + a.getSampleCode() + a.getBushColor() + a.getColor() + a.getInspectionItemClass()));
+ String attenuationDifference = v.abs().toString();
+ temperature.setAttenuationDifference5(attenuationDifference);
+ }
+ break;
+ }
+ // 杩涜琛板噺宸�肩殑鏈�澶у�艰祴鍊�
+ StringBuffer value = new StringBuffer();
+ if (strings.contains("1310nm")) {
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1310nm")) {
+ bigDecimal = Optional.ofNullable(map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1310nm"))
+ .orElse(Collections.emptyList()) // 濡傛灉鍊间负 null锛岃繑鍥炵┖鍒楄〃
+ .stream()
+ .sorted(Comparator.reverseOrder()) // 闄嶅簭鎺掑簭
+ .findFirst() // 鑾峰彇绗竴涓厓绱狅紙鏈�澶у�硷級
+ .orElse(BigDecimal.ZERO); // 濡傛灉鍒楄〃涓虹┖锛岃繑鍥為粯璁ゅ�硷紙渚嬪 BigDecimal.ZERO锛�
+ }
+ if (bigDecimal.abs().compareTo(BigDecimal.ZERO) > 0) {
+ value.append("|鈭喩憒1310nm max").append(bigDecimal.abs()).append("dB/km");
+ }
+ }
+ if (strings.contains("1550nm")) {
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1550nm")) {
+ List<BigDecimal> valuesList = map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1550nm").stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+ bigDecimal = valuesList.isEmpty() ? BigDecimal.ZERO : valuesList.get(0);
+ }
+ if (bigDecimal.abs().compareTo(BigDecimal.ZERO) > 0) {
+ value.append("|鈭喩憒1550nm max").append(bigDecimal.abs()).append("dB/km");
+ }
+ }
+ if (strings.contains("1625nm")) {
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1625nm")) {
+ bigDecimal = map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1625nm").stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).get(0);
+ }
+ if (bigDecimal.abs().compareTo(BigDecimal.ZERO) > 0) {
+ value.append("|鈭喩憒1625nm max").append(bigDecimal.abs()).append("dB/km");
+ }
+ }
+
+ if (strings.contains("1383nm")) {
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1383nm")) {
+ bigDecimal = map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1383nm").stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).get(0);
+ }
+ if (bigDecimal.abs().compareTo(BigDecimal.ZERO) > 0) {
+ value.append("|鈭喩憒1383nm max").append(bigDecimal.abs()).append("dB/km");
+ }
+ }
+
+ if (strings.contains("1490nm")) {
+ BigDecimal bigDecimal = BigDecimal.ZERO;
+ if (map1.containsKey(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1490nm")) {
+ bigDecimal = map1.get(a.getEntrustCode() + a.getSampleCode() + a.getInspectionItemSubclass() + "1490nm").stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()).get(0);
+ }
+ if (bigDecimal.abs().compareTo(BigDecimal.ZERO) > 0) {
+ value.append("|鈭喩憒1490nm max").append(bigDecimal.abs()).append("dB/km");
+ }
+ }
+ if (StringUtils.isNotEmpty(value.toString())) {
+ value.insert(0, a.getInspectionItemSubclass() + " ");
+ }
+ temperature.setAttenuationDifferenceMax(value.toString());
+ }
+ temperatureCyclingList.add(temperature);
+ }
+ }
+ }
+ temperatureCyclingList = temperatureCyclingList.stream().distinct().collect(Collectors.toList());
+ //鏌ヨ鍏ㄨ壊璋憋紝杩囨护鑹叉爣骞舵帓搴�
+ List<String> colorList = dictTypeService.selectDictDataByType("color_type").stream()
+ .sorted(Comparator.comparing(SysDictData::getDictSort))
+ .map(SysDictData::getDictLabel)
+ .collect(Collectors.toList());
+ Map<String, List<TemperatureCycling>> collect = temperatureCyclingList.stream().collect(Collectors.groupingBy(TemperatureCycling::getEntrustCode));
+ Iterator<Map.Entry<String, List<TemperatureCycling>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<TemperatureCycling>> entry = iterator.next();
+ //娓╁害寰幆鏍规嵁鑹叉爣鎺掑簭
+ entry.getValue().sort((o1, o2) -> {
+ //鏍规嵁濂楃鑹叉爣浠ュ強鍏夌氦鑹叉爣鎺掑簭
+ if (StringUtils.isNotBlank(o1.getBushColor()) && StringUtils.isNotBlank(o2.getBushColor())) {
+ //鍏堟寜鏍峰搧缂栧彿鍗囧簭
+ if (!Objects.equals(o1.getSampleCode(), o2.getSampleCode())) {
+ if (containsOnlyDigits(o1.getSampleCode()) && containsOnlyDigits(o2.getSampleCode())) {
+ Long o1Num = Long.parseLong(o1.getSampleCode());
+ Long o2Num = Long.parseLong(o2.getSampleCode());
+ return o1Num.compareTo(o2Num);
+ }
+ return o1.getSampleCode().compareTo(o2.getSampleCode());
+ }
+ //寰幆娆℃暟鎺掑簭
+ if (StringUtils.isNotBlank(o1.getInspectionItem()) && StringUtils.isNotBlank(o2.getInspectionItem())) {
+ if (!Objects.equals(o1.getInspectionItem(), o2.getInspectionItem())) {
+ Integer o1Index = Integer.parseInt(o1.getInspectionItem());
+ Integer o2Index = Integer.parseInt(o2.getInspectionItem());
+ return o1Index.compareTo(o2Index);
+ }
+ }
+ //濂楃鑹叉爣鎺掑簭
+ if (!Objects.equals(o1.getBushColor(), o2.getBushColor())) {
+ Integer o1Index = colorList.indexOf(o1.getBushColor());
+ Integer o2Index = colorList.indexOf(o2.getBushColor());
+ return o1Index.compareTo(o2Index);
+ }
+ //鍏夌氦甯︽帓搴�
+ if (StringUtils.isNotBlank(o1.getCode()) && StringUtils.isNotBlank(o2.getCode())) {
+ if (!Objects.equals(o1.getCode(), o2.getCode())) {
+ return o1.getCode().compareTo(o2.getCode());
+ }
+ }
+ //鍏夌氦鑹叉爣鎺掑簭
+ if (StringUtils.isNotBlank(o1.getColor()) && StringUtils.isNotBlank(o2.getColor())) {
+ if (!Objects.equals(o1.getColor(), o2.getColor())) {
+ Integer o1Index = colorList.indexOf(o1.getColor());
+ Integer o2Index = colorList.indexOf(o2.getColor());
+ return o1Index.compareTo(o2Index);
+ }
+ }
+ }
+ return 0;
+ });
+ newTemperatureCyclingList.addAll(entry.getValue());
+ }
+ //娓╁害寰幆鏍规嵁鑹叉爣鎺掑簭
+// temperatureCyclingList.sort((o1, o2) -> {
+// // 澶勭悊 null 鍊�
+// if (o1 == null && o2 == null) return 0;
+// if (o1 == null) return -1;
+// if (o2 == null) return 1;
+//
+// // ---------------------- 1. 鎸夋牱鍝佺紪鍙锋帓搴� ----------------------
+// int sampleCodeCompare = compareSampleCode(o1.getSampleCode(), o2.getSampleCode());
+// if (sampleCodeCompare != 0) return sampleCodeCompare;
+//
+// // ---------------------- 2. 鎸夊绠¤壊鏍囨帓搴� ----------------------
+// int bushColorCompare = compareColor(o1.getBushColor(), o2.getBushColor(), colorList);
+// if (bushColorCompare != 0) return bushColorCompare;
+//
+// // ---------------------- 3. 鎸夊厜绾ゅ甫鎺掑簭 ----------------------
+// int codeCompare = compareNullableString(o1.getCode(), o2.getCode());
+// if (codeCompare != 0) return codeCompare;
+//
+// // ---------------------- 4. 鎸夊厜绾よ壊鏍囨帓搴� ----------------------
+// return compareColor(o1.getColor(), o2.getColor(), colorList);
+// });
+ return newTemperatureCyclingList;
+ }
+
+ //1: 鏍峰搧缂栧彿姣旇緝锛堟敮鎸佹暟瀛楀拰瀛楃涓叉贩鍚堟帓搴忥級
+ private static int compareSampleCode(String code1, String code2) {
+ if (Objects.equals(code1, code2)) return 0;
+
+ boolean isCode1Numeric = containsOnlyDigits(code1);
+ boolean isCode2Numeric = containsOnlyDigits(code2);
+
+ // 濡傛灉閮芥槸鏁板瓧锛岃浆涓� Long 姣旇緝
+ if (isCode1Numeric && isCode2Numeric) {
+ return Long.compare(Long.parseLong(code1), Long.parseLong(code2));
+ }
+
+ // 濡傛灉涓�涓槸鏁板瓧锛屽彟涓�涓笉鏄紝鏁板瓧浼樺厛
+ if (isCode1Numeric != isCode2Numeric) {
+ return isCode1Numeric ? -1 : 1;
+ }
+
+ // 鍏朵粬鎯呭喌鎸夊瓧绗︿覆姣旇緝
+ return code1.compareTo(code2);
+ }
+
+ //2: 鑹叉爣姣旇緝锛堝鐞嗕笉鍦� colorList 涓殑鎯呭喌锛�
+ private static int compareColor(String color1, String color2, List<String> colorList) {
+ if (Objects.equals(color1, color2)) return 0;
+
+ // 澶勭悊 colorList 涓殑绱㈠紩
+ int index1 = colorList.indexOf(color1);
+ int index2 = colorList.indexOf(color2);
+
+ // 灏嗕笉鍦ㄥ垪琛ㄤ腑鐨勮壊鏍囩粺涓�鎺掑簭鍒版渶鍚庯紙璧嬩簣鏈�澶у�硷級
+ index1 = index1 == -1 ? Integer.MAX_VALUE : index1;
+ index2 = index2 == -1 ? Integer.MAX_VALUE : index2;
+
+ return Integer.compare(index1, index2);
+ }
+
+ //3: 澶勭悊鍙兘涓虹┖鐨勫瓧绗︿覆姣旇緝
+ private static int compareNullableString(String str1, String str2) {
+ if (Objects.equals(str1, str2)) return 0;
+
+ // 绌哄瓧绗︿覆瑙嗕负杈冨皬鍊�
+ boolean isStr1Blank = StringUtils.isBlank(str1);
+ boolean isStr2Blank = StringUtils.isBlank(str2);
+
+ if (isStr1Blank && isStr2Blank) return 0;
+ if (isStr1Blank) return -1;
+ if (isStr2Blank) return 1;
+
+ // 闈炵┖鏃舵寜鑷劧椤哄簭姣旇緝
+ return str1.compareTo(str2);
+ }
+
+ public List<Map> getInsValueList(String insValue) {
+ List<Map> list = new ArrayList<>();
+ if (StringUtils.isNotBlank(insValue)) {
+ List<Map> maps = JSONArray.parseArray(insValue, Map.class);
+ list.addAll(maps);
+ }
+ return list;
+ }
+
+ /**
+ * 鍒ゆ柇鏄惁鍙互杞暟瀛�
+ */
+ public String isNumber(String str) {
+ if (NumberUtil.isDouble(str)) {
+ return str;
+ } else {
+ return "0";
+ }
+ }
+
+ /**
+ * 鎺掑簭瑙勬牸
+ *
+ * @param t
+ * @return
+ */
+ public Integer getInspectionItemSubclassOrder(String t) {
+ switch (t) {
+ case "20鈩�(甯告俯)":
+ return 1;
+ case "20鈩�":
+ return 2;
+ case "-40鈩�":
+ return 3;
+ case "65鈩�":
+ return 4;
+ default:
+ return 5; // 鏈煡娓╁害鐐�
+ }
+ }
+
+
+ @Override
+ public Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
+ String dates = costStatisticsDto.getDates();
+ String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+ costStatisticsDto.setDates(null);
+ Map<String, Object> map = new HashMap<>();
+// map.put("head", PrintChina.printChina(CostStatisticsDto.class));
+ Map<String, Integer> map1 = new HashMap<>();
+ if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
+ // 鑾峰彇褰撳墠浜烘墍鍦ㄥ疄楠屽
+ Integer userId = 1;
+ String departLimsId = userMapper.selectById(userId).getDepartLimsId();
+ String laboratory = "";
+ if (StringUtils.isNotBlank(departLimsId)) {
+ String[] split1 = departLimsId.split(",");
+ for (String s : split1) {
+ if (StringUtils.isNotBlank(s) && (!Arrays.asList("1", "22").contains(s))) {
+ laboratory = insOrderMapper.getDepartment(Integer.parseInt(s));
+ }
+ }
+ }
+ LocalDate today = LocalDate.parse(split[1]);
+ LocalTime end = LocalTime.of(23, 59, 59);
+ IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto), split[0], today.atTime(end).toString(), laboratory);
+ List<CostStatisticsDto> collect = dtoIPage.getRecords().stream().map(dto -> {
+ Set<String> uniqueTags = new HashSet<>();
+ if (dto.getInspectionItem().contains(",")) {
+ for (String s : dto.getInspectionItem().split(",")) {
+ uniqueTags.add(s.split("@")[0]);
+ }
+ } else {
+ uniqueTags.add(dto.getInspectionItem().split("@")[0]);
+ }
+ dto.setInspectionItem(uniqueTags.toString());
+ return dto;
+ }).collect(Collectors.toList());
+ dtoIPage.setRecords(collect);
+ map.put("body", dtoIPage);
+ return map;
+ }
+
+ @Override
+ public Map<String, Object> costStatistics2(CostStatisticsDto costStatisticsDto) {
+ Map<String, Object> map = new HashMap<>();
+ String dates = costStatisticsDto.getDates();
+ String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+ costStatisticsDto.setDates(null);
+ // 鑾峰彇褰撳墠浜烘墍鍦ㄥ疄楠屽
+ Integer userId = 1;
+ String departLimsId = userMapper.selectById(userId).getDepartLimsId();
+ String laboratory = "";
+ if (StringUtils.isNotBlank(departLimsId)) {
+ String[] split1 = departLimsId.split(",");
+ for (String s : split1) {
+ if (StringUtils.isNotBlank(s) && (!Arrays.asList("1", "22").contains(s))) {
+ laboratory = insOrderMapper.getDepartment(Integer.parseInt(s));
+ }
+ }
+ }
+ LocalDate today = LocalDate.parse(split[1]);
+ LocalTime end = LocalTime.of(23, 59, 59);
+ List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto), split[0], today.atTime(end).toString(), laboratory);
+// double totalPrice = costStatisticsDtos.stream()
+// .filter(dto -> dto.getPrice() != null) // 杩囨护鎺変环鏍间负 null 鐨勫璞�
+// .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum())
+// .sum();
+ BigDecimal total = BigDecimal.ZERO;
+ for (CostStatisticsDto dto : costStatisticsDtos) {
+ if (Objects.isNull(dto.getPrice()) || dto.getPrice().compareTo(BigDecimal.ZERO) == 0) {
+ dto.setPrice(new BigDecimal(0));
+ }
+ total = total.add(dto.getPrice());
+ }
+ map.put("total", total);
+ return map;
+ }
+
+ @Override
+ public Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber) {
+ List<SampleDefectsFatherVo> sampleDefectsFatherVos = insOrderMapper.selectSampleDefects(page, inspectionItems, orderNumber);
+ Map<String, Object> map = new HashMap<>();
+ map.put("records", sampleDefectsFatherVos);
+ Long aLong = insOrderMapper.getCount(inspectionItems, orderNumber);
+ map.put("total", aLong);
+ return map;
+ }
+
+ @Override
+ public int updateStatus(Integer id) {
+ return insOrderMapper.updateStatus(id);
+ }
+
+ //鏍囩鎵撳嵃
+ @Override
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+ public List<SampleProductDto3> labelPrinting(String ids) {
+ List<Integer> list = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList());
+ List<SampleProductDto3> sampleProductDtos = insSampleMapper.selectSampleProductListByOrderId3(list);
+ Set<String> processedCodes = new HashSet<>();
+ //榛樿鍙墦鍗扮涓�涓�:鍏夌氦銆佸厜绾ゅ甫銆侀挗缁炵嚎銆佸厜绾ょ啍鎺�
+ List<SampleProductDto3> sampleProductDto3s = sampleProductDtos.stream().filter(sampleProductDto3 -> {
+ if (!"鍏夌氦".equals(sampleProductDto3.getIoSampleType()) &&
+ !"鍏夌氦甯�".equals(sampleProductDto3.getIoSampleType()) &&
+ !"閽㈢粸绾�".equals(sampleProductDto3.getIoSampleType()) &&
+ sampleProductDto3.getInsProduct().stream().noneMatch(i -> StringUtils.equals("鍏夌氦鎺ュご鎹熻��", i.getInspectionItem()))
+ ) {
+ return true;
+ }
+ if (processedCodes.contains(sampleProductDto3.getCode())) {
+ return false;
+ } else {
+ processedCodes.add(sampleProductDto3.getCode());
+ return true;
+ }
+ }).collect(Collectors.toList());
+ return sampleProductDto3s;
+ }
+
+ @Override
+ public void export(CostStatisticsDto costStatisticsDto, HttpServletResponse response) throws IOException {
+ // 鍒ゆ柇褰撳墠浜哄睘浜庣數鍔� 杩樻槸 閫氫俊 杩囨护鎺変负1
+ List<String> dept = new ArrayList<>();
+ Map<String, Integer> map1 = new HashMap<>();
+ User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉
+ String departLimsId = user.getDepartLimsId();
+ String laboratory = "";
+ if (StringUtils.isNotBlank(departLimsId) && Objects.nonNull(departLimsId)) {
+ String[] split = departLimsId.split(",");
+ for (int i = 0; i < split.length; i++) {
+ if (StringUtils.isNotBlank(split[i])) {
+ if (split[i].equals("1") || split[i].equals("22")) {
+ continue;
+ }
+ laboratory = insOrderMapper.getDepartment(Integer.parseInt(split[i]));
+ dept.add(insOrderMapper.getDepartment(Integer.parseInt(split[i])));
+ }
+ }
+ }
+ //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
+ String dates = costStatisticsDto.getDates();
+ String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+ costStatisticsDto.setDates(null);
+
+
+ LocalDate today = LocalDate.parse(split[1]);
+ LocalTime end = LocalTime.of(23, 59, 59);
+ List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto), split[0], today.atTime(end).toString(), laboratory);
+ costStatisticsDtos = costStatisticsDtos.stream().map(dto -> {
+ Set<String> uniqueTags = new HashSet<>();
+ if (dto.getInspectionItem().contains(",")) {
+ for (String s : dto.getInspectionItem().split(",")) {
+ uniqueTags.add(s.split("@")[0]);
+ }
+ } else {
+ uniqueTags.add(dto.getInspectionItem().split("@")[0]);
+ }
+ dto.setInspectionItem(uniqueTags.toString());
+ return dto;
+ }).collect(Collectors.toList());
+
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("UTF-8");
+ // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+ String fileName = URLEncoder.encode("鏍峰搧璐圭敤缁熻瀵煎嚭", "UTF-8");
+ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+ Map<String, List<CostStatisticsDto>> groupByCompany =
+ costStatisticsDtos.stream().filter(e -> StrUtil.isNotEmpty(e.getCompany()))
+ .collect(Collectors.groupingBy(CostStatisticsDto::getCompany));
+ try {
+ // 鏂板缓ExcelWriter
+ // 鏂板缓ExcelWriter
+ ExcelWriter excelWriter =
+ EasyExcel.write(response.getOutputStream())
+ .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25))
+ .build();
+ List<CostStatisticsDto> costStatisticsDtos1 = new ArrayList<>();
+ for (Map.Entry<String, List<CostStatisticsDto>> companyDataEntry : groupByCompany.entrySet()) {
+ String sheetName = companyDataEntry.getKey();
+ List<CostStatisticsDto> dataList = companyDataEntry.getValue();
+ // 鏍规嵁璇ュ崟瀛愮殑瀹為獙瀹� 鏉ュ垽鏂槸鍚﹀睘浜庡綋鍓嶇櫥褰曚汉鐨勯儴闂�
+ for (CostStatisticsDto costStatisticsDto1 : dataList) {
+ if (StringUtils.isNotBlank(costStatisticsDto1.getLaboratory()) && Objects.nonNull(costStatisticsDto1.getLaboratory())) {
+ if (dept.contains(costStatisticsDto1.getLaboratory())) {
+ costStatisticsDtos1.add(costStatisticsDto1);
+ }
+ }
+ }
+ WriteSheet mainSheet = EasyExcel.writerSheet(sheetName)
+ .head(CostStatisticsDto.class)
+ .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25))
+ .build();
+ excelWriter.write(costStatisticsDtos1, mainSheet);
+ costStatisticsDtos1.clear();
+ }
+ // 鍏抽棴娴�
+ excelWriter.finish();
+ } catch (IOException e) {
+ throw new RuntimeException("瀵煎嚭澶辫触");
+ }
+ }
+
+ public static boolean containsOnlyDigits(String str) {
+ String regex = "\\d+"; // 鍖归厤涓�涓垨澶氫釜鏁板瓧
+ return Pattern.matches(regex, str);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+ public Boolean hasSendUrgentOrder() {
+ Integer userId = 1;
+ //鏌ヨ褰撳墠瀹㈡埛鐨勭揣鎬ラ搴�
+ Map<String, Object> quotaMap = baseMapper.selectCurrentCompanyUrgentQuota(userId);
+ if (quotaMap == null) {
+ return false;
+ }
+ //鏌ヨ褰撳ぉ瀹㈡埛宸插垱寤虹殑绱ф�ヨ鍗�
+ long count = baseMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+ .eq(InsOrder::getCompany, quotaMap.get("company"))
+ .eq(InsOrder::getType, 2)
+ .gt(InsOrder::getCreateTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
+ .lt(InsOrder::getCreateTime, LocalDateTime.of(LocalDate.now(), LocalTime.MAX)));
+ int quota = Integer.parseInt(quotaMap.get("quota").toString());
+ return quota > count;
+ }
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderTemplateServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderTemplateServiceImpl.java
new file mode 100644
index 0000000..8f26266
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderTemplateServiceImpl.java
@@ -0,0 +1,70 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.inspect.mapper.InsOrderTemplateMapper;
+import com.ruoyi.inspect.pojo.InsOrderTemplate;
+import com.ruoyi.inspect.service.InsOrderTemplateService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Administrator
+ * @description 閽堝琛ㄣ�恑ns_order_template銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2024-03-18 14:14:54
+ */
+@Service
+@AllArgsConstructor
+public class InsOrderTemplateServiceImpl extends ServiceImpl<InsOrderTemplateMapper, InsOrderTemplate>
+ implements InsOrderTemplateService {
+
+ private InsOrderTemplateMapper insOrderTemplateMapper;
+
+
+ @Override
+ public int addInsOrderTemplate(InsOrderTemplate insOrderTemplate) {
+ return insOrderTemplateMapper.insert(insOrderTemplate);
+ }
+
+ @Override
+ public List<InsOrderTemplate> selectInsOrderTemplate(String company) {
+ if (ObjectUtils.isEmpty(company) || company.equals("")) {
+ return insOrderTemplateMapper.selectList(Wrappers.<InsOrderTemplate>lambdaQuery()
+ .select(InsOrderTemplate.class, info -> !info.getColumn().equals("thing")));
+ } else {
+ //鏍规嵁濮旀墭鍗曚綅杩涜绛涢��
+ return insOrderTemplateMapper.selectList(Wrappers.<InsOrderTemplate>lambdaQuery()
+ .like(InsOrderTemplate::getThing,"\"company\":\""+ company+"\"")
+ .select(InsOrderTemplate.class, info -> !info.getColumn().equals("thing")));
+ }
+ }
+
+ @Override
+ public Map<String,Object> selectInsOrderTemplateById(Integer id) {
+ Map<String,Object> map = new HashMap<>();
+ String thing = insOrderTemplateMapper.selectById(id).getThing();
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ map = objectMapper.readValue(thing, Map.class);
+ } catch (JsonProcessingException e) {
+ throw new RuntimeException(e);
+ }
+ return map;
+ }
+
+ @Override
+ public int delInsOrderTemplate(Integer id) {
+ return insOrderTemplateMapper.deleteById(id);
+ }
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
new file mode 100644
index 0000000..1d96a2c
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java
@@ -0,0 +1,719 @@
+package com.ruoyi.inspect.service.impl;
+
+import cn.hutool.core.util.NumberUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.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.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.InsProductDto;
+import com.ruoyi.inspect.mapper.InsOrderMapper;
+import com.ruoyi.inspect.mapper.InsOrderStateMapper;
+import com.ruoyi.inspect.mapper.InsProductMapper;
+import com.ruoyi.inspect.mapper.InsSampleMapper;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsOrderState;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.service.InsProductService;
+import lombok.AllArgsConstructor;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class InsProductServiceImpl extends ServiceImpl<InsProductMapper, InsProduct>
+ implements InsProductService {
+
+ private InsProductMapper insProductMapper;
+
+ private InsOrderMapper insOrderMapper;
+
+ private InsOrderStateMapper insOrderStateMapper;
+
+ private InsSampleMapper insSampleMapper;
+
+
+ @Override
+ public int selectOrderManDay(Integer orderId) {
+ return insProductMapper.selectOrderManDay(orderId);
+ }
+
+ @Override
+ public int updateInspected(Integer id, String ids) {
+ InsOrder insOrder = new InsOrder();
+ insOrder.setId(id);
+ insOrder.setIsRevocation(1);//闇�瑕佸鏍�
+ insOrder.setRevocationInsProductIds(ids);
+ return insOrderMapper.updateById(insOrder);
+ }
+
+ @Override
+ public boolean write(InsProductDto insProductDto) {
+// List<InsProduct> insProducts = baseMapper.selectBatchIds(insProductDto.getIds());
+// for (InsProduct insProduct : insProducts) {
+// insProduct.setTemperature(insProductDto.getTemperature());
+// insProduct.setHumidity(insProductDto.getHumidity());
+// }
+ List<Integer> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+ .eq(InsSample::getInsOrderId, insProductDto.getInsOrderId())
+ .select(InsSample::getId))
+ .stream()
+ .map(InsSample::getId)
+ .collect(Collectors.toList());
+// Integer insSampleId = baseMapper.selectById(insProductDto.getIds().get(0)).getInsSampleId();
+ return baseMapper.update(null, new LambdaUpdateWrapper<InsProduct>().in(InsProduct::getInsSampleId, insSamples)
+ .set(Strings.isNotBlank(insProductDto.getTemperature()),InsProduct::getTemperature, insProductDto.getTemperature())
+ .set(Strings.isNotBlank(insProductDto.getHumidity()),InsProduct::getHumidity, insProductDto.getHumidity()))>0;
+ }
+
+ //鏌ヨ寰呮椤圭洰
+ @Override
+ public Map<String, Object> selectNoProducts(Page page, InsProduct insProduct, Integer orderId, String ids) {
+ Map<String, Object> map = new HashMap<>();
+// map.put("head", PrintChina.printChina(InsProduct.class));
+ IPage<InsProduct> insProductIPage = baseMapper.selectNoProducts(page, orderId);
+ if (ObjectUtils.isNotEmpty(ids)) {
+ List<Integer> collect = Arrays.asList(ids.split(",")).stream()
+ .map(Integer::parseInt)
+ .collect(Collectors.toList());
+ List<InsProduct> products = insProductIPage.getRecords().stream().filter(record -> collect.contains(record.getId())).collect(Collectors.toList());
+ insProductIPage.setRecords(products);
+ }
+ map.put("body", insProductIPage);
+ return map;
+ }
+
+
+ // 鏌ヨ鎾ら攢椤圭洰
+ public List<List<Integer>> selectRevocation(Integer orderId) {
+ // 鏌ヨ鎾ら攢鐘舵�佺殑鏍峰搧 浠ュ強 妫�楠岄」
+ String revocationInsProductIds = insOrderMapper.selectById(orderId).getRevocationInsProductIds();
+ List<Integer> productIds = new ArrayList<>();
+ List<Integer> sampleIds = new ArrayList<>();
+ // 濡傛灉鏄柊鐨勬暟鎹� 浼氬瓨鍦╯ample鐨刬d 浠ュ強product鐨刬d 浠鍒嗛殧
+ if(StringUtils.isNotEmpty(revocationInsProductIds)) {
+ if(revocationInsProductIds.contains("@")) {
+ List<List<Integer>> collect = Arrays.stream(revocationInsProductIds.split("@")).map(item -> {
+ List<Integer> list = JSONArray.parseArray(item, Integer.class);
+ return list;
+ }).collect(Collectors.toList());
+ sampleIds = collect.get(0);
+ productIds = collect.get(1);
+ }else {
+ // 浠ュ墠鐨勬暟鎹垯鏄痯roductId锛屼互 ,鍒嗛殧
+ productIds = Arrays.stream(revocationInsProductIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
+ }
+ }
+ return Arrays.asList(sampleIds,productIds);
+ }
+
+ @Override
+ public List<Map<String,Object>> selectSampleByOrderId(Integer orderId) {
+ List<List<Integer>> collect = selectRevocation(orderId);
+ List<Integer> sampleIds = collect.get(0);
+ List<Integer> productIds = collect.get(1);
+
+
+ List<Map<String,Object>> list = new ArrayList<>();
+ List<InsSample> insSamples = insSampleMapper.selectList(new LambdaQueryWrapper<InsSample>()
+ .eq(InsSample::getInsOrderId, orderId)
+ .notIn(CollectionUtils.isNotEmpty(sampleIds), InsSample::getId,sampleIds));
+ for(InsSample insSample : insSamples) {
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getState, 1)
+ .notIn(CollectionUtils.isNotEmpty(productIds), InsProduct::getId,productIds));
+ if(CollectionUtils.isNotEmpty(productList)) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("sampleCode", insSample.getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("sampleId", insSample.getId()); // 鍓嶇闇�瑕�
+ map.put("id", insSample.getId());
+ map.put("hasChildren", true); // 鏄惁鏈夊瓙椤�
+ list.add(map);
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public List<Map<String,Object>> selectProductsBySampleId(Integer sampleId,Integer orderId) {
+ List<List<Integer>> collect1 = selectRevocation(orderId);
+ List<Integer> sampleIds = collect1.get(0);
+ List<Integer> productIds = collect1.get(1);
+
+ List<Map<String, Object>> list = new ArrayList<>();
+ if(!sampleIds.contains(sampleId)) {
+ InsSample insSample = insSampleMapper.selectById(sampleId);
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getState,1)
+ .notIn(CollectionUtils.isNotEmpty(productIds), InsProduct::getId,productIds));
+ for (InsProduct insProduct : productList) {
+ // 鍖哄垎娓╁害寰幆 鍜� 鏅�氶」鐩�
+ if(Objects.isNull(insProduct.getSpecialItemParentId()) || !NumberUtil.isInteger(insProduct.getInspectionItem())) {
+ Map<String, Object> map = new HashMap<>();
+ // 濡傛灉鏄俯搴﹀惊鐜氨杩樺緱鍦ㄥ宓屽鍑犲眰
+ if(insProduct.getInspectionItem().equals("娓╁害寰幆")) {
+ map.put("sampleCode", insSample.getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("inspectionItem",insProduct.getInspectionItem()); // 妫�楠岄」鐩�
+ map.put("sampleId", insSample.getId()); // 鏍峰搧id
+ map.put("hasChildren",true);
+ // 娓╁害寰幆鐗规畩鏍囪瘑
+ map.put("temperature",true);
+ map.put("id",insProduct.getId());
+ }else {
+ map.put("sampleId", insSample.getId()); // 鏍峰搧id
+ map.put("sampleCode", insSample.getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("inspectionItem",insProduct.getInspectionItem()); // 妫�楠岄」鐩�
+
+ map.put("inspectionItemSubclass",insProduct.getInspectionItemSubclass()); // 妫�楠屽瓙椤�
+ map.put("sampleType",insProduct.getSampleType()); // 鏍峰搧鍒嗙被
+ map.put("sample",insProduct.getSample()); // 鏍峰搧
+ map.put("model",insProduct.getModel()); // 鍨嬪彿
+ map.put("sonLaboratory",insProduct.getSonLaboratory()); // 瀛愬疄楠屽
+ map.put("tell",insProduct.getTell()); // 瑕佹眰鍊�
+ map.put("id",insProduct.getId());
+ }
+ list.add(map);
+ }
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public List<Map<String, Object>> selectTemperatureByProductId(Integer productId) {
+ List<Map<String, Object>> list = new ArrayList<>();
+ List<InsProduct> productList = null;
+ // 宸茬粡鍒版挙閿�椤甸潰鐨勫氨涓嶅湪鏌ュ嚭鏉�
+ InsProduct insProduct = insProductMapper.selectById(productId);
+ InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ List<List<Integer>> lists = selectRevocation(insOrder.getId());
+ List<Integer> productIds = lists.get(1);
+
+ productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getSpecialItemParentId, productId)
+ .notIn(CollectionUtils.isNotEmpty(productIds),InsProduct::getId,productIds));
+
+
+ if(CollectionUtils.isNotEmpty(productList)) {
+ Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItem));
+ // 鎷垮埌寰幆娆℃暟
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> next = iterator.next();
+ Map<String, Object> map = new HashMap<>();
+ map.put("hasChildren",true);
+ // 娓╁害寰幆鐗规畩鏍囪瘑 寰幆娆℃暟
+ map.put("temperatureNumber",true);
+ map.put("sampleId", next.getValue().get(0).getInsSampleId()); // 鏍峰搧id
+ map.put("inspectionItem",next.getKey() + " (寰幆娆℃暟)"); // 妫�楠岄」鐩�
+ map.put("inspectionItemTwo",next.getKey()); // 鏂逛究鏌ョ湅鍏蜂綋娆℃暟 锛堜紶鍊奸渶瑕侊級
+ map.put("parentId",productId); // 鐖秈d
+ map.put("ids",next.getValue().stream().map(InsProduct::getId).collect(Collectors.toList()));
+ map.put("sampleCode", next.getValue().get(0).getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("id",productId + Integer.parseInt(next.getKey()));
+ list.add(map);
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public List<Map<String, Object>> selectTemperatureNumberByProductId(Integer parentId, String inspectionItem) {
+ List<Map<String, Object>> list = new ArrayList<>();
+ // 宸茬粡鍒版挙閿�椤甸潰鐨勫氨涓嶅湪鏌ュ嚭鏉�
+ InsProduct ip = insProductMapper.selectById(parentId);
+ InsSample insSample = insSampleMapper.selectById(ip.getInsSampleId());
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ List<List<Integer>> lists = selectRevocation(insOrder.getId());
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+
+
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getSpecialItemParentId, parentId)
+ .eq(InsProduct::getInspectionItem, inspectionItem)
+ .notIn(CollectionUtils.isNotEmpty(productIds),InsProduct::getId,productIds));
+ // 鏍规嵁妫�楠屽瓙椤瑰緱鍒版俯搴︾偣
+ Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItemSubclass));
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> next = iterator.next();
+ InsProduct insProduct = next.getValue().get(0);
+ Map<String, Object> map = new HashMap<>();
+ map.put("sampleId", next.getValue().get(0).getInsSampleId()); // 鏍峰搧id
+ map.put("inspectionItem",""); // 妫�楠岄」鐩�
+ map.put("inspectionItemSubclass",next.getKey()); // 妫�楠屽瓙椤�
+ map.put("sampleType",insProduct.getSampleType()); // 鏍峰搧鍒嗙被
+ map.put("sample",insProduct.getSample()); // 鏍峰搧
+ map.put("model",insProduct.getModel()); // 鍨嬪彿
+ map.put("sonLaboratory",insProduct.getSonLaboratory()); // 瀛愬疄楠屽
+ map.put("sampleCode", next.getValue().get(0).getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("tell",insProduct.getTell()); // 瑕佹眰鍊�
+ map.put("number",inspectionItem); // 寰幆娆℃暟
+ map.put("parentId",parentId); // 鐖秈d
+ map.put("ids",next.getValue().stream().map(InsProduct::getId).collect(Collectors.toList())); // 璇ユ俯搴︾偣鎵�鏈夌殑id
+ map.put("id",Math.random());
+ list.add(map);
+ }
+ return list;
+ }
+
+
+ @Override
+ public void revoke(Map<String, Object> data) {
+ List<List<Integer>> lists = selectRevocation(Integer.parseInt(data.get("orderId").toString()));
+ // 鏇存柊order鐨勭姸鎬� 浠ュ強娣诲姞闇�瑕佹挙閿�鐨勯」鐩�
+ Integer orderId = Integer.parseInt(data.get("orderId").toString());
+ InsOrder insOrder = insOrderMapper.selectById(orderId);
+ insOrder.setIsRevocation(1);
+ List<Integer> sampleIds = new ArrayList<>();
+ List<Integer> productIds = new ArrayList<>();
+ if(data.containsKey("sampleIds")) {
+ sampleIds = JSONArray.parseArray(data.get("sampleIds").toString(), Integer.class);
+ }
+ if(data.containsKey("productIds")) {
+ productIds = JSONArray.parseArray(data.get("productIds").toString(), Integer.class);
+
+ }
+ sampleIds.addAll(lists.get(0));
+ productIds.addAll(lists.get(1));
+ String SampleJsonString = JSON.toJSONString(sampleIds);
+ String ProductJsonString = JSON.toJSONString(productIds);
+ insOrder.setRevocationInsProductIds(SampleJsonString + "@" + ProductJsonString);
+ insOrderMapper.updateById(insOrder);
+
+ }
+
+ @Override
+ public List<Map<String, Object>> revokeReviewSample(Integer orderId) {
+ List<Map<String,Object>> list = new ArrayList<>();
+ List<List<Integer>> lists = selectRevocation(orderId);
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+ List<Integer> newSampleIds = new ArrayList<>();
+ // 鏍规嵁椤圭洰鏉ヨ幏鍙栨牱鍝�
+ if(CollectionUtils.isNotEmpty(productIds)) {
+ newSampleIds = insProductMapper.selectBatchIds(productIds).stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList());
+ }
+ // 鏌ヨ闇�瑕佹挙閿�鐨勬牱鍝�
+ if(CollectionUtils.isNotEmpty(newSampleIds)) {
+ List<InsSample> insSamples = insSampleMapper.selectList(new LambdaQueryWrapper<InsSample>()
+ .in(InsSample::getId, newSampleIds));
+
+ for (InsSample insSample : insSamples) {
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getState, 1)
+ .in(CollectionUtils.isNotEmpty(productIds), InsProduct::getId, productIds));
+ if(CollectionUtils.isNotEmpty(productList)) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("sampleCode", insSample.getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("sampleId", insSample.getId()); // 鍓嶇闇�瑕�
+ map.put("id", insSample.getId());
+ map.put("hasChildren", true); // 鏄惁鏈夊瓙椤�
+ list.add(map);
+ }
+ }
+ }
+ if(CollectionUtils.isNotEmpty(sampleIds)) {
+ List<InsSample> insSamples2 = insSampleMapper.selectList(new LambdaQueryWrapper<InsSample>()
+ .in(InsSample::getId, sampleIds));
+ for (InsSample insSample : insSamples2) {
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, insSample.getId())
+ .eq(InsProduct::getState, 1));
+ if(CollectionUtils.isNotEmpty(productList)) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("sampleCode", insSample.getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("sampleId", insSample.getId()); // 鍓嶇闇�瑕�
+ map.put("id", insSample.getId());
+ map.put("hasChildren", true); // 鏄惁鏈夊瓙椤�
+ list.add(map);
+ }
+ }
+ }
+
+ list = list.stream().sorted(Comparator.comparing(map -> Integer.parseInt(map.get("id")+""))).collect(Collectors.toList());
+ return list;
+ }
+
+
+
+ @Override
+ public List<Map<String, Object>> revokeReviewProduct(Integer orderId, Integer sampleId) {
+ String sampleCode = insSampleMapper.selectById(sampleId).getSampleCode();
+ List<Map<String,Object>> list = new ArrayList<>();
+ List<List<Integer>> lists = selectRevocation(orderId);
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+ List<InsProduct> productList = new ArrayList<>();
+ // 濡傛灉鏄竴鏁翠釜鏍峰搧鎾ら攢
+ if(sampleIds.contains(sampleId)) {
+ // 杩囨护鍑烘俯搴﹀惊鐜鏁扮殑鏁版嵁
+ productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, sampleId).eq(InsProduct::getState,1));
+ productList = productList.stream().filter(item -> !NumberUtil.isNumber(item.getInspectionItem()) && Objects.isNull(item.getSpecialItemParentId())).collect(Collectors.toList());
+ }else {
+ // 濡傛灉鏄崟涓」鐩挙閿�
+ productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getInsSampleId, sampleId)
+ .eq(InsProduct::getState,1)
+ .in(InsProduct::getId, productIds));
+ // 鍒ゆ柇鏄惁鏄俯搴﹀惊鐜笅闈㈢殑娓╁害鐐�
+ // 1.杩囨护鍑轰笉鏄俯搴︾偣鐨勬暟鎹�
+ List<InsProduct> collect = productList.stream().filter(item -> Objects.isNull(item.getSpecialItemParentId())
+ || !NumberUtil.isInteger(item.getInspectionItem())).collect(Collectors.toList());
+ if(productList.size() != collect.size()) {
+ // 2.杩斿洖娓╁害寰幆鏁版嵁鍗冲彲
+ List<InsProduct> collect1 = productList.stream().filter(item -> Objects.nonNull(item.getSpecialItemParentId())
+ && NumberUtil.isInteger(item.getInspectionItem())).collect(Collectors.toList());
+ InsProduct insProduct = insProductMapper.selectById(collect1.get(0).getSpecialItemParentId());
+ collect.add(insProduct);
+ productList =collect.stream().distinct().collect(Collectors.toList());
+ }
+
+ }
+ for (InsProduct insProduct : productList) {
+ Map<String, Object> map = new HashMap<>();
+ if(insProduct.getInspectionItem().equals("娓╁害寰幆")) {
+ map.put("sampleCode", sampleCode); // 鏍峰搧缂栧彿
+ map.put("inspectionItem",insProduct.getInspectionItem()); // 妫�楠岄」鐩�
+ map.put("sampleId", sampleId); // 鏍峰搧id
+ map.put("hasChildren",true);
+ // 娓╁害寰幆鐗规畩鏍囪瘑
+ map.put("temperature",true);
+ map.put("id",insProduct.getId());
+ }else {
+ map.put("sampleId", sampleId); // 鏍峰搧id
+ map.put("sampleCode", sampleCode); // 鏍峰搧缂栧彿
+ map.put("inspectionItem",insProduct.getInspectionItem()); // 妫�楠岄」鐩�
+ map.put("inspectionItemSubclass",insProduct.getInspectionItemSubclass()); // 妫�楠屽瓙椤�
+ map.put("sampleType",insProduct.getSampleType()); // 鏍峰搧鍒嗙被
+ map.put("sample",insProduct.getSample()); // 鏍峰搧
+ map.put("model",insProduct.getModel()); // 鍨嬪彿
+ map.put("sonLaboratory",insProduct.getSonLaboratory()); // 瀛愬疄楠屽
+ map.put("tell",insProduct.getTell()); // 瑕佹眰鍊�
+ map.put("id",insProduct.getId());
+ }
+ list.add(map);
+ }
+ return list;
+ }
+
+
+ @Override
+ public List<Map<String, Object>> revokeReviewTemperatureByProductId(Integer productId) {
+ // 鏍规嵁娓╁害寰幆id 鏌ユ壘order 浠ュ強 sample
+ List<Map<String, Object>> list = new ArrayList<>();
+ InsProduct insProduct = insProductMapper.selectById(productId);
+ InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ List<List<Integer>> lists = selectRevocation(insOrder.getId());
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+ // 濡傛灉褰撳墠鏍峰搧鏄暣涓挙閿�
+ if(sampleIds.contains(insSample.getId())) {
+ list = selectTemperatureByProductId(productId);
+ }else {
+ // 鎾ら攢鐨勬槸妫�楠岄」
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getSpecialItemParentId,productId)
+ .in(InsProduct::getId, productIds));
+ Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItem));
+ // 鎷垮埌寰幆娆℃暟
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> next = iterator.next();
+ Map<String, Object> map = new HashMap<>();
+ map.put("hasChildren",true);
+ // 娓╁害寰幆鐗规畩鏍囪瘑 寰幆娆℃暟
+ map.put("temperatureNumber",true);
+ map.put("sampleId", next.getValue().get(0).getInsSampleId()); // 鏍峰搧id
+ map.put("inspectionItem",next.getKey() + " (寰幆娆℃暟)"); // 妫�楠岄」鐩�
+ map.put("inspectionItemTwo",next.getKey()); // 鏂逛究鏌ョ湅鍏蜂綋娆℃暟 锛堜紶鍊奸渶瑕侊級
+ map.put("parentId",productId); // 鐖秈d
+ map.put("ids",next.getValue().stream().map(InsProduct::getId).collect(Collectors.toList()));
+ map.put("sampleCode", next.getValue().get(0).getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("id",productId + Integer.parseInt(next.getKey()));
+ list.add(map);
+ }
+
+ }
+
+
+ return list;
+ }
+
+ @Override
+ public List<Map<String, Object>> revokeReviewConsistentByProductId(Integer parentId, String inspectionItem) {
+ List<Map<String, Object>> list = new ArrayList<>();
+ InsProduct insProduct = insProductMapper.selectById(parentId);
+ InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
+ InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
+ List<List<Integer>> lists = selectRevocation(insOrder.getId());
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+ // 濡傛灉鏄綋鍓嶆牱鍝佹挙閿� 鏌ヨ鎵�鏈�
+ if(sampleIds.contains(insSample.getId())) {
+ list = selectTemperatureNumberByProductId(parentId, inspectionItem);
+ }else {
+ // 鏌ヨ鎾ら攢鐨勬俯搴︾偣
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getState, 1)
+ .eq(InsProduct::getSpecialItemParentId, parentId)
+ .eq(InsProduct::getInspectionItem, inspectionItem)
+ .in(InsProduct::getId, productIds));
+ // 鏍规嵁妫�楠屽瓙椤瑰緱鍒版俯搴︾偣
+ Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItemSubclass));
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> next = iterator.next();
+ InsProduct ip = next.getValue().get(0);
+ Map<String, Object> map = new HashMap<>();
+ map.put("sampleId", next.getValue().get(0).getInsSampleId()); // 鏍峰搧id
+ map.put("inspectionItem",""); // 妫�楠岄」鐩�
+ map.put("inspectionItemParent",inspectionItem + " (寰幆娆℃暟)"); // 妫�楠岀埗椤圭洰
+ map.put("inspectionItemSubclass",next.getKey()); // 妫�楠屽瓙椤�
+ map.put("sampleType",ip.getSampleType()); // 鏍峰搧鍒嗙被
+ map.put("sample",ip.getSample()); // 鏍峰搧
+ map.put("model",ip.getModel()); // 鍨嬪彿
+ map.put("sonLaboratory",ip.getSonLaboratory()); // 瀛愬疄楠屽
+ map.put("sampleCode", next.getValue().get(0).getSampleCode()); // 鏍峰搧缂栧彿
+ map.put("tell",ip.getTell()); // 瑕佹眰鍊�
+ map.put("parentId",parentId); // 鐖秈d
+ map.put("ids",next.getValue().stream().map(InsProduct::getId).collect(Collectors.toList())); // 璇ユ俯搴︾偣鎵�鏈夌殑id
+ map.put("id",Math.random());
+ list.add(map);
+ }
+ }
+ return list;
+ }
+
+ @Override
+ public void revocationPassed(Integer id) {
+ List<List<Integer>> lists = selectRevocation(id);
+ List<Integer> sampleIds = lists.get(0);
+ List<Integer> productIds = lists.get(1);
+ if(CollectionUtils.isNotEmpty(sampleIds)) {
+ insProductMapper.update(null,new LambdaUpdateWrapper<InsProduct>()
+ .set(InsProduct::getState,0)
+ .in(InsProduct::getInsSampleId,sampleIds));
+ }
+ if(CollectionUtils.isNotEmpty(productIds)) {
+ insProductMapper.update(null,new LambdaUpdateWrapper<InsProduct>()
+ .set(InsProduct::getState,0)
+ .in(InsProduct::getId,productIds));
+ // 鎷垮埌鐨刾roductId
+ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .in(InsProduct::getId, productIds));
+ if(CollectionUtils.isNotEmpty(productList)) {
+ // 寰楀垽鏂竴涓� 鏄惁鍚湁娓╁害寰幆椤圭洰
+ List<InsProduct> collect2 = productList.stream().filter(item -> Objects.nonNull(item.getSpecialItemParentId())
+ && NumberUtil.isInteger(item.getInspectionItem())).collect(Collectors.toList());
+ if(CollectionUtils.isNotEmpty(collect2)) {
+ // 灏辨槸鏈夋俯搴﹀惊鐜殑
+ Map<Integer, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getSpecialItemParentId));
+ // 鑾峰彇娓╁害寰幆鐨刬d
+ for(Map.Entry<Integer,List<InsProduct>> entry1 : collect.entrySet()) {
+ String number = "";
+ Integer parentId = entry1.getKey();
+ // 鏌ヨ璇ユ俯搴﹀惊鐜� 寰楀埌寰幆娆℃暟
+ List<InsProduct> productList2 = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getSpecialItemParentId, parentId)
+ .eq(InsProduct::getState, 1));
+ if(CollectionUtils.isNotEmpty(productList2)) {
+ Map<String, List<InsProduct>> group = productList2.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItem));
+ number = group.size() + "";
+ }
+ // 鎾ら攢鐨勬俯搴﹀惊鐜悇涓俯搴︾偣
+ List<InsProduct> productList1 = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getState, 0)
+ .eq(InsProduct::getSpecialItemParentId, parentId)
+ .in(InsProduct::getId, productIds));
+ // 鏍规嵁娓╁害鐐硅繘琛屽垎缁�
+ Map<String, List<InsProduct>> collect1 = productList1.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItemSubclass));
+ Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect1.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, List<InsProduct>> entry = iterator.next();
+ String key = entry.getKey();
+ // 鎷垮埌娓╁害寰幆鐨刟sk
+ InsProduct insProduct = insProductMapper.selectById(parentId);
+ String ask = insProduct.getAsk();
+ String newAsk = "";
+ String[] split = ask.split(";");
+ // 鍙湁寰幆鐨勬鏁� 閮戒笉鍖呭惈璇ユ俯搴︾偣鎵嶉渶瑕佹洿鏀�
+ List<InsProduct> productList3 = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
+ .eq(InsProduct::getSpecialItemParentId, parentId)
+ .eq(InsProduct::getInspectionItemSubclass, key)
+ .eq(InsProduct::getState, 1));
+ if(CollectionUtils.isEmpty(productList3)) {
+ if(key.equals("20鈩�")) {
+ newAsk = Arrays.stream(split).filter(item -> (!item.contains(key) || item.contains("20鈩�(甯告俯)")) && !NumberUtil.isInteger(item.trim())).collect(Collectors.joining(";")) + ";" + number;
+ }else {
+ newAsk = Arrays.stream(split).filter(item -> !item.contains(key) && !NumberUtil.isInteger(item)).collect(Collectors.joining(";")) + ";" + number;
+
+ }
+ }else {
+ newAsk = Arrays.stream(split).filter(item -> !NumberUtil.isInteger(item)).collect(Collectors.joining(";")) + ";" + number;
+ }
+ insProductMapper.update(null, new LambdaUpdateWrapper<InsProduct>()
+ .set(InsProduct::getAsk, newAsk)
+ .eq(InsProduct::getId, parentId));
+
+ }
+ }
+ }
+ }
+
+ }
+ insOrderMapper.update(null,new LambdaUpdateWrapper<InsOrder>().set(InsOrder::getIsRevocation,0).eq(InsOrder::getId,id));
+ // 濡傛灉妫�楠岄」鐩叏閮ㄦ挙閿�鍒欓渶瑕佹挙閿�妫�楠屽崟
+ InsOrder insOrder = insOrderMapper.selectById(id);
+ insOrder.setRevocationTime(LocalDateTime.now());
+ //鏌ヨ璇ュ鎵樺崟涓嬪彂鐨勮瘯楠屽
+ List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, id));
+ List<InsSample> insSamples = insSampleMapper.selectList(new LambdaQueryWrapper<InsSample>().eq(InsSample::getInsOrderId, id));
+ List<Integer> collect = insSamples.stream().map(InsSample::getId).collect(Collectors.toList());
+ List<InsProduct> insProducts = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, collect));
+ if(CollectionUtils.isEmpty(insProducts)) {
+ insOrder.setState(3);
+ insOrderMapper.updateById(insOrder);
+ }else{
+ //閬嶅巻鍚勮瘯楠屽锛屽鏋滆瘯楠屽涓嬬殑椤圭洰涓虹┖锛屽垯鍒犻櫎璇ヨ瘯楠屽涓嬬殑璁㈠崟
+ insOrderStates.forEach(insOrderState -> {
+ //杩囨护璇曢獙瀹や笅鐨勯」鐩�
+ long productCount = insProducts.stream().filter(insProduct -> insProduct.getSonLaboratory().equals(insOrderState.getLaboratory())).count();
+ if(productCount == 0){
+ insOrderStateMapper.delete(new LambdaUpdateWrapper<InsOrderState>().eq(InsOrderState::getId, insOrderState.getId()));
+ }
+ });
+ }
+ }
+
+ @Override
+ public void revocationCancel(Integer orderId) {
+ InsOrder insOrder = insOrderMapper.selectById(orderId);
+ insOrder.setIsRevocation(0);
+ insOrder.setRevocationInsProductIds("");
+ insOrderMapper.updateById(insOrder);
+ }
+
+
+// public List<Map<String,Object>> selectProductsByOrderId(Integer orderId) {
+// List<Map<String,Object>> list = new ArrayList<>();
+// List<InsSample> insSamples = insSampleMapper.selectList(new LambdaQueryWrapper<InsSample>().eq(InsSample::getInsOrderId, orderId));
+// if(CollectionUtils.isNotEmpty(insSamples)) {
+// for (InsSample insSample : insSamples) {
+// List<Map<String, Object>> lists = new ArrayList<>();
+// List<InsProduct> insProducts = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>().eq(InsProduct::getInsSampleId, insSample.getId()));
+// Map<String, Object> map = new HashMap<>();
+// map.put("label", insSample.getSampleCode());
+// map.put("value", insSample.getId());
+// if(CollectionUtils.isNotEmpty(insProducts)) {
+// Map<String, List<InsProduct>> collect = insProducts.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItem));
+// Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator();
+// while (iterator.hasNext()) {
+// Map.Entry<String, List<InsProduct>> entry = iterator.next();
+// lists.add(getInspectionItem(entry.getKey(), entry.getValue()));
+// }
+// map.put("children", lists);
+// }
+// list.add(map);
+// }
+// }
+// return list;
+// }
+
+ public Map<String, Object> getInspectionItem(String inspectionItem, List<InsProduct> insProducts) {
+ List<Integer> ids = new ArrayList<>();
+ List<Map<String, Object>> list = new ArrayList<>();
+ Map<String, Object> map = new HashMap<>();
+ map.put("label", inspectionItem);
+ for (InsProduct insProduct : insProducts) {
+ ids.add(insProduct.getId());
+ list.add(getProductsSubclass(insProduct));
+ }
+ map.put("value", ids);
+ map.put("children", list);
+ return map;
+ }
+ public Map<String, Object> getProductsSubclass(InsProduct insProduct) {
+ Map<String, Object> map = new HashMap<>();
+ if(StringUtils.isNotEmpty(insProduct.getInspectionItemSubclass())) {
+ map.put("label",insProduct.getInspectionItemSubclass());
+ }else {
+ map.put("label",insProduct.getInspectionItem());
+ }
+ map.put("value",insProduct.getId());
+ return map;
+ }
+
+
+ //瀹℃牳寰呮鎾ら攢
+ @Override
+ public void checkUpdate(Integer orderId, Integer state) {
+ InsOrder insOrder = insOrderMapper.selectById(orderId);
+ if (state == 1) {
+ List<String> list = new ArrayList<>();
+ try {
+ list = Arrays.asList(insOrder.getRevocationInsProductIds().split(","));
+ } catch (Exception e) {
+ throw new ErrorException("杩樻病鏈夐�夋嫨搴旇瑕佹挙閿�鐨勬楠岄」鐩�");
+ }
+ List<Integer> ids = list.stream()
+ .map(Integer::parseInt)
+ .collect(Collectors.toList());
+ List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
+ List<Integer> collect = insSamples.stream().map(InsSample::getId).collect(Collectors.toList());
+ List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, collect));
+ if (insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()).equals(ids)) {
+ //濡傛灉璇ユ楠屽崟涓嬬殑鎵�鏈夐」鐩叏閮ㄩ兘鎾ら攢,閭d箞杩欎釜鍗曞瓙涔熼渶瑕佹挙閿�
+ insOrder.setState(3);
+ } else {
+ List<InsProduct> products = insProductMapper.selectBatchIds(ids);
+ //棣栧厛鏍规嵁閫夋嫨鐨勯」鐩甶d杩涜鎾ら攢椤圭洰
+ updateBatchById(products.stream().map(insProduct -> {
+ insProduct.setState(0);
+ return insProduct;
+ }).collect(Collectors.toList()));
+ }
+ //insProductMapper.updateInspected(id);
+ }
+ //涓嶉�氳繃
+ insOrder.setIsRevocation(0);
+ insOrderMapper.updateById(insOrder);
+
+ }
+
+ @Override
+ public int write2(Integer id, String elasticityModulus) {
+ InsProduct insProduct = new InsProduct();
+ insProduct.setId(id);
+ insProduct.setElasticityModulus(elasticityModulus);
+ insProductMapper.updateById(insProduct);
+ return 0;
+ }
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java
new file mode 100644
index 0000000..333aa18
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseCellServiceImpl.java
@@ -0,0 +1,26 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.inspect.mapper.WarehouseCellMapper;
+import com.ruoyi.inspect.pojo.WarehouseCell;
+import com.ruoyi.inspect.service.WarehouseCellService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2024-03-14 17:12:02
+*/
+@Service
+@AllArgsConstructor
+public class WarehouseCellServiceImpl extends ServiceImpl<WarehouseCellMapper, WarehouseCell>
+ implements WarehouseCellService {
+
+
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java
new file mode 100644
index 0000000..4ec0346
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WarehouseServiceImpl.java
@@ -0,0 +1,190 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.HistoryDto;
+import com.ruoyi.inspect.dto.WarehouseCellAndSampleDto;
+import com.ruoyi.inspect.dto.WarehouseDto;
+import com.ruoyi.inspect.mapper.*;
+import com.ruoyi.inspect.pojo.*;
+import com.ruoyi.inspect.service.WarehouseCellService;
+import com.ruoyi.inspect.service.WarehouseService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2024-03-14 17:12:02
+*/
+@Service
+@AllArgsConstructor
+public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse>
+ implements WarehouseService {
+
+ private WarehouseMapper warehouseMapper;
+
+ private WarehouseShelfMapper warehouseShelfMapper;
+
+ private WarehouseCellMapper warehouseCellMapper;
+
+ private WarehouseHistoryMapper warehouseHistoryMapper;
+
+ private WarehouseCellService warehouseCellService;
+
+ private InsSampleMapper insSampleMapper;
+
+ private InsProductMapper insProductMapper;
+
+ @Override
+ public int addWarehouse(String name) {
+ Warehouse warehouse = new Warehouse();
+ warehouse.setName(name);
+ return warehouseMapper.insert(warehouse);
+ }
+
+ @Override
+ public List<WarehouseDto> selectWarehouse() {
+ return warehouseMapper.selectWarehouseList();
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int addShelf(WarehouseShelf warehouseShelf) {
+ warehouseShelfMapper.insert(warehouseShelf);
+ List<WarehouseCell> cells = new ArrayList<>();
+ for (int i = 1; i < warehouseShelf.getRow() + 1; i++) {
+ for (int a = 1; a < warehouseShelf.getCol() + 1; a++) {
+ WarehouseCell cell = new WarehouseCell();
+ cell.setRow(i);
+ cell.setCol(a);
+ cell.setState(1);
+ cell.setShelfId(warehouseShelf.getId());
+ cells.add(cell);
+ }
+ }
+ warehouseCellService.saveBatch(cells);
+ return 1;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int delWarehouse(Integer id) {
+ warehouseShelfMapper.delete(Wrappers.<WarehouseShelf>lambdaUpdate().eq(WarehouseShelf::getWarehouseId, id));
+ return warehouseMapper.deleteById(id);
+ }
+
+ @Override
+ public int upWarehouse(Warehouse warehouse) {
+ return warehouseMapper.updateById(warehouse);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int delShelf(Integer id) {
+ warehouseCellMapper.update(null ,Wrappers.<WarehouseCell>lambdaUpdate().eq(WarehouseCell::getShelfId, id).set(WarehouseCell::getState, 0));
+ return warehouseShelfMapper.deleteById(id);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int upShelf(WarehouseShelf warehouseShelf) {
+ warehouseCellMapper.update(null, Wrappers.<WarehouseCell>lambdaUpdate()
+ .eq(WarehouseCell::getShelfId, warehouseShelf.getWarehouseId())
+ .gt(WarehouseCell::getRow, warehouseShelf.getRow())
+ .gt(WarehouseCell::getCol, warehouseShelf.getCol())
+ .set(WarehouseCell::getState, 0));
+ warehouseShelfMapper.updateById(warehouseShelf);
+ return 0;
+ }
+
+ @Override
+ public List<WarehouseCellAndSampleDto> getWarehouse(Integer shelfId) {
+ return warehouseCellMapper.getWarehouse(shelfId);
+ }
+
+ @Override
+ public int inWarehouse(String trees, String sampleCode) {
+ String[] tree = trees.split("-");
+ if(tree.length < 4){
+ throw new ErrorException("搴撲綅閫夋嫨閿欒");
+ }
+ List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId,InsSample::getCellId));
+ if(samples.size()!=1){
+ throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎");
+ }
+ if(samples.get(0).getCellId()!=null){
+ throw new ErrorException("鏍峰搧 " + sampleCode + " 鏈嚭搴�");
+ }
+ WarehouseCell cell = warehouseCellMapper.selectOne(Wrappers.<WarehouseCell>lambdaQuery().eq(WarehouseCell::getShelfId, tree[1]).eq(WarehouseCell::getRow, tree[2]).eq(WarehouseCell::getCol, tree[3]).eq(WarehouseCell::getState, 1).select(WarehouseCell::getId,WarehouseCell::getRow,WarehouseCell::getCol));
+ WarehouseShelf shelf = warehouseShelfMapper.selectById(tree[1]);
+ Warehouse warehouse = warehouseMapper.selectById(tree[0]);
+ WarehouseHistory history = new WarehouseHistory();
+ history.setCellId(cell.getId());
+ history.setState(1);
+ history.setInsSampleId(samples.get(0).getId());
+ history.setWarehouseCode(warehouse.getName()+"-"+shelf.getName()+"-"+cell.getRow()+"-"+cell.getCol());
+ samples.get(0).setCellId(cell.getId());
+ insSampleMapper.updateById(samples.get(0));
+ return warehouseHistoryMapper.insert(history);
+ }
+
+ @Override
+ public int outWarehouse(String sampleCode) {
+ List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId,InsSample::getCellId));
+ if(samples.size()!=1){
+ throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎");
+ }
+ if(samples.get(0).getCellId()==null){
+ throw new ErrorException("鏍峰搧 " + sampleCode + " 鏈叆搴�");
+ }
+ WarehouseHistory history = new WarehouseHistory();
+ history.setState(2);
+ history.setInsSampleId(samples.get(0).getId());
+ history.setCellId(samples.get(0).getCellId());
+ history.setWarehouseCode(warehouseHistoryMapper.selectOne(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, samples.get(0).getId()).select(WarehouseHistory::getWarehouseCode).orderByDesc(WarehouseHistory::getId).last("limit 1")).getWarehouseCode());
+ insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate().eq(InsSample::getId, samples.get(0).getId()).set(InsSample::getCellId, null));
+ return warehouseHistoryMapper.insert(history);
+ }
+
+ @Override
+ public Map<String, Object> getSampleRecord(Integer id) {
+ InsSample insSample = insSampleMapper.selectById(id);
+ List<HistoryDto> histories = warehouseHistoryMapper.getHistoryListBySampleId(id);
+ Map<String, Object> map = new HashMap<>();
+ Map<String, String> sampleHistory = new HashMap<>();
+ WarehouseHistory history = histories.get(histories.size() - 1);
+ if(history.getState() == 1){
+ sampleHistory.put("date", history.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+ sampleHistory.put("user", warehouseHistoryMapper.getUserNameById(history.getCreateUser()));
+ sampleHistory.put("code", history.getWarehouseCode());
+ }
+ map.put("sampleHistory", sampleHistory);
+ map.put("insSample", insSample);
+ map.put("histories", histories);
+ map.put("products", insProductMapper.getProductAndResult(id));
+ return map;
+ }
+
+ @Override
+ public int searchSampleId(String sampleCode) {
+ List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode).select(InsSample::getId));
+ if(samples.size()!=1){
+ throw new ErrorException("鏍峰搧缂栧彿杈撳叆鏈夎");
+ }
+ return samples.get(0).getId();
+ }
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/util/SheetWriteHandlerUtil.java b/inspect-server/src/main/java/com/ruoyi/inspect/util/SheetWriteHandlerUtil.java
new file mode 100644
index 0000000..a9f274d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/util/SheetWriteHandlerUtil.java
@@ -0,0 +1,44 @@
+package com.ruoyi.inspect.util;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+
+public class SheetWriteHandlerUtil implements SheetWriteHandler {
+ private final String title;
+ private final Integer header;
+
+ public SheetWriteHandlerUtil(String title, Integer header) {
+ this.title = title;
+ this.header = header;
+ }
+
+ @Override
+ public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+
+ }
+
+ @Override
+ public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+ Workbook workbook = writeWorkbookHolder.getWorkbook();
+ Sheet sheet = workbook.getSheetAt(0);
+ //璁剧疆鏍囬
+ Row row1 = sheet.createRow(0);
+ row1.setHeight((short) 700);
+ Cell cell = row1.createCell(0);
+ //璁剧疆鍗曞厓鏍煎唴瀹�
+ cell.setCellValue(title);
+ CellStyle cellStyle = workbook.createCellStyle();
+ cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ cellStyle.setAlignment(HorizontalAlignment.CENTER);
+ Font font = workbook.createFont();
+ font.setBold(true);
+ font.setFontHeight((short) 450);
+ cellStyle.setFont(font);
+ cell.setCellStyle(cellStyle);
+ // 绗竴琛屽ぇ鏍囬鍗犱綅璁剧疆
+ sheet.addMergedRegionUnsafe(new CellRangeAddress(0, 0, 0, header-1));
+ }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviceVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviceVO.java
new file mode 100644
index 0000000..22fb3b0
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviceVO.java
@@ -0,0 +1,30 @@
+package com.ruoyi.inspect.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class DeviceVO implements Serializable {
+
+ /**
+ * 璁惧鍚嶇О
+ */
+ private String deviceName;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String specificationModel;
+
+ /**
+ * 璁惧绠$悊缂栧彿
+ */
+ private String managementNumber;
+
+ /**
+ * 璁惧鏈夋晥鏍″噯鏃ユ湡
+ */
+ private String latestTraceability;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/ExportInsProductVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/ExportInsProductVO.java
new file mode 100644
index 0000000..461f4d8
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/ExportInsProductVO.java
@@ -0,0 +1,158 @@
+package com.ruoyi.inspect.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Data
+public class ExportInsProductVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓嬪崟鏃堕棿
+ */
+ @ApiModelProperty("涓嬪崟鏃堕棿")
+ private LocalDate createTime;
+
+ /**
+ *瀹㈡埛鍚嶇О
+ */
+ @ApiModelProperty("瀹㈡埛鍚嶇О")
+ private String customName;
+
+ /**
+ *濮旀墭鍗曞彿
+ */
+ @ApiModelProperty("濮旀墭鍗曞彿")
+ private String entrustCode;
+
+ /**
+ *鏍峰搧缂栧彿
+ */
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ /**
+ *鏍峰搧澶х被
+ */
+ @ApiModelProperty("鏍峰搧澶х被")
+ private String sampleType;
+
+ /**
+ *鏍峰搧鍚嶇О
+ */
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ /**
+ *鍨嬪彿
+ */
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ /**
+ *鍗曚綅
+ */
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ /**
+ *妫�楠岄」
+ */
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ /**
+ *妫�楠屽瓙椤�
+ */
+ @ApiModelProperty("妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+
+ /**
+ *瀛愯瘯楠屽
+ */
+ @ApiModelProperty("瀛愯瘯楠屽")
+ private String sonLaboratory;
+
+ /**
+ *鏍囧噯瑕佹眰
+ */
+ @ApiModelProperty("鏍囧噯瑕佹眰")
+ private String tell;
+
+ /**
+ *妫�楠岀粨鏋�
+ */
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private String lastValue;
+
+ /**
+ *缁撴灉鍒ゅ畾
+ */
+ @ApiModelProperty("缁撴灉鍒ゅ畾")
+ private String insResult;
+
+ /**
+ *鍏夌氦甯︾紪鍙�
+ */
+ @ApiModelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ /**
+ *妫�楠岃繃绋嬪��
+ */
+ @ApiModelProperty("妫�楠岃繃绋嬪��")
+ private String insValue;
+
+ /**
+ *妫�楠屾椂闂�
+ */
+ @ApiModelProperty("妫�楠屾椂闂�")
+ private LocalDateTime checkTime;
+
+ /**
+ *妫�楠屼汉
+ */
+ @ApiModelProperty("妫�楠屼汉")
+ private String checkName;
+
+ /**
+ *濂楃鑹叉爣
+ */
+ @ApiModelProperty("濂楃鑹叉爣")
+ private String bushColor;
+
+ /**
+ * 鍏夌氦鑹叉爣
+ */
+ @ApiModelProperty("鍏夌氦鑹叉爣")
+ private String color;
+
+ /**
+ *鐗规畩椤圭埗id
+ */
+ @ApiModelProperty("鐗规畩椤圭埗id")
+ private Integer specialItemParentId;
+
+
+ /**
+ * 娓╁害寰幆 妫�楠岄」鍒嗙被
+ */
+ @ApiModelProperty("娓╁害寰幆 妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+
+
+ /**
+ * 璁$畻鍊�
+ */
+ @ApiModelProperty("璁$畻鍊�")
+ private String comValue;
+
+ @TableField(exist = false)
+ private LocalDate sendTime;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsFibersVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsFibersVO.java
new file mode 100644
index 0000000..622e6d5
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsFibersVO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.inspect.vo;
+
+import com.ruoyi.inspect.pojo.InsFibers;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class InsFibersVO extends InsFibers implements Serializable {
+
+ /**
+ * 濂楃鑹叉爣
+ */
+ @ApiModelProperty(value = "濂楃鑹叉爣")
+ private String bushingColor;
+
+ /**
+ * 鏄惁瀛樺湪妫�楠岄」鐩�
+ */
+ @ApiModelProperty(value = "鏄惁瀛樺湪妫�楠岄」鐩�")
+ private Boolean isExistProduct;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java
new file mode 100644
index 0000000..9504e33
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java
@@ -0,0 +1,36 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class InsOrderPlanTaskSwitchVo {
+ private String id;
+
+ @ApiModelProperty(name = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty(name = "妫�楠屽璞�")
+ private String sampleType;
+
+ @ApiModelProperty(name = "绱ф�ョ▼搴�")
+ private String type;
+
+ @ApiModelProperty(name = "鐘舵��")
+ private String insState;
+
+ @ApiModelProperty(name = "绾﹀畾鏃堕棿")
+ private String appointed;
+
+ @ApiModelProperty(name = "涓嬪彂鏃堕棿")
+ private String sendTime;
+
+ private Integer userId;
+
+ private String sonLaboratory;
+ private String laboratory;
+
+ private Integer orderUserId;
+
+ private Integer verifyUser;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java
new file mode 100644
index 0000000..821a4c6
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java
@@ -0,0 +1,56 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class InsOrderPlanVO {
+
+
+ private String id;
+
+ @ApiModelProperty(name = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty(name = "濮旀墭鍗曚綅")
+ private String company;
+
+ @ApiModelProperty(name = "鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty(name = "鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty(name = "绱ф�ョ▼搴�")
+ private String type;
+
+ @ApiModelProperty(name = "鐘舵��")
+ private String insState;
+
+ @ApiModelProperty(name = "妫�楠屼汉")
+ private String userName;
+ @ApiModelProperty(name = "澶嶆牳浜�")
+ private String checkName;
+
+ private Integer userId;
+
+ @ApiModelProperty(name = "妫�楠屽紑濮嬫椂闂�")
+ private String insTime;
+
+ @ApiModelProperty(name = "绾﹀畾鏃堕棿")
+ private String appointed;
+
+ @ApiModelProperty(name = "涓嬪彂鏃堕棿")
+ private String sendTime;
+
+ @ApiModelProperty(name = "鐞嗙敱")
+ private String verifyTell;
+
+
+ private String sonLaboratory;
+
+ private Integer orderUserId;
+
+ private Integer verifyUser;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductFiberVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductFiberVO.java
new file mode 100644
index 0000000..50d57c4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductFiberVO.java
@@ -0,0 +1,36 @@
+package com.ruoyi.inspect.vo;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class InsProductFiberVO extends InsProduct implements Serializable {
+
+ /**
+ * 濂楃鑹叉爣
+ */
+ @ApiModelProperty("濂楃鑹叉爣")
+ private String bushColor;
+
+ /**
+ * 鍏夌氦鑹叉爣
+ */
+ @ApiModelProperty("鍏夌氦鑹叉爣")
+ private String color;
+
+ /**
+ * 鍏夌氦甯︾紪鍙�
+ */
+ @ApiModelProperty("鍏夌氦甯︾紪鍙�")
+ private String code;
+
+ /**
+ * 妫�楠岃繃绋嬪��
+ */
+ @ApiModelProperty("妫�楠岃繃绋嬪��")
+ private String insValue;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductVO.java
new file mode 100644
index 0000000..3cb2113
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsProductVO.java
@@ -0,0 +1,41 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class InsProductVO implements Serializable {
+
+ @ApiModelProperty(value = "妫�楠岄」鐩甶d")
+ private Integer id;
+
+ @ApiModelProperty(value = "鏍峰搧id")
+ private Integer sampleId;
+
+ @ApiModelProperty(value = "鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty(value = "鏍峰搧鐘舵��")
+ private Integer state;
+
+ @ApiModelProperty(value = "鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty(value = "妫�楠岄」")
+ private String testItem;
+
+ @ApiModelProperty(value = "妫�楠屽瓙椤�")
+ private String testItemChildren;
+
+ @ApiModelProperty(value = "璇曢獙鏂规硶")
+ private String testMethod;
+
+ @ApiModelProperty(value = "鏍囧噯瑕佹眰")
+ private String requirement;
+
+ @ApiModelProperty(value = "妫�楠屼汉")
+ private String inspectName;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/ProductVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/ProductVo.java
new file mode 100644
index 0000000..bb99385
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/ProductVo.java
@@ -0,0 +1,22 @@
+package com.ruoyi.inspect.vo;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import lombok.Data;
+
+@Data
+public class ProductVo {
+
+ //绠¤壊鏍�
+ private String bushColor;
+
+ //鍏夌氦鑹叉爣
+ private String color;
+
+ //鍏夌氦甯︾紪鍙�
+ private String code;
+
+ //妫�楠岄」鐩�
+ private InsProduct insProduct;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsChildrenVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsChildrenVo.java
new file mode 100644
index 0000000..466ac2e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsChildrenVo.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SampleDefectsChildrenVo {
+ private String entrust_code;//濮旀墭缂栫爜
+ private String inspection_item;//妫�楠岄」
+ private String name;//妫�楠屼汉
+ private LocalDateTime create_time;//妫�楠屾棩鏈�
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsFatherVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsFatherVo.java
new file mode 100644
index 0000000..c9e8d24
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsFatherVo.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SampleDefectsFatherVo {
+ private Integer id;//鏍峰搧id
+ private String sample;//鏍峰搧鍚嶇О
+
+ private List<SampleDefectsChildrenVo> children;//瀛愮被
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleVo.java
new file mode 100644
index 0000000..90e0429
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleVo.java
@@ -0,0 +1,10 @@
+package com.ruoyi.inspect.vo;
+
+import com.ruoyi.inspect.pojo.InsSample;
+import lombok.Data;
+
+@Data
+public class SampleVo extends InsSample {
+ //璇曢獙鏂规硶
+ private String methodName;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/StandardProductVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/StandardProductVO.java
new file mode 100644
index 0000000..4a93e85
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/StandardProductVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鏌ヨ鏍囧噯搴撻厤缃伐鏃惰繑鍥炲璞�
+ */
+@Data
+public class StandardProductVO implements Serializable {
+
+ @ApiModelProperty(value = "宸ユ椂(H)")
+ private String manHour;
+
+ @ApiModelProperty(value = "宸ユ椂鍒嗙粍")
+ private String manHourGroup;
+
+ @ApiModelProperty(value = "鍖洪棿璁剧疆")
+ private String section;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/UnInsProductsVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/UnInsProductsVO.java
new file mode 100644
index 0000000..7407055
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/UnInsProductsVO.java
@@ -0,0 +1,32 @@
+package com.ruoyi.inspect.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ColumnWidth(25)
+public class UnInsProductsVO {
+
+ @ExcelProperty("鏃ユ湡")
+ @ApiModelProperty(value = "鏃ユ湡")
+ private String sendTime;
+
+ @ExcelProperty("濮旀墭鍗曞彿")
+ @ApiModelProperty(value = "濮旀墭鍗曞彿")
+ private String entrustCode;
+
+ @ExcelProperty("鏍峰搧鍚嶇О")
+ @ApiModelProperty(value = "鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ExcelProperty("鏍峰搧缂栧彿")
+ @ApiModelProperty(value = "鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ExcelProperty("寰呮椤圭洰")
+ @ApiModelProperty(value = "寰呮椤圭洰")
+ private String unInsProduct;
+
+}
diff --git a/inspect-server/src/main/resources/mapper/InsBushingMapper.xml b/inspect-server/src/main/resources/mapper/InsBushingMapper.xml
new file mode 100644
index 0000000..814801a
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsBushingMapper.xml
@@ -0,0 +1,109 @@
+<?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.inspect.mapper.InsBushingMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsBushing">
+ <id column="id" property="id" />
+ <result column="color" property="color" />
+ <result column="stand_num" property="standNum" />
+ <result column="test_num" property="testNum" />
+ <result column="ins_sample_id" property="insSampleId" />
+ <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="selectFibersByBushingId" resultMap="FibersDto">
+ select
+ fs.id, fs.code, fs.model, fs.standard, fs.num, fs.ins_bushing_id,
+ p.id pid, p.inspection_item, p.inspection_item_subclass, p.factory, p.laboratory, p.sample_type, p.sample, p.model pmodel, p.son_laboratory, p.unit, p.price, p.man_hour, p.man_hour_group, p.inspection_item_type, p.inspection_value_type, p.device_group, p.checkout_number, p.section, p.value_type, p.method, p.man_day, p.bsm, p.ask, p.tell, p.`last_value`, p.ins_result, p.state, p.ins_sample_id, p.template_id, p.dic, p.method_s,
+ ipr.ins_value,ipr.com_value,ipr.equip_value,ipr.equip_name
+ from ins_fibers fs
+ left join ins_product p on p.ins_fibers_id = fs.id
+ left join ins_product_result ipr on p.id = ipr.ins_product_id
+ where fs.ins_bushing_id = #{bushingId}
+ </select>
+
+ <select id="selectFiberByBushingId" resultMap="FiberDto">
+ select f.id, f.bush_color, f.color, f.model, f.standard, f.ins_bushing_id,
+ p.id pid, p.inspection_item, p.inspection_item_subclass, p.factory, p.laboratory, p.sample_type, p.sample, p.model pmodel, p.son_laboratory, p.unit, p.price, p.man_hour, p.man_hour_group, p.inspection_item_type, p.inspection_value_type, p.device_group, p.checkout_number, p.section, p.value_type, p.method, p.man_day, p.bsm, p.ask, p.tell, p.`last_value`, p.ins_result, p.state, p.ins_sample_id, p.template_id, p.dic, p.method_s,
+ ipr.ins_value,ipr.com_value,ipr.equip_value,ipr.equip_name
+ from ins_fiber f
+ left join ins_product p on p.ins_fiber_id = f.id
+ left join ins_product_result ipr on p.id = ipr.ins_product_id
+ where f.ins_bushing_id = #{bushingId}
+ </select>
+
+ <select id="selectFiberByFibersId" resultMap="FiberDto">
+ select f.id, f.bush_color, f.color, f.model, f.standard, f.ins_bushing_id,
+ p.id pid, p.inspection_item, p.inspection_item_subclass, p.factory, p.laboratory, p.sample_type, p.sample, p.model pmodel, p.son_laboratory, p.unit, p.price, p.man_hour, p.man_hour_group, p.inspection_item_type, p.inspection_value_type, p.device_group, p.checkout_number, p.section, p.value_type, p.method, p.man_day, p.bsm, p.ask, p.tell, p.`last_value`, p.ins_result, p.state, p.ins_sample_id, p.template_id, p.dic, p.method_s,
+ ipr.ins_value,ipr.com_value,ipr.equip_value,ipr.equip_name
+ from ins_fiber f
+ left join ins_product p on p.ins_fiber_id = f.id
+ left join ins_product_result ipr on p.id = ipr.ins_product_id
+ where f.ins_fibers_id = #{fibersId}
+ </select>
+
+ <resultMap id="FibersDto" type="com.ruoyi.inspect.dto.FibersDto">
+ <id property="id" column="id"/>
+ <result property="code" column="code"/>
+ <result property="insBushingId" column="ins_bushing_id"/>
+ <result property="model" column="model"/>
+ <result property="standard" column="standard"/>
+ <result property="num" column="num"/>
+ <collection property="productList" resultMap="product"/>
+ </resultMap>
+
+ <resultMap id="FiberDto" type="com.ruoyi.inspect.dto.FiberDto">
+ <id property="id" column="id"/>
+ <result property="bushColor" column="bush_color"/>
+ <result property="insBushingId" column="ins_bushing_id"/>
+ <result property="model" column="model"/>
+ <result property="standard" column="standard"/>
+ <result property="color" column="color"/>
+ <collection property="productList" resultMap="product"/>
+ </resultMap>
+
+ <resultMap id="product" type="com.ruoyi.inspect.pojo.InsProduct">
+ <id property="id" column="pid" jdbcType="INTEGER"/>
+ <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
+ <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="model" column="pmodel" jdbcType="VARCHAR"/>
+ <result property="sonLaboratory" column="son_laboratory" jdbcType="VARCHAR"/>
+ <result property="unit" column="unit" jdbcType="VARCHAR"/>
+ <result property="price" column="price" jdbcType="DECIMAL"/>
+ <result property="manHour" column="man_hour" jdbcType="DOUBLE"/>
+ <result property="manHourGroup" column="man_hour_group" jdbcType="VARCHAR"/>
+ <result property="inspectionItemType" column="inspection_item_type" jdbcType="VARCHAR"/>
+ <result property="inspectionValueType" column="inspection_value_type" jdbcType="VARCHAR"/>
+ <result property="deviceGroup" column="device_group" jdbcType="VARCHAR"/>
+ <result property="checkoutNumber" column="checkout_number" jdbcType="INTEGER"/>
+ <result property="section" column="section" jdbcType="VARCHAR"/>
+ <result property="valueType" column="value_type" jdbcType="VARCHAR"/>
+ <result property="method" column="method" jdbcType="VARCHAR"/>
+ <result property="manDay" column="man_day" jdbcType="INTEGER"/>
+ <result property="bsm" column="bsm" jdbcType="VARCHAR"/>
+ <result property="ask" column="ask" jdbcType="VARCHAR"/>
+ <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
+ <result property="templateId" column="template_id" jdbcType="INTEGER"/>
+ <result property="methodS" column="method_s"/>
+ <result property="tell" column="tell"/>
+ <result property="dic" column="dic"/>
+ <collection property="insProductResult" resultMap="insProductResult"/>
+ </resultMap>
+
+ <resultMap id="insProductResult" type="com.ruoyi.inspect.pojo.InsProductResult">
+ <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
+ <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
+ <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/>
+ <result property="equipName" column="equip_name" jdbcType="VARBINARY"/>
+ </resultMap>
+
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsFiberMapper.xml b/inspect-server/src/main/resources/mapper/InsFiberMapper.xml
new file mode 100644
index 0000000..1b9aa18
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsFiberMapper.xml
@@ -0,0 +1,23 @@
+<?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.inspect.mapper.InsFiberMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsFiber">
+ <id column="id" property="id" />
+ <result column="bush_color" property="bushColor" />
+ <result column="color" property="color" />
+ <result column="model" property="model" />
+ <result column="standard" property="standard" />
+ <result column="create_user" property="createUser" />
+ <result column="create_time" property="createTime" />
+ <result column="update_user" property="updateUser" />
+ <result column="update_time" property="updateTime" />
+ <result column="ins_bushing_id" property="insBushingId" />
+ <result column="ins_fibers_id" property="insFibersId" />
+ </resultMap>
+ <select id="selectInsFibersByInsFiberId" resultType="com.ruoyi.inspect.pojo.InsFibers">
+
+ </select>
+
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsFibersMapper.xml b/inspect-server/src/main/resources/mapper/InsFibersMapper.xml
new file mode 100644
index 0000000..d8ea016
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsFibersMapper.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.inspect.mapper.InsFibersMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsFibers">
+ <id column="id" property="id" />
+ <result column="code" property="code" />
+ <result column="model" property="model" />
+ <result column="standard" property="standard" />
+ <result column="num" property="num" />
+<!-- <result column="ins_product_id" property="insProductId" />-->
+ <result column="ins_bushing_id" property="insBushingId" />
+ <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>
+
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsOrderFileMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderFileMapper.xml
new file mode 100644
index 0000000..945a4b3
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsOrderFileMapper.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.inspect.mapper.InsOrderFileMapper">
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsOrderFile">
+ <id column="id" property="id"/>
+ <result column="ins_order_id" property="insOrderId"/>
+ <result column="type" property="type"/>
+ <result column="file_url" property="fileUrl"/>
+ <result column="file_name" property="fileName"/>
+ <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="getFileList" resultType="com.ruoyi.inspect.pojo.InsOrderFile">
+ select A.*
+ from (select iof.*, name
+ from ins_order_file iof
+ left join user u on iof.create_user = u.id
+ where iof.ins_order_id = #{insOrderId}) A
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
new file mode 100644
index 0000000..d6baaef
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -0,0 +1,1247 @@
+<?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.inspect.mapper.InsOrderMapper">
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsOrder">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="entrustCode" column="entrust_code" jdbcType="VARCHAR"/>
+ <result property="outEntrustCode" column="out_entrust_code" jdbcType="VARCHAR"/>
+ <result property="custom" column="custom" jdbcType="VARCHAR"/>
+ <result property="company" column="company" jdbcType="VARCHAR"/>
+ <result property="code" column="code" jdbcType="VARCHAR"/>
+ <result property="type" column="type" jdbcType="INTEGER"/>
+ <result property="appointed" column="appointed" jdbcType="TIMESTAMP"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="otcCode" column="otc_code" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="revocationInsProductIds" column="revocation_ins_product_ids" />
+ <result property="isRevocation" column="is_revocation" />
+ </resultMap>
+
+ <resultMap id="OrderThingDto" type="com.ruoyi.inspect.dto.OrderThingDto">
+ <result property="id" column="id"/>
+ <result property="company" column="company"/>
+ <result property="entrustCode" column="entrust_code"/>
+ <result property="sampleCode" column="sample_code"/>
+ <result property="custom" column="custom"/>
+ <result property="sample" column="sample"/>
+ <result property="model" column="model"/>
+ <result property="sampleNum" column="sample_num"/>
+ <result property="remark" column="remark"/>
+ <result property="insResult" column="ins_result"/>
+ <result property="createTime" column="create_time"/>
+ <collection property="products" resultMap="ProductThingDto"/>
+ </resultMap>
+
+ <resultMap id="ProductThingDto" type="com.ruoyi.inspect.dto.ProductThingDto">
+ <result property="productId" column="id"/>
+ <result property="inspectionItem" column="inspection_item"/>
+ <result property="lastValue" column="last_value"/>
+ <result property="insResult" column="ins_result"/>
+ <collection property="productResults" resultMap="productResultDto"/>
+ </resultMap>
+
+ <resultMap id="productResultDto" type="com.ruoyi.inspect.dto.productResultDto">
+ <result property="id" column="id"/>
+ <result property="insValue" column="ins_value"/>
+ <result property="insResult" column="ins_result"/>
+ <result property="remark" column="remark"/>
+ </resultMap>
+
+ <resultMap id="selectSampleDefectsMap" type="com.ruoyi.inspect.vo.SampleDefectsFatherVo">
+ <id column="id" property="id"/>
+ <result column="sample" property="sample"/>
+ <association property="children" resultMap="SampleDefectsChildrenMap" javaType="java.util.List"/>
+ </resultMap>
+ <select id="getInsOrderPlanList" resultType="map">
+ SELECT
+ io.id,
+ io.entrust_code As entrustCode,
+ isa.sample_code As sampleCode,
+ ip.inspection_item As inspectionItem,
+ ip.inspection_item_subclass As inspectionItemSubclass,
+ ip.last_value As lastValue,
+ ips.create_user As createUser,
+ (SELECT `name` FROM `user` u WHERE u.id = ips.create_user) AS userName,
+ io.send_time As sendTime,
+ ios.ins_time As insTime,
+ CASE
+ when ifi.bush_color is not null then ifi.bush_color
+ when ib.color is not null then ib.color
+ else '-'
+ END AS bushing,
+ CASE
+ when ifi.color is not null then ifi.color
+ else '-'
+ END AS fiber,
+ '-' as fibers
+ FROM
+ ins_order io
+ LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
+ LEFT JOIN ins_product ip ON isa.id = ip.ins_sample_id
+ LEFT JOIN ins_product_result ips ON ip.id = ips.ins_product_id
+ LEFT JOIN ins_order_state ios ON ios.ins_order_id = io.id
+ left join ins_fiber ifi on ip.ins_fiber_id = ifi.id
+ LEFT JOIN ins_bushing ib ON ip.ins_bush_id = ib.id
+ WHERE ip.ins_result IN (0,1,3)
+ AND ip.son_laboratory = #{sonLaboratory}
+ AND ios.laboratory = #{sonLaboratory}
+ AND ip.sample_type = #{sampleType}
+ AND ip.special_item_parent_id IS NULL
+ <if test="entrustCode != null and entrustCode != ''">
+ AND io.entrust_code like concat('%',#{entrustCode},'%')
+ </if>
+ <if test="sampleCode != null and sampleCode != ''">
+ AND isa.sample_code like concat('%',#{sampleCode},'%')
+ </if>
+ <if test="createUser != null and createUser != ''">
+ AND ips.create_user = #{createUser}
+ </if>
+ <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+ AND ios.ins_time between #{startTime} and #{endTime}
+ </if>
+
+ </select>
+
+ <select id="getTabHeader" resultType="map">
+ SELECT
+ *
+ FROM
+ (
+ SELECT
+ A.id,
+ laboratory,
+ sample,
+ son_laboratory AS sonLaboratory,
+ inspection_item AS inspectionItem,
+ inspection_item_subclass AS inspectionItemSubclass
+ FROM
+ (
+ SELECT
+ *,
+ CASE
+
+ WHEN INSTR( sample, ',' ) > 0 THEN
+ SUBSTRING_INDEX( SUBSTRING_INDEX( sample, '","', 1 ), '"', - 1 )
+ WHEN sample = '[""]' THEN
+ NULL
+ WHEN sample = '[]' THEN
+ NULL ELSE TRIM(
+ BOTH '["]'
+ FROM
+ SUBSTRING_INDEX( REPLACE ( sample, '[["', '' ), '"]]', 1 ))
+ END AS samples
+ FROM
+ structure_item_parameter
+ ) A
+ LEFT JOIN structure_test_object sto ON samples = specimen_name
+ WHERE son_laboratory = #{sonLaboratory}
+ <if test="sample != null and sample != ''">
+ AND sample like concat('%',#{sample},'%')
+ </if>
+ )B ORDER BY id
+ </select>
+ <select id="selectInsOrderPage" resultType="com.ruoyi.inspect.dto.SampleOrderDto">
+ select
+ id,
+ entrust_code,
+ custom,
+ company,
+ code,
+ type,
+ appointed,
+ state,
+ tell,
+ remark,
+ otc_code,
+ user_id,
+ mating,
+ create_user,
+ create_time,
+ update_user,
+ update_time,
+ send_time,
+ ins_state,
+ factory,
+ laboratory,
+ sample_type,
+ sample,
+ ins_result,
+ ins_time,
+ processing,
+ is_leave,
+ order_type,
+ send,
+ form_type,
+ phone,
+ examine_time,
+ engineering,
+ engineering_en,
+ production,
+ production_en,
+ company_id,
+ prepare_user,
+ out_entrust_code,
+ is_revocation,
+ revocation_ins_product_ids,
+ revocation_time,
+ issuing_date,
+ assign,
+ inspect_id,
+ report_id,
+ is_ratify,
+ url,
+ url_s,
+ temp_url_pdf,
+ sample_num,
+ insProgress,
+ sample_code,
+ sample_name,
+ sample_model,
+ name
+ from (
+ SELECT
+ io.id,
+ io.entrust_code,
+ io.custom,
+ io.company,
+ io.code,
+ io.type,
+ io.appointed,
+ io.state,
+ io.tell,
+ io.remark,
+ io.otc_code,
+ io.user_id,
+ io.mating,
+ io.create_user,
+ io.create_time,
+ io.update_user,
+ io.update_time,
+ io.send_time,
+ io.ins_state,
+ io.factory,
+ io.laboratory,
+ io.sample_type,
+ io.sample,
+ io.ins_result,
+ io.ins_time,
+ io.processing,
+ io.is_leave,
+ io.order_type,
+ io.send,
+ io.form_type,
+ io.phone,
+ io.examine_time,
+ io.engineering,
+ io.engineering_en,
+ io.production,
+ io.production_en,
+ io.company_id,
+ io.prepare_user,
+ io.out_entrust_code,
+ io.is_revocation,
+ io.revocation_ins_product_ids,
+ io.revocation_time,
+ io.issuing_date,
+ COUNT(iot.id) assign,
+ isau.id as inspect_id,
+ ir.id report_id,
+ ir.is_ratify,
+ ir.url,
+ ir.url_s,
+ ir.temp_url_pdf,
+ total_product_counts.sample_num,
+ CONCAT(ROUND(total_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
+-- sample_counts.sample_num,
+-- CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
+ GROUP_CONCAT(DISTINCT isa.sample_code SEPARATOR '锛�') AS sample_code,
+ GROUP_CONCAT(DISTINCT isa.sample SEPARATOR ' ') AS sample_name,
+ GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
+ u.name
+ FROM
+ ins_order io
+ LEFT JOIN
+ ins_sample isa ON io.id = isa.ins_order_id
+ LEFT JOIN
+ ins_sample_user isau ON isau.ins_sample_id = io.id
+ LEFT JOIN
+ ins_order_state iot ON iot.ins_order_id = io.id
+ LEFT JOIN
+ ins_report ir ON io.id = ir.ins_order_id
+ LEFT JOIN
+ user u ON io.create_user = u.id
+ LEFT JOIN (
+ SELECT ins_sample.ins_order_id,
+ COUNT(DISTINCT ins_sample_id) as sample_num,
+ COUNT(ins_product.id) AS total_count,
+ COUNT(CASE WHEN ins_product.ins_result is not null and ins_product.ins_result !='2' THEN ins_product.ins_result END) AS approved_count
+ FROM ins_product
+ JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+ WHERE ins_product.state = 1
+ GROUP BY ins_sample.ins_order_id
+ ) total_product_counts
+ ON io.id = total_product_counts.ins_order_id
+-- LEFT JOIN
+-- (
+-- SELECT
+-- ins_order_id,
+-- COUNT(*) AS sample_num
+-- FROM ins_sample
+-- WHERE
+-- id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
+-- GROUP BY ins_order_id
+-- ) sample_counts ON io.id = sample_counts.ins_order_id
+-- LEFT JOIN
+-- (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
+-- FROM ins_product
+-- JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+-- WHERE ins_product.state = 1
+-- GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
+-- LEFT JOIN
+-- (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
+-- FROM ins_product
+-- JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
+-- WHERE ins_product.state = 1 AND ins_product.ins_result is not null AND ins_product.ins_result != '2'
+-- GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
+ <where>
+ <if test="laboratory!=null and laboratory!=''">
+ AND io.laboratory=#{laboratory}
+ </if>
+ <if test="eqState!=null and eqState!=''">
+ AND io.state=#{eqState}
+ </if>
+ <if test="neState!=null and neState!=''">
+ AND io.state != #{neState}
+ </if>
+ <if test="startTime != '' and startTime != null and endTime != null and endTime != ''">
+ AND io.create_time between #{startTime} and #{endTime}
+ </if>
+ </where>
+ GROUP BY io.id,type
+ order by type desc,io.id desc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="exportChecked" resultType="com.ruoyi.inspect.vo.ExportInsProductVO">
+ SELECT
+ i.create_time,
+ i.custom AS custom_name,
+ i.id,
+ i.entrust_code,
+ isa.id ins_sample_id,
+ isa.sample_code,
+ isa.sample,
+ isa.model,
+ isa.ins_state,
+ ip.id ins_product_id,
+ ip.state,
+ ip.unit,
+ ip.sample_type,
+ ip.inspection_item,
+ ip.inspection_item_subclass,
+ ip.son_laboratory,
+ ip.inspection_item_type,
+ ip.inspection_value_type,
+ ip.special_item_parent_id,
+ ip.tell,
+ ip.`last_value`,
+ case
+ WHEN ip.ins_result = 0 THEN '涓嶅悎鏍�'
+ WHEN ip.ins_result = 1 THEN '鍚堟牸'
+ WHEN ip.ins_result = 3 THEN '涓嶅垽瀹�'
+ ELSE ''
+ END AS ins_result,
+ ipr.equip_value,
+ ipr.com_value,
+ ip.inspection_item_class,
+ ifis.CODE,
+ ipr.ins_value,
+ ipr.create_time AS check_time,
+ u.NAME AS check_name,
+ CASE
+ WHEN ifi.bush_color IS NOT NULL THEN
+ ifi.bush_color
+ WHEN ib1.color IS NOT NULL THEN
+ ib1.color
+ WHEN ib2.color IS NOT NULL THEN
+ ib2.color ELSE ''
+ END AS bush_color,
+ ifi.color
+ FROM
+ ins_sample isa
+ LEFT JOIN ins_order i ON isa.ins_order_id = i.id
+ LEFT JOIN ins_product ip ON isa.id = ip.ins_sample_id
+ LEFT JOIN ins_product_result ipr ON ip.id = ipr.ins_product_id
+ LEFT JOIN ins_fiber ifi ON ip.ins_fiber_id = ifi.id
+ LEFT JOIN ins_fibers ifis ON ip.ins_fibers_id = ifis.id
+ LEFT JOIN ins_bushing ib1 ON ip.ins_bush_id = ib1.id
+ LEFT JOIN ins_bushing ib2 ON ib2.id = ifis.ins_bushing_id
+ LEFT JOIN USER u ON u.id = ipr.create_user
+ WHERE
+ ip.state = 1 AND
+ (i.state = 4 or i.state = 1)
+ <if test="startTime != '' and startTime != null and endTime != null and endTime != ''">
+ AND i.create_time BETWEEN #{startTime} AND #{endTime}
+ </if>
+ <if test="names != null and names.size > 0">
+ AND i.custom in
+ <foreach collection="names" item="item" open="(" close=")" separator=",">
+ #{item}
+ </foreach>
+ </if>
+ ORDER BY
+ i.create_time,
+ ins_product_id ASC
+ </select>
+
+
+
+ <resultMap id="SampleDefectsChildrenMap" type="com.ruoyi.inspect.vo.SampleDefectsChildrenVo">
+ <result column="entrust_code" property="entrust_code"/>
+ <result column="inspection_item" property="inspection_item"/>
+ <result column="name" property="name"/>
+ <result column="create_time" property="create_time"/>
+ </resultMap>
+ <select id="selectInsOrderParameter" resultType="com.ruoyi.inspect.pojo.InsOrder">
+ select *
+ from (
+ select
+ id,
+ appointed,
+ user_id,
+ create_user,
+ otc_code,
+ code,
+ custom,
+ update_user,
+ update_time,
+ type,
+ entrust_code,
+ company,
+ remark,
+ create_time,
+ state
+ from ins_order
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="getLaboratoryCode" resultType="java.lang.String">
+ select laboratory_number
+ from laboratory
+ where laboratory_name = #{name}
+ </select>
+ <select id="selectSampleAndProductByOrderId" resultType="com.ruoyi.inspect.dto.SampleProductDto2">
+ select *
+ from (
+ select
+ i.id,
+ i.entrust_code,
+ isa.id ins_sample_id,
+ isa.sample_code,
+ isa.sample,
+ isa.model,
+ isa.ins_state,
+ ip.id ins_product_id,
+ ip.state,
+ ip.unit,
+ ip.inspection_item,
+ ip.inspection_item_subclass,
+ ip.son_laboratory,
+ ip.inspection_item_type,
+ ip.inspection_value_type,
+ ip.tell,
+ ip.`last_value`,
+ ip.ins_result,
+ ipr.equip_value,
+ ifis.code,
+ ipr.ins_value,
+ ipr.create_time as check_time,
+ u.name as check_name,
+ CASE
+ when ifi.bush_color is not null then ifi.bush_color
+ when ib1.color is not null then ib1.color
+ when ib2.color is not null then ib2.color
+ else ''
+ END AS bush_color,
+ ifi.color
+ from ins_sample isa
+ left join ins_order i on isa.ins_order_id = i.id
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ left join ins_fiber ifi on ip.ins_fiber_id = ifi.id
+ LEFT JOIN ins_fibers ifis ON ip.ins_fibers_id = ifis.id
+-- LEFT JOIN ins_bushing ib ON ip.ins_bush_id = ib.id or ib.id = ifis.ins_bushing_id
+ LEFT join ins_bushing ib1 on ip.ins_bush_id = ib1.id
+ LEFT JOIN ins_bushing ib2 on ib2.id = ifis.ins_bushing_id
+ LEFT JOIN user u ON u.id = ipr.update_user
+ where ip.state = 1
+ and i.id=#{id}
+ order by case
+ when ip.man_hour_group is NULL then 1
+ when ip.man_hour_group = '' then 1
+ else 0 end,
+ CASE
+ WHEN ip.man_hour_group REGEXP '^[0-9]' THEN CAST(ip.man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴�
+ WHEN ip.man_hour_group REGEXP '[0-9]+'
+ THEN CAST(SUBSTRING(ip.man_hour_group, 2) AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒�
+ , ins_product_id asc
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="selectCostStatistics" resultType="com.ruoyi.inspect.dto.CostStatisticsDto">
+ select * from (
+ SELECT
+ A.id,
+ A.entrust_code,
+ A.create_time,
+ A.sample,
+ A.model,
+ A.inspection_item,
+ A.company,
+ A.`name`,
+ COUNT( 1 ) num,
+ SUM( A.price ) price,
+ SUM( A.cost ) cost
+ FROM
+ (
+ SELECT
+ i.id,
+ i.laboratory,
+ i.entrust_code,
+ i.create_time,
+ isa.sample,
+ isa.sample_code,
+ isa.model,
+ c.price,
+ c.cost,
+ c.inspection_item,
+ i.company,
+ u.`name`,
+ i.create_user,
+ c.ins_sample_id
+ FROM
+ ins_order i
+ LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
+ LEFT JOIN `user` u ON u.id = i.user_id
+ LEFT JOIN custom cus ON cus.id = u.company
+ LEFT JOIN (
+ SELECT
+ SUM( b.price ) price,
+ sum( b.man_hour ) cost,
+ b.ins_sample_id,
+ GROUP_CONCAT( b.inspection_item2 SEPARATOR ',' ) inspection_item
+ FROM
+ (
+ SELECT
+ ip.ins_sample_id,
+ ip.man_hour,
+ ip.man_hour_group,
+ case
+ WHEN LOCATE('[', spl.price)>0 THEN
+ REPLACE(JSON_EXTRACT(spl.price, REPLACE(JSON_SEARCH(spl.section, 'one', ip.section), '"', '')),'"','')
+ ELSE spl.price
+ END AS price ,
+ GROUP_CONCAT( CONCAT( ip.inspection_item, '@', ip.inspection_item_subclass ) SEPARATOR ',' ) inspection_item2
+ FROM
+ ins_product ip
+ LEFT JOIN standard_product_list spl ON ip.laboratory = spl.laboratory
+ AND ip.sample_type = spl.sample_type
+ AND ip.sample = spl.sample
+ AND ip.model = spl.model
+ AND ip.inspection_item = spl.inspection_item
+ AND ip.inspection_item_subclass = spl.inspection_item_subclass
+ AND ip.son_laboratory = spl.son_laboratory
+ AND ip.standard_method_list_id = spl.standard_method_list_id
+ WHERE
+ ip.state = 1
+ AND ip.create_time between #{startTime} and #{endTime}
+ AND ip.template_id IS NOT NULL
+ GROUP BY
+ ip.ins_sample_id,
+ ip.man_hour_group
+ ) b
+ GROUP BY
+ b.ins_sample_id
+ ) c ON c.ins_sample_id = isa.id
+ WHERE
+ ( i.state = 1 OR i.state = 3 OR i.state = 4 )
+ AND c.ins_sample_id IS NOT NULL
+ ) A
+ where 1 = 1
+ <if test="laboratory != '' and laboratory != null">
+ AND A.laboratory = #{laboratory}
+ </if>
+ GROUP BY
+ A.id,
+ A.entrust_code,
+ A.create_time,
+ A.sample,
+ A.model,
+ A.inspection_item,
+ A.company,
+ A.`name`
+ )B
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="selectDeviceList" resultType="com.ruoyi.inspect.vo.DeviceVO">
+ select
+ d.device_name,
+ d.specification_model,
+ d.management_number,
+ date_format(CASE
+ WHEN dmr.next_calibration_date is not null THEN dmr.next_calibration_date
+ WHEN d.next_calibration_date > CURDATE() THEN d.next_calibration_date
+ END,'%Y-%m-%d') AS latest_traceability
+ from device d left join
+ device_metric_record dmr on d.id = dmr.device_id
+ where d.management_number = #{name}
+ order by latest_traceability desc
+ limit 1
+ </select>
+
+ <update id="upInsOrderParameter" parameterType="com.ruoyi.inspect.pojo.InsOrder">
+ UPDATE ins_order
+ <set>
+ <if test="appointed!=null and appointed!='' ">
+ appointed=#{appointed},
+ </if>
+ <if test="userId!=null ">
+ user_id=#{userId},
+ </if>
+ <if test="createUser!=null ">
+ create_user=#{createUser}
+ </if>
+ <if test="otcCode!=null ">
+ otc_code=#{otcCode}
+ </if>
+ <if test="code!=null ">
+ code=#{code}
+ </if>
+ <if test="custom!=null ">
+ custom=#{custom}
+ </if>
+ <if test="updateUser!=null ">
+ update_user=#{updateUser}
+ </if>
+ <if test="updateTime!=null ">
+ update_time=#{updateTime}
+ </if>
+ <if test="type!=null ">
+ type=#{type}
+ </if>
+ <if test="entrustCode!=null ">
+ entrust_code=#{entrustCode}
+ </if>
+ <if test="company!=null ">
+ company=#{company}
+ </if>
+ <if test="remark!=null ">
+ remark=#{remark}
+ </if>
+ <if test="createTime!=null ">
+ create_time=#{createTime}
+ </if>
+ <if test="state!=null ">
+ state=#{state}
+ </if>
+ </set>
+ <where>
+ id=#{id}
+ </where>
+ </update>
+ <update id="updateStatus">
+ update ins_order
+ set state=3
+ where id = #{id}
+ </update>
+
+ <select id="selectSampleDefects" resultMap="selectSampleDefectsMap">
+ SELECT io.entrust_code,sam.sample,ip.inspection_item,u.name,b.create_time, sam.id
+ from ins_order io
+ left JOIN ins_sample sam on io.id=sam.ins_order_id
+ LEFT JOIN ins_product ip on ip.ins_sample_id=sam.id
+ LEFT JOIN
+ (SELECT create_time,create_user,ins_product_id FROM
+ (select * FROM ins_product_user ORDER BY ins_product_user.create_time DESC) a
+ GROUP BY a.ins_product_id) b
+ on b.ins_product_id=ip.id
+ left JOIN `user` u on u.id=b.create_user
+ WHERE (ip.ins_result=0 OR ip.state=0)
+ <if test="inspectionItems != null and inspectionItems != ''">
+ and inspection_item like concat('%', #{inspectionItems}, '%')
+ </if>
+ <if test="orderNumber != null and orderNumber != ''">
+ and io.entrust_code like concat('%', #{orderNumber}, '%')
+ </if>
+ </select>
+
+ <select id="getCount" resultType="long">
+ select count(1)
+ from (
+ SELECT io.entrust_code,sam.sample,ip.inspection_item,u.name,b.create_time, sam.id
+ from ins_order io
+ left JOIN ins_sample sam on io.id=sam.ins_order_id
+ LEFT JOIN ins_product ip on ip.ins_sample_id=sam.id
+ LEFT JOIN
+ (SELECT create_time,create_user,ins_product_id FROM (select * FROM ins_product_user ORDER BY
+ ins_product_user.create_time DESC) a GROUP BY a.ins_product_id) b
+ on b.ins_product_id=ip.id
+ left JOIN `user` u on u.id=b.create_user
+ where (ip.ins_result=0 OR ip.state=0)
+ <if test="inspectionItems != null and inspectionItems != ''">
+ and inspection_item like concat('%', #{inspectionItems}, '%')
+ </if>
+ <if test="orderNumber != null and orderNumber != ''">
+ and io.entrust_code like concat('%', #{orderNumber}, '%')
+ </if>
+ ) temp
+ </select>
+ <select id="getEnumLabelByValue" resultType="java.lang.String">
+ select label
+ from enums
+ where value = #{value}
+ </select>
+ <select id="getStandardMethodCode" resultType="java.lang.String">
+ select code
+ from standard_method
+ where id = #{id}
+ </select>
+ <select id="selLaboratoryCode" resultType="java.lang.String">
+ select laboratory_code
+ from laboratory
+ where laboratory_name = #{laboratory}
+ </select>
+ <select id="selectReportModelByOrderId" resultType="java.util.Map">
+ select distinct id, name
+ from standard_template
+ where id in (select template_id
+ from ins_product
+ where son_laboratory = #{laboratory}
+ and ins_sample_id in
+ (select id from ins_sample where ins_order_id = #{id}))
+ </select>
+
+ <select id="selectCostStatistics2" resultType="com.ruoyi.inspect.dto.CostStatisticsDto">
+ select * from (
+ SELECT
+ A.id,
+ A.entrust_code,
+ A.create_time,
+ A.sample,
+ A.model,
+ A.inspection_item,
+ A.company,
+ A.`name`,
+ COUNT( 1 ) num,
+ SUM( A.price ) price,
+ SUM( A.cost ) cost
+ FROM
+ (
+ SELECT
+ i.id,
+ i.laboratory,
+ i.entrust_code,
+ i.create_time,
+ isa.sample,
+ isa.sample_code,
+ isa.model,
+ c.price,
+ c.cost,
+ c.inspection_item,
+ i.company,
+ u.`name`,
+ i.create_user,
+ c.ins_sample_id
+ FROM
+ ins_order i
+ LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
+ LEFT JOIN `user` u ON u.id = i.user_id
+ LEFT JOIN custom cus ON cus.id = u.company
+ LEFT JOIN (
+ SELECT
+ SUM( b.price ) price,
+ sum( b.man_hour ) cost,
+ b.ins_sample_id,
+ GROUP_CONCAT( b.inspection_item2 SEPARATOR ',' ) inspection_item
+ FROM
+ (
+ SELECT
+ ip.ins_sample_id,
+ ip.man_hour,
+ ip.man_hour_group,
+ case
+ WHEN LOCATE('[', spl.price)>0 THEN
+ REPLACE(JSON_EXTRACT(spl.price, REPLACE(JSON_SEARCH(spl.section, 'one', ip.section), '"', '')),'"','')
+ ELSE spl.price
+ END AS price ,
+ GROUP_CONCAT( CONCAT( ip.inspection_item, '@', ip.inspection_item_subclass ) SEPARATOR ',' ) inspection_item2
+ FROM
+ ins_product ip
+ LEFT JOIN standard_product_list spl ON ip.laboratory = spl.laboratory
+ AND ip.sample_type = spl.sample_type
+ AND ip.sample = spl.sample
+ AND ip.model = spl.model
+ AND ip.inspection_item = spl.inspection_item
+ AND ip.inspection_item_subclass = spl.inspection_item_subclass
+ AND ip.son_laboratory = spl.son_laboratory
+ AND ip.standard_method_list_id = spl.standard_method_list_id
+ WHERE
+ ip.state = 1
+ AND ip.create_time between #{startTime} and #{endTime}
+ AND ip.template_id IS NOT NULL
+ GROUP BY
+ ip.ins_sample_id,
+ ip.man_hour_group
+ ) b
+ GROUP BY
+ b.ins_sample_id
+ ) c ON c.ins_sample_id = isa.id
+ WHERE
+ ( i.state = 1 OR i.state = 3 OR i.state = 4 )
+ AND c.ins_sample_id IS NOT NULL
+ ) A
+ where 1 = 1
+ <if test="laboratory != '' and laboratory != null">
+ AND A.laboratory = #{laboratory}
+ </if>
+ GROUP BY
+ A.id,
+ A.entrust_code,
+ A.create_time,
+ A.sample,
+ A.model,
+ A.inspection_item,
+ A.company,
+ A.`name`
+
+
+
+
+
+ ) B
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="seldepLimsId" resultType="java.lang.String">
+ select name
+ from department_lims
+ where id = #{depLimsId}
+ </select>
+
+ <select id="getDepartment" resultType="string">
+ select name from department_lims where id = #{id}
+ </select>
+
+ <select id="getLaboratory" resultType="string">
+ select distinct laboratory from ins_product where ins_sample_id = #{id}
+ </select>
+
+
+ <select id="selectCommissionFees" resultType="com.ruoyi.inspect.dto.CommissionFeesDto">
+<!-- SELECT-->
+<!-- date_format(create_time, '%Y-%m-%d') AS create_time,-->
+<!-- entrust_code,-->
+<!-- sample_name,-->
+<!-- sample_model,-->
+<!-- sample_num,-->
+<!-- ins_item,-->
+<!-- production,-->
+<!-- company,-->
+<!-- custom,-->
+<!-- engineering,-->
+<!-- total_price-->
+<!-- FROM-->
+<!-- (-->
+<!-- SELECT-->
+<!-- io.*,-->
+<!-- sample_counts.sample_num,-->
+<!-- GROUP_CONCAT( DISTINCT isa.sample SEPARATOR '銆�' ) AS sample_name,-->
+<!-- GROUP_CONCAT( DISTINCT isa.model SEPARATOR '銆�' ) AS sample_model,-->
+<!-- total_product_counts.ins_item,-->
+<!-- total_price-->
+<!-- FROM-->
+<!-- ins_order io-->
+<!-- LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id-->
+<!-- LEFT JOIN ins_sample_user isau ON isau.ins_sample_id = io.id-->
+<!-- LEFT JOIN ins_order_state iot ON iot.ins_order_id = io.id-->
+<!-- LEFT JOIN ins_report ir ON io.id = ir.ins_order_id-->
+<!-- AND ir.is_ratify = 1-->
+<!-- LEFT JOIN USER u ON io.create_user = u.id-->
+<!-- LEFT JOIN (-->
+<!-- SELECT-->
+<!-- ins_order_id,-->
+<!-- COUNT(*) AS sample_num-->
+<!-- FROM-->
+<!-- ins_sample-->
+<!-- WHERE-->
+<!-- id IN (-->
+<!-- SELECT-->
+<!-- id1-->
+<!-- FROM-->
+<!-- (-->
+<!-- SELECT-->
+<!-- is2.id id1,-->
+<!-- ip.id-->
+<!-- FROM-->
+<!-- ins_sample is2-->
+<!-- LEFT JOIN ins_product ip ON is2.id = ip.ins_sample_id-->
+<!-- WHERE-->
+<!-- ip.id IS NOT NULL-->
+<!-- ) s-->
+<!-- )-->
+<!-- GROUP BY-->
+<!-- ins_order_id-->
+<!-- ) sample_counts ON io.id = sample_counts.ins_order_id-->
+<!-- LEFT JOIN (-->
+<!-- SELECT-->
+<!-- SUM( price ) AS total_price,-->
+<!-- sample_id,-->
+<!-- ins_order_id,-->
+<!-- man_hour_group,-->
+<!-- ins_item-->
+<!-- FROM-->
+<!-- (-->
+<!-- SELECT-->
+<!-- ins_sample.id AS sample_id,-->
+<!-- ins_sample.ins_order_id,-->
+<!-- ins_product.man_hour_group,-->
+<!-- GROUP_CONCAT( DISTINCT inspection_item SEPARATOR ',' ) AS ins_item,-->
+<!-- price-->
+<!-- FROM-->
+<!-- ins_product-->
+<!-- JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id-->
+<!-- WHERE-->
+<!-- ins_product.state = 1-->
+<!-- GROUP BY-->
+<!-- ins_sample.ins_order_id,-->
+<!-- ins_sample.id,-->
+<!-- ins_product.man_hour_group-->
+<!-- ) b-->
+<!-- GROUP BY-->
+<!-- ins_order_id-->
+<!-- ) total_product_counts ON io.id = total_product_counts.ins_order_id-->
+<!-- WHERE-->
+<!-- <if test="laboratory!=null and laboratory!=''">-->
+<!-- io.laboratory=#{laboratory} AND-->
+<!-- </if>-->
+<!-- io.create_time between #{startTime} and #{endTime}-->
+<!-- AND-->
+<!-- io.state NOT IN ( 0, 2, 3 )-->
+<!-- GROUP BY-->
+<!-- io.id,-->
+<!-- type-->
+<!-- ORDER BY-->
+<!-- type DESC,-->
+<!-- io.id DESC-->
+<!-- ) a-->
+
+
+
+ SELECT
+ A.entrust_code,
+ A.engineering,
+ date_format(A.create_time, '%Y-%m-%d') AS create_time,
+ A.sample as sample_name,
+ A.model as sample_model,
+ A.inspection_item as ins_item,
+ A.company,
+ A.`name` as custom,
+ A.production,
+ COUNT( 1 ) sample_num,
+ SUM( A.price ) total_price
+ FROM
+ (
+ SELECT
+ i.id,
+ i.engineering,
+ i.production,
+ i.laboratory,
+ i.entrust_code,
+ i.create_time,
+ isa.sample,
+ isa.sample_code,
+ isa.model,
+ c.price,
+ c.cost,
+ c.inspection_item,
+ i.company,
+ u.`name`,
+ i.create_user,
+ c.ins_sample_id
+ FROM
+ ins_order i
+ LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id
+ LEFT JOIN `user` u ON u.id = i.user_id
+ LEFT JOIN custom cus ON cus.id = u.company
+ LEFT JOIN (
+ SELECT
+ SUM( b.price ) price,
+ sum( b.man_hour ) cost,
+ b.ins_sample_id,
+ GROUP_CONCAT( b.inspection_item2 SEPARATOR ',' ) inspection_item
+ FROM
+ (
+ SELECT
+ ip.ins_sample_id,
+ ip.man_hour,
+ ip.man_hour_group,
+ case
+ WHEN LOCATE('[', spl.price)>0 THEN
+ REPLACE(JSON_EXTRACT(spl.price, REPLACE(JSON_SEARCH(spl.section, 'one', ip.section), '"', '')),'"','')
+ ELSE spl.price
+ END AS price ,
+ ip.inspection_item,
+ ip.inspection_item_subclass,
+ GROUP_CONCAT( CONCAT( ip.inspection_item, '@', ip.inspection_item_subclass ) SEPARATOR ',' ) inspection_item2
+ FROM
+ ins_product ip
+ LEFT JOIN standard_product_list spl ON ip.laboratory = spl.laboratory
+ AND ip.sample_type = spl.sample_type
+ AND ip.sample = spl.sample
+ AND ip.model = spl.model
+ AND ip.inspection_item = spl.inspection_item
+ AND ip.inspection_item_subclass = spl.inspection_item_subclass
+ AND ip.son_laboratory = spl.son_laboratory
+ AND ip.standard_method_list_id = spl.standard_method_list_id
+ WHERE
+ ip.state = 1
+ AND ip.create_time between #{startTime} and #{endTime}
+ AND ip.template_id IS NOT NULL
+ GROUP BY
+ ip.ins_sample_id,
+ ip.man_hour_group
+ ) b
+ GROUP BY
+ b.ins_sample_id
+ ) c ON c.ins_sample_id = isa.id
+ WHERE
+ ( i.state = 1 OR i.state = 3 OR i.state = 4 )
+ AND c.ins_sample_id IS NOT NULL
+ ) A
+ where A.entrust_code != '' AND A.entrust_code is not null
+ <if test="laboratory != '' and laboratory != null">
+ and A.laboratory = #{laboratory}
+ </if>
+ <if test="company != null and company != ''">
+ and A.company = #{company}
+ </if>
+ GROUP BY
+ A.entrust_code,
+ A.create_time,
+ A.sample,
+ A.model,
+ A.inspection_item,
+ A.company,
+ A.`name`
+ </select>
+ <select id="selectUnInsProducts" resultType="com.ruoyi.inspect.vo.UnInsProductsVO">
+ select
+ date_format(io.send_time,'%Y-%m-%d') as send_time,
+ io.entrust_code,
+ isa.sample,
+ group_concat(distinct isa.sample_code SEPARATOR '銆�') sample_code,
+ group_concat(distinct IF(ip.inspection_item_subclass!='' and ip.inspection_item_subclass is not null,ip.inspection_item_subclass,ip.inspection_item) SEPARATOR '銆�') un_ins_product
+ from ins_order io
+ left join ins_sample isa on io.id = isa.ins_order_id
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_order_state ios on io.id=ios.ins_order_id
+ <where>
+ <if test="laboratory!=null and laboratory!=''">
+ AND io.laboratory=#{laboratory}
+ </if>
+ <if test="dto.insState!=null and dto.insState!=''">
+ AND ios.ins_state=#{dto.insState}
+ </if>
+ <if test="dto.sonLaboratory!=null and dto.sonLaboratory!=''">
+ AND ip.son_laboratory=#{dto.sonLaboratory}
+ </if>
+ <if test="dto.sampleCode!=null and dto.sampleCode!=''">
+ AND isa.sample_code like concat('%',#{dto.sampleCode},'%')
+ </if>
+ <if test="dto.sample!=null and dto.sample!=''">
+ AND (isa.sample like concat('%',#{dto.sample},'%') or ip.sample_type like concat('%',#{dto.sample},'%'))
+ </if>
+ and io.send_time between #{startDateTime} and #{endDateTime}
+ AND io.state = 1
+ AND ip.state = 1
+ AND (ip.ins_result = 2 or ip.ins_result is null)
+ </where>
+ group by io.entrust_code
+ order by send_time desc
+ </select>
+
+
+ <select id="getTasksShow" resultType="com.ruoyi.inspect.dto.TasksShowDto">
+ SELECT
+ io.entrust_code,
+ iss.sample,
+ io.company,
+ DATE_FORMAT(io.send_time,'%Y/%m/%d') AS create_time,
+ CASE
+ WHEN ios.ins_state = 0 THEN '寰呮'
+ WHEN ios.ins_state = 1 THEN '鍦ㄦ'
+ ELSE '宸叉'
+ END AS state,
+ CASE
+ WHEN ios.ins_state = 3 THEN '寰呭鏍�'
+ WHEN ios.ins_state = 4 THEN '闇�澶嶆牳'
+ WHEN ios.ins_state = 5 THEN '宸插鏍�'
+ ELSE '-'
+ END AS ins_state,
+ CASE
+ -- WHEN ios.ins_state=5 and (ir.`code` IS NULL OR ir.`code` = '') THEN '寰呯敓鎴�'
+-- WHEN ir.`code` is not null THEN '宸茬敓鎴�'
+-- ELSE '-'
+ WHEN ir.state = 1 THEN '宸茬敓鎴�'
+ WHEN ir.state = 0 THEN '寰呯敓鎴�'
+ ELSE '-'
+ END `code`,
+ CASE
+ WHEN ir.is_examine = 1 THEN '閫氳繃'
+ WHEN ir.is_examine = 0 THEN '鏈�氳繃'
+ WHEN ir.is_examine = -9 THEN '寰呭鏍�'
+ ELSE '-'
+ END AS is_examine,
+ CASE
+ when ir.is_ratify = 1 THEN '宸叉壒鍑�'
+ when ir.is_ratify = 0 THEN '涓嶆壒鍑�'
+ WHEN ir.is_ratify = -9 THEN '寰呮壒鍑�'
+ ELSE '-'
+ END AS is_ratify,
+ GROUP_CONCAT( DISTINCT TRIM( u.`name` ) SEPARATOR '銆�' ) AS `name`,
+ CASE
+ WHEN io.type = 0 THEN '鏅��'
+ WHEN io.type = 1 THEN '浼樺厛'
+ WHEN io.type = 2 THEN '绱ф��'
+ END AS `type`
+ FROM
+ ins_order io
+ LEFT JOIN ins_order_state ios ON ios.ins_order_id = io.id
+ LEFT JOIN ins_sample iss ON io.id = iss.ins_order_id
+ LEFT JOIN ins_product ip ON ip.ins_sample_id = iss.id
+ LEFT JOIN ins_product_result ips ON ip.id = ips.ins_product_id
+ LEFT JOIN ins_report ir ON io.id = ir.ins_order_id
+ LEFT JOIN `user` u ON ips.update_user = u.id
+ WHERE
+ io.entrust_code IS NOT NULL
+ AND u.state = 1
+ AND io.state in (1,4)
+ AND IFNULL(ir.is_ratify,-1) != 1
+ AND ios.laboratory = #{sonLaboratory}
+ AND ip.son_laboratory = #{sonLaboratory}
+ GROUP BY
+ io.id
+ ORDER BY
+ CASE
+ WHEN iss.ins_state = 0 THEN 0 -- 寰呮
+ WHEN iss.ins_state = 1 THEN 1 -- 鍦ㄦ
+ ELSE 2 -- 宸叉
+ END,
+ io.type desc,
+ io.id desc
+ </select>
+ <select id="selectCurrentCompanyUrgentQuota" resultType="map">
+ select c.num as quota,c.company from user u left join custom c on u.company = c.id where u.id = #{userId}
+ </select>
+ <select id="selectPlanCountBySonLaboratory" resultType="java.lang.Integer">
+ select
+ count(io.id)
+ from ins_order io
+ left join ins_order_state ios on io.id = ios.ins_order_id
+ where
+ ios.laboratory = #{sonLaboratory}
+ and io.state in (1,4)
+ AND io.send_time between #{startOfMonth} and #{endOfMonth}
+ </select>
+ <select id="getInsOrderTemList" resultType="com.ruoyi.inspect.vo.ExportInsProductVO">
+ SELECT
+ i.create_time,
+ i.custom AS custom_name,
+ i.id,
+ i.entrust_code,
+ isa.id ins_sample_id,
+ isa.sample_code,
+ isa.sample,
+ isa.model,
+ isa.ins_state,
+ ip.id ins_product_id,
+ ip.state,
+ ip.unit,
+ ip.sample_type,
+ ip.inspection_item,
+ ip.inspection_item_subclass,
+ ip.son_laboratory,
+ ip.inspection_item_type,
+ ip.inspection_value_type,
+ ip.special_item_parent_id,
+ ip.tell,
+ ip.`last_value`,
+ case
+ WHEN ip.ins_result = 0 THEN '涓嶅悎鏍�'
+ WHEN ip.ins_result = 1 THEN '鍚堟牸'
+ WHEN ip.ins_result = 3 THEN '涓嶅垽瀹�'
+ ELSE ''
+ END AS ins_result,
+ ipr.equip_value,
+ ipr.com_value,
+ ip.inspection_item_class,
+ ifis.CODE,
+ ipr.ins_value,
+ ipr.create_time AS check_time,
+ u.NAME AS check_name,
+ CASE
+ WHEN ifi.bush_color IS NOT NULL THEN
+ ifi.bush_color
+ WHEN ib1.color IS NOT NULL THEN
+ ib1.color
+ WHEN ib2.color IS NOT NULL THEN
+ ib2.color ELSE ''
+ END AS bush_color,
+ i.send_time As sendTime,
+ ifi.color
+ FROM
+ ins_sample isa
+ LEFT JOIN ins_order i ON isa.ins_order_id = i.id
+ LEFT JOIN ins_product ip ON isa.id = ip.ins_sample_id
+ LEFT JOIN ins_product_result ipr ON ip.id = ipr.ins_product_id
+ LEFT JOIN ins_fiber ifi ON ip.ins_fiber_id = ifi.id
+ LEFT JOIN ins_fibers ifis ON ip.ins_fibers_id = ifis.id
+ LEFT JOIN ins_bushing ib1 ON ip.ins_bush_id = ib1.id
+ LEFT JOIN ins_bushing ib2 ON ib2.id = ifis.ins_bushing_id
+ LEFT JOIN USER u ON u.id = ipr.create_user
+ WHERE
+ ip.state = 1 AND
+ (i.state = 4 or i.state = 1)
+ AND ip.special_item_parent_id IS NOT NULL
+ AND ip.son_laboratory = '鍏夌氦璇曢獙瀹�'
+ <if test="entrustCode != null and entrustCode != ''">
+ AND i.entrust_code like concat('%',#{entrustCode},'%')
+ </if>
+ <if test="sampleCode != null and sampleCode != ''">
+ AND isa.sample_code like concat('%',#{sampleCode},'%')
+ </if>
+ <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
+ AND i.ins_time between #{startTime} and #{endTime}
+ </if>
+ <if test="checkName != '' and checkName != null">
+ AND u.name = #{checkName}
+ </if>
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml
new file mode 100644
index 0000000..6593006
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml
@@ -0,0 +1,23 @@
+<?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.inspect.mapper.InsOrderStateMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsOrderState">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,ins_order_id,laboratory,
+ ins_state,create_user,create_time,
+ update_user,update_time
+ </sql>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsOrderTemplateMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderTemplateMapper.xml
new file mode 100644
index 0000000..eac788a
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsOrderTemplateMapper.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.inspect.mapper.InsOrderTemplateMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsOrderTemplate">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="thing" column="thing" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,name,thing,
+ create_user,update_user,create_time,
+ update_time
+ </sql>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsProductMapper.xml b/inspect-server/src/main/resources/mapper/InsProductMapper.xml
new file mode 100644
index 0000000..528c007
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsProductMapper.xml
@@ -0,0 +1,210 @@
+<?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.inspect.mapper.InsProductMapper">
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsProduct">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
+ <result property="inspectionItemClassify" column="inspection_item_classify" jdbcType="VARCHAR"/>
+ <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="sonLaboratory" column="son_laboratory" jdbcType="VARCHAR"/>
+ <result property="unit" column="unit" jdbcType="VARCHAR"/>
+ <result property="price" column="price" jdbcType="DECIMAL"/>
+ <result property="manHour" column="man_hour" jdbcType="DOUBLE"/>
+ <result property="manHourGroup" column="man_hour_group" jdbcType="VARCHAR"/>
+ <result property="inspectionItemType" column="inspection_item_type" jdbcType="VARCHAR"/>
+ <result property="inspectionValueType" column="inspection_value_type" jdbcType="VARCHAR"/>
+ <result property="deviceGroup" column="device_group" jdbcType="VARCHAR"/>
+ <result property="checkoutNumber" column="checkout_number" jdbcType="INTEGER"/>
+ <result property="section" column="section" jdbcType="VARCHAR"/>
+ <result property="valueType" column="value_type" jdbcType="VARCHAR"/>
+ <result property="method" column="method" jdbcType="VARCHAR"/>
+ <result property="manDay" column="man_day" jdbcType="INTEGER"/>
+ <result property="bsm" column="bsm" jdbcType="VARCHAR"/>
+ <result property="ask" column="ask" jdbcType="VARCHAR"/>
+ <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="templateId" column="template_id" jdbcType="INTEGER"/>
+ </resultMap>
+ <update id="updateInspected">
+ UPDATE ins_product p
+ SET p.state=0
+ WHERE EXISTS(
+ SELECT 1
+ FROM ins_sample s
+ WHERE s.ins_order_id IN (
+ SELECT o.id
+ FROM ins_order o
+ WHERE o.id = #{id}
+ )
+ AND p.ins_sample_id = s.id
+ AND p.state = 1
+ AND p.ins_result IS NULL
+ );
+ </update>
+
+ <select id="selectOrderManDay" resultType="java.lang.Integer">
+ select coalesce(max(ip.man_day), 0)
+ from ins_order io
+ left join ins_sample isa on io.id = isa.ins_order_id
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ where io.id = #{orderId}
+ </select>
+ <select id="selectUserById" resultType="java.util.Map">
+ select name, company, phone, address, name_en
+ from user
+ where id = #{userId}
+ </select>
+ <select id="getProductAndResult" resultType="com.ruoyi.inspect.dto.ProductResultDto2">
+ select ip.id,
+ ip.inspection_item,
+ ip.inspection_item_subclass,
+ ip.laboratory,
+ ip.unit,
+ ipr.equip_name equipValue,
+ io.entrust_code,
+ ipr.update_time,
+ ip.ins_result,
+ u.name updateUserName
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ left join ins_sample isa on isa.id = ip.ins_sample_id
+ left join ins_order io on io.id = isa.ins_order_id
+ left join user u on u.id = ipr.update_user
+ where ip.ins_sample_id = #{sampleId}
+ and ip.ins_result is not null
+ and template_id is not null
+ </select>
+ <select id="selectFiberInsProduct" resultType="com.ruoyi.inspect.pojo.InsProduct">
+ select * from ins_product
+ where state = 1
+ and (ins_fibers_id is not null or ins_fiber_id is not null)
+ and ins_result is null
+ and son_laboratory = #{laboratory}
+ and ins_sample_id in
+ <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </select>
+ <select id="selectNoProducts" resultType="com.ruoyi.inspect.pojo.InsProduct">
+ select *
+ from (select ip.*, sample_code
+ from ins_product ip
+ left join ins_sample is2 on ip.ins_sample_id = is2.id
+ where ip.ins_result is null
+ and state = 1
+ and is2.ins_order_id = #{orderId}) A
+ </select>
+ <select id="selectInsProductCountByOrderId" resultType="java.lang.Integer">
+ select COUNT(1)
+ from ins_product ip
+ left join ins_sample isa on ip.ins_sample_id = isa.id
+ left join ins_order io on isa.ins_order_id = io.id
+ where io.id = #{orderId}
+ and (ip.ins_result is null or ip.ins_result = 2)
+ and ip.state = 1
+ </select>
+ <select id="findSagTemperatureProducts" resultType="com.ruoyi.inspect.pojo.InsProduct">
+ select
+ *
+ from ins_product
+ where
+ ins_sample_id = #{sampleId}
+ and
+ inspection_item = '寮у瀭-娓╁害'
+ and
+ special_item_parent_id is not null
+ and
+ state = 1
+ </select>
+ <select id="selectProductByOrderId" resultType="com.ruoyi.inspect.vo.InsProductVO">
+ select
+ ip.id,
+ isa.id as sample_id,
+ isa.sample_code,
+ isa.model,
+ ip.inspection_item as test_item,
+ ip.inspection_item_subclass as test_item_children,
+ ip.method_s as test_method,
+ ip.tell as requirement,
+ u.name as inspect_name
+ from
+ ins_order io
+ left join
+ ins_sample isa
+ on
+ io.id = isa.ins_order_id
+ left join
+ ins_product ip
+ on
+ isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ left join user u on ipr.create_user = u.id
+ <if test="orderId!=null and orderId!=''">
+ <where>
+ io.id = #{orderId}
+ <if test="sonLaboratory!='' and sonLaboratory!=null">
+ AND ip.son_laboratory=#{sonLaboratory}
+ </if>
+ </where>
+ </if>
+ </select>
+ <select id="selectInsProductInsFiberList" resultType="com.ruoyi.inspect.vo.InsProductFiberVO">
+ select ip.*,ifi.bush_color,ifi.color from ins_product ip
+ left join ins_fiber ifi on ip.ins_fiber_id = ifi.id
+ where ip.state=1
+ AND ip.ins_fiber_id is not null
+ AND (ip.inspection_item_class is null or ip.inspection_item_class='')
+ AND ip.ins_sample_id=#{sampleId}
+ </select>
+ <select id="selectInsProductInsBushList" resultType="com.ruoyi.inspect.vo.InsProductFiberVO">
+ select ip.*,
+ ib.color as bush_color,
+ '/' as color
+ from ins_product ip
+ left join ins_bushing ib on ip.ins_bush_id = ib.id
+ where ip.state=1
+ AND ip.ins_bush_id is not null
+ AND (ip.inspection_item_class is null or ip.inspection_item_class='')
+ AND ip.ins_sample_id=#{sampleId}
+ </select>
+ <select id="selectInsProductInsFibersList" resultType="com.ruoyi.inspect.vo.InsProductFiberVO">
+ select ip.*,
+ ips.ins_value,
+ ib.color as bush_color,
+ ifs.code
+ from ins_product ip
+ inner join ins_product_result ips on ip.id = ips.ins_product_id
+ left join ins_fibers ifs on ip.ins_fibers_id = ifs.id
+ left join ins_bushing ib on ifs.ins_bushing_id = ib.id
+ where ip.state=1
+ AND ip.ins_fibers_id is not null
+ AND (ip.inspection_item_class is null or ip.inspection_item_class='')
+ AND ip.ins_sample_id=#{sampleId}
+ </select>
+ <select id="selectProductBySampleId" resultType="com.ruoyi.inspect.vo.InsProductFiberVO">
+ select ip.*,
+ ips.ins_value,
+ ib.color as bush_color,
+ ifs.code
+ from ins_product ip
+ inner join ins_product_result ips on ip.id = ips.ins_product_id
+ left join ins_fibers ifs on ip.ins_fibers_id = ifs.id
+ left join ins_bushing ib on ifs.ins_bushing_id = ib.id
+ where ip.state=1
+ AND (ip.inspection_item_class is null or ip.inspection_item_class='')
+ AND ip.ins_sample_id=#{sampleId}
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml b/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml
new file mode 100644
index 0000000..5c01e4d
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml
@@ -0,0 +1,31 @@
+<?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.inspect.mapper.InsProductResultMapper">
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsProductResult">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insProductId" column="ins_product_id" jdbcType="INTEGER"/>
+ <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
+ <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
+ <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <select id="selDetail" resultMap="BaseResultMap">
+ select *
+ from ins_product_result
+ where 1=1
+ <!--and ins_product_id in (#{ips})-->
+ <if test="ips != null and ips.size > 0">
+ <!-- 浣跨敤foreach鍏冪礌鏋勫缓IN瀛愬彞 -->
+ and ins_product_id in
+ <foreach item="item" collection="ips" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsProductUserMapper.xml b/inspect-server/src/main/resources/mapper/InsProductUserMapper.xml
new file mode 100644
index 0000000..dc735d3
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsProductUserMapper.xml
@@ -0,0 +1,18 @@
+<?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.inspect.mapper.InsProductUserMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsProductUser">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="VARCHAR"/>
+ <result property="insProductId" column="ins_product_id" jdbcType="INTEGER"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,create_user,create_time,
+ ins_product_id
+ </sql>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsReportApproveConfigMapper.xml b/inspect-server/src/main/resources/mapper/InsReportApproveConfigMapper.xml
new file mode 100644
index 0000000..3f35e5b
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsReportApproveConfigMapper.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.inspect.mapper.InsReportApproveConfigMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsReportApproveConfig">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="editor" column="editor" jdbcType="INTEGER"/>
+ <result property="examiner" column="examiner" jdbcType="INTEGER"/>
+ <result property="approver" column="approver" jdbcType="INTEGER"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,editor,examiner,
+ approver,laboratory
+ </sql>
+ <select id="selectApprovalConfigByLaboratory" resultType="java.util.Map">
+ select
+ u1.signature_url as writeUrl,
+ u2.signature_url as examineUrl,
+ u3.signature_url as ratifyUrl,
+ u1.id as writeId,
+ u2.id as examineId,
+ u3.id as ratifyId
+ from
+ ins_report_approve_config irac
+ left join user u1 on irac.editor=u1.id
+ left join user u2 on irac.examiner=u2.id
+ left join user u3 on irac.approver=u3.id
+ where irac.laboratory = #{laboratory}
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsReportMapper.xml b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
new file mode 100644
index 0000000..d55d74d
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -0,0 +1,88 @@
+<?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.inspect.mapper.InsReportMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsReport">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="url" column="url" jdbcType="VARCHAR"/>
+ <result property="urlS" column="url_s" jdbcType="VARCHAR"/>
+ <result property="isRatify" column="is_ratify" jdbcType="INTEGER"/>
+ <result property="isExamine" column="is_examine" jdbcType="INTEGER"/>
+ <result property="ratifyUserId" column="ratify_user_id" jdbcType="INTEGER"/>
+ <result property="examineUserId" column="examine_user_id" jdbcType="INTEGER"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <select id="pageInsReport" resultType="com.ruoyi.inspect.dto.ReportPageDto">
+ select *
+ from (
+ select
+ ir.*,
+ io.entrust_code,
+ u.name write_user_name,
+ u1.name ratify_user,
+ u2.name examine_user,
+ io.laboratory,
+ CASE
+ WHEN (ir.url_s is null or ir.url_s='') and ir.is_ratify=-9 THEN 0
+ ELSE 1
+ END AS is_upload
+ from ins_report ir
+ left join ins_order io on io.id = ir.ins_order_id
+ left join user u on u.id = ir.write_user_id
+ left join user u1 on u1.id = ir.ratify_user_id
+ left join user u2 on u2.id = ir.examine_user_id
+ where 1=1
+ <if test="laboratory!=null and laboratory!=''">
+ and laboratory=#{laboratory}
+ </if>
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+ <select id="getLaboratoryByName" resultType="java.lang.String">
+ select s.address from seal s
+ left join laboratory l on s.lab_id = l.id
+ where l.laboratory_name = #{name}
+ and s.type = '鎶ュ憡绫诲瀷'
+ order by s.create_time desc
+ limit 1
+ </select>
+ <select id="findReportCountInfo" resultType="com.ruoyi.inspect.dto.ReportPageDto">
+ select
+ *
+ from (
+ select
+ ir.*,
+ io.entrust_code,
+ u.name write_user_name,
+ u1.name ratify_user,
+ u2.name examine_user,
+ io.laboratory,
+ CASE
+ WHEN ir.url_s is null or ir.url_s='' THEN 0
+ ELSE 1
+ END AS is_upload
+ from ins_report ir
+ left join ins_order io on io.id = ir.ins_order_id
+ left join user u on u.id = ir.write_user_id
+ left join user u1 on u1.id = ir.ratify_user_id
+ left join user u2 on u2.id = ir.examine_user_id
+ where 1=1
+ AND (${queryField} = -9 or ${queryField} is null)
+ <if test="laboratory!=null and laboratory!=''">
+ and laboratory=#{laboratory}
+ </if>
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
new file mode 100644
index 0000000..52b6c5b
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -0,0 +1,892 @@
+<?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.inspect.mapper.InsSampleMapper">
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsSample">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+ <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+ <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="isPairing" column="is_pairing" jdbcType="CHAR"/>
+ </resultMap>
+
+ <select id="findInsSampleAndOrder" resultType="com.ruoyi.inspect.vo.InsOrderPlanVO">
+ SELECT
+ a.appointed,
+ a.checkName,
+ a.company,
+ a.entrust_code,
+ a.id,
+ a.ins_time,
+ a.model,
+ a.sample,
+ a.send_time,
+ a.son_laboratory,
+ a.type,
+ a.userName,
+ a.ins_state,
+ a.verify_tell,
+ a.verify_user,
+ a.sample_type,
+ a.laboratory,
+ a.sample_code
+ FROM
+ (
+ SELECT
+ io.id,
+ io.entrust_code,
+ io.company,
+ io.type,
+ io.appointed,
+ io.send_time,
+ group_concat(distinct isa.sample,' ') sample,
+ group_concat(distinct ip.model SEPARATOR ',') model,
+ userName,
+ checkName,
+ ip.son_laboratory,
+ ios.ins_time,
+ ios.ins_state,
+ ios.verify_tell,
+ ios.verify_user,
+ isa.sample_code,
+ io.laboratory,
+ io.sample_type
+ FROM
+ ins_order io
+ LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
+ LEFT JOIN (
+ SELECT ins_sample_id,
+ GROUP_CONCAT(DISTINCT CASE WHEN u.state = 0 THEN uu.name END SEPARATOR
+ ',') AS userName,
+ GROUP_CONCAT(DISTINCT CASE WHEN u.state = 1 THEN uu.name END SEPARATOR
+ ',') AS checkName
+ FROM ins_sample_user u
+ LEFT JOIN user uu ON u.user_id = uu.id
+ WHERE u.son_laboratory=#{sonLaboratory}
+ GROUP BY ins_sample_id
+ ) isu ON isu.ins_sample_id = io.id
+ LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id AND ip.son_laboratory = #{sonLaboratory}
+ LEFT JOIN ins_order_state ios ON ios.ins_order_id = io.id AND ios.laboratory = #{sonLaboratory}
+ left join ins_report ir on ir.ins_order_id = io.id
+ WHERE
+ io.state in (1,4)
+ and send_time is not null
+ and COALESCE(ir.is_ratify, 0) != 1
+ AND ios.ins_state is not null
+ <if test="insState!=null and insState!=''">
+ AND ios.ins_state = #{insState}
+ </if>
+ <if test="laboratory!=null and laboratory!=''">
+ AND ip.laboratory=#{laboratory}
+ </if>
+ <if test="entrustCode!=null and entrustCode!=''">
+ AND io.entrust_code LIKE concat('%',#{entrustCode},'%')
+ </if>
+ <if test="sampleCode!=null and sampleCode!=''">
+ AND isa.sample_code LIKE concat('%',#{sampleCode},'%')
+ </if>
+ <if test="sample!=null and sample!=''">
+ AND (ip.sample_type LIKE concat('%',#{sample},'%') OR ip.sample LIKE concat('%',#{sample},'%'))
+ </if>
+ <if test="userName !=null and userName!=''">
+ and ( (userName like CONCAT ('%', #{userName},'%') )
+ or (checkName like CONCAT ('%', #{userName},'%') ) )
+ </if>
+ <if test="checkName != null and checkName != ''">
+ and checkName like CONCAT ('%', #{checkName},'%')
+ </if>
+ <if test="sendTimeRange!=null and sendTimeRange.size()>1">
+ AND io.send_time BETWEEN #{sendTimeRange[0]} AND #{sendTimeRange[1]}
+ </if>
+ and ip.son_laboratory=#{sonLaboratory}
+ GROUP BY
+ ip.son_laboratory,
+ io.id
+ ORDER BY
+ io.type DESC,
+ io.id
+ ) a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="inspectionOrderDetailsTaskSwitching" resultType="com.ruoyi.inspect.vo.InsOrderPlanTaskSwitchVo">
+ select * from(
+ SELECT
+ a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,verify_user
+ FROM
+ (
+ SELECT
+ io.id,
+ io.entrust_code,
+ io.type,
+ io.appointed,
+ io.send_time,
+ group_concat(distinct isa.sample,' ') sampleType,
+ isu.user_id,
+ user.name userName,
+ ip.son_laboratory,
+ io.ins_time,
+ io.laboratory
+ FROM
+ ins_order io
+ LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
+ LEFT JOIN (
+ SELECT *
+ FROM ins_sample_user u
+ WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN (
+ SELECT ins_sample_id, MAX(id)
+ FROM ins_sample_user
+ WHERE son_laboratory=#{sonLaboratory}
+ GROUP BY ins_sample_id
+ )
+ ORDER BY ins_sample_id, id
+ ) isu ON isu.ins_sample_id = io.id
+ LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
+ LEFT JOIN user ON isu.user_id = user.id
+ WHERE
+ io.state = 1
+ and send_time is not null
+ <if test="userId !=null and userId!=''">
+ and (isu.user_id = #{userId} OR isu.user_id is NULL )
+ </if>
+ OR isu.user_id is NULL
+ GROUP BY
+ ip.son_laboratory,
+ io.id
+ ) a
+ LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
+ left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM
+ ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id
+ <if test="userId !=null and userId!=''">
+ and user_id = #{userId} OR user_id is NULL
+ </if>
+ OR user_id is NULL
+ ) isu2 on
+ isu2.ins_sample_id = a.id
+ where ins_state is not null
+ <if test="laboratory != null and laboratory != ''">
+ and a.laboratory=#{laboratory}
+ </if>
+ ORDER BY
+ <!--a.user_id DESC,-->
+ a.type DESC,
+ a.id
+ ) b
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+
+ <select id="selectSampleProductListByOrderId" resultMap="sampleDto">
+ select isa.*,
+ ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ ip.ins_bush_id,
+ ip.ins_fiber_id,
+ ip.ins_fibers_id,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ tell,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.id ipr_id,
+ ipr.com_value,
+ ipr.equip_value,
+ ip.method_s,
+ elasticity_modulus
+ from ins_sample isa
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_order_id = #{id}
+ and state = 1
+ and ip.special_item_parent_id is null
+ -- and ins_fiber_id is null
+ -- and ins_fibers_id is null
+ and <!--isa.sample_code NOT REGEXP '/'-->
+ isa.id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id =
+ ip.ins_sample_id where ip.id is not null)s )
+ order by case when man_hour_group is NULL then 1
+ when man_hour_group ='' then 1 else 0 end,
+ CASE
+ WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴�
+ WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒�
+ ,id asc
+ </select>
+ <select id="getInsOrderAndSample" resultMap="sampleDto">
+ select isa.*,
+ ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.id ipr_id,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic,
+ ip.temperature,
+ ip.humidity,
+ elasticity_modulus
+ from ins_sample isa
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_order_id = #{id}
+ and state = 1
+ and ip.son_laboratory = #{laboratory}
+ </select>
+ <select id="getSampleEn" resultType="java.lang.String">
+ select name_en
+ from product
+ where name = #{sample}
+ limit 1
+ </select>
+ <select id="selectSampleProductListByOrderId2" resultMap="sampleDto">
+ select isa.*,
+ ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ tell,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.id ipr_id,
+ ipr.com_value,
+ ipr.equip_value,
+ ip.method_s,
+ elasticity_modulus,
+ ip.ins_fiber_id,
+ ip.ins_fibers_id
+ from ins_sample isa
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_order_id = #{id}
+ and ip.standard_method_list_id is not null
+ and state = 1
+ order by case
+ when man_hour_group is NULL then 1
+ when man_hour_group = '' then 1
+ end,
+ CASE
+ WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴�
+ WHEN man_hour_group REGEXP '[0-9]+'
+ THEN CAST(SUBSTRING(man_hour_group, 2) AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒�
+ , id asc
+ </select>
+
+ <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3">
+ select isa.id,
+ sample_code,
+ isa.sample,
+ entrust_code,
+ is_leave,
+ isa.model,
+ isa.ins_state,
+ ip.id ip_id,
+ inspection_item,
+ inspection_item_subclass,
+ io.sample_type io_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ ip.state,
+ ins_sample_id
+ from ins_sample isa
+ left join ins_product ip on isa.id = ip.ins_sample_id
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ left join ins_order io on io.id = ins_order_id
+ where ip.state = 1
+ and ins_order_id in
+ <foreach collection="ids" open="(" close=")" item="id" separator=",">
+ #{id}
+ </foreach>
+ order by case when man_hour_group is NULL then 1
+ when man_hour_group ='' then 1 else 0 end,
+ CASE
+ WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴�
+ WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒�
+ ,id asc
+ </select>
+
+ <select id="getInsProduct1" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ elasticity_modulus,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.id ipr_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_sample_id = #{id}
+ and state = 1
+ and ip.son_laboratory = #{laboratory}
+ <if test="laboratory!='鏉愭枡璇曢獙瀹�'">
+ and ins_fiber_id is null
+ </if>
+ and ins_fibers_id is null
+ and standard_method_list_id is not null
+ </select>
+ <select id="getInsProduct5" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ elasticity_modulus,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.id ipr_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_sample_id = #{id}
+ and state = 1
+ and ip.son_laboratory = #{laboratory}
+ and standard_method_list_id is not null
+ </select>
+ <select id="getInsProduct2" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_fibers_id = #{id}
+ and ip.son_laboratory = #{sonLaboratory}
+ and state = 1
+ and ins_fiber_id is null
+ and standard_method_list_id is not null
+ </select>
+ <select id="getInsProduct3" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_fiber_id = #{id}
+ and ip.son_laboratory = #{sonLaboratory}
+ and state = 1
+ and ins_fibers_id is null
+ and standard_method_list_id is not null
+ </select>
+
+ <select id="getInsProduct6" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_fibers_id = #{id}
+ and ip.son_laboratory = #{sonLaboratory}
+ and state = 1
+ and ins_fiber_id is null
+ and standard_method_list_id is not null
+ </select>
+
+ <select id="getInsProduct4" resultMap="product">
+ select ip.id ip_id,
+ inspection_item,
+ inspection_item_en,
+ inspection_item_class,
+ inspection_item_class_en,
+ inspection_item_subclass,
+ inspection_item_subclass_en,
+ ip.factory ip_factory,
+ ip.laboratory ip_laboratory,
+ ip.sample_type ip_sample_type,
+ ip.sample ip_sample,
+ ip.model ip_model,
+ ip.ins_bush_id,
+ son_laboratory,
+ ip.unit ip_unit,
+ price,
+ man_hour,
+ man_hour_group,
+ inspection_item_type,
+ inspection_value_type,
+ device_group,
+ checkout_number,
+ section,
+ value_type,
+ method,
+ man_day,
+ bsm,
+ ask,
+ `last_value`,
+ ip.ins_result ip_ins_result,
+ state,
+ ins_sample_id,
+ ip.create_user ip_create_user,
+ ip.update_user ip_update_user,
+ ip.create_time ip_create_time,
+ ip.update_time ip_update_time,
+ template_id,
+ ipr.ins_value,
+ ipr.com_value,
+ ipr.equip_value,
+ ipr.equip_name,
+ ip.method_s,
+ ip.tell,
+ ip.dic
+ from ins_product ip
+ left join ins_product_result ipr on ip.id = ipr.ins_product_id
+ where ins_bush_id = #{id}
+ and ip.son_laboratory = #{sonLaboratory}
+ and state = 1
+ and ins_fibers_id is null
+ and standard_method_list_id is not null
+ </select>
+ <select id="getReportModel" resultType="java.util.Map">
+ </select>
+
+ <resultMap id="sampleDto" type="com.ruoyi.inspect.dto.SampleProductDto">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+ <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+ <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="standardMethodListId" column="standard_method_list_id"/>
+ <result property="unit" column="unit"/>
+ <collection property="insProduct" resultMap="product"/>
+ </resultMap>
+
+ <resultMap id="product" type="com.ruoyi.inspect.pojo.InsProduct">
+ <id property="id" column="ip_id" jdbcType="INTEGER"/>
+ <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
+ <result property="inspectionItemEn" column="inspection_item_en" jdbcType="VARCHAR"/>
+ <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
+ <result property="inspectionItemSubclassEn" column="inspection_item_subclass_en" jdbcType="VARCHAR"/>
+ <result property="inspectionItemClass" column="inspection_item_class" jdbcType="VARCHAR"/>
+ <result property="inspectionItemClassEn" column="inspection_item_class_en" jdbcType="VARCHAR"/>
+ <result property="factory" column="ip_factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="ip_laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="ip_sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="ip_sample" jdbcType="VARCHAR"/>
+ <result property="model" column="ip_model" jdbcType="VARCHAR"/>
+ <result property="sonLaboratory" column="son_laboratory" jdbcType="VARCHAR"/>
+ <result property="unit" column="ip_unit" jdbcType="VARCHAR"/>
+ <result property="price" column="price" jdbcType="DECIMAL"/>
+ <result property="manHour" column="man_hour" jdbcType="DOUBLE"/>
+ <result property="manHourGroup" column="man_hour_group" jdbcType="VARCHAR"/>
+ <result property="inspectionItemType" column="inspection_item_type" jdbcType="VARCHAR"/>
+ <result property="inspectionValueType" column="inspection_value_type" jdbcType="VARCHAR"/>
+ <result property="deviceGroup" column="device_group" jdbcType="VARCHAR"/>
+ <result property="checkoutNumber" column="checkout_number" jdbcType="INTEGER"/>
+ <result property="section" column="section" jdbcType="VARCHAR"/>
+ <result property="valueType" column="value_type" jdbcType="VARCHAR"/>
+ <result property="method" column="method" jdbcType="VARCHAR"/>
+ <result property="manDay" column="man_day" jdbcType="INTEGER"/>
+ <result property="bsm" column="bsm" jdbcType="VARCHAR"/>
+ <result property="ask" column="ask" jdbcType="VARCHAR"/>
+ <result property="tell" column="tell" jdbcType="VARCHAR"/>
+ <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
+ <result property="insResult" column="ip_ins_result" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="insBushId" column="ins_bush_id" jdbcType="INTEGER"/>
+ <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
+ <result property="createUser" column="ip_create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="ip_update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="ip_create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="ip_update_time" jdbcType="TIMESTAMP"/>
+ <result property="templateId" column="template_id" jdbcType="INTEGER"/>
+ <result property="methodS" column="method_s"/>
+ <result property="tell" column="tell"/>
+ <result property="dic" column="dic"/>
+ <result property="temperature" column="temperature"/>
+ <result property="humidity" column="humidity"/>
+ <result property="elasticityModulus" column="elasticity_modulus"/>
+ <result property="insFiberId" column="ins_fiber_id"/>
+ <result property="insFibersId" column="ins_fibers_id"/>
+ <collection property="insProductResult" resultMap="insProductResult"/>
+ </resultMap>
+
+ <resultMap id="sampleDto3" type="com.ruoyi.inspect.dto.SampleProductDto3">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+ <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+ <result property="ioSampleType" column="io_sample_type" jdbcType="VARCHAR"/>
+ <result property="code" column="entrust_code" jdbcType="VARCHAR"/>
+ <result property="isLeave" column="is_leave" jdbcType="VARCHAR"/>
+ <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="standardMethodListId" column="standard_method_list_id"/>
+ <result property="unit" column="unit"/>
+ <collection property="insProduct" resultMap="product"/>
+ </resultMap>
+
+ <resultMap id="insProductResult" type="com.ruoyi.inspect.pojo.InsProductResult">
+ <id property="id" column="ipr_id" jdbcType="INTEGER"/>
+ <result property="insValue" column="ins_value" jdbcType="VARCHAR"/>
+ <result property="comValue" column="com_value" jdbcType="VARCHAR"/>
+ <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/>
+ <result property="equipName" column="equip_name" jdbcType="VARBINARY"/>
+ </resultMap>
+
+ <resultMap id="sampleVo" type="com.ruoyi.inspect.vo.SampleVo">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+ <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+ <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="standardMethodListId" column="standard_method_list_id"/>
+ <result property="methodName" column="methodName" jdbcType="VARCHAR"/>
+ <result property="unit" column="unit"/>
+ </resultMap>
+
+ <select id="getDetailById" resultMap="sampleVo">
+ select is2.*,
+ code methodName
+ from ins_sample is2
+ inner join standard_method sm on standard_method_list_id = sm.id
+ where is2.id = #{sampleId}
+ </select>
+
+ <select id="selMethodById" resultType="java.lang.String">
+ select code
+ from standard_method
+ where id = (select standard_method_list_id from ins_sample where id = #{sampleId})
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsSampleUserMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleUserMapper.xml
new file mode 100644
index 0000000..b60f776
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsSampleUserMapper.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.inspect.mapper.InsSampleUserMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsSampleUser">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
+ <result property="userId" column="user_id" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ id,ins_sample_id,user_id,
+ state,create_user,create_time
+ </sql>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml b/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml
new file mode 100644
index 0000000..a08d17a
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/InsUnPassMapper.xml
@@ -0,0 +1,28 @@
+<?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.inspect.mapper.InsUnPassMapper">
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.InsUnPass">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="inspectionItem" column="inspection_item" jdbcType="VARCHAR"/>
+ <result property="inspectionItemSubclass" column="inspection_item_subclass" jdbcType="VARCHAR"/>
+ <result property="lastValue" column="last_value" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="handleSuggestion" column="handle_suggestion" jdbcType="VARCHAR"/>
+ <result property="entrustCode" column="entrust_code" jdbcType="VARCHAR"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </resultMap>
+ <select id="pageInsUnPass" resultType="com.ruoyi.inspect.dto.UnPassPageDto">
+ SELECT * FROM
+ ins_un_pass iu
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/inspect-server/src/main/resources/mapper/SampleOrderMapper.xml b/inspect-server/src/main/resources/mapper/SampleOrderMapper.xml
new file mode 100644
index 0000000..8c5c532
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/SampleOrderMapper.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.inspect.mapper.SampleOrderMapper">
+ <resultMap id="map" type="com.ruoyi.inspect.dto.SampleOrderDto">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insResult" column="ins_result" jdbcType="INTEGER"/>
+ <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
+ <result property="joinModel" column="join_model" jdbcType="VARCHAR"/>
+ <result property="joinName" column="join_name" jdbcType="VARCHAR"/>
+ <result property="sampleCode" column="sample_code" jdbcType="VARCHAR"/>
+ <result property="factory" column="factory" jdbcType="VARCHAR"/>
+ <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
+ <result property="sampleType" column="sample_type" jdbcType="VARCHAR"/>
+ <result property="sample" column="sample" jdbcType="VARCHAR"/>
+ <result property="model" column="model" jdbcType="VARCHAR"/>
+ <result property="isLeave" column="is_leave" jdbcType="INTEGER"/>
+ <result property="leaveNum" column="leave_num" jdbcType="INTEGER"/>
+ <result property="insProgress" column="ins_progress" jdbcType="VARCHAR"/>
+ <result property="insState" column="ins_state" jdbcType="INTEGER"/>
+ <result property="sendTime" column="send_time" jdbcType="TIMESTAMP"/>
+ <result property="joinNum" column="join_num" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="appointed" column="appointed" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <association property="insOrderList" javaType="com.ruoyi.inspect.pojo.InsOrder">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="entrustCode" column="entrust_code" jdbcType="VARCHAR"/>
+ <result property="custom" column="custom" jdbcType="VARCHAR"/>
+ <result property="company" column="company" jdbcType="VARCHAR"/>
+ <result property="code" column="code" jdbcType="VARCHAR"/>
+ <result property="type" column="type" jdbcType="INTEGER"/>
+ <result property="appointed" column="appointed" jdbcType="TIMESTAMP"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="remark" column="remark" jdbcType="VARCHAR"/>
+ <result property="otcCode" column="otc_code" jdbcType="VARCHAR"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ </association>
+ </resultMap>
+ <select id="selectSampleOrderList" resultMap="map">
+ select * from(
+ select s.id,
+ s.join_name,
+ o.create_user,
+ o.create_time,
+ o.update_user,
+ o.update_time
+ from ins_sample s
+ left join ins_order o on s.ins_order_id = o.id
+ )a
+ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
+ ${ew.customSqlSegment}
+ </if>
+ </select>
+</mapper>
\ No newline at end of file
diff --git a/inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml
new file mode 100644
index 0000000..0b7a808
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/WarehouseCellMapper.xml
@@ -0,0 +1,40 @@
+<?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.inspect.mapper.WarehouseCellMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.WarehouseCell">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="row" column="row" jdbcType="INTEGER"/>
+ <result property="col" column="col" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="shelfId" column="shelf_id" jdbcType="INTEGER"/>
+ </resultMap>
+
+ <select id="getWarehouse" resultMap="WarehouseCellAndHistoryDto">
+ select wc.id, wc.row, wc.col, i.id sampleId, i.sample, i.model, i.sample_code from warehouse_cell wc
+ left join ins_sample i on i.cell_id = wc.id
+ where wc.state = 1
+ and wc.shelf_id = #{shelfId}
+ order by wc.id
+ </select>
+
+ <resultMap id="WarehouseCellAndHistoryDto" type="com.ruoyi.inspect.dto.WarehouseCellAndSampleDto">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="row" column="row" jdbcType="INTEGER"/>
+ <result property="col" column="col" jdbcType="INTEGER"/>
+ <collection property="samples" resultMap="InsSample"/>
+ </resultMap>
+
+ <resultMap id="InsSample" type="com.ruoyi.inspect.pojo.InsSample">
+ <id property="id" column="sampleId"/>
+ <result property="sample" column="sample"/>
+ <result property="model" column="model"/>
+ <result property="sampleCode" column="sample_code"/>
+ </resultMap>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml
new file mode 100644
index 0000000..a428a9f
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/WarehouseHistoryMapper.xml
@@ -0,0 +1,27 @@
+<?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.inspect.mapper.WarehouseHistoryMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.WarehouseHistory">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
+ <result property="state" column="state" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="cellId" column="cell_id" jdbcType="INTEGER"/>
+ </resultMap>
+
+ <select id="getUserNameById" resultType="java.lang.String">
+ select name from user where id = #{userId}
+ </select>
+ <select id="getHistoryListBySampleId" resultType="com.ruoyi.inspect.dto.HistoryDto">
+ select wh.*,u.name createUserName from warehouse_history wh
+ left join user u on u.id = wh.create_user
+ where wh.ins_sample_id = #{sampleId}
+ order by wh.id desc
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/WarehouseMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml
new file mode 100644
index 0000000..6bc4bea
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/WarehouseMapper.xml
@@ -0,0 +1,33 @@
+<?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.inspect.mapper.WarehouseMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.Warehouse">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ </resultMap>
+
+ <resultMap id="Warehouse" type="com.ruoyi.inspect.dto.WarehouseDto">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <collection property="warehouseShelfList" resultMap="shelf"/>
+ </resultMap>
+
+ <resultMap id="shelf" type="com.ruoyi.inspect.pojo.WarehouseShelf">
+ <id property="id" column="sId" jdbcType="INTEGER"/>
+ <result property="name" column="sName" jdbcType="VARCHAR"/>
+ <result property="row" column="row" jdbcType="INTEGER"/>
+ <result property="col" column="col" jdbcType="INTEGER"/>
+ </resultMap>
+
+ <select id="selectWarehouseList" resultMap="Warehouse">
+ select w.id,w.name,ws.id sId,ws.name sName,ws.row,ws.col,ws.warehouse_id from warehouse w
+ left join warehouse_shelf ws on w.id = ws.warehouse_id
+ </select>
+</mapper>
diff --git a/inspect-server/src/main/resources/mapper/WarehouseShelfMapper.xml b/inspect-server/src/main/resources/mapper/WarehouseShelfMapper.xml
new file mode 100644
index 0000000..ad8c5f4
--- /dev/null
+++ b/inspect-server/src/main/resources/mapper/WarehouseShelfMapper.xml
@@ -0,0 +1,18 @@
+<?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.inspect.mapper.WarehouseShelfMapper">
+
+ <resultMap id="BaseResultMap" type="com.ruoyi.inspect.pojo.WarehouseShelf">
+ <id property="id" column="id" jdbcType="INTEGER"/>
+ <result property="name" column="name" jdbcType="VARCHAR"/>
+ <result property="row" column="row" jdbcType="INTEGER"/>
+ <result property="col" column="col" jdbcType="INTEGER"/>
+ <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+ <result property="createUser" column="create_user" jdbcType="INTEGER"/>
+ <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
+ <result property="warehouseId" column="warehouse_id" jdbcType="INTEGER"/>
+ </resultMap>
+</mapper>
diff --git a/pom.xml b/pom.xml
index 214ed98..adb9384 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,12 +45,17 @@
<hutool.version>5.8.18</hutool.version>
<easyexcel.version>3.3.2</easyexcel.version>
<poi.tl.version>1.12.2</poi.tl.version>
+ <amqp.version>3.2.6</amqp.version>
</properties>
<!-- 渚濊禆澹版槑 -->
<dependencyManagement>
<dependencies>
-
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-amqp</artifactId>
+ <version>${amqp.version}</version>
+ </dependency>
<!-- 瑕嗙洊SpringFramework鐨勪緷璧栭厤缃�-->
<dependency>
<groupId>org.springframework</groupId>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/EasyExcelUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/EasyExcelUtils.java
new file mode 100644
index 0000000..5a4a9fc
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/EasyExcelUtils.java
@@ -0,0 +1,181 @@
+package com.ruoyi.common.utils;
+
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+/**
+*@author: Zou, Yu
+*@description:
+*@date: 2023/9/24 0024 13:18
+**/
+public class EasyExcelUtils {
+
+ public static HorizontalCellStyleStrategy getStyleStrategy(){
+ return getStyleStrategy(IndexedColors.WHITE);
+ }
+
+ /**
+ * color鏋氫妇: IndexedColors
+ * @param color
+ * @return
+ */
+ public static HorizontalCellStyleStrategy getStyleStrategy(IndexedColors color) {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓虹伆鑹�
+ headWriteCellStyle.setFillForegroundColor(color.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 10);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("瀹嬩綋");
+ headWriteCellStyle.setWriteFont(headWriteFont);
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(false);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+// contentWriteCellStyle.setDataFormat((short) 49);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 11);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("瀹嬩綋");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 鍐呭灞呬腑瀵归綈
+ contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ //鍐呭鍨傜洿灞呬腑
+ contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ //杈规璁剧疆
+ contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
+ contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
+ contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
+ contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ public static HorizontalCellStyleStrategy getStyleFixedStrategy() {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓虹伆鑹�
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("Calibri");
+ headWriteCellStyle.setWriteFont(headWriteFont);
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(false);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 10);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("Calibri");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 鍐呭宸﹀榻�
+ contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ public static HorizontalCellStyleStrategy getArveStyleStrategy() {
+ // 澶寸殑绛栫暐
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ // 鑳屾櫙璁剧疆涓�
+ headWriteCellStyle.setFillForegroundColor(IndexedColors.BLACK.getIndex());
+ WriteFont headWriteFont = new WriteFont();
+ headWriteFont.setFontHeightInPoints((short) 12);
+ // 瀛椾綋鏍峰紡
+ headWriteFont.setFontName("Calibri");
+ headWriteFont.setColor(IndexedColors.WHITE.getIndex());
+ headWriteCellStyle.setWriteFont(headWriteFont);
+
+ headWriteCellStyle.setBorderBottom(BorderStyle.MEDIUM);
+ headWriteCellStyle.setLeftBorderColor(IndexedColors.WHITE.getIndex());
+ headWriteCellStyle.setRightBorderColor(IndexedColors.WHITE.getIndex());
+ // 鑷姩鎹㈣
+ headWriteCellStyle.setWrapped(true);
+ // 姘村钩瀵归綈鏂瑰紡
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ // 鍨傜洿瀵归綈鏂瑰紡
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 鍐呭鐨勭瓥鐣�
+ WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+ // 杩欓噷闇�瑕佹寚瀹� FillPatternType 涓篎illPatternType.SOLID_FOREGROUND 涓嶇劧鏃犳硶鏄剧ず鑳屾櫙棰滆壊.澶撮粯璁や簡 FillPatternType鎵�浠ュ彲浠ヤ笉鎸囧畾
+// contentWriteCellStyle.setFillPatternType(FillPatternType.SQUARES);
+ // 鑳屾櫙鐧借壊
+ contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ WriteFont contentWriteFont = new WriteFont();
+ // 瀛椾綋澶у皬
+ contentWriteFont.setFontHeightInPoints((short) 10);
+ // 瀛椾綋鏍峰紡
+ contentWriteFont.setFontName("Calibri");
+ contentWriteCellStyle.setWriteFont(contentWriteFont);
+ // 杩欎釜绛栫暐鏄� 澶存槸澶寸殑鏍峰紡 鍐呭鏄唴瀹圭殑鏍峰紡 鍏朵粬鐨勭瓥鐣ュ彲浠ヨ嚜宸卞疄鐜�
+ return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+ }
+
+ /**
+ * 璁剧疆response
+ * @param response
+ * @param targetName
+ * @return
+ */
+ public static OutputStream getResponse(HttpServletResponse response, String targetName) throws IOException {
+ return getResponse(response,targetName,ExcelTypeEnum.XLS.getValue());
+ }
+
+ /**
+ * 璁剧疆response
+ * @param response
+ * @param targetName
+ * @param suffix 鏂囦欢鍚庣紑
+ * @return
+ */
+ public static OutputStream getResponse(HttpServletResponse response, String targetName,String suffix) throws IOException {
+ String fileName;
+ try {
+ fileName = targetName + suffix;
+ fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString());
+ response.setContentType("application/vnd.ms-excel");
+ response.setHeader("Cache-Control", "no-cache");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
+ return response.getOutputStream();
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
--
Gitblit v1.9.3