From 9733594dd881627b4c00665e6f9bfbf08c1cacec Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 17 二月 2025 17:49:29 +0800
Subject: [PATCH] 业务管理移植
---
inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java | 42
ruoyi-common/src/main/java/com/ruoyi/common/properties/WechatProperty.java | 21
ruoyi-common/src/main/java/com/ruoyi/common/utils/IfsApiUtils.java | 180 +
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java | 131 +
inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarter.java | 67
performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java | 9
inspect-server/src/main/java/com/ruoyi/inspect/dto/ProductResultDto2.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderTemplate.java | 43
inspect-server/src/main/resources/static/small-report-template.docx | 0
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 1708 ++++++------
ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java | 93
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java | 5
performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java | 10
basic-server/src/main/java/com/ruoyi/basic/pojo/Laboratory.java | 1
performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/mapper/SpotCheckQuarterItemMapper.java | 17
performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java | 6
inspect-server/pom.xml | 6
inspect-server/src/main/java/com/ruoyi/inspect/service/InsSampleService.java | 13
performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java | 9
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java | 8
inspect-server/src/main/resources/static/factory_verify.docx | 0
performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java | 12
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleVo.java | 10
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java | 78
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java | 67
ruoyi-common/src/main/java/com/ruoyi/common/properties/IfsProperties.java | 46
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java | 18
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFile.java | 57
inspect-server/src/main/java/com/ruoyi/inspect/vo/RawMaterialSupplierVo.java | 31
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java | 131 +
ruoyi-common/src/main/java/com/ruoyi/common/utils/Base64.java | 27
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java | 35
inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductBindingDto.java | 21
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java | 636 ++--
inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java | 61
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java | 130
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | 1174 ++++++++
performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryWorkingHoursMapper.java | 3
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java | 38
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsSampleServiceImpl.java | 22
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerify.java | 100
inspect-server/src/main/java/com/ruoyi/inspect/vo/RawProductAnalysisVo.java | 23
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsChildrenVo.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderDeviceRecord.java | 64
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandlerFile.java | 79
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java | 4
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSampleUser.java | 72
ruoyi-common/src/main/java/com/ruoyi/common/utils/LimsDateUtil.java | 33
ruoyi-common/src/main/java/com/ruoyi/common/constant/InsOrderTypeConstants.java | 19
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.java | 83
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 1050 ++++++++
inspect-server/src/main/java/com/ruoyi/inspect/vo/ProductVo.java | 22
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java | 125
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnqualifiedRetestProductMapper.java | 34
inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYear.java | 67
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java | 35
inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviationAnalyzeVo.java | 58
basic-server/src/main/resources/mapper/SealMapper.xml | 4
inspect-server/src/main/java/com/ruoyi/inspect/vo/UnqualifiedHandlerVO.java | 155 +
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductExportDto.java | 128
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedRetestResult.java | 51
inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYearItem.java | 84
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductUser.java | 40
inspect-server/src/main/java/com/ruoyi/inspect/dto/OmitOrderProductDto.java | 21
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java | 18
inspect-server/src/main/resources/static/spot_check_year.docx | 0
performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java | 2
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderStandardTemplate.java | 57
inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java | 51
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerifyItem.java | 57
inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductRawAnalysisDto.java | 41
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderState.java | 67
inspect-server/src/main/resources/static/report-template.docx | 0
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPrintingVo.java | 47
inspect-server/src/main/java/com/ruoyi/inspect/vo/SampleDefectsFatherVo.java | 17
inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarterItem.java | 69
inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java | 10
inspect-server/src/main/resources/static/spot_check_quarter.docx | 0
performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java | 8
81 files changed, 6,598 insertions(+), 1,236 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/Laboratory.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/Laboratory.java
index a9343a1..92226bc 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/Laboratory.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/Laboratory.java
@@ -44,6 +44,7 @@
private Integer createUser;
@ApiModelProperty(value = "鍒涘缓浜�")
+ @TableField(select = false,exist = false)
private String createUserName;
@ApiModelProperty(value = "淇敼浜篿d")
diff --git a/basic-server/src/main/resources/mapper/SealMapper.xml b/basic-server/src/main/resources/mapper/SealMapper.xml
index 5cb3595..79e036c 100644
--- a/basic-server/src/main/resources/mapper/SealMapper.xml
+++ b/basic-server/src/main/resources/mapper/SealMapper.xml
@@ -4,8 +4,8 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.basic.mapper.SealMapper">
<select id="selectSeal" resultType="com.ruoyi.basic.pojo.Seal">
- select l.id,s.lab_id,l.laboratory_name ,s.address, s.type as Type,s.create_time
- from seal s LEFT JOIN laboratory l on s.lab_id=l.id
+ select * from (select l.id,s.lab_id,l.laboratory_name ,s.address, s.type as Type,s.create_time
+ from seal s LEFT JOIN laboratory l on s.lab_id=l.id) a
<if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
${ew.customSqlSegment}
</if>
diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml
index c124706..0484757 100644
--- a/inspect-server/pom.xml
+++ b/inspect-server/pom.xml
@@ -36,6 +36,12 @@
<artifactId>ruoyi-system</artifactId>
</dependency>
+ <!-- 缁╂晥鏈ㄥ潡 -->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>performance-server</artifactId>
+ </dependency>
+
<!-- poi-tl鍖呯敓鎴愭姤鍛� -->
<dependency>
<groupId>com.deepoove</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
index b9ac989..a0cec57 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -5,6 +5,11 @@
//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+//import com.ruoyi.common.core.domain.Result;
+//import com.ruoyi.inspect.dto.OmitOrderProductDto;
+//import com.ruoyi.inspect.dto.SampleOrderDto;
+//import com.ruoyi.inspect.service.InsOrderService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
index 40bdd0d..eb03d93 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -1,319 +1,317 @@
-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.basic.dto.*;
-import com.ruoyi.basic.pojo.IfsInventoryQuantity;
-import com.ruoyi.inspect.dto.SampleProductDto;
-import com.ruoyi.inspect.pojo.InsOrder;
-import com.ruoyi.inspect.pojo.RawMaterialOrderTemplate;
-import com.ruoyi.inspect.service.RawMaterialOrderService;
-import com.ruoyi.inspect.service.RawMaterialOrderTemplateService;
-import com.ruoyi.common.core.domain.Result;
-import com.ruoyi.common.utils.JackSonUtil;
-import com.ruoyi.common.utils.WxCpUtils;
-import com.ruoyi.inspect.dto.CopperInsOrderDto;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @Author zhuo
- * @Date 2024/7/31
- */
-@RequestMapping("/rawMaterialOrder")
-@RestController
-@AllArgsConstructor
-@Api(tags = "鍘熸潗鏂欎笅鍗�")
-public class RawMaterialOrderController {
-
- private RawMaterialOrderService rawMaterialOrderService;
- private RawMaterialOrderTemplateService rawMaterialOrderTemplateService;
-
- @ApiOperation(value = "鏇村叿闆朵欢鍙疯幏鍙栨爣鍑嗘爲")
- @GetMapping("/selectStandardTreeListByPartNo")
- public Result selectStandardTreeListByPartNo(String partNo) {
- return Result.success(rawMaterialOrderService.selectStandardTreeListByPartNo(partNo));
- }
-
- @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇唬涓嬪崟")
- @GetMapping("/getPurchaseOrder")
- public Result getPurchaseOrder(Page page, IfsInventoryQuantityCheckDto ifsInventoryQuantity){
- return Result.success(rawMaterialOrderService.selectIfsInventoryQuantity(page, ifsInventoryQuantity));
- }
-
- @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈡楠屼腑")
- @GetMapping("/getIfsByStateOne")
- public Result getIfsByStateOne(Page page, IfsInventoryQuantityDto ifsInventoryQuantityDto) throws Exception {
- return Result.success(rawMaterialOrderService.getIfsByStateOne(page, ifsInventoryQuantityDto));
- }
-
- @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈠凡妫�楠�")
- @GetMapping("/getIfsByOver")
- public Result getIfsByOver(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) throws Exception {
- return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
- }
-
- @ApiOperation(value = "娣诲姞鍘熸潗鏂欐楠屽崟妯℃澘")
- @PostMapping("/addRawMaterOrderTemplate")
- public Result<?> addRawMaterOrderTemplate(@RequestBody RawMaterialOrderTemplate rawMaterialOrderTemplate) {
- return Result.success(rawMaterialOrderTemplateService.addRawMaterOrderTemplate(rawMaterialOrderTemplate));
- }
- @ApiOperation(value = "鏌ヨ鍘熸潗鏂欐楠屽崟妯℃澘鍒楄〃")
- @GetMapping("/selectRawMaterOrderTemplate")
- public Result<?> selectRawMaterOrderTemplate(String partNo) {
- return Result.success(rawMaterialOrderTemplateService.selectRawMaterOrderTemplate(partNo));
- }
-
- @ApiOperation(value = "閫氳繃鍘熸潗鏂欐楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭")
- @GetMapping("/selectRawMaterOrderTemplateById")
- public Result<?> selectRawMaterOrderTemplateById(Integer id) {
- return Result.success("鎴愬姛", rawMaterialOrderTemplateService.selectRawMaterOrderTemplateById(id));
- }
-
- @ApiOperation(value = "鍒犻櫎鍘熸潗鏂欐楠屽崟妯℃澘")
- @PostMapping("/delRawMaterOrderTemplate")
- public Result<?> delRawMaterOrderTemplate(Integer id) {
- return Result.success(rawMaterialOrderTemplateService.delRawMaterOrderTemplate(id));
- }
-
-
- /**
- * 鎶ユ鎵归噺
- * @param param 鍘熸潗鏂檌d
- * @return
- */
- @ApiOperation(value = "鎶ユ鎵归噺")
- @PostMapping("/inspectionReport")
- public Result<?> inspectionReport(@RequestBody Map<String, Object> param) {
- List<Integer> ids = (List<Integer>) param.get("ids");
- return Result.success(rawMaterialOrderService.inspectionReport(ids));
- }
-
- /**
- * 鍙栨秷鎶ユ
- * @param id 鍘熸潗鏂欎笅鍗�
- * @return
- */
- @ApiOperation(value = "鎾ら攢鎶ユ")
- @PostMapping("/revokeInspectionReport")
- public Result<?> revokeInspectionReport(Integer id) {
- return Result.success(rawMaterialOrderService.revokeInspectionReport(id));
- }
-
- /**
- * 鎵撳嵃鏍囩鏌ヨ
- * @param param 鍘熸潗鏂檌d
- * @return
- */
- @ApiOperation(value = "鎵撳嵃鏍囩鏌ヨ")
- @PostMapping("/printLabel")
- public Result<?> printLabel(@RequestBody Map<String, Object> param) {
- List<Integer> ids = (List<Integer>) param.get("ids");
- return Result.success(rawMaterialOrderService.printLabel(ids));
- }
-
- /**
- * 鎶ユ
- * @param ifsInventoryQuantity 鍘熸潗鏂�
- * @return
- */
- @ApiOperation(value = "鎶ユ")
- @PostMapping("/inspectionReportOne")
- public Result<?> inspectionReportOne(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
-
- return Result.success(rawMaterialOrderService.inspectionReportOne(ifsInventoryQuantity));
- }
-
- /**
- * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�
- * @param id 鍘熸潗鏂檌d
- * @return
- */
- @ApiOperation(value = "鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�")
- @GetMapping("/getIndustryChain")
- public Result<?> getIndustryChain(Integer id) {
- return Result.success("鎴愬姛", rawMaterialOrderService.getIndustryChain(id));
- }
-
- /**
- * 鍘熸潗鏂欐挙閿�
- * @param ifsInventoryId
- * @return
- */
- @ApiOperation(value = "鍘熸潗鏂欐挙閿�涓嬪崟")
- @PutMapping("/repealRawOrder")
- public Result<?> repealRawOrder(Integer ifsInventoryId){
- return Result.success(rawMaterialOrderService.repealRawOrder(ifsInventoryId));
- }
-
-
- @ApiOperation(value = "鍘熸潗鏂欎笅鍗曞厤妫�")
- @PostMapping("/addExemptionOrder")
- public Result<?> addExemptionOrder(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);
- return Result.success(rawMaterialOrderService.addExemptionOrder(list, insOrder));
- }
-
-
- @ApiOperation(value = "浠撳簱鎶ユ鏌ヨ")
- @PostMapping("/getWarehouseSubmit")
- public Result getWarehouseSubmit(@RequestBody Map<String, Object> data) throws Exception {
- Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
- IfsInventoryQuantity ifsInventoryQuantity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantity.class);
- return Result.success(rawMaterialOrderService.getWarehouseSubmit(page, ifsInventoryQuantity));
- }
-
- /**
- * 鍙栨秷鎶ユ
- * @param id 鍘熸潗鏂欎笅鍗�
- * @return
- */
- @ApiOperation(value = "鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅")
- @PostMapping("/delIfsInventory")
- public Result<?> delIfsInventory(Integer id) {
- return Result.success(rawMaterialOrderService.delIfsInventory(id));
- }
-
- /**
- * 鍘熸潗鏂欎笅鍗曟斁琛�
- * @param param
- * @return
- */
- @ApiOperation(value = "鍘熸潗鏂欎笅鍗曟斁琛屽厤妫�")
- @PostMapping("/rawOrderRelease")
- public Result<?> rawOrderRelease(@RequestBody Map<String, Object> param){
- Integer ifsInventoryId = (Integer) param.get("ifsInventoryId");
- String partDetail = (String) param.get("partDetail");
- return Result.success(rawMaterialOrderService.rawOrderRelease(ifsInventoryId, partDetail));
- }
-
- /**
- * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
- * @param ifsInventoryId
- * @return
- */
- @ApiOperation(value = "鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�")
- @GetMapping("/notificationRawOrder")
- public Result<?> notificationRawOrder(Integer ifsInventoryId){
- return Result.success(rawMaterialOrderService.notificationRawOrder(ifsInventoryId));
- }
-
-
- @ApiOperation(value = "鍘熸潗鏂欐姤妫�鏌ヨ鍏ㄩ儴")
- @PostMapping("/getIfsByAll")
- public Result getIfsByAll(@RequestBody Map<String, Object> data) throws Exception {
- Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
- IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
- return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
- }
-
-
- @ApiOperation(value = "鏂板鍘熸潗鏂欐姤妫�淇℃伅")
- @PostMapping("/addIfsInventoryQuantity")
- public Result addIfsInventoryQuantity(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
- rawMaterialOrderService.addIfsInventoryQuantity(ifsInventoryQuantity);
- return Result.success();
- }
-
- @ApiOperation(value = "鍘熸潗鏂欎笅鍗曟煡鐪嬪凡瀹屾垚淇℃伅")
- @PostMapping("/getIfsByFinish")
- public Result getIfsByFinish(@RequestBody Map<String, Object> data) throws Exception {
- Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
- IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
- ifsInventoryQuantityDto.setIsFinish(1);
- return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
- }
-
- @ApiOperation(value = "娴嬭瘯绉诲簱")
- @PostMapping("/shiftingParking")
- public Result shiftingParking(@RequestBody List<Integer> ids){
- rawMaterialOrderService.shiftingParking(ids);
- return Result.success();
- }
-
- @ApiOperation(value = "寰俊鍙戦�佹枃浠舵祴璇�")
- @GetMapping("/wxSend")
- public Result wxSend(String user, String content, String filePath) throws Exception {
- WxCpUtils.inform(user, content, new File(filePath));
- return Result.success();
- }
-
- @ApiOperation(value = "閾滃崟涓濅笅鍗曞厤妫�")
- @PostMapping("/addRawCopperOrderExemptionOrder")
- public Result<?> addRawCopperOrderExemptionOrder(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);
- CopperInsOrderDto CopperInsOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), CopperInsOrderDto.class);
- return Result.success(rawMaterialOrderService.addRawCopperOrderExemptionOrder(list, CopperInsOrder));
- }
-
- /**
- * 璁╂鏀捐
- * @param ifsInventoryId
- * @return
- */
- @ApiOperation(value = "璁╂鏀捐")
- @PostMapping("/concessionRelease")
- public Result<?> concessionRelease(Integer ifsInventoryId){
- return Result.success(rawMaterialOrderService.concessionRelease(ifsInventoryId));
- }
-
- /**
- * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
- * @param enterOrderId
- * @return
- */
- @ApiOperation(value = "鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟")
- @PostMapping("/repealEnterRawOrder")
- public Result<?> repealEnterRawOrder(Integer enterOrderId){
- return Result.success(rawMaterialOrderService.repealEnterRawOrder(enterOrderId));
- }
-
- /**
- * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
- * @param quarterOrderId
- * @return
- */
- @ApiOperation(value = "鍘熸潗鏂欏搴︽挙閿�涓嬪崟")
- @PostMapping("/repealQuarterRawOrder")
- public Result<?> repealQuarterRawOrder(Integer quarterOrderId){
- return Result.success(rawMaterialOrderService.repealQuarterRawOrder(quarterOrderId));
- }
-
- @ApiOperation(value = "鍏ㄩ儴淇℃伅瀵煎嚭")
- @PostMapping("/rawAllExport")
- public void rawAllExport(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception {
- IfsInventoryQuantitySupplierDto dto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
- rawMaterialOrderService.rawAllExport(dto,response);
- }
-
- @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈠搴︽楠�")
- @GetMapping("/getIfsByQuarter")
- public Result getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto){
- return Result.success(rawMaterialOrderService.getIfsByQuarter(page, ifsInventoryQuantityDto));
- }
-
- /**
- * 鎻愬墠鍏ュ簱
- * @param ifsInventoryId
- * @return
- */
- @ApiOperation(value = "鎻愬墠鍏ュ簱")
- @PostMapping("/advancedGodown")
- public Result<?> advancedGodown(Integer ifsInventoryId){
- return Result.success(rawMaterialOrderService.advancedGodown(ifsInventoryId));
- }
-
-}
+//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.basic.dto.*;
+//import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+//import com.ruoyi.inspect.dto.SampleProductDto;
+//import com.ruoyi.inspect.pojo.InsOrder;
+//import com.ruoyi.inspect.pojo.RawMaterialOrderTemplate;
+//import com.ruoyi.inspect.service.RawMaterialOrderService;
+//import com.ruoyi.inspect.service.RawMaterialOrderTemplateService;
+//import com.ruoyi.common.core.domain.Result;
+//import com.ruoyi.common.utils.JackSonUtil;
+//import com.ruoyi.common.utils.WxCpUtils;
+//import com.ruoyi.inspect.dto.CopperInsOrderDto;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import lombok.AllArgsConstructor;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.File;
+//import java.util.List;
+//import java.util.Map;
+//
+///**
+// * @Author zhuo
+// * @Date 2024/7/31
+// */
+//@RequestMapping("/rawMaterialOrder")
+//@RestController
+//@AllArgsConstructor
+//@Api(tags = "鍘熸潗鏂欎笅鍗�")
+//public class RawMaterialOrderController {
+//
+// private RawMaterialOrderService rawMaterialOrderService;
+// private RawMaterialOrderTemplateService rawMaterialOrderTemplateService;
+//
+// @ApiOperation(value = "鏇村叿闆朵欢鍙疯幏鍙栨爣鍑嗘爲")
+// @GetMapping("/selectStandardTreeListByPartNo")
+// public Result selectStandardTreeListByPartNo(String partNo) {
+// return Result.success(rawMaterialOrderService.selectStandardTreeListByPartNo(partNo));
+// }
+//
+// @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇唬涓嬪崟")
+// @GetMapping("/getPurchaseOrder")
+// public Result getPurchaseOrder(Page page, IfsInventoryQuantityCheckDto ifsInventoryQuantity){
+// return Result.success(rawMaterialOrderService.selectIfsInventoryQuantity(page, ifsInventoryQuantity));
+// }
+//
+// @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈡楠屼腑")
+// @GetMapping("/getIfsByStateOne")
+// public Result getIfsByStateOne(Page page, IfsInventoryQuantityDto ifsInventoryQuantityDto) throws Exception {
+// return Result.success(rawMaterialOrderService.getIfsByStateOne(page, ifsInventoryQuantityDto));
+// }
+//
+// @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈠凡妫�楠�")
+// @GetMapping("/getIfsByOver")
+// public Result getIfsByOver(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) throws Exception {
+// return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
+// }
+//
+// @ApiOperation(value = "娣诲姞鍘熸潗鏂欐楠屽崟妯℃澘")
+// @PostMapping("/addRawMaterOrderTemplate")
+// public Result<?> addRawMaterOrderTemplate(@RequestBody RawMaterialOrderTemplate rawMaterialOrderTemplate) {
+// return Result.success(rawMaterialOrderTemplateService.addRawMaterOrderTemplate(rawMaterialOrderTemplate));
+// }
+// @ApiOperation(value = "鏌ヨ鍘熸潗鏂欐楠屽崟妯℃澘鍒楄〃")
+// @GetMapping("/selectRawMaterOrderTemplate")
+// public Result<?> selectRawMaterOrderTemplate(String partNo) {
+// return Result.success(rawMaterialOrderTemplateService.selectRawMaterOrderTemplate(partNo));
+// }
+//
+// @ApiOperation(value = "閫氳繃鍘熸潗鏂欐楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭")
+// @GetMapping("/selectRawMaterOrderTemplateById")
+// public Result<?> selectRawMaterOrderTemplateById(Integer id) {
+// return Result.success("鎴愬姛", rawMaterialOrderTemplateService.selectRawMaterOrderTemplateById(id));
+// }
+//
+// @ApiOperation(value = "鍒犻櫎鍘熸潗鏂欐楠屽崟妯℃澘")
+// @PostMapping("/delRawMaterOrderTemplate")
+// public Result<?> delRawMaterOrderTemplate(Integer id) {
+// return Result.success(rawMaterialOrderTemplateService.delRawMaterOrderTemplate(id));
+// }
+//
+//
+// /**
+// * 鎶ユ鎵归噺
+// * @param param 鍘熸潗鏂檌d
+// * @return
+// */
+// @ApiOperation(value = "鎶ユ鎵归噺")
+// @PostMapping("/inspectionReport")
+// public Result<?> inspectionReport(@RequestBody Map<String, Object> param) {
+// List<Integer> ids = (List<Integer>) param.get("ids");
+// return Result.success(rawMaterialOrderService.inspectionReport(ids));
+// }
+//
+// /**
+// * 鍙栨秷鎶ユ
+// * @param id 鍘熸潗鏂欎笅鍗�
+// * @return
+// */
+// @ApiOperation(value = "鎾ら攢鎶ユ")
+// @PostMapping("/revokeInspectionReport")
+// public Result<?> revokeInspectionReport(Integer id) {
+// return Result.success(rawMaterialOrderService.revokeInspectionReport(id));
+// }
+//
+// /**
+// * 鎵撳嵃鏍囩鏌ヨ
+// * @param param 鍘熸潗鏂檌d
+// * @return
+// */
+// @ApiOperation(value = "鎵撳嵃鏍囩鏌ヨ")
+// @PostMapping("/printLabel")
+// public Result<?> printLabel(@RequestBody Map<String, Object> param) {
+// List<Integer> ids = (List<Integer>) param.get("ids");
+// return Result.success(rawMaterialOrderService.printLabel(ids));
+// }
+//
+// /**
+// * 鎶ユ
+// * @param ifsInventoryQuantity 鍘熸潗鏂�
+// * @return
+// */
+// @ApiOperation(value = "鎶ユ")
+// @PostMapping("/inspectionReportOne")
+// public Result<?> inspectionReportOne(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
+//
+// return Result.success(rawMaterialOrderService.inspectionReportOne(ifsInventoryQuantity));
+// }
+//
+// /**
+// * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�
+// * @param id 鍘熸潗鏂檌d
+// * @return
+// */
+// @ApiOperation(value = "鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�")
+// @GetMapping("/getIndustryChain")
+// public Result<?> getIndustryChain(Integer id) {
+// return Result.success("鎴愬姛", rawMaterialOrderService.getIndustryChain(id));
+// }
+//
+// /**
+// * 鍘熸潗鏂欐挙閿�
+// * @param ifsInventoryId
+// * @return
+// */
+// @ApiOperation(value = "鍘熸潗鏂欐挙閿�涓嬪崟")
+// @PutMapping("/repealRawOrder")
+// public Result<?> repealRawOrder(Integer ifsInventoryId){
+// return Result.success(rawMaterialOrderService.repealRawOrder(ifsInventoryId));
+// }
+//
+//
+// @ApiOperation(value = "鍘熸潗鏂欎笅鍗曞厤妫�")
+// @PostMapping("/addExemptionOrder")
+// public Result<?> addExemptionOrder(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);
+// return Result.success(rawMaterialOrderService.addExemptionOrder(list, insOrder));
+// }
+//
+//
+// @ApiOperation(value = "浠撳簱鎶ユ鏌ヨ")
+// @PostMapping("/getWarehouseSubmit")
+// public Result getWarehouseSubmit(Page page, IfsInventoryQuantity ifsInventoryQuantity) throws Exception {
+// return Result.success(rawMaterialOrderService.getWarehouseSubmit(page, ifsInventoryQuantity));
+// }
+//
+// /**
+// * 鍙栨秷鎶ユ
+// * @param id 鍘熸潗鏂欎笅鍗�
+// * @return
+// */
+// @ApiOperation(value = "鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅")
+// @PostMapping("/delIfsInventory")
+// public Result<?> delIfsInventory(Integer id) {
+// return Result.success(rawMaterialOrderService.delIfsInventory(id));
+// }
+//
+// /**
+// * 鍘熸潗鏂欎笅鍗曟斁琛�
+// * @param param
+// * @return
+// */
+// @ApiOperation(value = "鍘熸潗鏂欎笅鍗曟斁琛屽厤妫�")
+// @PostMapping("/rawOrderRelease")
+// public Result<?> rawOrderRelease(@RequestBody Map<String, Object> param){
+// Integer ifsInventoryId = (Integer) param.get("ifsInventoryId");
+// String partDetail = (String) param.get("partDetail");
+// return Result.success(rawMaterialOrderService.rawOrderRelease(ifsInventoryId, partDetail));
+// }
+//
+// /**
+// * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
+// * @param ifsInventoryId
+// * @return
+// */
+// @ApiOperation(value = "鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�")
+// @GetMapping("/notificationRawOrder")
+// public Result<?> notificationRawOrder(Integer ifsInventoryId){
+// return Result.success(rawMaterialOrderService.notificationRawOrder(ifsInventoryId));
+// }
+//
+//
+// @ApiOperation(value = "鍘熸潗鏂欐姤妫�鏌ヨ鍏ㄩ儴")
+// @PostMapping("/getIfsByAll")
+// public Result getIfsByAll(@RequestBody Map<String, Object> data) throws Exception {
+// Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+// IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
+// return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
+// }
+//
+//
+// @ApiOperation(value = "鏂板鍘熸潗鏂欐姤妫�淇℃伅")
+// @PostMapping("/addIfsInventoryQuantity")
+// public Result addIfsInventoryQuantity(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
+// rawMaterialOrderService.addIfsInventoryQuantity(ifsInventoryQuantity);
+// return Result.success();
+// }
+//
+// @ApiOperation(value = "鍘熸潗鏂欎笅鍗曟煡鐪嬪凡瀹屾垚淇℃伅")
+// @PostMapping("/getIfsByFinish")
+// public Result getIfsByFinish(@RequestBody Map<String, Object> data) throws Exception {
+// Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
+// IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
+// ifsInventoryQuantityDto.setIsFinish(1);
+// return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto));
+// }
+//
+// @ApiOperation(value = "娴嬭瘯绉诲簱")
+// @PostMapping("/shiftingParking")
+// public Result shiftingParking(@RequestBody List<Integer> ids){
+// rawMaterialOrderService.shiftingParking(ids);
+// return Result.success();
+// }
+//
+// @ApiOperation(value = "寰俊鍙戦�佹枃浠舵祴璇�")
+// @GetMapping("/wxSend")
+// public Result wxSend(String user, String content, String filePath) throws Exception {
+// WxCpUtils.inform(user, content, new File(filePath));
+// return Result.success();
+// }
+//
+// @ApiOperation(value = "閾滃崟涓濅笅鍗曞厤妫�")
+// @PostMapping("/addRawCopperOrderExemptionOrder")
+// public Result<?> addRawCopperOrderExemptionOrder(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);
+// CopperInsOrderDto CopperInsOrder = JSON.parseObject(JSON.toJSONString(map.get("insOrder")), CopperInsOrderDto.class);
+// return Result.success(rawMaterialOrderService.addRawCopperOrderExemptionOrder(list, CopperInsOrder));
+// }
+//
+// /**
+// * 璁╂鏀捐
+// * @param ifsInventoryId
+// * @return
+// */
+// @ApiOperation(value = "璁╂鏀捐")
+// @PostMapping("/concessionRelease")
+// public Result<?> concessionRelease(Integer ifsInventoryId){
+// return Result.success(rawMaterialOrderService.concessionRelease(ifsInventoryId));
+// }
+//
+// /**
+// * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
+// * @param enterOrderId
+// * @return
+// */
+// @ApiOperation(value = "鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟")
+// @PostMapping("/repealEnterRawOrder")
+// public Result<?> repealEnterRawOrder(Integer enterOrderId){
+// return Result.success(rawMaterialOrderService.repealEnterRawOrder(enterOrderId));
+// }
+//
+// /**
+// * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
+// * @param quarterOrderId
+// * @return
+// */
+// @ApiOperation(value = "鍘熸潗鏂欏搴︽挙閿�涓嬪崟")
+// @PostMapping("/repealQuarterRawOrder")
+// public Result<?> repealQuarterRawOrder(Integer quarterOrderId){
+// return Result.success(rawMaterialOrderService.repealQuarterRawOrder(quarterOrderId));
+// }
+//
+// @ApiOperation(value = "鍏ㄩ儴淇℃伅瀵煎嚭")
+// @PostMapping("/rawAllExport")
+// public void rawAllExport(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception {
+// IfsInventoryQuantitySupplierDto dto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), IfsInventoryQuantitySupplierDto.class);
+// rawMaterialOrderService.rawAllExport(dto,response);
+// }
+//
+// @ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈠搴︽楠�")
+// @GetMapping("/getIfsByQuarter")
+// public Result getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto){
+// return Result.success(rawMaterialOrderService.getIfsByQuarter(page, ifsInventoryQuantityDto));
+// }
+//
+// /**
+// * 鎻愬墠鍏ュ簱
+// * @param ifsInventoryId
+// * @return
+// */
+// @ApiOperation(value = "鎻愬墠鍏ュ簱")
+// @PostMapping("/advancedGodown")
+// public Result<?> advancedGodown(Integer ifsInventoryId){
+// return Result.success(rawMaterialOrderService.advancedGodown(ifsInventoryId));
+// }
+//
+//}
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..bfaa09b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsOrderPlanDTO.java
@@ -0,0 +1,35 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@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 Integer typeSource;
+
+ @ApiModelProperty("鏄惁澶嶆牳")
+ private Integer isCheck;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductBindingDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductBindingDto.java
new file mode 100644
index 0000000..95b4ad7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductBindingDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/29
+ */
+@Data
+public class InsProductBindingDto {
+ @ApiModelProperty("闇�瑕佺粦瀹氱殑id")
+ private Integer insProductId;
+
+
+ @ApiModelProperty("闇�瑕佺粦瀹氱殑妫�楠岄」")
+ private List<InsProduct> insProductBindingList;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/OmitOrderProductDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OmitOrderProductDto.java
new file mode 100644
index 0000000..b6c80f4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OmitOrderProductDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsProduct;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/12/12
+ */
+@Data
+public class OmitOrderProductDto {
+ @ApiModelProperty("闇�瑕佹坊鍔犵殑鏍峰搧Id")
+ private Integer insSampleId;
+
+
+ @ApiModelProperty("闇�瑕佺粦瀹氱殑妫�楠岄」")
+ private List<InsProduct> insProductBindingList;
+}
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/ReportPageDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java
new file mode 100644
index 0000000..6f2ef15
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/ReportPageDto.java
@@ -0,0 +1,42 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InsReport;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ReportPageDto extends InsReport implements Serializable {
+
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty(value = "鎻愪氦浜�")
+ private String writeUserName;
+
+ @ApiModelProperty(value = "鎵瑰噯浜�")
+ private String ratifyUser;
+
+ @ApiModelProperty(value = "瀹℃牳浜�")
+ private String examineUser;
+
+ @ApiModelProperty(value = "涓嬪崟绫诲埆")
+ private Integer typeSource;
+
+ @ApiModelProperty(value = "妫�楠岀被鍒�")
+ private String orderType;
+
+ @ApiModelProperty(value = "鍘熸潗鏂檌d")
+ private Integer ifsInventoryId;
+
+ @ApiModelProperty(value = "鏄惁澶嶆牳閫氳繃")
+ private String queryStatus;
+
+ @ApiModelProperty(value = "鏄惁鏄摐鏉�, 0鍚�, 1鏄�")
+ private Integer isCopper;
+
+ @ApiModelProperty(value = "瀹為獙瀹�")
+ private String sonLaboratory;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductExportDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductExportDto.java
new file mode 100644
index 0000000..5473df4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductExportDto.java
@@ -0,0 +1,128 @@
+package com.ruoyi.inspect.dto;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.TreeMap;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/30
+ */
+@Data
+public class SampleProductExportDto {
+
+ @ApiModelProperty("鏍峰搧id")
+ private Integer id;
+
+ @ApiModelProperty("浜у搧id")
+ private Integer insProductId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+ private String inspectionItemClassEN;
+
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+ private String inspectionItemEn;
+
+ @ApiModelProperty("妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+ private String inspectionItemSubclassEn;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("鏍峰搧鐘舵��")
+ private Integer insState;
+
+ @ApiModelProperty("瀹為獙瀹�")
+ private String sonLaboratory;
+
+ @ApiModelProperty("妫�楠岄」绫诲瀷")
+ private String inspectionItemType;
+
+ @ApiModelProperty("妫�楠屽�肩被鍨�")
+ private String inspectionValueType;
+
+ @ApiModelProperty("瑕佹眰鍊�")
+ private String ask;
+
+ @ApiModelProperty("璇曢獙瑕佹眰")
+ private String tell;
+
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private String lastValue;
+
+ @ApiModelProperty("缁撴灉鍒ゅ畾")
+ private Integer insResult;
+
+ @ApiModelProperty("妫�楠屼汉")
+ private String checkName;
+
+ @ApiModelProperty("妫�楠屾棩鏈�")
+ private String checkTime;
+
+ @ApiModelProperty("搴忓彿")
+ private String index;
+
+ @ApiModelProperty("鍚嶇О")
+ private String inspectionName;
+
+ //鏉′欢
+ private String radius;
+
+ // 妫�楠岀粨鏋滃垪琛�
+ private List<String> lastValueList;
+
+ // 妫�楠岀粨鏋滃垪琛�
+ private List<Integer> insResultList;
+
+ //鏈�缁堢粨鏋�
+ private String finalResult;
+
+ //鍘熸潗鏂檌d
+ private Integer ifsInventoryId;
+
+ //妫�楠屽崟绫诲瀷
+ private String orderType;
+
+ //妫�楠屽崟绫诲瀷
+ private Integer quantity;
+
+ //妫�楠屽崟绫诲瀷
+ private Integer sort;
+
+ //鐢电紗鏍囪瘑
+ private String cableTag;
+
+ // 鍞竴缁撴灉鍊�
+ private LinkedHashSet<String> tellSet;
+
+ // 鐢电紗鏍囪瘑鍐呭闆嗗悎
+ private TreeMap<String, String> cableTagValueMap;
+
+ // 鐢电紗鏍囪瘑缁撴灉闆嗗悎
+ private TreeMap<String, Integer> cableTagResultMap;
+
+ // 妫�楠岄」鍜屾潯浠跺悎骞跺叧鑱�
+ public String getInspectionItemRadius() {
+ if (StringUtils.isBlank(radius)) {
+ return inspectionItem;
+ }
+ return inspectionItem + radius;
+ }
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductRawAnalysisDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductRawAnalysisDto.java
new file mode 100644
index 0000000..aacead7
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/SampleProductRawAnalysisDto.java
@@ -0,0 +1,41 @@
+package com.ruoyi.inspect.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/10/17
+ */
+@Data
+public class SampleProductRawAnalysisDto {
+
+ @ApiModelProperty("鏍峰搧id")
+ private Integer insSampleId;
+
+ @ApiModelProperty("妫�楠岄」id")
+ private Integer insProductId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("妫�楠岄」鍚嶇О")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private String lastValue;
+
+ @ApiModelProperty("鍚堟牸鍒ゆ柇, 1:鍚堟牸, 0:涓嶅悎鏍�, 3:涓嶅垽瀹�")
+ private Integer insResult;
+
+ @ApiModelProperty("鎵规鍙�")
+ private String updateBatchNo;
+
+ @ApiModelProperty("鍘傚鍚嶇О")
+ private String supplierName;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+
+}
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..f637cc1
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderMapper.java
@@ -0,0 +1,131 @@
+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.basic.pojo.StructureTestObject;
+import com.ruoyi.inspect.dto.CostStatisticsDto;
+import com.ruoyi.inspect.dto.SampleOrderDto;
+import com.ruoyi.inspect.dto.SampleProductDto2;
+import com.ruoyi.inspect.dto.SampleProductExportDto;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.vo.InsOrderPrintingVo;
+import com.ruoyi.inspect.vo.SampleDefectsFatherVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author gaoaoy
+ * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2024-03-12 16:17:55
+ * @Entity com.yuanchu.mom.pojo.InsOrder
+ */
+public interface InsOrderMapper extends BaseMapper<InsOrder> {
+
+ //鑾峰彇妫�楠屼笅鍗曟暟鎹�
+ IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page, QueryWrapper<SampleOrderDto> ew, String laboratory, String isOrderAll);
+
+
+ String getLaboratoryCode(String name);
+
+ IPage<SampleProductDto2> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, QueryWrapper<SampleProductDto2> ew, Integer id);
+
+ IPage<CostStatisticsDto> selectCostStatistics(IPage<CostStatisticsDto> page, QueryWrapper<CostStatisticsDto> ew);
+
+ List<CostStatisticsDto> selectCostStatistics2(@Param("ew") QueryWrapper<CostStatisticsDto> ew);
+
+ List<Map<String, String>> selectDeviceList(Set<String> names);
+ 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);
+
+ /**
+ * 鏌ヨ妫�楠岀粨鏋�
+ * @param ids
+ * @return
+ */
+ List<SampleProductExportDto> selectSampleBySampleId(@Param("ids") List<Integer> ids);
+
+ /**
+ * 鑾峰彇鎵归噺妫�楠岀殑鎬绘暟
+ * @param id
+ * @return
+ */
+ int selectSampleMax(Integer id);
+
+ /**
+ * 鑾峰彇绾胯姱棰滆壊
+ * @param id
+ * @return
+ */
+ List<String> selectSampleCableTag(Integer id);
+
+ /**
+ *
+ * @param orderId
+ * @return
+ */
+ int selectSampleItemS(Integer orderId);
+
+ /**
+ * 鍙煡璇㈤粯璁ょ涓�涓殑浜у搧
+ * @param id
+ * @return
+ */
+ List<SampleProductExportDto> selectSampleBySampleIdOne(Integer id);
+
+ /**
+ * 鏌ヨ鏃ュ巻鍥�
+ * @param
+ * @return
+ */
+ List<Map<String, Object>> selectCalendarWorkByWeek(int day);
+
+ /**
+ *
+ * @param partNo
+ * @return
+ */
+ StructureTestObject selectProductByPartNo(String partNo);
+
+ /**
+ *
+ * @param partNo
+ * @return
+ */
+ StructureTestObject selectByPartNo(String partNo);
+
+ /**
+ * 鎴愬搧鏍囩鎵撳嵃
+ * @param ids
+ * @return
+ */
+ List<InsOrderPrintingVo> labelOrderPrinting(List<Integer> ids);
+
+ List<SampleOrderDto> rawAllInsOrderExport(QueryWrapper<SampleOrderDto> ew, String laboratory, String isOrderAll);
+
+ /**
+ * 鏍规嵁璁㈠崟鏌ヨ璇曢獙瀹�
+ * @param insOrderId
+ * @return
+ */
+ String selectLaboratoryByOrderId(Integer insOrderId);
+
+ InsOrder selectFirstSubmit(Integer insSampleId);
+}
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..15d102f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderStateMapper.java
@@ -0,0 +1,19 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsOrderState;
+
+/**
+* @author admin
+* @description 閽堝琛ㄣ�恑ns_order_state銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-01 11:44:50
+* @Entity com.yuanchu.mom.pojo.InsOrderState
+*/
+public interface InsOrderStateMapper extends BaseMapper<InsOrderState> {
+
+
+}
+
+
+
+
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..52a8ef0
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
@@ -0,0 +1,67 @@
+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.dto.SampleProductRawAnalysisDto;
+import com.ruoyi.inspect.pojo.InsProduct;
+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.yuanchu.mom.pojo.InsProduct
+*/
+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, List<Integer> noIds);
+
+ int selectInsProductCountByOrderId(Integer orderId);
+
+ /**
+ * 鏍规嵁鏍峰搧id鏌ヨ妫�楠岄」鐩�
+ * @param sampleIds
+ * @return
+ */
+ List<SampleProductRawAnalysisDto> selectListBySampleIds(@Param("sampleIds") List<Integer> sampleIds);
+
+ /**
+ * 鏌ヨ鎵�鏈夌殑妫�楠岄」
+ * @param sampleIds
+ * @return
+ */
+ List<String> selectItemNameBySampleIds(@Param("sampleIds") List<Integer> sampleIds);
+
+ /**
+ * 鏍规嵁璁㈠崟id鏌ヨ涓嶅悎鏍奸」
+ * @param orderId
+ * @return
+ */
+ List<String> selectUnqualifiedList(Integer orderId);
+
+ /**
+ * 鏌ヨ鍒ゆ柇鏄惁鏈変笉鍒ゅ畾椤圭洰,鍜屽叏閮芥槸鍒ゅ畾椤�
+ * @param orderId
+ * @return
+ */
+ int selectNoJudge(Integer orderId);
+}
+
+
+
+
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..0598f28
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductUserMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsProductUser;
+
+/**
+* @author z1292
+* @description 閽堝琛ㄣ�恑ns_product_user(妫�楠岄」鐩殑浜哄憳妫�楠岃褰�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-04-17 13:42:44
+* @Entity com.yuanchu.mom.pojo.InsProductUser
+*/
+public interface InsProductUserMapper extends BaseMapper<InsProductUser> {
+
+}
+
+
+
+
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..f9be2da
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
@@ -0,0 +1,38 @@
+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.Param;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_report(妫�楠屾姤鍛�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-17 22:10:02
+* @Entity com.yuanchu.mom.pojo.InsReport
+*/
+public interface InsReportMapper extends BaseMapper<InsReport> {
+
+ /**
+ * 鏌ヨ妫�楠屼换鍔�
+ * @param userId 褰撳墠鐧诲綍浜篿d
+ * @param queryStatus 鐘舵��
+ * @param createOrderUser 鏄惁鏄彧鏈夋煡鐪嬭嚜宸辩殑鏉冮檺
+ * @return
+ */
+ IPage<ReportPageDto> pageInsReport(IPage<ReportPageDto> page,
+ @Param("ew") QueryWrapper<ReportPageDto> ew,
+ @Param("laboratory") String laboratory,
+ @Param("userId") Integer userId,
+ @Param("queryStatus") String queryStatus,
+ @Param("createOrderUser") Integer createOrderUser);
+
+ String getLaboratoryByName(String name, String type);
+
+}
+
+
+
+
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..b074da0
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java
@@ -0,0 +1,130 @@
+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.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.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample(妫�楠屾牱鍝�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-14 17:14:57
+* @Entity com.yuanchu.mom.pojo.InsSample
+*/
+public interface InsSampleMapper extends BaseMapper<InsSample> {
+
+ IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page,
+ @Param("ew") QueryWrapper<InsOrderPlanDTO> ew,
+ @Param("userName") String userName ,
+ @Param("userId") Integer userId,
+ @Param("sonLaboratory") String sonLaboratory,
+ @Param("laboratory") String laboratory,
+ @Param("isCheck") Integer isCheck);
+
+ 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);
+
+ Map<String,Object> selectInsOrder(Integer id);
+
+ List<SampleProductDto> getInsOrderAndSample(Integer id, String laboratory);
+
+ String getSampleEn(String sample);
+
+ /**
+ * 鍙兘娌℃湁浜у搧鐩存帴灏辨槸瀵硅薄
+ * @param sample
+ * @return
+ */
+ String getSampleEnByObject(String sample);
+
+ /**
+ * 鏍峰搧
+ * @param id
+ * @param laboratory
+ * @return
+ */
+ List<InsProduct> getInsProduct1(Integer id, String laboratory, String cableTag, String repetitionTag, String isDisqualification);
+
+
+ /**
+ * 鍘熸潗鏂�
+ * @param id
+ * @param laboratory
+ * @param rawMaterialTag
+ * @return
+ */
+ List<InsProduct> getInsProduct6(Integer id, String laboratory, String rawMaterialTag, String isDisqualification);
+
+ SampleVo getDetailById(Integer sampleId);
+
+ String selMethodById(Integer sampleId);
+
+ /**
+ * 鐢电紗閰嶇疆鏌ョ湅閰嶇疆鏍囪瘑
+ * @param id
+ * @param laboratory
+ * @return
+ */
+ List<Map<String, Object>> getCableTag(@Param("id") Integer id, @Param("laboratory") String laboratory);
+
+ /**
+ * 鍘熸潗鏂欐煡鐪嬮厤缃爣璇�
+ * @param id
+ * @param laboratory
+ * @return
+ */
+ List<Map<String, Object>> getRawMaterialTag(@Param("id") Integer id, @Param("laboratory") String laboratory);
+
+ /**
+ * 鏌ョ湅閲嶅鏍囪瘑
+ * @param id
+ * @param laboratory
+ * @return
+ */
+ List<Map<String, Object>> getRepetitionTag(@Param("id") Integer id, @Param("laboratory") String laboratory, @Param("cableTag") String cableTag);
+
+
+ List<SampleProductDto> selectExemptionByOrderId(Integer id);
+
+ /**
+ * 鏌ヨ鍘傚瀵嗗害(鏈夊瀷鍙�)
+ * @param sample
+ * @param production
+ * @return
+ */
+ String selectSupplierDensityModel(@Param("sample") String sample, @Param("production") String production, @Param("model") String model);
+
+ /**
+ * 鏌ヨ鍘傚瀵嗗害(娌″瀷鍙�)
+ * @param sample
+ * @param production
+ * @return
+ */
+ String selectSupplierDensity(@Param("sample") String sample, @Param("production") String production);
+
+
+ /**
+ * 鏌ヨ妫�楠岄」妫�楠岀粨鏋�
+ * @param itemIds
+ * @return
+ */
+ List<InsProduct> selectProductResult(List<Integer> itemIds);
+}
+
+
+
+
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..b3f0c19
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsSampleUser;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample_user(鏍峰搧璐熻矗浜鸿褰�)銆戠殑鏁版嵁搴撴搷浣淢apper
+* @createDate 2024-03-14 17:12:02
+* @Entity com.yuanchu.mom.pojo.InsSampleUser
+*/
+public interface InsSampleUserMapper extends BaseMapper<InsSampleUser> {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnqualifiedRetestProductMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnqualifiedRetestProductMapper.java
new file mode 100644
index 0000000..440ca63
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsUnqualifiedRetestProductMapper.java
@@ -0,0 +1,34 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.InsProduct;
+import com.ruoyi.inspect.pojo.InsUnqualifiedRetestProduct;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 涓嶅悎鏍兼楠岄」鐩娴�
+ * @author 榉�
+ * @since 2024-09-03
+ */
+@Mapper
+public interface InsUnqualifiedRetestProductMapper extends BaseMapper<InsUnqualifiedRetestProduct> {
+
+ /**
+ * 鏌ヨ涓嶅悎鏍煎唴瀹�
+ * @param ids
+ * @return
+ */
+ List<InsUnqualifiedRetestProduct> selectRetestProduct(List<Integer> ids);
+
+ // 鏍峰搧
+ List<InsProduct> getInsProductUnqualifiedRetest1(Integer id, String laboratory, String retestTag);
+
+ // 鐢电紗閰嶇疆
+ List<InsProduct> getInsProductUnqualifiedRetest5(Integer id, String laboratory, String cableTag, String retestTag);
+
+ // 鍘熸潗鏂欎笅鍗�
+ List<InsProduct> getInsProductUnqualifiedRetest6(Integer id, String laboratory, String rawMaterialTag, String retestTag);
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SpotCheckQuarterItemMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SpotCheckQuarterItemMapper.java
new file mode 100644
index 0000000..82d1085
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/SpotCheckQuarterItemMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.SpotCheckQuarterItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 瀛e害鎶芥牱璁″垝璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-10-09
+ */
+@Mapper
+public interface SpotCheckQuarterItemMapper extends BaseMapper<SpotCheckQuarterItem> {
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderDeviceRecord.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderDeviceRecord.java
new file mode 100644
index 0000000..7eec57d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderDeviceRecord.java
@@ -0,0 +1,64 @@
+package com.ruoyi.inspect.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;
+
+import java.time.LocalDateTime;
+
+/**
+ * cnas璁惧浣跨敤璁板綍琛�(DeviceRecord)$desc
+ *
+ * @author makejava
+ * @since 2024-12-21 11:11:01
+ */
+@Data
+@TableName("device_record")
+public class InsOrderDeviceRecord {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("璁惧id")
+ private Integer deviceId;
+
+ @ApiModelProperty("璁㈠崟id")
+ private Integer insOrderId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("娓╁害")
+ private String temperature;
+
+ @ApiModelProperty("婀垮害")
+ private String humidity;
+
+ @ApiModelProperty("浣跨敤鍓�0浠h〃涓嶆甯�1浠h〃姝e父")
+ private Integer useBefore;
+
+ @ApiModelProperty("浣跨敤鍚�0浠h〃涓嶆甯�1浠h〃姝e父")
+ private Integer useAfter;
+
+ @ApiModelProperty("寮傚父鎯呭喌")
+ private String abnormal;
+
+ @ApiModelProperty("浣跨敤浜篿d")
+ private Integer usePersonId;
+
+ @ApiModelProperty("浣跨敤浜�")
+ private String usePerson;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("浣跨敤寮�濮嬫棩鏈�")
+ private LocalDateTime useStartDate;
+
+ @ApiModelProperty("浣跨敤缁撴潫鏃ユ湡")
+ private LocalDateTime useEndDate;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerify.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerify.java
new file mode 100644
index 0000000..0a43688
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerify.java
@@ -0,0 +1,100 @@
+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.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 鍘熸潗鏂欏巶瀹惰繘璐ч獙璇�
+ *
+ * @author zhuo
+ * @since 2024-09-26
+ */
+@Data
+@TableName("ins_order_factory_verify")
+public class InsOrderFactoryVerify {
+
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer factoryVerifyId;
+
+ @ApiModelProperty(value = "澶栭敭: ins_order琛� id")
+ private Integer insOrderId;
+
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty("鏉愭枡鍘傚")
+ private String supplierName;
+
+ @ApiModelProperty("鍒拌揣鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime declareDate;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("鏉愭枡鎵瑰彿")
+ private String updateBatchNo;
+
+ @ApiModelProperty(value = "楠岃瘉鏂囦欢缂栧彿")
+ private String verifyFileCode;
+
+ @ApiModelProperty(value = "1鏉愭枡鍚嶇О")
+ private String basicName;
+
+ @ApiModelProperty(value = "2瑙勬牸鍨嬪彿")
+ private String basicModel;
+
+ @ApiModelProperty(value = "3鏉愭枡鎵瑰彿")
+ private String basicBatchNo;
+
+ @ApiModelProperty(value = "4鎵ц鏍囧噯")
+ private String basicStandard;
+
+ @ApiModelProperty(value = "5鐢熶骇鏃ユ湡")
+ private String basicDate;
+
+ @ApiModelProperty(value = "6渚涜揣鏁伴噺")
+ private String basicNumber;
+
+ @ApiModelProperty(value = "7鏉愭枡棰滆壊")
+ private String basicColor;
+
+ @ApiModelProperty(value = "8鍏朵粬(鍚嶇О)")
+ private String basicOtherValue;
+
+ @ApiModelProperty(value = "8鍏朵粬")
+ private String basicOther;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+ @TableField(exist = false,select = false)
+ @ApiModelProperty(value = "楠岃瘉椤圭洰闆嗗悎")
+ private List<InsOrderFactoryVerifyItem> factoryVerifyItemList;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerifyItem.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerifyItem.java
new file mode 100644
index 0000000..304837a
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderFactoryVerifyItem.java
@@ -0,0 +1,57 @@
+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.time.LocalDateTime;
+
+/**
+ * 鍘熸潗鏂欏巶瀹惰繘璐ч獙璇佹楠岄」
+ *
+ * @author zhuo
+ * @since 2024-09-26
+ */
+@Data
+@TableName("ins_order_factory_verify_item")
+public class InsOrderFactoryVerifyItem {
+
+
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer factoryVerifyItemId;
+
+ @ApiModelProperty(value = "澶栭敭: 杩涘巶楠岃瘉琛� id")
+ private Integer factoryVerifyId;
+
+ @ApiModelProperty(value = "楠岃瘉椤圭洰")
+ private String inspectionItem;
+
+ @ApiModelProperty(value = "楠岃瘉缁撴灉")
+ private String result;
+
+ @ApiModelProperty(value = "鎺掑簭")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer sort;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+}
+
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/InsOrderStandardTemplate.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderStandardTemplate.java
new file mode 100644
index 0000000..921d222
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrderStandardTemplate.java
@@ -0,0 +1,57 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 璁㈠崟鏍囧噯妯℃澘澶嶅埗
+ *
+ * @author zhuo
+ * @since 2024-11-05
+ */
+@Data
+@TableName(value = "ins_order_standard_template")
+public class InsOrderStandardTemplate {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("妯℃澘id")
+ private Integer templateId;
+
+ @ApiModelProperty("璁㈠崟id")
+ private Integer insOrderId;
+
+ @ApiModelProperty("妯℃澘鍚嶇О")
+ private String name;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("妯℃澘缁撴瀯")
+ private String thing;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty("鍒涘缓浜�")
+ private Integer createUser;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty("淇敼浜�")
+ private Integer updateUser;
+
+ @TableField(fill = FieldFill.INSERT)
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Date createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @ApiModelProperty("淇敼鏃堕棿")
+ private Date updateTime;
+
+ @ApiModelProperty("妯℃澘缂栧彿")
+ private String number;
+
+}
+
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..829689a
--- /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;
+}
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..eca4601
--- /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;
+}
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..dfdeca6
--- /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;
+}
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..9d69801
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsReport.java
@@ -0,0 +1,125 @@
+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
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Integer insOrderId;
+
+ /**
+ * 绯荤粺鐢熸垚鎶ュ憡鍦板潃
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private String url;
+
+ /**
+ * 鎵嬪姩涓婁紶鎶ュ憡鍦板潃
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private String urlS;
+
+ /**
+ * 涓存椂鎶ュ憡鍦板潃
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private String tempUrlPdf;
+
+ /**
+ * 1锛氭壒鍑� 0锛氫笉鎵瑰噯
+ */
+ @ApiModelProperty("鎵瑰噯鐘舵��")
+ private Integer isRatify;
+
+ @ApiModelProperty("鎵瑰噯澶囨敞")
+ private String ratifyTell;
+
+ /**
+ * 1锛氬鏍搁�氳繃 0锛氬鏍镐笉閫氳繃
+ */
+ @ApiModelProperty("瀹℃牳鐘舵��")
+ private Integer isExamine;
+
+ @ApiModelProperty("瀹℃牳澶囨敞")
+ private String examineTell;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堟彁浜や汉锛�
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Integer writeUserId;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堟壒鍑嗕汉锛�
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ private Integer ratifyUserId;
+
+ /**
+ * 澶栭敭锛氱敤鎴穒d锛堝鏍镐汉锛�
+ */
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ 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锛氬緟鎻愪氦
+ */
+ @ApiModelProperty("鎻愪氦鐘舵��")
+ private Integer state;
+
+ @ApiModelProperty("鎻愪氦鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime writeTime;
+
+ @ApiModelProperty("瀹℃牳鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime examineTime;
+
+ @ApiModelProperty("鎵瑰噯鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime ratifyTime;
+
+
+ @ApiModelProperty(value = "鏄惁鏄�氳繃鐨勬姤鍛�, 0:鏈�氳繃, 1:閫氳繃")
+ private Integer isPass;
+
+}
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..52807bb
--- /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;
+ }
+}
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..3dfa2c8
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnPass.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;
+
+/**
+ * @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;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private String model;
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+ /**
+ * 妫�娴嬮」
+ */
+ @ApiModelProperty("妫�娴嬮」")
+ private String inspectionItem;
+ /**
+ * 妫�娴嬪瓙椤�
+ */
+ @ApiModelProperty("妫�娴嬪瓙椤�")
+ private String inspectionItemSubclass;
+ /**
+ * 妫�娴嬬粨鏋�
+ */
+ @ApiModelProperty("妫�娴嬬粨鏋�")
+ @TableField("`last_value`")
+ private String lastValue;
+ /**
+ * 澶勭悊鎰忚
+ */
+ @ApiModelProperty("澶勭悊鎰忚")
+ private String handleSuggestion;
+ /**
+ * 濮旀墭缂栧彿
+ */
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+ /**
+ * 鐢ㄦ埛鍚�
+ */
+ @ApiModelProperty("妫�楠屼汉")
+ 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/InsUnqualifiedHandler.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java
new file mode 100644
index 0000000..7004dce
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java
@@ -0,0 +1,131 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * 涓嶅悎鏍煎鐞嗚〃
+ * @TableName ins_unqualified_handler
+ */
+@TableName(value ="ins_unqualified_handler")
+@Data
+public class InsUnqualifiedHandler implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @ApiModelProperty(value = "涓婚敭id")
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 缂栧彿
+ */
+ @ApiModelProperty(value = "缂栧彿")
+ private String no;
+
+ /**
+ * 鏍囬
+ */
+ @ApiModelProperty(value = "鏍囬")
+ private String headline;
+
+ /**
+ * 鐗╂枡鍚嶇О
+ */
+ @ApiModelProperty(value = "鐗╂枡鍚嶇О")
+ private String materialName;
+
+ /**
+ * 鐢熶骇鎵规
+ */
+ @ApiModelProperty(value = "鐢熶骇鎵规")
+ private String productionBatch;
+
+ /**
+ * 鍒拌揣鏁伴噺
+ */
+ @ApiModelProperty(value = "鍒拌揣鏁伴噺")
+ private String cargoQuantity;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ @ApiModelProperty(value = "瑙勬牸鍨嬪彿")
+ private String specsModels;
+
+ /**
+ * 鎶ユ鏃ユ湡
+ */
+ @ApiModelProperty(value = "鎶ユ鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate inspectTime;
+
+ /**
+ * 鍙嶉浜�
+ */
+ @ApiModelProperty(value = "鍙嶉浜�")
+ private String feedbackUser;
+
+ /**
+ * 鍙嶉鏃ユ湡
+ */
+ @ApiModelProperty(value = "鍙嶉鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate feedbackTime;
+
+ /**
+ * 鍒嗙被
+ */
+ @ApiModelProperty(value = "")
+ private String classification;
+
+ /**
+ * 涓嶅悎鏍煎綊灞�
+ */
+ @ApiModelProperty(value = "涓嶅悎鏍煎綊灞�")
+ private String offGradeAscription;
+
+ /**
+ * 涓嶅悎鏍兼弿杩�
+ */
+ @ApiModelProperty(value = "涓嶅悎鏍兼弿杩�")
+ private String unqualifiedDesc;
+
+ /**
+ * 鍘熸潗鏂欐楠宨d
+ */
+ @ApiModelProperty(value = "鍘熸潗鏂欐楠宨d")
+ private Integer inventoryQuantityId;
+
+ /**
+ * 鍘熸潗鏂欐楠宨d
+ */
+ @ApiModelProperty(value = "璁㈠崟id")
+ private Integer insOrderId;
+
+ /**
+ * oa宸ヤ綔娴乮d
+ */
+ @ApiModelProperty(value = "oa宸ヤ綔娴乮d")
+ private Integer requestId;
+
+ /**
+ * oa瀹℃牳鐘舵��(1:寰呭鏍� 2:瀹℃牳涓� 3:閫氳繃 4:椹冲洖)
+ */
+ @ApiModelProperty(value = "oa瀹℃牳鐘舵��")
+ private Integer oaState;
+
+ /**
+ * oa闄勪欢url鍦板潃
+ */
+ @ApiModelProperty("oa闄勪欢url鍦板潃")
+ private String fileUrl;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandlerFile.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandlerFile.java
new file mode 100644
index 0000000..326ddb9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandlerFile.java
@@ -0,0 +1,79 @@
+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_unqualified_handler_file
+ */
+@TableName(value ="ins_unqualified_handler_file")
+@Data
+public class InsUnqualifiedHandlerFile implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @ApiModelProperty(value = "涓婚敭id")
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 涓嶅悎鏍煎鐞唅d
+ */
+ @ApiModelProperty(value = "涓嶅悎鏍煎鐞唅d")
+ private Long unqualifiedId;
+
+ /**
+ * 鏂囦欢绫诲瀷(1:鍥剧墖 2:鏂囦欢)
+ */
+ @ApiModelProperty(value = "鏂囦欢绫诲瀷(1:鍥剧墖 2:鏂囦欢)")
+ private Integer type;
+
+ /**
+ * 鏂囦欢涓婁紶璺緞
+ */
+ @ApiModelProperty(value = "鏂囦欢涓婁紶璺緞")
+ private String fileUrl;
+
+ /**
+ * 鏂囦欢鍚嶇О
+ */
+ @ApiModelProperty(value = "鏂囦欢鍚嶇О")
+ private String fileName;
+
+ /**
+ * 鍒涘缓浜�
+ */
+ @ApiModelProperty(value = "鍒涘缓浜�")
+ @TableField(fill= FieldFill.INSERT)
+ private Integer createUser;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill= FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ /**
+ * 鏇存柊浜�
+ */
+ @ApiModelProperty(value = "鏇存柊浜�")
+ @TableField(fill= FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ /**
+ * 鏇存柊鏃堕棿
+ */
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @TableField(fill= FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedRetestResult.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedRetestResult.java
new file mode 100644
index 0000000..7fce98b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedRetestResult.java
@@ -0,0 +1,51 @@
+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 zhuo
+ * @since 2024-09-03
+ */
+@TableName(value = "ins_unqualified_retest_result")
+@Data
+public class InsUnqualifiedRetestResult implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+ //澶栭敭锛氫笉鍚堟牸妫�楠岄」鐩甶d
+ private Integer retestProductId;
+ //妫�楠屽��
+ 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;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarter.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarter.java
new file mode 100644
index 0000000..c5ed9df
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarter.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;
+
+/**
+ * 瀛e害鎶芥牱璁″垝
+ *
+ * @author zhuo
+ * @since 2024-10-09
+ */
+@TableName(value = "spot_check_quarter")
+@Data
+public class SpotCheckQuarter implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer quarterId;
+
+ @ApiModelProperty("缂栧彿")
+ private String quarterNo;
+
+ @ApiModelProperty("鎶ュ憡鐢熸垚鍦板潃")
+ private String fileUrl;
+
+ @ApiModelProperty("瀛e害瀹屾垚鐘舵��")
+ private Integer quarterStatus;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("缂栧埗浜�")
+ private Integer writeUser;
+
+ @ApiModelProperty("浼氱浜�")
+ private String countersignUser;
+
+ @ApiModelProperty("瀹℃牳浜�")
+ private Integer examineUser;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private Integer ratifyUser;
+
+ @ApiModelProperty(value = "鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarterItem.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarterItem.java
new file mode 100644
index 0000000..bba9e4a
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckQuarterItem.java
@@ -0,0 +1,69 @@
+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.time.LocalDateTime;
+
+/**
+ * 瀛e害鎶芥牱璁″垝璇︽儏琛�
+ *
+ * @author makejava
+ * @since 2024-10-09
+ */
+@TableName(value ="spot_check_quarter_item")
+@Data
+public class SpotCheckQuarterItem {
+
+ @TableId(type = IdType.AUTO)
+ private Integer quarterItemId;
+
+ @ApiModelProperty("涓昏〃id")
+ private Integer quarterId;
+
+ @ApiModelProperty("浜у搧绫诲瀷")
+ private String productType;
+
+ @ApiModelProperty("浜у搧鍨嬪彿")
+ private String productModel;
+
+ @ApiModelProperty("璐d换浜�")
+ private String dutyUser;
+
+ @ApiModelProperty("鎶芥牱鏁伴噺")
+ private String spotCheckNumber;
+
+ @ApiModelProperty("鎶芥牱鏃堕棿")
+ private String spotCheckTime;
+
+ @ApiModelProperty("璇曟牱缁撹")
+ private String result;
+
+ @ApiModelProperty("鍙栨牱浜哄憳")
+ private String samplingUser;
+
+ @ApiModelProperty("澶囨敞")
+ private String itemRemark;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYear.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYear.java
new file mode 100644
index 0000000..8e535cb
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYear.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;
+
+/**
+ * 骞村害鎶芥牱璁″垝
+ *
+ * @author zhuo
+ * @since 2024-10-10
+ */
+@TableName(value ="spot_check_year")
+@Data
+public class SpotCheckYear implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer yearId;
+
+ @ApiModelProperty("鍚嶇О")
+ private String yearHead;
+
+ @ApiModelProperty("鎶ュ憡鐢熸垚鍦板潃")
+ private String fileUrl;
+
+ @ApiModelProperty("琛ㄦ牸鍐呭娉�")
+ private String tableRemark;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("缂栧埗浜�")
+ private Integer writeUser;
+
+ @ApiModelProperty("浼氱浜�")
+ private String countersignUser;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private Integer examineUser;
+
+ @ApiModelProperty("鎵瑰噯浜�")
+ private Integer ratifyUser;
+
+ @ApiModelProperty(value = "鍒涘缓浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYearItem.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYearItem.java
new file mode 100644
index 0000000..ca05992
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/SpotCheckYearItem.java
@@ -0,0 +1,84 @@
+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.time.LocalDateTime;
+
+/**
+ * 骞村害鎶芥牱璁″垝璇︽儏琛�
+ *
+ * @author zhuo
+ * @since 2024-10-10
+ */
+@TableName(value = "spot_check_year_item")
+@Data
+public class SpotCheckYearItem {
+
+ @TableId(type = IdType.AUTO)
+ private Integer yearItemId;
+ //涓昏〃id
+ @ApiModelProperty("涓昏〃id")
+ private Integer yearId;
+
+ @ApiModelProperty("绫诲埆")
+ private String yearType;
+
+ @ApiModelProperty("涓�鏈�")
+ private String january;
+
+ @ApiModelProperty("浜屾湀")
+ private String february;
+
+ @ApiModelProperty("涓夋湀")
+ private String march;
+
+ @ApiModelProperty("鍥涙湀")
+ private String april;
+
+ @ApiModelProperty("浜旀湀")
+ private String may;
+
+ @ApiModelProperty("鍏湀")
+ private String june;
+
+ @ApiModelProperty("涓冩湀")
+ private String july;
+
+ @ApiModelProperty("鍏湀")
+ private String august;
+
+ @ApiModelProperty("涔濇湀")
+ private String september;
+
+ @ApiModelProperty("鍗佹湀")
+ private String october;
+
+ @ApiModelProperty("鍗佷竴鏈�")
+ private String november;
+
+ @ApiModelProperty("鍗佷簩鏈�")
+ private String december;
+
+ @ApiModelProperty(value = "鍒涘缓浜篿d")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼浜篿d")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @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;
+
+}
+
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
index 07dd05d..ea5ac0a 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -3,9 +3,11 @@
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.basic.pojo.StandardProductList;
import com.ruoyi.inspect.pojo.InsOrder;
import com.ruoyi.inspect.pojo.InsUnqualifiedRetestProduct;
import com.ruoyi.inspect.dto.*;
+import com.ruoyi.inspect.vo.InsOrderPrintingVo;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
@@ -21,7 +23,7 @@
public interface InsOrderService extends IService<InsOrder> {
//鑾峰彇鍗曚綅妫�楠屼笅鍗曟暟鎹�
- Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto);
+ IPage<SampleOrderDto> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto);
//淇敼妫�楠屼笅鍗曟暟鎹�
@@ -35,9 +37,9 @@
Map<String, Object> getInsOrderAndSample(Integer id, String laboratory);
- Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto);
+ IPage<SampleProductDto2> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto);
- Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
+ IPage<CostStatisticsDto> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
Map<String, Object> costStatistics2(CostStatisticsDto costStatisticsDto);
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..f1e6f22
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductService.java
@@ -0,0 +1,51 @@
+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.InsProductBindingDto;
+import com.ruoyi.inspect.pojo.InsOrder;
+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(InsOrder insOrder);
+
+ Map<String,Object> selectNoProducts(Page page, InsProduct insProduct,Integer orderId,String ids);
+
+ void checkUpdate(Integer orderId,Integer state);
+
+
+ /**
+ * 鏍规嵁妫�楠岄」id鏌ヨ妫�楠岄」鏍戜俊鎭�
+ * @param productId
+ * @return
+ */
+ List<InsProduct> getProductTreeByProductId(Integer productId);
+
+
+ /**
+ * 鐗规畩妫�楠岄」缁戝畾
+ * @param insProductBindingDto
+ * @return
+ */
+ boolean bindingProductTreeByProductId(InsProductBindingDto insProductBindingDto);
+
+ /**
+ * 鍒犻櫎鐗规畩妫�楠岄」缁戝畾淇℃伅
+ * @param productId
+ * @return
+ */
+ boolean removeBindingProductTree(Integer productId);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java
new file mode 100644
index 0000000..c082507
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsReportService.java
@@ -0,0 +1,61 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.inspect.dto.ReportPageDto;
+import com.ruoyi.inspect.pojo.InsOrder;
+import com.ruoyi.inspect.pojo.InsReport;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.Map;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_report(妫�楠屾姤鍛�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-03-17 22:10:02
+*/
+public interface InsReportService extends IService<InsReport> {
+
+ Map<String,Object> pageInsReport(Page page, ReportPageDto reportPageDto);
+
+ void wordToPdf(String path,String sealUrl, boolean isRawMater);
+
+ int inReport(String url, Integer id);
+
+ int upReportUrl(Integer id);
+
+ //鎻愪氦
+ int writeReport(Integer id, Integer userId, Integer submitUserId);
+
+ //瀹℃牳
+ int examineReport(Integer id, Integer isExamine, String examineTell, Integer userId);
+
+ //鎵瑰噯
+ int ratifyReport(Integer id, Integer isRatify, String ratifyTell);
+
+ int wordInsertUrl(Map<String, Object> map, String url);
+
+ String downAll(String ids);
+
+ int upAll(MultipartFile file) throws IOException;
+
+ void isRawMaterial(InsOrder insOrder);
+
+ Long getUnqualifiedCount(InsOrder insOrder);
+
+ /**
+ * 绉诲簱鎿嶄綔
+ * @param one
+ * @return
+ */
+ String moveRawMaterial(IfsInventoryQuantity one);
+
+ /**
+ * 閫�鍥炲埌妫�楠屼换鍔�
+ * @param id
+ * @return
+ */
+ boolean sendBackTask(Integer id);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsSampleService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsSampleService.java
new file mode 100644
index 0000000..b87df95
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsSampleService.java
@@ -0,0 +1,13 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.pojo.InsSample;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample(妫�楠屾牱鍝�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+* @createDate 2024-03-14 17:14:57
+*/
+public interface InsSampleService extends IService<InsSample> {
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
index 9881b40..6869015 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
@@ -28,7 +28,7 @@
* @param ifsInventoryQuantity
* @return
*/
- Map<String,Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
+ IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
/**
* 鏌ヨ妫�楠屽��
@@ -36,7 +36,7 @@
* @param ifsInventoryQuantityDto
* @return
*/
- Map<String,Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto);
+ IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto);
int inspectionReport(List<Integer> ids);
@@ -63,7 +63,7 @@
*/
int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder);
- Map<String,Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity);
+ IPage<IfsInventoryQuantityCheckDto> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity);
/**
* 鏌ヨ宸叉楠�
@@ -71,7 +71,7 @@
* @param ifsInventoryQuantityDto
* @return
*/
- Map<String,Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
+ IPage<IfsInventoryQuantitySupplierDto> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
int delIfsInventory(Integer id);
@@ -138,7 +138,7 @@
* @param ifsInventoryQuantityDto
* @return
*/
- Map<String,Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
+ IPage<IfsInventoryQuantitySupplierDto> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
/**
* advancedGodown
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..f70a18d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -0,0 +1,1050 @@
+//package com.ruoyi.inspect.service.impl;
+//
+//import cn.hutool.core.collection.CollUtil;
+//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.column.LongestMatchColumnWidthStyleStrategy;
+//import com.alibaba.excel.write.style.column.SimpleColumnWidthStyleStrategy;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+//import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+//import com.ruoyi.basic.mapper.StandardProductListMapper;
+//import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+//import com.ruoyi.basic.pojo.StandardProductList;
+//import com.ruoyi.basic.pojo.StructureTestObject;
+//import com.ruoyi.common.constant.InsOrderTypeConstants;
+//import com.ruoyi.common.core.domain.entity.User;
+//import com.ruoyi.common.numgen.NumberGenerator;
+//import com.ruoyi.common.utils.*;
+//import com.ruoyi.framework.exception.ErrorException;
+//import com.ruoyi.inspect.dto.*;
+//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.service.InsSampleService;
+//import com.ruoyi.inspect.vo.InsOrderPrintingVo;
+//import com.ruoyi.inspect.vo.SampleDefectsFatherVo;
+//import com.ruoyi.system.mapper.CustomMapper;
+//import com.ruoyi.system.mapper.UserMapper;
+//import lombok.AllArgsConstructor;
+//import org.apache.commons.lang3.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.math.BigDecimal;
+//import java.net.URLEncoder;
+//import java.time.LocalDate;
+//import java.time.LocalDateTime;
+//import java.time.Month;
+//import java.time.format.DateTimeFormatter;
+//import java.util.*;
+//import java.util.concurrent.atomic.AtomicInteger;
+//import java.util.stream.Collectors;
+//
+///**
+// * @author gaoaoy
+// * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+// * @createDate 2024-03-12 16:17:55
+// */
+//@Service
+//@AllArgsConstructor
+//public class InsOrderServiceImpl extends ServiceImpl<InsOrderMapper, InsOrder>
+// implements InsOrderService {
+//
+// private InsOrderMapper insOrderMapper;
+// private InsSampleService insSampleService;
+// private InsSampleMapper insSampleMapper;
+// private InsProductService insProductService;
+// private InsProductMapper insProductMapper;
+// private InsProductUserMapper insProductUserMapper;
+// private InsSampleUserMapper insSampleUserMapper;
+// private InsOrderStateMapper insOrderStateMapper;
+// private UserMapper userMapper;
+// private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+// private CustomMapper customMapper;
+// private final NumberGenerator<InsOrder> numberGenerator;
+// private InsReportMapper insReportMapper;
+// private InsUnqualifiedRetestProductMapper insUnqualifiedRetestProductMapper;
+// private IfsApiUtils ifsApiUtils;
+// private SpotCheckQuarterItemMapper spotCheckQuarterItemMapper;
+// private StandardProductListMapper standardProductListMapper;
+//
+//
+//
+// //鑾峰彇妫�楠屼笅鍗曟暟鎹�
+// @Override
+// public IPage<SampleOrderDto> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto) {
+// //todo: 鍙湅鎴戝垽鏂叏閮�,涓汉,缁勭粐鐨勬潈闄�
+// String laboratory = null;
+// // 鍒ゆ柇鏄惁鏄叏閮�
+// String isOrderAll = null;
+// if (sampleOrderDto.getState() != null && sampleOrderDto.getState() == -2) {
+// isOrderAll = "1";
+// sampleOrderDto.setState(null);
+// }
+// IPage<SampleOrderDto> sampleOrderDtoIPage = insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
+// return insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
+// }
+//
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) {
+// InsOrder insOrder = new InsOrder();
+// insOrder.setId(orderId);
+// insOrder.setAppointed(StringUtils.isNotEmpty(appointed) ? LocalDate.parse(appointed) : null);
+// insOrder.setSendTime(LocalDateTime.now());
+// insOrderMapper.updateById(insOrder);
+// List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
+// List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
+// List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+// .in(InsProduct::getInsSampleId, ids)
+// .eq(InsProduct::getState, 1)
+// .select(InsProduct::getSonLaboratory).groupBy(InsProduct::getSonLaboratory));
+// for (InsProduct insProduct : insProducts) {
+// InsOrderState insOrderState = new InsOrderState();
+// insOrderState.setInsOrderId(orderId);
+// try {
+// insOrderState.setLaboratory(insProduct.getSonLaboratory());
+// } catch (NullPointerException e) {
+// throw new ErrorException("璇ユ楠屽崟鏈夋湭缁存姢瀹為獙瀹ょ殑妫�楠岄」鐩�");
+// }
+// insOrderState.setInsState(0);
+// insOrderStateMapper.insert(insOrderState);
+// }
+// if (userId != null) {
+// InsSampleUser insSampleUser = new InsSampleUser();
+// insSampleUser.setState(0);
+// insSampleUser.setUserId(userId);
+// insSampleUser.setInsSampleId(orderId);
+// insSampleUser.setSonLaboratory(sonLaboratory);
+// insSampleUserMapper.insert(insSampleUser);
+// }
+//
+// // 鍒ゆ柇璁㈠崟鏈夋病鏈夌粦瀹氭娊鏍疯鍒�
+// InsOrder order = insOrderMapper.selectById(orderId);
+// if (order.getQuarterItemId() != null) {
+// // 闇�瑕佹坊鍔犱笅鍙戞椂闂村埌鎶芥牱鏃堕棿, 鍙栨牱浜哄憳灏辨槸妫�娴嬩汉
+// SpotCheckQuarterItem spotCheckQuarterItem = spotCheckQuarterItemMapper.selectById(order.getQuarterItemId());
+// spotCheckQuarterItem.setSpotCheckTime(order.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+// User user = userMapper.selectById(userId);
+// spotCheckQuarterItem.setSamplingUser(user.getName());
+// spotCheckQuarterItemMapper.updateById(spotCheckQuarterItem);
+// }
+// return 1;
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing) {
+// // todo: 涓嬪崟鍒ゆ柇鎶芥牱璁″垝鐨勫敮涓�鎬�
+// if (insOrder.getQuarterItemId() != null) {
+// Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getQuarterItemId, insOrder.getQuarterItemId())
+// .notIn(InsOrder::getState, -1 ,2 ,3));
+// if (quarterItemCount > 0) {
+// throw new ErrorException("璇ユ娊鏍疯鍒掑凡琚粦瀹氳繃");
+// }
+// }
+//
+// insOrder.setState(0);
+//
+// LocalDate appointed = insOrder.getAppointed();
+//
+// insOrderMapper.insert(insOrder); // 涓昏〃
+//
+// list.forEach(a -> {
+// a.setId(null);
+// a.setInsOrderId(insOrder.getId());
+// insSampleMapper.insert(a);
+// if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
+// // 鍒ゆ柇鏄惁濉啓寰呮椤规暟閲�
+// if (a.getQuantity() != null) {
+// List<InsProduct> ip2 = new ArrayList<>();
+// for (Integer i = 1; i <= a.getQuantity(); i++) {
+// // 閲嶆柊鎷疯礉 鍒涘缓鏂板璞�
+// AtomicInteger atomicInteger = new AtomicInteger(i);
+// List<InsProduct> insProducts = a.getInsProduct().stream().map(insProduct -> {
+// insProduct.setRawMaterialTag(String.valueOf(atomicInteger.get()));
+// InsProduct product = new InsProduct();
+// BeanUtils.copyProperties(insProduct, product);
+// return product;
+// }).collect(Collectors.toList());
+//
+// ip2.addAll(insProducts);
+// }
+// addInsProductMethod(a.getId(), ip2);
+// } else {
+// addInsProductMethod(a.getId(), a.getInsProduct());
+// }
+// }
+// // 鍒ゆ柇鏄惁鏈夌數缂嗛厤缃�
+// if (ObjectUtil.isNotEmpty(a.getInsulating())) {
+// // 鍒ゆ柇鏄惁鏈夎緟鍔╃嚎鑺�
+// if (ObjectUtil.isNotEmpty(a.getAuxiliaryWireCore())) {
+// if (a.getAuxiliaryWireCore().getInsProduct().stream().filter(insProduct -> insProduct.getState() == 1).count() !=
+// a.getInsulating().getInsProduct().stream().filter(insProduct -> insProduct.getState() == 1).count()) {
+// throw new ErrorException("鐢电紗閰嶇疆杈呭姪绾胯姱妫�楠岄」鏁伴噺涓嶇粺涓�, 璇锋鏌�");
+// }
+// }
+// List<InsProduct> ip2 = new ArrayList<>();
+// for (String s : a.getInsulating().getNum()) {
+// // 閲嶆柊鎷疯礉 鍒涘缓鏂板璞�
+// List<InsProduct> insProducts = a.getInsulating().getInsProduct().stream().map(insProduct -> {
+// insProduct.setCableTag(s);
+// InsProduct product = new InsProduct();
+// BeanUtils.copyProperties(insProduct, product);
+// return product;
+// }).collect(Collectors.toList());
+// ip2.addAll(insProducts);
+// }
+// for (InsProduct product : ip2) {
+// product.setStandardMethodListId(a.getInsulating().getStandardMethodListId());
+// }
+// addInsProductMethod(a.getId(), ip2);
+// }
+// // 鍒ゆ柇鏄惁鏈夎緟鍔╃嚎鑺�
+// if (ObjectUtil.isNotEmpty(a.getAuxiliaryWireCore())) {
+// List<InsProduct> ip2 = new ArrayList<>();
+// for (String s : a.getAuxiliaryWireCore().getNum()) {
+// // 閲嶆柊鎷疯礉 鍒涘缓鏂板璞�
+// List<InsProduct> insProducts = a.getAuxiliaryWireCore().getInsProduct().stream().map(insProduct -> {
+// insProduct.setCableTag(s);
+// InsProduct product = new InsProduct();
+// BeanUtils.copyProperties(insProduct, product);
+// return product;
+// }).collect(Collectors.toList());
+// ip2.addAll(insProducts);
+// }
+// for (InsProduct product : ip2) {
+// product.setStandardMethodListId(a.getAuxiliaryWireCore().getStandardMethodListId());
+// }
+// addInsProductMethod(a.getId(), ip2);
+// }
+// // 瀛愭牱鍝侀厤缃�
+// 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());
+// insSampleMapper.insert(b);
+// if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
+// addInsProductMethod(b.getId(), b.getInsProduct());
+// }
+// }
+// }
+// }
+// });
+// //鏄惁涓哄師鏉愭枡涓嬪崟
+// if (insOrder.getTypeSource() != null && insOrder.getTypeSource().equals(1)) {
+// // 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
+// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
+// User user = userMapper.selectById(declareUserId);
+// if (user == null) {
+// throw new ErrorException("缂哄皯鎶ユ浜轰俊鎭�");
+// }
+// // 渚涘簲鍟嗗悕绉�
+// insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
+// insOrder.setProductionEn("");
+// // 濮旀墭浜哄悕绉�
+// insOrder.setPrepareUserId(user.getId());
+// insOrder.setPrepareUser(user.getName());
+// insOrder.setPrepareUserEn(user.getNameEn());
+// insOrder.setPhone(user.getPhone());
+// insOrder.setState(1);
+// Long count1 = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getIfsInventoryId, insOrder.getIfsInventoryId())
+// .ne(InsOrder::getState, -1)
+// .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY)
+// .ne(InsOrder::getId, insOrder.getId()));
+// // 鍒ゆ柇涔嬪墠鏄惁鏈夎繘鍘傛楠�
+// if (count1 == 0) {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 1)
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
+// }
+//
+// // 鍒ゆ柇缁撴潫鐘舵�佷慨鏀瑰悎鏍肩姸鎬�
+// if (ifsInventoryQuantity.getIsFinish().equals(0)) {
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())
+// .set(IfsInventoryQuantity::getInspectStatus, 0));
+// }
+//
+// upInsOrderOfState(insOrder);
+// upInsOrder(insOrder.getId(), null, appointed != null ? appointed.toString() : null, SecurityUtils.getUserId().intValue(), "鍘熸潗鏂�");
+//
+//
+// // 鏍规嵁闆朵欢鍙峰垽鏂槸鍚︽槸杈呮潗
+// boolean isRaw = false;
+// StructureTestObject productObject = insOrderMapper.selectProductByPartNo(ifsInventoryQuantity.getPartNo());
+// // 鏌ヨ浜у搧
+// if (productObject != null && StrUtil.isNotBlank(productObject.getObjectType()) && productObject.getObjectType().equals("1")) {
+// isRaw = true;
+// } else {
+// // 鏌ヨ瀵硅薄
+// StructureTestObject testObject = insOrderMapper.selectByPartNo(ifsInventoryQuantity.getPartNo());
+// if (testObject != null && StrUtil.isNotBlank(testObject.getObjectType()) && testObject.getObjectType().equals("1")) {
+// isRaw = true;
+// }
+// }
+//
+// if (isRaw) {
+// // 鑾峰彇褰撳墠瀛e害鐨勫紑濮嬫椂闂村拰缁撴潫鏃堕棿
+// LocalDateTime now = LocalDateTime.now();
+// // 鑾峰彇褰撳墠鏈堜唤
+// int month = now.getMonthValue();
+// // 纭畾褰撳墠瀛e害鐨勫紑濮嬫湀浠�
+// int startMonth = (month - 1) / 3 * 3 + 1;
+// // 鏋勯�犲搴︾殑寮�濮嬫椂闂�
+// LocalDateTime startOfQuarter = LocalDateTime.of(now.getYear(), Month.of(startMonth), 1, 0, 0);
+// // 璁$畻涓嬩竴涓搴︾殑寮�濮嬫椂闂�
+// LocalDateTime startOfNextQuarter = startOfQuarter.plusMonths(3);
+// // 璁$畻褰撳墠瀛e害鐨勭粨鏉熸椂闂�
+// LocalDateTime endOfQuarter = startOfNextQuarter.minusSeconds(1);
+//
+// // 鏍规嵁涓嬪崟鐨勮鏍煎瀷鍙峰垽鏂槸鍚︿负瀛e害棣栨鍑虹幇
+// Integer count = ifsInventoryQuantityMapper.selectIsFirst(insOrder.getPartDetail(),
+// ifsInventoryQuantity.getSupplierName(),
+// startOfNextQuarter,
+// endOfQuarter);
+//
+// if(count == 0) {
+// ifsInventoryQuantity.setIsFirst(1);
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())
+// .set(IfsInventoryQuantity::getIsFirst, 1));
+// }
+// }
+// }
+// return insOrder.getId();
+// }
+//
+// /**
+// * 娣诲姞妫�楠岄」
+// * @param sampleId
+// * @param productList
+// */
+// private void addInsProductMethod(Integer sampleId, List<InsProduct> productList) {
+// for (InsProduct product : productList) {
+// if (product.getState() == 1) {
+// product.setId(null);
+// product.setCreateTime(null);
+// product.setCreateUser(null);
+// product.setUpdateTime(null);
+// product.setUpdateUser(null);
+// product.setInsSampleId(sampleId);
+// if (product.getInspectionItemSubclass() == null) {
+// product.setInspectionItemSubclass("");
+// }
+// if (StringUtils.isBlank(product.getAsk()) || StringUtils.isBlank(product.getTell())) {
+// throw new ErrorException("鏈夋楠岄」鐨勮姹傚�兼垨瑕佹眰鎻忚堪涓虹┖, 璇峰厛鍘绘爣鍑嗗簱閰嶇疆瑕佹眰鍊兼垨瑕佹眰鎻忚堪");
+// }
+// insProductMapper.insert(product);
+// }
+// }
+// }
+//
+//
+// @Override
+// public Map<String, Object> getInsOrder(Integer id) {
+// Map<String, Object> map = new HashMap<>();
+// InsOrder insOrder = insOrderMapper.selectById(id);
+// List<SampleProductDto> list;
+// // 鍒ゆ柇鏄惁鏄繘鍘傛姤鍛婂厤妫�
+// if (insOrder.getIsExemption().equals(1)) {
+// list = insSampleMapper.selectExemptionByOrderId(id);
+// } else {
+// list = insSampleMapper.selectSampleProductListByOrderId2(id);
+// }
+// Map<String, Object> map1 = insSampleMapper.selectInsOrder(id);
+// map.put("insOrder", insOrder);
+// map.put("sampleProduct", list);
+// map.put("insOrderTemplate", map1);
+// return map;
+// }
+//
+// @Override
+// public int upInsOrderOfState(InsOrder insOrder) {
+// insOrder.setExamineTime(LocalDateTime.now());
+// if (insOrder.getState() == 1) {
+// //瀹℃牳閫氳繃鎵嶄細鐢熸垚濮旀墭缂栧彿
+// // todo: 妫�楠岀被鍨嬬紪鍙�
+// InsOrder order = this.getById(insOrder.getId());
+// String code = "";
+// switch (order.getOrderType()) {
+// case InsOrderTypeConstants.SPOT_CHECK:
+// code = "C";
+// break;
+// case InsOrderTypeConstants.CUSTOMER_ORDERED:
+// code = "W";
+// break;
+// case InsOrderTypeConstants.ENTER_THE_FACTORY:
+// case InsOrderTypeConstants.QUARTERLY_TEST:
+// code = "Y";
+// break;
+// }
+// // 鐢熸垚缂栧彿
+// String no = numberGenerator.generateNumberWithPrefix(3,
+// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
+// InsOrder::getEntrustCode);
+// // 鍒ゆ柇鏄惁鏄搴︽楠�, 鏄搴︽楠屽彇娑堝師鏉愭枡瀛e害妫�楠屼笅鍗�
+// if (InsOrderTypeConstants.QUARTERLY_TEST.equals(order.getOrderType())) {
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId())
+// .set(IfsInventoryQuantity::getIsQuarter, 0));
+//
+// // 鏌ヨ鏄惁鏈夎繃杩涘巶妫�楠�, 鏈夎幏鍙栭噷闈㈢殑缂栧彿
+// InsOrder order1 = insOrderMapper.selectOne(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId())
+// .ne(InsOrder::getState, -1)
+// .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY));
+// if (order1 != null) {
+// no = order1.getEntrustCode();
+// }
+// }
+//
+// int count = 1;
+// // 鏌ヨ鏍峰搧琛�
+// List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insOrder.getId()));
+// for (InsSample insSample : insSamples) {
+// if (StringUtils.isBlank(insSample.getSampleCode())) {
+// // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�
+// if (insSamples.size() != 1) {
+// insSample.setSampleCode(no + "-" + count);
+// count++;
+// } else {
+// insSample.setSampleCode(no);
+// }
+// }
+// }
+// insSampleService.updateBatchById(insSamples);
+//
+// insOrder.setEntrustCode(no);
+// }
+// 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);
+// 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);
+// //鏌ヨ鎵�鏈夎褰曟ā鐗堝幓閲�
+// List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(id, laboratory);
+// map.put("reportModel", list2);
+// return map;
+// }
+//
+// @Override
+// public IPage<SampleProductDto2> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto) {
+// IPage<SampleProductDto2> productDto2IPage = insOrderMapper.selectSampleAndProductByOrderId(page,
+// QueryWrappers.queryWrappers(sampleProductDto)
+// .orderByAsc("sample_code")
+// .orderByAsc("cable_tag")
+// .orderByAsc("sort"),
+// sampleProductDto.getId());
+// return productDto2IPage;
+// }
+//
+// @Override
+// public IPage<CostStatisticsDto> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
+// String dates = costStatisticsDto.getDates();
+// String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+// costStatisticsDto.setDates(null);
+//
+// //todo:浠呯湅鑷繁
+//
+// IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
+// 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);
+// return dtoIPage;
+// }
+//
+// @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);
+// List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
+// double totalPrice = costStatisticsDtos.stream()
+// .filter(dto -> dto.getPrice() != null) // 杩囨护鎺変环鏍间负 null 鐨勫璞�
+// .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum())
+// .sum();
+// map.put("total", totalPrice);
+// 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
+// public void export(CostStatisticsDto costStatisticsDto, HttpServletResponse response) throws IOException {
+// //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
+// String dates = costStatisticsDto.getDates();
+// String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
+// costStatisticsDto.setDates(null);
+// List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59"));
+// 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();
+// for (Map.Entry<String, List<CostStatisticsDto>> companyDataEntry : groupByCompany.entrySet()) {
+// String sheetName = companyDataEntry.getKey();
+// List<CostStatisticsDto> dataList = companyDataEntry.getValue();
+// WriteSheet mainSheet = EasyExcel.writerSheet(sheetName)
+// .head(CostStatisticsDto.class)
+// .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25))
+// .build();
+// excelWriter.write(dataList, mainSheet);
+// }
+// // 鍏抽棴娴�
+// excelWriter.finish();
+// } catch (IOException e) {
+// throw new RuntimeException("瀵煎嚭澶辫触");
+// }
+// }
+//
+// /**
+// * 鑾峰彇ifs搴撳瓨淇℃伅
+// * @param
+// * @return
+// */
+// @Override
+// public void getIfsOrder() {
+// HashMap<String, Object> map = new HashMap<>();
+// map.put("LOCATION_NO","1302");
+// map.put("STATE_DB","To be Inspected");
+// List<Map<String, Object>> inventory = ifsApiUtils.getInventory(JSONUtil.toJsonStr(map));
+// if(inventory.size() == 0) {
+// return;
+// }
+// // 杩涜淇濆瓨
+// for (Map<String, Object> map1 : inventory) {
+// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 鏃堕棿鏍煎紡鍖�
+// IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
+// ifsInventoryQuantity.setContract(map1.get("CONTRACT") == null ? "" : map1.get("CONTRACT").toString()); // 鍩�
+// ifsInventoryQuantity.setPartNo(map1.get("PART_NO") == null ? "" : map1.get("PART_NO").toString() ); // 闆朵欢鍙�
+// ifsInventoryQuantity.setPartDesc(map1.get("PART_DESC") == null ? "" : map1.get("PART_DESC").toString()); // 闆朵欢鎻忚堪
+// ifsInventoryQuantity.setOrderNo(map1.get("ORDER_NO") == null ? "" : map1.get("ORDER_NO").toString()); // 璁㈠崟鍙�
+// ifsInventoryQuantity.setLineNo(map1.get("LINE_NO") == null ? "" : map1.get("LINE_NO").toString()); // 琛屽彿
+// ifsInventoryQuantity.setReleaseNo(map1.get("RELEASE_NO") == null ? "" : map1.get("RELEASE_NO").toString()); // 涓嬭揪鍙�
+// ifsInventoryQuantity.setReceiptNo(Integer.parseInt(map1.get("RECEIPT_NO") == null ? "" : map1.get("RECEIPT_NO").toString())); // 鎺ユ敹鍙�
+// ifsInventoryQuantity.setStatus(map1.get("STATE") == null ? "" : map1.get("STATE").toString()); // 鐘舵�佹弿杩�
+// ifsInventoryQuantity.setStatusDb(map1.get("STATE_DB") == null ? "" : map1.get("STATE_DB").toString()); // 鐘舵��
+// if(map1.get("QTY_ARRIVED") != null) {
+// ifsInventoryQuantity.setQtyArrived(new BigDecimal(map1.get("QTY_ARRIVED").toString())); // 鎶佃揪鐨勯噰璐暟閲�
+// }
+// if(map1.get("QTY_INSPECTED") != null) {
+// ifsInventoryQuantity.setQtyInspected(new BigDecimal(map1.get("QTY_INSPECTED").toString())); // 宸叉楠岀殑璐拱鏁伴噺
+// }
+// if(map1.get("QTY_TO_INSPECT") != null) {
+// ifsInventoryQuantity.setQtyToInspect(new BigDecimal(map1.get("QTY_TO_INSPECT").toString())); // 瑕佹楠岀殑閲囪喘鏁伴噺
+// }
+// if(map1.get("INV_QTY_IN_STORE") != null) {
+// ifsInventoryQuantity.setInvQtyInStore(new BigDecimal(map1.get("INV_QTY_IN_STORE").toString())); // 鎶佃揪鐨勫簱瀛樻暟閲�
+// }
+// if(map1.get("PUR_QTY_IN_STORE") != null) {
+// ifsInventoryQuantity.setPurQtyInStore(new BigDecimal( map1.get("PUR_QTY_IN_STORE").toString())); // 鎶佃揪鐨勯噰璐暟閲�
+//
+// }
+// ifsInventoryQuantity.setSupplierId(map1.get("SUPPLIER_ID") == null ? "" : map1.get("SUPPLIER_ID").toString()); // 渚涘簲鍟咺D
+// ifsInventoryQuantity.setSupplierName(map1.get("SUPPLIER_NAME") == null ? "" : map1.get("SUPPLIER_NAME").toString()); // 渚涘簲鍟嗗悕绉�
+// ifsInventoryQuantity.setConfigurationId(map1.get("CONFIGURATION_ID") == null ? "" : map1.get("CONFIGURATION_ID").toString()); // 閰嶇疆鏍囪瘑
+// ifsInventoryQuantity.setLotBatchNo(map1.get("LOT_BATCH_NO") == null ? "" : map1.get("LOT_BATCH_NO").toString()); // 鎵规鍙�
+// ifsInventoryQuantity.setUpdateBatchNo(map1.get("LOT_BATCH_NO") == null ? "" : map1.get("LOT_BATCH_NO").toString()); // 鎵规鍙�
+// ifsInventoryQuantity.setWaivDevRejNo(map1.get("WAIV_DEV_REJ_NO") == null ? "" : map1.get("WAIV_DEV_REJ_NO").toString()); // WDR鍙�
+// ifsInventoryQuantity.setActivitySeq(map1.get("ACTIVITY_SEQ") == null ? null : Integer.parseInt(map1.get("ACTIVITY_SEQ").toString())); // 娲诲姩搴忓垪
+// ifsInventoryQuantity.setSerialNo(map1.get("SERIAL_NO") == null ? "" : map1.get("SERIAL_NO").toString()); // 搴忓垪鍙�
+// ifsInventoryQuantity.setLocationNo(map1.get("LOCATION_NO") == null ? "" : map1.get("LOCATION_NO").toString()); // 搴撲綅鍙�
+// ifsInventoryQuantity.setEngChgLevel(map1.get("ENG_CHG_LEVEL") == null ? "" : map1.get("ENG_CHG_LEVEL").toString()); // 鐗堟湰鍙�
+// ifsInventoryQuantity.setReceiver(map1.get("RECEIVER") == null ? "" : map1.get("RECEIVER").toString()); // 鎺ユ敹浜�
+// ifsInventoryQuantity.setReceiverName(map1.get("RECEIVER_NAME") == null ? "" : map1.get("RECEIVER_NAME").toString()); // 鎺ユ敹浜哄悕绉�
+// ifsInventoryQuantity.setBuyerCode(map1.get("BUYER_CODE") == null ? "" : map1.get("BUYER_CODE").toString()); // 閲囪喘鍛�
+// ifsInventoryQuantity.setBuyerName(map1.get("BUYER_NAME") == null ? "" : map1.get("BUYER_NAME").toString()); // 閲囪喘鍛樺悕绉�
+//
+// if(map1.get("ARRIVE_DATE") != null) {
+// ifsInventoryQuantity.setArriveDate(LocalDateTime.parse(map1.get("ARRIVE_DATE").toString(),dateTimeFormatter)); // 瀹為檯鍒拌揣鏃ユ湡
+// }
+// if(map1.get("DELIVERY_DATE") != null) {
+// ifsInventoryQuantity.setDeliveryDate(LocalDateTime.parse(map1.get("DELIVERY_DATE").toString(),dateTimeFormatter)); // 瀹為檯浜よ揣鏃ユ湡
+// }
+// if(map1.get("PRODUCT_DATE") != null) {
+// ifsInventoryQuantity.setProductDate(LocalDateTime.parse(map1.get("PRODUCT_DATE").toString(),dateTimeFormatter)); // 鐢熶骇鏃ユ湡
+//
+// }
+// if(map1.get("INVALID_DATE") != null) {
+// ifsInventoryQuantity.setInvalidDate(LocalDateTime.parse(map1.get("INVALID_DATE").toString(),dateTimeFormatter)); // 澶辨晥鏃ユ湡
+// }
+// if(map1.get("APPROVED_DATE") != null) {
+// ifsInventoryQuantity.setApprovedDate(LocalDateTime.parse(map1.get("APPROVED_DATE").toString(),dateTimeFormatter)); // 瀹℃壒鏃ユ湡
+// }
+// ifsInventoryQuantity.setReqCeater(map1.get("REQ_CEATER") == null ? "" : map1.get("REQ_CEATER").toString()); // 閲囪喘鐢宠鍒涘缓浜�
+// ifsInventoryQuantity.setReqCeaterName(map1.get("REQ_CEATER_NAME") == null ? "" : map1.get("REQ_CEATER_NAME").toString()); // 閲囪喘鐢宠鍒涘缓浜哄悕绉�
+// ifsInventoryQuantity.setLineRemarks(map1.get("LINE_REMARKS") == null ? "" : map1.get("LINE_REMARKS").toString()); // 閲囪喘璁㈠崟琛屽娉�
+// ifsInventoryQuantity.setBuyUnitMeas(map1.get("BUY_UNIT_MEAS") == null ? "" : map1.get("BUY_UNIT_MEAS").toString()); // 閲囪喘鍗曚綅
+// ifsInventoryQuantity.setReceiverDate(LocalDateTime.now()); // 鎺ユ敹鏃ユ湡
+// ifsInventoryQuantity.setIsSource(1);
+// ifsInventoryQuantity.setState(0);
+//
+// IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectOne(new LambdaQueryWrapper<IfsInventoryQuantity>()
+// .eq(IfsInventoryQuantity::getOrderNo, ifsInventoryQuantity.getOrderNo())
+// .eq(IfsInventoryQuantity::getLineNo, ifsInventoryQuantity.getLineNo())
+// .eq(IfsInventoryQuantity::getReleaseNo, ifsInventoryQuantity.getReleaseNo())
+// .eq(IfsInventoryQuantity::getReceiptNo, ifsInventoryQuantity.getReceiptNo())
+// .eq(IfsInventoryQuantity::getLocationNo, ifsInventoryQuantity.getLocationNo())
+// .eq(IfsInventoryQuantity::getLotBatchNo, ifsInventoryQuantity.getLotBatchNo())
+// .eq(IfsInventoryQuantity::getSerialNo, ifsInventoryQuantity.getSerialNo())
+// .eq(IfsInventoryQuantity::getEngChgLevel, ifsInventoryQuantity.getEngChgLevel())
+// .eq(IfsInventoryQuantity::getWaivDevRejNo, ifsInventoryQuantity.getWaivDevRejNo())
+// .eq(IfsInventoryQuantity::getActivitySeq, ifsInventoryQuantity.getActivitySeq())
+// );
+// if(Objects.isNull(one)) {
+//
+// ifsInventoryQuantity.setIsFirst(0);
+// // 鏌ヨ浜т笟閾炬娴嬫暟鎹�
+// String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(),
+// ifsInventoryQuantity.getLineNo(),
+// ifsInventoryQuantity.getReleaseNo());
+// ifsInventoryQuantity.setIndustryChain(industryChainAttrFields);
+//
+// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
+// }
+// }
+// }
+//
+// /**
+// * id鏄師鏉愭枡鐨刬d
+// *
+// * 淇敼璁㈠崟鍗曞彿
+// * @param insOrder
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public void updateEntrustCode(InsOrder insOrder) {
+// // 鍒ゆ柇褰撳墠璁㈠崟鏄惁鐢熸垚浜嗘姤鍛�, 鐢熸垚浜嗘姤鍛婁笉鑳戒慨鏀瑰崟鍙�
+// List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getIfsInventoryId, insOrder.getId())
+// .ne(InsOrder::getState, -1));
+// List<Integer> insOrderIds = insOrders.stream().map(InsOrder::getId).collect(Collectors.toList());
+// Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery()
+// .in(InsReport::getInsOrderId, insOrderIds));
+// if (count > 0 ) {
+// throw new ErrorException("褰撳墠璁㈠崟宸茬粡鐢熸垚浜嗘姤鍛婁笉鑳戒慨鏀圭紪鍙�");
+// }
+//
+//
+// Long count1 = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getEntrustCode, insOrder.getEntrustCode())
+// .ne(InsOrder::getIfsInventoryId, insOrder.getId())
+// .ne(InsOrder::getInsState, -1));
+// if (count1 > 0) {
+// throw new ErrorException("璇ョ紪鍙烽噸澶�");
+// }
+//
+// //淇敼鎶ュ憡鐨勭紪鍙�
+// insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getIfsInventoryId, insOrder.getId())
+// .set(InsOrder::getEntrustCode, insOrder.getEntrustCode()));
+//
+// // 淇敼鏍峰搧鐨勭紪鍙�
+// // 鏌ヨ鎵�鏈夌殑鏍峰搧
+// List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+// .in(InsSample::getInsOrderId, insOrderIds));
+// for (InsSample insSample : insSamples) {
+// String sampleCode = insSample.getSampleCode();
+// String updateCode = insOrder.getEntrustCode();
+// // 鏌ユ壘鏈�鍚庝竴涓�'-'鐨勪綅缃�
+// int lastDashIndex = sampleCode.lastIndexOf('-');
+// if (lastDashIndex != -1) {
+// int secondLastDashIndex = sampleCode.lastIndexOf('-', lastDashIndex - 1);
+// // 澶勭悊鏈�鍚庝竴涓�'-'鍓嶇殑閮ㄥ垎
+// if (secondLastDashIndex != -1) {
+// // 澶勭悊鏈�鍚庝竴涓�'-'鍙婁箣鍚庣殑閮ㄥ垎
+// String afterLastDash = sampleCode.substring(lastDashIndex);
+//
+// updateCode = updateCode + afterLastDash;
+// }
+// }
+// insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate()
+// .eq(InsSample::getId, insSample.getId())
+// .set(InsSample::getSampleCode, updateCode));
+//
+// }
+// }
+//
+// @Override
+// public List<InsUnqualifiedRetestProduct> getRetestResult(Integer insProductId) {
+// return insUnqualifiedRetestProductMapper.selectList(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery()
+// .eq(InsUnqualifiedRetestProduct::getInsProductId, insProductId));
+// }
+//
+// /**
+// * 淇敼閲囪喘璁㈠崟鎺ユ敹鐘舵��, 閬垮厤鍥炴粴
+// * @param id
+// */
+// @Transactional
+// public void updateIfsInventoryQuantity(Integer id) {
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .set(IfsInventoryQuantity::getIsRegister, 1)
+// .eq(IfsInventoryQuantity::getId, id));
+// }
+//
+// /**
+// * 鏂板閾滃崟涓濅笅鍗�
+// * @param list
+// * @param insOrder
+// * @return
+// */
+// @Override
+// public int addRawCopperOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) {
+// insOrder.setState(1);
+// insOrder.setTypeSource(1);
+//
+// LocalDate appointed = insOrder.getAppointed();
+//
+// insOrderMapper.insert(insOrder); // 涓昏〃
+//
+// list.forEach(a -> {
+// a.setId(null);
+// a.setInsOrderId(insOrder.getId());
+// insSampleMapper.insert(a);
+// if (ObjectUtil.isNotEmpty(a.getInsProduct())) {
+// // 鍒ゆ柇鏄惁濉啓寰呮椤规暟閲�
+// if (a.getQuantity() != null) {
+// List<InsProduct> ip2 = new ArrayList<>();
+// for (Integer i = 1; i <= a.getQuantity(); i++) {
+// // 閲嶆柊鎷疯礉 鍒涘缓鏂板璞�
+// AtomicInteger atomicInteger = new AtomicInteger(i);
+// List<InsProduct> insProducts = a.getInsProduct().stream().map(insProduct -> {
+// insProduct.setRawMaterialTag(String.valueOf(atomicInteger.get()));
+// InsProduct product = new InsProduct();
+// BeanUtils.copyProperties(insProduct, product);
+// return product;
+// }).collect(Collectors.toList());
+//
+// ip2.addAll(insProducts);
+// }
+// addInsProductMethod(a.getId(), ip2);
+// } else {
+// addInsProductMethod(a.getId(), a.getInsProduct());
+// }
+// }
+// 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());
+// insSampleMapper.insert(b);
+// if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
+// addInsProductMethod(b.getId(), b.getInsProduct());
+// }
+// }
+// }
+// }
+// });
+//
+// // 娣诲姞鍘熸潗鏂欎俊鎭�
+// IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
+// // 鍩烘湰淇℃伅
+// ifsInventoryQuantity.setIsSource(0);
+// ifsInventoryQuantity.setIsInspect(1);
+// ifsInventoryQuantity.setState(1);
+// ifsInventoryQuantity.setIsFinish(0);
+// ifsInventoryQuantity.setIsCopper(1);
+// ifsInventoryQuantity.setIsQuarter(0);
+// ifsInventoryQuantity.setInspectStatus(0);
+//
+// ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived());
+// ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas());
+// ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName());
+// ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo());
+// ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate());
+//
+// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
+//
+//
+// insOrder.setIfsInventoryId(ifsInventoryQuantity.getId());
+// insOrder.setState(1);
+//
+//
+// upInsOrderOfState(insOrder);
+// upInsOrder(insOrder.getId(), null, appointed != null ? appointed.toString() : null, SecurityUtils.getUserId().intValue(), "鍘熸潗鏂�");
+//
+// return insOrder.getId();
+// }
+//
+// /**
+// * 淇敼濮旀墭涓嬪崟缂栧彿
+// * @param insOrder
+// */
+// @Override
+// public void updateOrderEntrustCode(InsOrder insOrder) {
+// // 鍒ゆ柇褰撳墠璁㈠崟鏄惁鐢熸垚浜嗘姤鍛�, 鐢熸垚浜嗘姤鍛婁笉鑳戒慨鏀瑰崟鍙�
+// Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery()
+// .eq(InsReport::getInsOrderId, insOrder.getId()));
+// if (count > 0 ) {
+// throw new ErrorException("褰撳墠璁㈠崟宸茬粡鐢熸垚浜嗘姤鍛婁笉鑳戒慨鏀圭紪鍙�");
+// }
+//
+// Long count1 = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getEntrustCode, insOrder.getEntrustCode()));
+// if (count1 > 0) {
+// throw new ErrorException("璇ョ紪鍙烽噸澶�");
+// }
+//
+// //淇敼鎶ュ憡鐨勭紪鍙�
+// insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getId, insOrder.getId())
+// .set(InsOrder::getEntrustCode, insOrder.getEntrustCode()));
+//
+// // 淇敼鏍峰搧鐨勭紪鍙�
+// // 鏌ヨ鎵�鏈夌殑鏍峰搧
+// List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insOrder.getId()));
+// for (InsSample insSample : insSamples) {
+// String sampleCode = insSample.getSampleCode();
+// String updateCode = insOrder.getEntrustCode();
+// // 鏌ユ壘鏈�鍚庝竴涓�'-'鐨勪綅缃�
+// int lastDashIndex = sampleCode.lastIndexOf('-');
+// if (lastDashIndex != -1) {
+// int secondLastDashIndex = sampleCode.lastIndexOf('-', lastDashIndex - 1);
+// // 澶勭悊鏈�鍚庝竴涓�'-'鍓嶇殑閮ㄥ垎
+// if (secondLastDashIndex != -1) {
+// // 澶勭悊鏈�鍚庝竴涓�'-'鍙婁箣鍚庣殑閮ㄥ垎
+// String afterLastDash = sampleCode.substring(lastDashIndex);
+//
+// updateCode = updateCode + afterLastDash;
+// }
+// }
+// insSampleMapper.update(null, Wrappers.<InsSample>lambdaUpdate()
+// .eq(InsSample::getId, insSample.getId())
+// .set(InsSample::getSampleCode, updateCode));
+//
+// }
+// }
+//
+// /**
+// * 淇敼妫�楠屼笅鍗曞唴瀹�
+// * @param insOrderUpdateDto
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public Boolean updateInsOrder(InsOrderUpdateDto insOrderUpdateDto) {
+// // 淇敼璁㈠崟
+// insOrderUpdateDto.getInsOrder().setState(0);
+// insOrderUpdateDto.getInsOrder().setTell("");
+// insOrderMapper.updateById(insOrderUpdateDto.getInsOrder());
+//
+// // 淇敼妫�楠岄」
+// for (SampleProductDto sampleProductDto : insOrderUpdateDto.getSampleProduct()) {
+// insProductService.updateBatchById(sampleProductDto.getInsProduct());
+// }
+//
+// return true;
+// }
+//
+// /**
+// * 鎴愬搧鏍囩鎵撳嵃
+// * @param ids
+// * @return
+// */
+// @Override
+// public List<InsOrderPrintingVo> labelOrderPrinting(List<Integer> ids) {
+// return insOrderMapper.labelOrderPrinting(ids);
+// }
+//
+// /**
+// * 鏍规嵁鏍峰搧id鏌ヨ妫�楠岄」鏍�
+// * @param insSampleId
+// * @return
+// */
+// @Override
+// public List<StandardProductList> getProductTreeBySampleId(Integer insSampleId) {
+// // 鏌ヨ绗竴涓楠岄」鑾峰彇妫�楠岄」鏍�
+// InsProduct insProduct = insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery()
+// .eq(InsProduct::getInsSampleId, insSampleId)
+// .last("limit 1"));
+// String tree = insProduct.getFactory() + " - " +
+// insProduct.getLaboratory() + " - " +
+// insProduct.getSampleType() + " - " +
+// insProduct.getSample() + " - " +
+// insProduct.getModel();
+// // 鏌ヨ鏍囧噯鏍�
+// List<StandardProductList> standardProductLists = standardProductListMapper.selectList(Wrappers.<StandardProductList>lambdaQuery()
+// .eq(StandardProductList::getStandardMethodListId, insProduct.getStandardMethodListId())
+// .eq(StandardProductList::getTree, tree));
+// for (StandardProductList standardProductList : standardProductLists) {
+// standardProductList.setId(null);
+// }
+//
+// return standardProductLists;
+// }
+//
+// /**
+// * 娣诲姞閬楁紡鐨勬楠岄」
+// * @param omitOrderProductDto
+// * @return
+// */
+// @Override
+// public boolean addOmitOrderProduct(OmitOrderProductDto omitOrderProductDto) {
+// if (omitOrderProductDto.getInsSampleId() == null) {
+// throw new ErrorException("缂哄皯鏍峰搧Id");
+// }
+// for (InsProduct product : omitOrderProductDto.getInsProductBindingList()) {
+// if (product.getState() == 1) {
+// product.setId(null);
+// product.setCreateTime(null);
+// product.setCreateUser(null);
+// product.setUpdateTime(null);
+// product.setUpdateUser(null);
+// product.setInsSampleId(omitOrderProductDto.getInsSampleId());
+// if (StringUtils.isBlank(product.getCableTag())) {
+// product.setCableTag(null);
+// }
+// if (product.getInspectionItemSubclass() == null) {
+// product.setInspectionItemSubclass("");
+// }
+// if (StringUtils.isBlank(product.getAsk()) || StringUtils.isBlank(product.getTell())) {
+// throw new ErrorException("鏈夋楠岄」鐨勮姹傚�兼垨瑕佹眰鎻忚堪涓虹┖, 璇峰~鍐欒姹傚�兼垨瑕佹眰鎻忚堪");
+// }
+// insProductMapper.insert(product);
+// }
+// }
+//
+// return true;
+// }
+//
+// /**
+// * 鎴愬搧妫�楠屽崟瀵煎嚭
+// * @param sampleOrderDto
+// * @param response
+// */
+// @Override
+// public void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response) {
+// //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
+// //todo:浠呯湅鎴戣幏鍙栧綋鍓嶄汉鎵�灞炲疄楠屽id
+// String laboratory = null;
+// // 鍒ゆ柇鏄惁鏄叏閮�
+// String isOrderAll = null;
+// if (sampleOrderDto.getState() != null && sampleOrderDto.getState() == -2) {
+// isOrderAll = "1";
+// sampleOrderDto.setState(null);
+// }
+// List<SampleOrderDto> sampleOrderDtoList = insOrderMapper.rawAllInsOrderExport(QueryWrappers.queryWrappers(sampleOrderDto), laboratory, isOrderAll);
+//
+// // 鍒ゆ柇鏄惁鏄笉鍚堟牸, 涓嶅悎鏍兼煡璇笉鍚堟牸椤�
+// for (SampleOrderDto orderDto : sampleOrderDtoList) {
+// if (orderDto.getInsResult() != null && orderDto.getInsResult() == 0){
+// // 鏌ヨ涓嶅悎鏍奸」
+// List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(orderDto.getId());
+// orderDto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ","));
+// }
+// orderDto.setCreateTimeString(orderDto.getCreateTime() == null ? "" : orderDto.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+//
+// }
+//
+// response.setContentType("application/vnd.ms-excel");
+// response.setCharacterEncoding("UTF-8");
+// try {
+// // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴
+// String fileName = URLEncoder.encode("濮旀墭妫�娴嬩俊鎭鍑�", "UTF-8");
+// response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+// //鏂板缓ExcelWriter
+// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+// //鑾峰彇sheet0瀵硅薄
+// WriteSheet mainSheet = EasyExcel.writerSheet(0, "濮旀墭妫�娴嬩俊鎭鍑�").head(SampleOrderDto.class).build();
+//
+// //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶�
+// excelWriter.write(sampleOrderDtoList, mainSheet);
+// //鍏抽棴娴�
+// excelWriter.finish();
+// } catch (IOException e) {
+// throw new RuntimeException("瀵煎嚭澶辫触");
+// }
+// }
+//
+//}
+//
+//
+//
+//
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
new file mode 100644
index 0000000..18a9488
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -0,0 +1,1174 @@
+//package com.ruoyi.inspect.service.impl;
+//
+//import cn.hutool.core.util.StrUtil;
+//import cn.hutool.json.JSONUtil;
+//import com.aspose.words.*;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//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.deepoove.poi.XWPFTemplate;
+//import com.deepoove.poi.data.Pictures;
+//import com.itextpdf.text.BadElementException;
+//import com.itextpdf.text.DocumentException;
+//import com.itextpdf.text.pdf.PdfContentByte;
+//import com.itextpdf.text.pdf.PdfReader;
+//import com.itextpdf.text.pdf.PdfStamper;
+//import com.yuanchu.mom.common.GetLook;
+//import com.yuanchu.mom.common.InsOrderTypeConstants;
+//import com.yuanchu.mom.common.PrintChina;
+//import com.yuanchu.mom.dto.ReportPageDto;
+//import com.yuanchu.mom.exception.ErrorException;
+//import com.yuanchu.mom.mapper.*;
+//import com.yuanchu.mom.pojo.*;
+//import com.yuanchu.mom.properties.WechatProperty;
+//import com.yuanchu.mom.service.InformationNotificationService;
+//import com.yuanchu.mom.service.InsOrderService;
+//import com.yuanchu.mom.service.InsReportService;
+//import com.yuanchu.mom.utils.DateImageUtil;
+//import com.yuanchu.mom.utils.IfsApiUtils;
+//import com.yuanchu.mom.utils.QueryWrappers;
+//import com.yuanchu.mom.utils.WxCpUtils;
+//import com.yuanchu.mom.vo.Result;
+//import org.apache.poi.xwpf.usermodel.*;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//import org.springframework.web.multipart.MultipartFile;
+//
+//import javax.annotation.Resource;
+//import javax.imageio.ImageIO;
+//import java.awt.image.BufferedImage;
+//import java.io.*;
+//import java.nio.file.Files;
+//import java.nio.file.Path;
+//import java.nio.file.Paths;
+//import java.nio.file.StandardCopyOption;
+//import java.time.LocalDateTime;
+//import java.time.format.DateTimeFormatter;
+//import java.util.*;
+//import java.util.stream.Collectors;
+//import java.util.zip.ZipEntry;
+//import java.util.zip.ZipFile;
+//import java.util.zip.ZipOutputStream;
+//
+///**
+// * @author Administrator
+// * @description 閽堝琛ㄣ�恑ns_report(妫�楠屾姤鍛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+// * @createDate 2024-03-17 22:10:02
+// */
+//@Service
+//public class InsReportServiceImpl extends ServiceImpl<InsReportMapper, InsReport>
+// implements InsReportService {
+//
+// @Resource
+// private GetLook getLook;
+// @Resource
+// private UserMapper userMapper;
+// @Resource
+// private InsReportMapper insReportMapper;
+// @Resource
+// private InsOrderStateMapper insOrderStateMapper;
+// @Resource
+// private InsProductMapper insProductMapper;
+// @Resource
+// private InformationNotificationService informationNotificationService;
+// @Value("${wordUrl}")
+// private String wordUrl;
+// @Value("${file.path}")
+// private String imgUrl;
+// @Value("${file.licenseUrl}")
+// private String licenseUrl;
+// @Resource
+// private InsOrderMapper insOrderMapper;
+// @Resource
+// private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+// @Resource
+// private InsUnqualifiedHandlerMapper insUnqualifiedHandlerMapper;
+// @Resource
+// private InsSampleMapper insSampleMapper;
+// @Resource
+// private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+// @Resource
+// private InsOrderService insOrderService;
+// @Resource
+// private WechatProperty wechatProperty;
+// @Resource
+// private InsUnqualifiedRetestProductMapper insUnqualifiedRetestProductMapper;
+// @Resource
+// private IfsApiUtils ifsApiUtils;
+// @Resource
+// private InsSampleUserMapper insSampleUserMapper;
+//
+//
+// @Override
+// public Map<String, Object> pageInsReport(Page page, ReportPageDto reportPageDto) {
+// Map<String, Object> map = new HashMap<>();
+// map.put("head", PrintChina.printChina(ReportPageDto.class));
+// Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("pageInsReport");
+// User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉
+// //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
+// String departLimsId = user.getDepartLimsId();
+// String laboratory = null;
+//// if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) {
+//// String[] split = departLimsId.split(",");
+//// //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
+//// String departLims = insOrderMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
+//// if (departLims.contains("瀹為獙瀹�")) {
+//// laboratory = departLims;
+//// }
+//// }
+//
+// Integer createOrderUser = null;
+// if (map1.get("look") == 1) {
+// //涓汉
+// createOrderUser = map1.get("userId");
+// }
+// String queryStatus = reportPageDto.getQueryStatus();
+// reportPageDto.setQueryStatus(null);
+//
+// map.put("body", insReportMapper.pageInsReport(page,
+// QueryWrappers.queryWrappers(reportPageDto),
+// laboratory,
+// map1.get("userId"),
+// queryStatus,
+// createOrderUser));
+// return map;
+// }
+//
+// @Override
+// public int inReport(String url, Integer id) {
+// InsReport insReport = new InsReport();
+// insReport.setId(id);
+// insReport.setUrlS(url);
+// // 杩樺師pdf
+// String tempUrlPdf = wordToPdfTemp(insReport.getUrlS().replace("/word", wordUrl));
+// insReport.setTempUrlPdf("/word/" + tempUrlPdf);
+// return insReportMapper.updateById(insReport);
+// }
+//
+// @Override
+// public int upReportUrl(Integer id) {
+// InsReport report = insReportMapper.selectById(id);
+// // 杩樺師pdf
+// String tempUrlPdf = wordToPdfTemp(report.getUrl().replace("/word", wordUrl));
+//
+// return insReportMapper.update(null, Wrappers.<InsReport>lambdaUpdate()
+// .eq(InsReport::getId, id)
+// .set(InsReport::getUrlS, null)
+// .set(InsReport::getTempUrlPdf, "/word/" + tempUrlPdf));
+// }
+//
+// //鎻愪氦
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int writeReport(Integer id, Integer userId, Integer submitUserId) {
+// submitUserId = submitUserId == null ? getLook.selectPowerByMethodAndUserId(null).get("userId") : submitUserId;
+// InsReport insReport = insReportMapper.selectById(id);
+// insReport.setId(id);
+// insReport.setState(1);
+// insReport.setWriteUserId(submitUserId);//鎻愪氦浜�
+// if (userId == null) {
+// throw new ErrorException("缂哄皯瀹℃牳浜�");
+// }
+// insReport.setExamineUserId(userId);//瀹℃牳浜�
+// insReport.setWriteTime(LocalDateTime.now());//鎻愪氦鏃堕棿
+// //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃
+// String signatureUrl;
+// try {
+// signatureUrl = userMapper.selectById(insReport.getWriteUserId()).getSignatureUrl();
+// } catch (Exception e) {
+// throw new ErrorException("鎵句笉鍒扮紪鍒朵汉鐨勭鍚�");
+// }
+// if (ObjectUtils.isEmpty(signatureUrl) || signatureUrl.equals("")) {
+// throw new ErrorException("鎵句笉鍒版楠屼汉鐨勭鍚�");
+// }
+//
+// Integer insOrderId = insReportMapper.selectById(id).getInsOrderId();
+// InsOrder order = insOrderMapper.selectById(insOrderId);
+// boolean isRawMater = order.getTypeSource() != null && order.getTypeSource().equals(1);
+//
+// //鍙戦�佹秷鎭�
+// InformationNotification info = new InformationNotification();
+// info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
+// info.setMessageType("3");
+// info.setTheme("瀹℃牳閫氱煡");
+// info.setContent("鎮ㄦ湁涓�鏉℃姤鍛婄紪鍒跺緟瀹℃牳娑堟伅, 缂栧彿:" + insReport.getCode());
+// info.setSenderId(submitUserId); //鍙戦�佷汉
+// info.setConsigneeId(userId); //鏀朵欢浜�
+// info.setViewStatus(false);
+// info.setJumpPath("b1-report-preparation");
+// informationNotificationService.addInformationNotification(info);
+// //绯荤粺鐢熸垚鎶ュ憡鍦板潃
+// String url = insReport.getUrl();
+// //鎵嬪姩涓婁紶鎶ュ憡鍦板潃
+// String urlS = insReport.getUrlS();
+//
+// // 鍒ゆ柇鏄惁鏄師鏉愭枡 闇�瑕佹浛鎹�****鎴愪緵搴斿晢
+// IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectOne(new LambdaQueryWrapper<IfsInventoryQuantity>()
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
+// if (one != null) {
+// if (isRawMater && order.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
+// changeText(new HashMap<String, String>() {{
+// put("**********", one.getSupplierName());
+// }}, (StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl));
+// }
+// }
+//
+// wordInsertUrl(new HashMap<String, Object>() {{
+// put("writeUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create());
+// put("writeDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(null)).create());
+// put("insUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create());
+// }}, (StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl));
+//
+// // 淇敼涓存椂pdf
+// String tempUrlPdf = wordToPdfTemp((StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl));
+// insReport.setTempUrlPdf("/word/" + tempUrlPdf);
+//
+// insReportMapper.updateById(insReport);
+//
+// // 娓呯┖瀹℃牳鏃堕棿, 瀹℃牳鐘舵��
+// insReportMapper.update(null, Wrappers.<InsReport>lambdaUpdate()
+// .eq(InsReport::getId, insReport.getId())
+// .set(InsReport::getRatifyTime, null)
+// .set(InsReport::getIsRatify, null)
+// .set(InsReport::getExamineTime, null)
+// .set(InsReport::getIsExamine, null));
+//
+// return 1;
+// }
+//
+// //瀹℃牳
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int examineReport(Integer id, Integer isExamine, String examineTell, Integer userId) {
+// InsReport insReport = insReportMapper.selectById(id);
+// insReport.setIsExamine(isExamine);
+// if (ObjectUtils.isNotEmpty(examineTell)) {
+// insReport.setExamineTell(examineTell);
+// }
+//
+// // 妫�楠屼汉
+// String userName = insProductMapper.selectUserById(insReport.getWriteUserId()).get("name");
+// String userAccount = insProductMapper.selectUserById(insReport.getWriteUserId()).get("account");
+//
+// // 瀹℃牳浜�
+// Integer checkUserId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+// String checkUserName = insProductMapper.selectUserById(checkUserId).get("name");
+//
+// insReport.setExamineTime(LocalDateTime.now());//瀹℃牳鏃堕棿
+// if (isExamine == 0) {
+// // 鍙戦�佷紒涓氬井淇¢�氱煡(瀹℃牳閫�鍥�)
+// threadPoolTaskExecutor.execute(() -> {
+// // 鏌ヨ璁㈠崟
+// InsOrder order = insOrderMapper.selectById(insReport.getInsOrderId());
+// InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insReport.getInsOrderId())
+// .last("limit 1"));
+// // 鏌ヨ鍘熸潗鏂�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+//
+// String message = "";
+// message += "鎶ュ憡缂栧埗瀹℃牳閫�鍥為�氱煡";
+// message += "\n瀹℃牳浜�: " + checkUserName;
+// message += "\n濮旀墭缂栧彿: " + order.getEntrustCode();
+// message += "\n鏍峰搧鍚嶇О: " + insSample.getModel();
+// message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail();
+// if (ifsInventoryQuantity != null) {
+// message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo();
+// }
+// message += "\n閫�鍥炲師鍥�: " + examineTell;
+// //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳
+// try {
+// WxCpUtils.inform(userAccount, message, null);
+// } catch (Exception e) {
+// throw new RuntimeException(e);
+// }
+// });
+//
+// //濡傛灉瀹℃牳涓嶉�氳繃
+// insReport.setState(0);//鎻愪氦鐘舵�佹敼涓哄緟鎻愪氦
+// return insReportMapper.updateById(insReport);
+// } else {
+// if (userId == null) {
+// throw new ErrorException("缂哄皯鎵瑰噯浜�");
+// }
+// }
+// insReport.setRatifyUserId(userId);//鎵瑰噯浜�
+// //鑾峰彇瀹℃牳浜虹殑绛惧悕鍦板潃
+// String signatureUrl;
+// try {
+// signatureUrl = userMapper.selectById(insReport.getExamineUserId()).getSignatureUrl();
+// } catch (Exception e) {
+// throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�");
+// }
+// if (StringUtils.isBlank(signatureUrl)) {
+// throw new ErrorException("鎵句笉鍒板鏍镐汉鐨勭鍚�");
+// }
+//
+// // 鎵瑰噯浜�
+// String sendUserAccount = insProductMapper.selectUserById(userId).get("account");
+//
+// //鍙戦�佹秷鎭�
+// //褰撳墠鐢ㄦ埛
+// Integer currentUser = getLook.selectPowerByMethodAndUserId(null).get("userId");
+// InformationNotification info = new InformationNotification();
+// info.setCreateUser(insProductMapper.selectUserById(userId).get("name"));
+// info.setMessageType("3");
+// info.setTheme("鎵瑰噯閫氱煡");
+// info.setContent("鎮ㄦ湁涓�鏉℃姤鍛婄紪鍒跺緟鎵瑰噯娑堟伅, 缂栧彿:" + insReport.getCode());
+// info.setSenderId(currentUser); //鍙戦�佷汉
+// info.setConsigneeId(userId); //鏀朵欢浜�
+// info.setViewStatus(false);
+// info.setJumpPath("b1-report-preparation");
+// informationNotificationService.addInformationNotification(info);
+// //绯荤粺鐢熸垚鎶ュ憡鍦板潃
+// String url = insReport.getUrl();
+// //鎵嬪姩涓婁紶鎶ュ憡鍦板潃
+// String urlS = insReport.getUrlS();
+// wordInsertUrl(new HashMap<String, Object>() {{
+// put("examineUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create());
+// put("examineDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(null)).create());
+// }}, (StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl));
+//
+// // 淇敼涓存椂pdf
+// String tempUrlPdf = wordToPdfTemp((StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl));
+// insReport.setTempUrlPdf("/word/" + tempUrlPdf);
+//
+// // 鍙戦�佷紒涓氬井淇¢�氱煡(閫氱煡鎵瑰噯浜哄鎵�)
+// threadPoolTaskExecutor.execute(() -> {
+// // 鏌ヨ璁㈠崟
+// InsOrder order = insOrderMapper.selectById(insReport.getInsOrderId());
+// InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insReport.getInsOrderId())
+// .last("limit 1"));
+// // 鏌ヨ鍘熸潗鏂�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+//
+// String message = "";
+// message += "鎶ュ憡缂栧埗鎵瑰噯閫氱煡";
+// message += "\n妫�楠屼汉: " + userName;
+// message += "\n澶嶆牳浜�: " + checkUserName;
+// message += "\n濮旀墭缂栧彿: " + order.getEntrustCode();
+// message += "\n鏍峰搧鍚嶇О: " + insSample.getModel();
+// message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail();
+// if (ifsInventoryQuantity != null) {
+// message += "\n鐢熶骇鍘傚: " + ifsInventoryQuantity.getSupplierName();
+// message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo();
+// }
+// //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳
+// try {
+// WxCpUtils.inform(sendUserAccount, message, null);
+// } catch (Exception e) {
+// throw new RuntimeException(e);
+// }
+// });
+// insReportMapper.updateById(insReport);
+//
+// // 娓呯┖鎵瑰噯澶囨敞, 鎵瑰噯鏃堕棿, 鎵瑰噯鐘舵��
+// insReportMapper.update(null, Wrappers.<InsReport>lambdaUpdate()
+// .eq(InsReport::getId, insReport.getId())
+// .set(InsReport::getExamineTell, null)
+// .set(InsReport::getRatifyTime, null)
+// .set(InsReport::getIsRatify, null));
+// return 1;
+// }
+//
+// //鎵瑰噯
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int ratifyReport(Integer id, Integer isRatify, String ratifyTell) {
+// InsReport insReport = insReportMapper.selectById(id);
+// insReport.setIsRatify(isRatify);
+// if (ObjectUtils.isNotEmpty(ratifyTell)) {
+// insReport.setRatifyTell(ratifyTell);
+// }
+// insReport.setRatifyTime(LocalDateTime.now());//鎵瑰噯鏃堕棿
+// if (isRatify == 0) {
+//
+// // 鎵瑰噯浜�
+// Integer ratifyUserId = getLook.selectPowerByMethodAndUserId(null).get("userId");
+// String ratifyUserName = insProductMapper.selectUserById(ratifyUserId).get("name");
+//
+// // 鍙戦�佷汉(瀹℃牳浜�)(妫�楠屼汉)
+// // 妫�楠屼汉
+// String userAccount = insProductMapper.selectUserById(insReport.getWriteUserId()).get("account");
+// // 瀹℃牳浜�
+// String checkUserAccount = insProductMapper.selectUserById(insReport.getExamineUserId()).get("account");
+//
+//
+// // 鍙戦�佷紒涓氬井淇¢�氱煡(鎵瑰噯閫�鍥�)
+// threadPoolTaskExecutor.execute(() -> {
+// // 鏌ヨ璁㈠崟
+// InsOrder order = insOrderMapper.selectById(insReport.getInsOrderId());
+// InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insReport.getInsOrderId())
+// .last("limit 1"));
+// // 鏌ヨ鍘熸潗鏂�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+//
+// String message = "";
+// message += "鎶ュ憡缂栧埗鎵瑰噯閫�鍥為�氱煡";
+// message += "\n鎵瑰噯浜�: " + ratifyUserName;
+// message += "\n濮旀墭缂栧彿: " + order.getEntrustCode();
+// message += "\n鏍峰搧鍚嶇О: " + insSample.getModel();
+// message += "\n瑙勬牸鍨嬪彿: " + order.getPartDetail();
+// if (ifsInventoryQuantity != null) {
+// message += "\n鎵规鍙�: " + ifsInventoryQuantity.getUpdateBatchNo();
+// }
+// message += "\n閫�鍥炲師鍥�: " + ratifyTell;
+// //鍙戦�佷紒涓氬井淇℃秷鎭�氱煡 鎻愪氦澶嶆牳
+// try {
+// // 瀹℃壒浜�
+// WxCpUtils.inform(checkUserAccount, message, null);
+//
+// // 妫�楠屼汉
+// WxCpUtils.inform(userAccount, message, null);
+// } catch (Exception e) {
+// throw new RuntimeException(e);
+// }
+// });
+//
+// //濡傛灉鎵瑰噯涓嶉�氳繃 鐩存帴閫�鍥炲埌鎻愪氦浜洪偅杈瑰幓
+// insReport.setState(0);
+// insReport.setIsExamine(0);
+// return insReportMapper.updateById(insReport);
+// }
+// //鑾峰彇鎵瑰噯浜虹殑绛惧悕鍦板潃
+// String signatureUrl;
+// try {
+// signatureUrl = userMapper.selectById(insReport.getRatifyUserId()).getSignatureUrl();
+// } catch (Exception e) {
+// throw new ErrorException("鎵句笉鍒版壒鍑嗕汉鐨勭鍚�");
+// }
+// if (StringUtils.isBlank(signatureUrl)) {
+// throw new ErrorException("鎵句笉鍒版壒鍑嗕汉鐨勭鍚�");
+// }
+// Integer insOrderId = insReportMapper.selectById(id).getInsOrderId();
+// InsOrder order = insOrderMapper.selectById(insOrderId);
+// boolean isRawMater = order.getTypeSource() != null && order.getTypeSource().equals(1);
+//
+// //鑾峰彇鍦烘墍鐨勬姤鍛婁笓鐢ㄧ珷
+// String sealUrl;
+// String laboratory = insOrderMapper.selectById(insReport.getInsOrderId()).getLaboratory();
+// try {
+// String type = "";
+// if (isRawMater && order.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
+// type = "杩涘巶鎶ュ憡";
+// } else {
+// type = "濮旀墭鎶ュ憡";
+// }
+// sealUrl = insReportMapper.getLaboratoryByName(laboratory, type);
+// } catch (Exception e) {
+// throw new ErrorException(laboratory + "鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
+// }
+// if (StringUtils.isBlank(sealUrl)) {
+// throw new ErrorException(laboratory + "鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
+// }
+// //绯荤粺鐢熸垚鎶ュ憡鍦板潃
+// String url = insReport.getUrl();
+// //鎵嬪姩涓婁紶鎶ュ憡鍦板潃
+// String urlS = insReport.getUrlS();
+// String finalUrl = (StrUtil.isBlank(urlS) ? url : urlS).replace("/word", wordUrl);
+//
+// wordInsertUrl(new HashMap<String, Object>() {{
+// put("ratifyUrl", Pictures.ofLocal(imgUrl + "/" + signatureUrl).create());
+// put("ratifyDateUrl", Pictures.ofStream(DateImageUtil.createDateImage(null)).create());
+// put("seal1", Pictures.ofLocal(imgUrl + "/" + sealUrl).create());
+// put("seal2", Pictures.ofLocal(imgUrl + "/" + sealUrl).create());
+// }}, finalUrl);
+//
+// // 淇敼涓存椂pdf
+// insReport.setTempUrlPdf((StrUtil.isBlank(urlS) ? url : urlS).replace(".docx", ".pdf"));
+//
+// InsOrder insOrder = new InsOrder();
+// insOrder.setId(insOrderId);
+// insOrder.setState(4);
+// insOrderMapper.updateById(insOrder);
+//
+// wordToPdf(finalUrl, sealUrl, isRawMater && order.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY));
+//
+// // 鍒ゆ柇鏄惁涓哄師鏉愭枡
+// if (isRawMater) {
+// // 淇敼ifs搴撳瓨鐘舵��
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getState, 2)
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
+// }
+// insReport.setRatifyTell("");
+//
+// // 鍙戦�佹枃浠跺埌濮旀墭浜�
+// if (StringUtils.isNotBlank(order.getPrepareCode())) {
+// threadPoolTaskExecutor.execute(() -> {
+// String message = "";
+// message += "濮旀墭缂栧彿: " + order.getEntrustCode();
+// message += "濮旀墭鏍峰搧: " + order.getSampleView();
+// message += "宸叉娴嬬粨鏉�, 璇锋帴鏀�";
+// try {
+// WxCpUtils.inform(order.getPrepareCode(), message, new File(finalUrl.replace(".docx", ".pdf")));
+// } catch (Exception e) {
+// throw new RuntimeException(e);
+// }
+// });
+// }
+//
+// return insReportMapper.updateById(insReport);
+// }
+//
+// @Override
+// public int wordInsertUrl(Map<String, Object> map, String url) {
+// XWPFTemplate template = XWPFTemplate.compile(url).render(map);
+// try {
+// template.writeAndClose(Files.newOutputStream(Paths.get(url)));
+// } catch (IOException e) {
+// throw new RuntimeException(e);
+// }
+// return 1;
+// }
+//
+//
+// //鎶ュ憡鎵归噺涓嬭浇
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public String downAll(String ids) {
+// List<Long> list = Arrays.stream(ids.split(",")).map(Long::parseLong).collect(Collectors.toList());
+// List<InsReport> insReports = insReportMapper.selectBatchIds(list);
+// String zipFilePath = null;
+// // 涓存椂鏂囦欢澶硅矾寰�
+// try {
+// String tempFolderPath = wordUrl + "/tempFolder";
+// File tempFolder = new File(tempFolderPath);
+// if (tempFolder.exists()) {
+// deleteDirectory(tempFolder); // 鍒犻櫎鏃х殑涓存椂鏂囦欢澶�
+// }
+// tempFolder.mkdirs(); // 鍒涘缓鏂扮殑涓存椂鏂囦欢澶�
+// for (InsReport insReport : insReports) {
+// File sourceFile = new File((ObjectUtils.isNotEmpty(insReport.getUrlS()) ? insReport.getUrlS() : insReport.getUrl()).replace("/word", wordUrl));
+// File destinationFile = new File(tempFolder, sourceFile.getName());
+// Files.copy(sourceFile.toPath(), destinationFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
+// }
+// // 鍘嬬缉涓存椂鏂囦欢澶�
+// zipFilePath = wordUrl + "/zip/output.zip";
+// zipDirectory(tempFolderPath, zipFilePath);
+//
+// // 娓呯悊涓存椂鏂囦欢澶�
+// deleteDirectory(tempFolder);
+//
+// System.out.println("ZIP鏂囦欢鍒涘缓瀹屾垚锛�");
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// return "/word/zip/output.zip";
+// }
+//
+// //鎵归噺涓婁紶
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int upAll(MultipartFile file) throws IOException {
+// File tempFile = null;
+// File unzipDir = null;
+// try {
+// tempFile = File.createTempFile(wordUrl, ".zip");
+// file.transferTo(tempFile);
+//
+// unzipDir = new File("uploaded_files");
+// if (!unzipDir.exists()) {
+// unzipDir.mkdir();
+// }
+// unzip(tempFile, unzipDir);
+// // 澶勭悊瑙e帇鍚庣殑鏂囦欢
+// File[] files = unzipDir.listFiles();
+// if (files != null) {
+// for (File f : files) {
+// // 鏍规嵁鏂囦欢鍚嶆煡璇d
+// String name = f.getName();
+// InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", "").replace("JCZX", "JCZX/")));
+// if (ObjectUtils.isEmpty(insReport)) {
+// throw new ErrorException("娌℃湁鎵惧埌 " + f.getName() + " 杩欎釜鏂囦欢瀵瑰簲鐨勬姤鍛婃暟鎹�");
+// }
+// String urlString;
+// String pathName;
+// try {
+// String path = wordUrl;
+// File realpath = new File(path);
+// if (!realpath.exists()) {
+// realpath.mkdirs();
+// }
+// pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyMMddHHmmss")) + "_" + f.getName();
+// urlString = realpath + "/" + pathName;
+// // 澶嶅埗鏂囦欢鍒版寚瀹氳矾寰�
+// Files.copy(f.toPath(), new File(urlString).toPath(), StandardCopyOption.REPLACE_EXISTING);
+// inReport("/word/" + pathName, insReport.getId());
+// } catch (IOException e) {
+// throw new ErrorException("鏂囦欢涓婁紶澶辫触");
+// }
+// }
+// }
+// } catch (IOException e) {
+// throw new ErrorException("鏂囦欢澶勭悊澶辫触");
+// } finally {
+// if (tempFile != null && tempFile.exists()) {
+// tempFile.delete();
+// }
+// // 閫掑綊鍒犻櫎瑙e帇鐩綍鍙婂叾涓殑鏂囦欢
+// if (unzipDir.exists()) {
+// deleteDirectory(unzipDir); // 鍒犻櫎鏃х殑涓存椂鏂囦欢澶�
+// }
+// }
+// return 0;
+// }
+//
+//
+// //瑙e帇鏂囦欢澶�
+// private void unzip(File zipFile, File destDir) throws IOException {
+// try (ZipFile zip = new ZipFile(zipFile)) {
+// Enumeration<? extends ZipEntry> entries = zip.entries();
+// while (entries.hasMoreElements()) {
+// ZipEntry entry = entries.nextElement();
+// File file = new File(destDir, entry.getName());
+// if (entry.isDirectory()) {
+// file.mkdirs();
+// } else {
+// file.getParentFile().mkdirs();
+// try (InputStream in = zip.getInputStream(entry);
+// OutputStream out = new FileOutputStream(file)) {
+// byte[] buffer = new byte[1024];
+// int len;
+// while ((len = in.read(buffer)) > 0) {
+// out.write(buffer, 0, len);
+// }
+// }
+// }
+// }
+// }
+// }
+//
+// // 鍘嬬缉鏂囦欢澶�
+// public static void zipDirectory(String sourceDirPath, String zipFilePath) throws IOException {
+// try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFilePath))) {
+// Path sourceDir = Paths.get(sourceDirPath);
+// Files.walk(sourceDir)
+// .filter(path -> !Files.isDirectory(path))
+// .forEach(path -> {
+// ZipEntry zipEntry = new ZipEntry(sourceDir.relativize(path).toString());
+// try {
+// zipOut.putNextEntry(zipEntry);
+// Files.copy(path, zipOut);
+// zipOut.closeEntry();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// });
+// }
+// }
+//
+// // 鍒犻櫎鏂囦欢澶瑰強鍏跺唴瀹�
+// public static void deleteDirectory(File directory) throws IOException {
+// if (directory.isDirectory()) {
+// File[] files = directory.listFiles();
+// if (files != null) {
+// for (File file : files) {
+// deleteDirectory(file);
+// }
+// }
+// }
+// Files.delete(directory.toPath());
+// }
+//
+// @Override
+// public void wordToPdf(String path, String sealUrl, boolean isRawMater) {
+// try {
+// wordToPdf(path, path.replace(".docx", ".pdf"), sealUrl, isRawMater);
+// } catch (Exception e) {
+// throw new ErrorException("杞崲澶辫触");
+// }
+// }
+//
+//
+// public String wordToPdf(String wordPath, String pdfPath, String sealUrl, boolean isRawMater) {
+// FileOutputStream os = null;
+// try {
+// //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃
+//// InputStream is = this.getClass().getResourceAsStream("/lib/license.xml");
+//// InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("license.xml");
+// InputStream is = Files.newInputStream(new File(licenseUrl).toPath());
+// License license = new License();
+// license.setLicense(is);
+// if (!license.getIsLicensed()) {
+// System.out.println("License楠岃瘉涓嶉�氳繃...");
+// return null;
+// }
+// //鐢熸垚涓�涓┖鐨凱DF鏂囦欢
+// File file;
+// //鍒ゆ柇鏄惁鏄繘鍘傛姤鍛�
+// if (!isRawMater) {
+// file = new File(pdfPath.replace(".pdf", "-1.pdf"));
+// } else {
+// file = new File(pdfPath.replace(".pdf", ".pdf"));
+// }
+// os = new FileOutputStream(file);
+// //瑕佽浆鎹㈢殑word鏂囦欢
+// com.aspose.words.Document doc = new com.aspose.words.Document(wordPath);
+// doc.save(os, SaveFormat.PDF);
+//
+// //娣诲姞楠戠紳绔�
+// if (!isRawMater) {
+// stamperCheckMarkPDF(pdfPath.replace(".pdf", "-1.pdf"), pdfPath, imgUrl + "/" + sealUrl);
+// }
+//
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// } finally {
+// if (os != null) {
+// try {
+// os.close();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+// }
+// return null;
+// }
+//
+// /**
+// * 鍒囧壊鍥剧墖
+// *
+// * @param Path 鍥剧墖璺緞
+// * @param n 鍒囧壊浠芥暟
+// */
+// public static com.itextpdf.text.Image[] slicingImages(String Path, int n) throws IOException, BadElementException {
+// com.itextpdf.text.Image[] nImage = new com.itextpdf.text.Image[n];
+// BufferedImage img = ImageIO.read(new File(Path));
+//
+// int h = img.getHeight();
+// int w = img.getWidth();
+//
+// int sw = w / n;
+// for (int i = 0; i < n; i++) {
+// BufferedImage subImg;
+// if (i == n - 1) {//鏈�鍚庡墿浣欓儴鍒�
+// subImg = img.getSubimage(i * sw, 0, w - i * sw, h);
+// } else {//鍓峮-1鍧楀潎鍖�鍒�
+// subImg = img.getSubimage(i * sw, 0, sw, h);
+// }
+// ByteArrayOutputStream out = new ByteArrayOutputStream();
+// ImageIO.write(subImg, Path.substring(Path.lastIndexOf('.') + 1), out);
+// nImage[i] = com.itextpdf.text.Image.getInstance(out.toByteArray());
+//
+// }
+// return nImage;
+// }
+//
+// /**
+// * 鐩栭獞缂濈珷
+// *
+// * @param infilePath 鍘烶DF璺緞
+// * @param outFilePath 杈撳嚭PDF璺緞
+// */
+// public static void stamperCheckMarkPDF(String infilePath, String outFilePath, String picPath) throws IOException, DocumentException {
+// PdfReader reader = new PdfReader(infilePath);//閫夋嫨闇�瑕佸嵃绔犵殑pdf
+// PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(outFilePath));//鍔犲畬鍗扮珷鍚庣殑pdf
+//
+//
+// com.itextpdf.text.Rectangle pageSize = reader.getPageSize(1);//鑾峰緱绗竴椤�
+// float height = pageSize.getHeight();
+// float width = pageSize.getWidth();
+//
+// int nums = reader.getNumberOfPages();
+// com.itextpdf.text.Image[] nImage = slicingImages(picPath, nums);//鐢熸垚楠戠紳绔犲垏鍓插浘鐗�
+//
+// for (int n = 1; n <= nums; n++) {
+// PdfContentByte over = stamp.getOverContent(n);//璁剧疆鍦ㄧ鍑犻〉鎵撳嵃鍗扮珷
+// com.itextpdf.text.Image img = nImage[n - 1];//閫夋嫨鍥剧墖
+// float newHeight = 100f;
+// float newWidth = img.getWidth() / (img.getHeight() / 100);
+// img.scaleAbsolute(newWidth, newHeight);//鎺у埗鍥剧墖澶у皬
+// img.setAbsolutePosition(width - newWidth, height / 2 - newHeight / 2);//鎺у埗鍥剧墖浣嶇疆
+// over.addImage(img);
+// }
+// stamp.close();
+// }
+//
+// @Transactional(rollbackFor = Exception.class)
+// public void isRawMaterial(InsOrder insOrder) {
+// IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectOne(new LambdaQueryWrapper<IfsInventoryQuantity>()
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
+// if (Objects.isNull(one)) {
+// throw new ErrorException("鎵句笉鍒板師鏉愭枡淇℃伅");
+// }
+// // 鍒ゆ柇鏄惁鏈変笉鍚堟牸淇℃伅
+// Long count = insUnqualifiedHandlerMapper.selectCount(Wrappers.<InsUnqualifiedHandler>lambdaQuery()
+// .eq(InsUnqualifiedHandler::getInventoryQuantityId, one.getId()));
+// String toLocation = null;
+//
+// // 鍒ゆ柇鏄惁鏈変笉鍚堟牸
+// Long unqualifiedCount = getUnqualifiedCount(insOrder);
+//
+// if (count.equals(0L) && unqualifiedCount.equals(0L) && one.getIsFinish().equals(0) && one.getIsSource().equals(1)) {
+// // 鍘熸潗鏂欑Щ搴�
+// toLocation = this.moveRawMaterial(one);
+// }
+//
+// // 鍒ゆ柇缁撴潫鐘舵�佷慨鏀瑰悎鏍肩姸鎬�
+// int inspectStatus = (count == 0 && unqualifiedCount == 0) ? 1 : 2;
+// insOrderMapper.update(null, Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getId, insOrder.getId())
+// .set(InsOrder::getInsResult, inspectStatus));
+//
+// if (one.getIsFinish().equals(0)) {
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId())
+// .set(IfsInventoryQuantity::getInspectStatus, inspectStatus));
+//
+// // 淇敼ifs搴撳瓨鐘舵��
+// if (StringUtils.isBlank(toLocation)) {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getIsFinish, 1)
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
+// } else {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getIsFinish, 1)
+// .set(IfsInventoryQuantity::getToLocation, toLocation)
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
+// }
+//
+// threadPoolTaskExecutor.execute(() -> {
+// // 浼佷笟寰俊閫氱煡
+// String message = "";
+// message += "妫�娴嬬粨鏋滄彁浜ら�氱煡";
+// message += "\n鎵规鍙�: " + one.getUpdateBatchNo();
+// message += "\n闆朵欢鍙�: " + one.getPartNo();
+// message += "\n闆朵欢鎻忚堪: " + one.getPartDesc();
+// message += "\n渚涘簲鍟嗗悕绉�: " + one.getSupplierName();
+// message += "\n鎶佃揪鏁伴噺: " + one.getQtyArrived().stripTrailingZeros().toPlainString() + one.getBuyUnitMeas();
+// // 鍙戦�佷紒涓歩nspectStatus淇¢�氱煡
+// if (inspectStatus == 1) {
+// message += "\n妫�娴嬬粨鏋�: 鍚堟牸";
+// } else {
+// message += "\n妫�娴嬬粨鏋�: 涓嶅悎鏍�";
+// }
+// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+// });
+//
+// }
+//
+//
+// }
+//
+// /**
+// * 鍒ゆ柇鏄惁鏈変笉鍚堟牸
+// * @param insOrder
+// * @return
+// */
+// @Override
+// public Long getUnqualifiedCount(InsOrder insOrder) {
+// Long unqualifiedCount = 0L;
+// List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
+// .eq(InsSample::getInsOrderId, insOrder.getId()));
+// if (CollectionUtils.isNotEmpty(insSamples)) {
+// unqualifiedCount = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+// .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
+// .eq(InsProduct::getInsResult, 0));
+//
+// // 鍒ゆ柇濡傛灉鏈変笉鍚堟牸鐨勬楠岄」, 鍒ゆ柇鏈夋病鏈夋楠岄」澶嶆祴, 澶嶆牳鍚堟牸涔熺畻鍚堟牸閫氳繃
+// if (!unqualifiedCount.equals(0L)) {
+// List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
+// .in(InsProduct::getInsSampleId, insSamples.stream().map(InsSample::getId).collect(Collectors.toList()))
+// .eq(InsProduct::getInsResult, 0));
+//
+// boolean flag = true;
+// for (InsProduct insProduct : insProducts) {
+// Long unqualifiedProductCount = insUnqualifiedRetestProductMapper.selectCount(Wrappers.<InsUnqualifiedRetestProduct>lambdaQuery()
+// .eq(InsUnqualifiedRetestProduct::getInsProductId, insProduct.getId())
+// .ne(InsUnqualifiedRetestProduct::getInsResult, 0));
+// if (unqualifiedProductCount != 2) {
+// flag = false;
+// }
+// }
+// if (flag) {
+// unqualifiedCount = 0L;
+// }
+// }
+// }
+// return unqualifiedCount;
+// }
+//
+// /**
+// * ifs绉诲簱鎿嶄綔
+// * @param one
+// * @return
+// */
+// @Override
+// public String moveRawMaterial(IfsInventoryQuantity one) {
+// String toLocation;
+// // 鐧昏閲囪喘妫�楠岀粨鏋淪TD
+// if (one.getIsRegister().equals(0)) {
+// Map<String, Object> resultMap = new HashMap<>();
+// List<Map<String, Object>> resultList = new ArrayList<>();
+// Map<String, Object> map = new HashMap<>();
+// map.put("ORDER_NO", one.getOrderNo()); // 閲囪喘璁㈠崟鍙�
+// map.put("LINE_NO", one.getLineNo()); // 琛屽彿
+// map.put("RELEASE_NO", one.getReleaseNo()); // 涓嬭揪鍙�
+// map.put("RECEIPT_NO", one.getReceiptNo()); // 鎺ユ敹鍙�
+// map.put("PURCH_QTY", one.getQtyToInspect()); // 瑕佹楠岀殑閲囪喘鏁伴噺
+// resultList.add(map);
+// resultMap.put("RECORD_ID", UUID.randomUUID().toString());
+// resultMap.put("SYSCODE", "LIMS");
+// resultMap.put("SYSMODEL", "鐧昏閲囪喘妫�楠岀粨鏋�");
+// resultMap.put("BATCH_INFO", resultList);
+// Result result = ifsApiUtils.getProcurementResults(JSONUtil.toJsonStr(resultMap));
+// if (result.getCode() != 200) {
+// throw new ErrorException("IFS鐧昏閲囪喘妫�楠岀粨鏋滃け璐�: " + result.getMessage());
+// }
+// }
+// insOrderService.updateIfsInventoryQuantity(one.getId());
+// /**
+// * TODO 鍚庣画闇�瑕佽皟鐢↖FS鐨勬帴鍙� 绉诲叆鐨勫簱浣嶅彿 toLocation
+// */
+// // 妫�楠屽悗绉诲簱
+// toLocation = "1301";
+// Map<String, Object> moveResultMap = new HashMap<>();
+// List<Map<String, Object>> moveResultList = new ArrayList<>();
+// Map<String, Object> moveMap = new HashMap<>();
+// moveMap.put("ORDER_NO", one.getOrderNo()); // 閲囪喘璁㈠崟鍙�
+// moveMap.put("LINE_NO", one.getLineNo());
+// moveMap.put("RELEASE_NO", one.getReleaseNo());
+// moveMap.put("RECEIPT_NO", one.getReceiptNo());
+// moveMap.put("PART_NO", one.getPartNo());
+// moveMap.put("QTY", one.getQtyArrived());
+// moveMap.put("LOCATION_NO", one.getLocationNo());
+// moveMap.put("TO_LOCATION_NO", toLocation);
+// moveMap.put("LOT_BATCH_NO", one.getLotBatchNo());
+// moveMap.put("SERIAL_NO", one.getSerialNo());
+// moveMap.put("WAIV_DEV_REJ_NO", one.getWaivDevRejNo());
+// moveMap.put("ENG_CHG_LEVEL", one.getEngChgLevel());
+// moveMap.put("ACTIVITY_SEQ", one.getActivitySeq());
+// moveResultList.add(moveMap);
+// moveResultMap.put("RECORD_ID", UUID.randomUUID().toString());
+// moveResultMap.put("SYSCODE", "LIMS");
+// moveResultMap.put("SYSMODEL", "妫�楠屽悗绉诲簱");
+// moveResultMap.put("BATCH_INFO", moveResultList);
+//
+// Result result1 = ifsApiUtils.moveReceipt(JSONUtil.toJsonStr(moveResultMap));
+// // 濡傛灉鏈夊繀椤讳负闆朵欢鎸囧畾鎵瑰彿鎶ラ敊闇�瑕侀噸鏂版彁浜ょЩ搴撲俊鎭幓鎸囧畾鎵瑰彿
+// if (result1.getCode() != 200) {
+// String message = result1.getMessage();
+// if (message.contains("蹇呴』涓洪浂浠�") && message.contains("鎸囧畾鎵瑰彿")) {
+// updaeBatch(one, toLocation);
+// } else {
+// throw new ErrorException("IFS妫�楠屽悗绉诲簱澶辫触: " + result1.getMessage());
+// }
+// }
+// return toLocation;
+// }
+//
+// /**
+// * 閫�鍥炲埌妫�楠屼换鍔�
+// * @param id
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean sendBackTask(Integer id) {
+// InsReport report = insReportMapper.selectById(id);
+// // 鏍规嵁璁㈠崟鏌ヨ璇曢獙瀹�
+// String laboratory = insOrderMapper.selectLaboratoryByOrderId(report.getInsOrderId());
+//
+// // 淇敼璁㈠崟鐘舵��
+// insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
+// .eq(InsOrderState::getInsOrderId, report.getInsOrderId())
+// .eq(InsOrderState::getLaboratory, laboratory)
+// .set(InsOrderState::getInsState, 4));
+//
+// Integer insSampleId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery()
+// .eq(InsSampleUser::getInsSampleId, report.getInsOrderId())
+// .orderByDesc(InsSampleUser::getId)
+// .last("limit 1")).getId();
+// insSampleUserMapper.deleteById(insSampleId);
+//
+// // 淇敼鎶ュ憡琛屼负鏈樉绀�
+// insReportMapper.update(null, Wrappers.<InsReport>lambdaUpdate()
+// .eq(InsReport::getId, id)
+// .set(InsReport::getIsPass, 0));
+//
+// return false;
+// }
+//
+//
+// /**
+// * 鍏堜慨鏀归噰璐鍗曟壒娆″彿, 鍚庤繘琛岀Щ搴撴搷浣�
+// * @param one
+// * @param toLocation
+// */
+// private void updaeBatch(IfsInventoryQuantity one, String toLocation) {
+// if (one.getIsUpdateBatch().equals(0)) {
+// // 鍏堜慨鏀规壒娆″彿鍚庤繘琛岀Щ搴�
+// Map<String, Object> resultMap = new HashMap<>();
+// List<Map<String, Object>> resultList = new ArrayList<>();
+// Map<String, Object> map = new HashMap<>();
+// map.put("ORDER_NO", one.getOrderNo()); // 閲囪喘璁㈠崟鍙�
+// map.put("LINE_NO", one.getLineNo()); // 琛屽彿
+// map.put("RELEASE_NO", one.getReleaseNo()); // 涓嬭揪鍙�
+// map.put("RECEIPT_NO", one.getReceiptNo()); // 鎺ユ敹鍙�
+// map.put("PART_NO", one.getPartNo()); //闆朵欢鍙�
+// map.put("CONFIGURATION_ID", one.getConfigurationId()); // 閰嶇疆鏍囪瘑
+// map.put("LOCATION_NO", one.getLocationNo()); // 搴撲綅鍙�
+// map.put("LOT_BATCH_NO", one.getLotBatchNo());// 鎵规鍙�
+// map.put("NEW_LOT_BATCH_NO", one.getUpdateBatchNo()); // 鐩爣鎵规鍙�
+// map.put("SERIAL_NO", one.getSerialNo()); // 搴忓垪鍙�
+// map.put("ENG_CHG_LEVEL", one.getEngChgLevel()); // 鐗堟湰鍙�
+// map.put("WAIV_DEV_REJ_NO", one.getWaivDevRejNo()); // wdr鍙�
+// map.put("ACTIVITY_SEQ", one.getActivitySeq()); // 娲诲姩搴忓彿
+// map.put("QTY_TO_CHANGE", one.getQtyArrived()); // 鍙樻洿鏁伴噺
+// resultList.add(map);
+// resultMap.put("RECORD_ID", UUID.randomUUID().toString());
+// resultMap.put("SYSCODE", "LIMS");
+// resultMap.put("SYSMODEL", "淇敼閲囪喘璁㈠崟鎵规鍙�");
+// resultMap.put("BATCH_INFO", resultList);
+//
+// Result result = ifsApiUtils.updateMoveReceiptLot(JSONUtil.toJsonStr(resultMap));
+//
+// if (result.getCode() != 200) {
+// throw new ErrorException("IFS淇敼鎵规鍙峰け璐�: " + result.getMessage());
+// }
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .set(IfsInventoryQuantity::getIsUpdateBatch, 1)
+// .eq(IfsInventoryQuantity::getId, one.getId()));
+// }
+//
+// Map<String, Object> moveResultMap = new HashMap<>();
+// List<Map<String, Object>> moveResultList = new ArrayList<>();
+// Map<String, Object> moveMap = new HashMap<>();
+// moveMap.put("ORDER_NO", one.getOrderNo()); // 閲囪喘璁㈠崟鍙�
+// moveMap.put("LINE_NO", one.getLineNo());
+// moveMap.put("RELEASE_NO", one.getReleaseNo());
+// moveMap.put("RECEIPT_NO", one.getReceiptNo());
+// moveMap.put("PART_NO", one.getPartNo());
+// moveMap.put("QTY", one.getQtyArrived());
+// moveMap.put("LOCATION_NO", one.getLocationNo());
+// moveMap.put("TO_LOCATION_NO", toLocation);
+// moveMap.put("LOT_BATCH_NO", one.getUpdateBatchNo());
+// moveMap.put("SERIAL_NO", one.getSerialNo());
+// moveMap.put("WAIV_DEV_REJ_NO", one.getWaivDevRejNo());
+// moveMap.put("ENG_CHG_LEVEL", one.getEngChgLevel());
+// moveMap.put("ACTIVITY_SEQ", one.getActivitySeq());
+// moveResultList.add(moveMap);
+// moveResultMap.put("RECORD_ID", UUID.randomUUID().toString());
+// moveResultMap.put("SYSCODE", "LIMS");
+// moveResultMap.put("SYSMODEL", "妫�楠屽悗绉诲簱");
+// moveResultMap.put("BATCH_INFO", moveResultList);
+//
+// Result result1 = ifsApiUtils.moveReceipt(JSONUtil.toJsonStr(moveResultMap));
+// if (result1.getCode() != 200) {
+// throw new ErrorException("IFS妫�楠屽悗绉诲簱澶辫触: " + result1.getMessage());
+// }
+//
+// }
+//
+// /**
+// * 鏇挎崲娈佃惤鏂囨湰
+// * @param filePath docx瑙f瀽瀵硅薄
+// * @param textMap 闇�瑕佹浛鎹㈢殑淇℃伅闆嗗悎
+// */
+// public static void changeText(Map<String, String> textMap, String filePath) {
+// try {
+// FileInputStream stream = new FileInputStream(filePath);
+// XWPFDocument document = new XWPFDocument(stream);
+// List<XWPFTable> tables = document.getTables();
+// for (XWPFTable table : tables) {
+// for (XWPFTableRow row : table.getRows()) {
+// for (XWPFTableCell cell : row.getTableCells()) {
+//
+// textMap.forEach((s, s2) -> {
+// if (cell.getText().equals(s)) {
+// XWPFParagraph paragraph = cell.getParagraphs().get(0);
+// XWPFRun oldRun = paragraph.getRuns().get(0);
+// // 淇濆瓨鍘熸牱寮�
+// String fontFamily = oldRun.getFontFamily();
+// int fontSize = oldRun.getFontSize();
+// String color = oldRun.getColor();
+// ParagraphAlignment alignment = paragraph.getAlignment();
+// // 鏇挎崲鍐呭
+// paragraph.removeRun(0); // 绉婚櫎鍘熸湁鐨� run
+// XWPFRun newRun = paragraph.createRun();
+// newRun.setText(s2);
+// // 搴旂敤鍘熸牱寮�
+// newRun.setFontFamily(fontFamily);
+// newRun.setFontSize(fontSize);
+// newRun.setColor(color);
+// paragraph.setAlignment(alignment);
+// }
+// });
+// }
+// }
+// }
+// FileOutputStream fileOutputStream = new FileOutputStream(filePath);
+// document.write(fileOutputStream);
+// fileOutputStream.close();
+//
+// } catch (Exception e) {
+// e.printStackTrace();
+// throw new ErrorException(e.getMessage());
+// }
+// }
+//
+// /**
+// * word杞崲pdf
+// * @param path
+// * @return
+// */
+// private String wordToPdfTemp(String path) {
+// try {
+// return wordToPdf(path, path.replace(".docx", "-涓存椂.pdf"));
+// } catch (Exception e) {
+// throw new ErrorException("杞崲澶辫触");
+// }
+// }
+//
+// private String wordToPdf(String wordPath, String pdfPath) {
+// FileOutputStream os = null;
+// try {
+// //鍑瘉 涓嶇劧鍒囨崲鍚庢湁姘村嵃
+// InputStream is = Files.newInputStream(new File(licenseUrl).toPath());
+// License license = new License();
+// license.setLicense(is);
+// if (!license.getIsLicensed()) {
+// System.out.println("License楠岃瘉涓嶉�氳繃...");
+// return null;
+// }
+// //鐢熸垚涓�涓┖鐨凱DF鏂囦欢
+// File file;
+// //鍒ゆ柇鏄惁鏄繘鍘傛姤鍛�
+// file = new File(pdfPath);
+// os = new FileOutputStream(file);
+// //瑕佽浆鎹㈢殑word鏂囦欢
+// com.aspose.words.Document doc = new com.aspose.words.Document(wordPath);
+// doc.save(os, SaveFormat.PDF);
+// String name = file.getName();
+// return file.getName();
+// } catch (Exception e) {
+// e.printStackTrace();
+// } finally {
+// if (os != null) {
+// try {
+// os.close();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+// }
+// return null;
+// }
+//}
+//
+//
+//
+//
+//
+//
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsSampleServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsSampleServiceImpl.java
new file mode 100644
index 0000000..f16964d
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsSampleServiceImpl.java
@@ -0,0 +1,22 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.inspect.mapper.InsSampleMapper;
+import com.ruoyi.inspect.pojo.InsSample;
+import com.ruoyi.inspect.service.InsSampleService;
+import org.springframework.stereotype.Service;
+
+/**
+* @author Administrator
+* @description 閽堝琛ㄣ�恑ns_sample(妫�楠屾牱鍝�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2024-03-14 17:14:57
+*/
+@Service
+public class InsSampleServiceImpl extends ServiceImpl<InsSampleMapper, InsSample>
+ implements InsSampleService {
+
+}
+
+
+
+
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 4c81840..1faaee4 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -1,861 +1,847 @@
-package com.ruoyi.inspect.service.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.ExcelWriter;
-import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.dto.FactoryDto;
-import com.ruoyi.basic.dto.LaboratoryDto;
-import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
-import com.ruoyi.basic.dto.SampleTypeDto;
-import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
-import com.ruoyi.basic.mapper.StandardTreeMapper;
-import com.ruoyi.inspect.pojo.InsOrder;
-import com.ruoyi.inspect.service.InsOrderService;
-import com.ruoyi.inspect.service.RawMaterialOrderService;
-import com.ruoyi.common.numgen.NumberGenerator;
-import com.ruoyi.framework.exception.ErrorException;
-import com.ruoyi.system.mapper.UserMapper;
-import lombok.AllArgsConstructor;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.math.BigDecimal;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- * @Author zhuo
- * @Date 2024/7/31
- */
-@Service
-@AllArgsConstructor
-public class RawMaterialOrderServiceImpl implements RawMaterialOrderService {
-
- private StandardTreeMapper standardTreeMapper;
- private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
- private GetLook getLook;
- private UserMapper userMapper;
- private InsOrderService insOrderService;
- private InsOrderMapper insOrderMapper;
- private InsSampleMapper insSampleMapper;
- private final NumberGenerator<InsOrder> numberGenerator;
- private InsReportService insReportService;
- private WechatProperty wechatProperty;
- private ThreadPoolTaskExecutor threadPoolTaskExecutor;
- private InsProductMapper insProductMapper;
- private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
-
-
- @Override
- public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) {
- if (StringUtils.isBlank(partNo)) {
- throw new ErrorException("闆朵欢鍙蜂涪澶�");
- }
- List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo);
- if (CollectionUtil.isEmpty(factoryDtos)) {
- throw new ErrorException("闆朵欢鍙蜂负" + partNo + "鐨勫師鏉愭枡娌℃湁瀵瑰簲鐨勬爣鍑嗗簱閰嶇疆");
- }
- RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto();
- for (FactoryDto factoryDto : factoryDtos) {
- for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
- for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
- if (sampleTypeDto.getChildren().size() == 0) {
- sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
- }
- // 鍒ゆ柇缁戝畾鐨勬槸鍚︽槸褰撳墠闆朵欢鍙�
- if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) {
- // 娣诲姞瀵硅薄
- rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
- + laboratoryDto.getValue() + "-"
- + sampleTypeDto.getValue());
- rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode());
- rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel());
- rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue());
- rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren());
- } else {
- for (SampleDto sampleDto : sampleTypeDto.getChildren()) {
- if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) {
- // 娣诲姞瀵硅薄
- rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
- + laboratoryDto.getValue() + "-"
- + sampleTypeDto.getValue() + "-"
- + sampleDto.getValue());
- rawMaterialStandardTreeDto.setCode(sampleDto.getCode());
- rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel());
- rawMaterialStandardTreeDto.setValue(sampleDto.getValue());
- rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren());
- }
- }
- }
- }
- }
- }
- return rawMaterialStandardTreeDto;
- }
-
- @Override
- public Map<String, Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
- Map<String, Object> map = new HashMap<>();
- map.put("head", PrintChina.printChina(IfsInventoryQuantity.class));
- map.put("body", standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)));
- return map;
- }
-
- @Override
- public Map<String, Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) {
- Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
- if (map1.get("look") == 1) {
- //涓汉
- ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
- }
- Map<String, Object> map = new HashMap<>();
-// ifsInventoryQuantityDto.setOrderState(null);
- map.put("head", PrintChina.printChina(IfsInventoryQuantityDto.class));
- map.put("body", standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto)));
- return map;
- }
-
-
- /**
- * 鎶ユ
- * @param ids
- * @return
- */
- @Override
- public int inspectionReport(List<Integer> ids) {
- Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
- ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
- .in(IfsInventoryQuantity::getId, ids)
- .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
- .set(IfsInventoryQuantity::getDeclareUserId, userId)
- .set(IfsInventoryQuantity::getIsInspect, 1)
- .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
- );
- threadPoolTaskExecutor.execute(() -> {
- List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
- .in(IfsInventoryQuantity::getId, ids));
- // 浼佷笟寰俊閫氱煡
- String message = "";
- message += "鏂板鎶ユ閫氱煡";
- for (IfsInventoryQuantity inventoryQuantity : quantityList) {
- message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
- message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
- message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
-
- // 鍒ゆ柇鏈夋病鏈夊埌20鍚�. 鎴栬�呰兘鍚﹀厤妫�
- int result = notificationRawOrder(inventoryQuantity.getId());
- switch (result) {
- case 1:
- message += "\n褰撳墠鏍峰搧宸叉楠岃繃, 鍙互鍏嶆";
- break;
- case 2:
- message += "\n褰撳墠鏍峰搧宸茶秴杩�20鍚�";
- break;
- }
- message += "\n";
- }
- WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
- });
- return 1;
- }
-
- /**
- * 鎾ら攢鎶ユ
- * @param id
- * @return
- */
- @Override
- public int revokeInspectionReport(Integer id) {
- return ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
- .eq(IfsInventoryQuantity::getId, id)
- .set(IfsInventoryQuantity::getIsInspect, 0)
- );
- }
-
- /**
- * 鎵撳嵃鏍囩鏌ヨ
- * @param ids
- * @return
- */
- @Override
- public List<IfsInventoryQuantityDto> printLabel(List<Integer> ids) {
- return ifsInventoryQuantityMapper.printLabel(ids);
- }
-
- /**
- * 鎶ユ
- * @param ifsInventoryQuantity
- * @return
- */
- @Override
- public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) {
- Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
- ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
- .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
- .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
- .set(IfsInventoryQuantity::getDeclareUserId, userId)
- .set(IfsInventoryQuantity::getIsInspect, 1)
- .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
- .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
- );
-
- threadPoolTaskExecutor.execute(() -> {
- IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
- // 浼佷笟寰俊閫氱煡
- String message = "";
- message += "鏂板鎶ユ閫氱煡";
- message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
- message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
- message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
- WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
- });
- return 1;
- }
-
- /**
- * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�
- * @param id
- * @return
- */
- @Override
- public String getIndustryChain(Integer id) {
- return ifsInventoryQuantityMapper.selectById(id).getIndustryChain();
- }
-
- /**
- * 鍘熸潗鏂欐挙閿�鎺ュ彛
- * @param ifsInventoryId
- * @return
- */
- @Override
- public boolean repealRawOrder(Integer ifsInventoryId) {
- // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
- if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
- // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛�
- ifsInventoryQuantityMapper.deleteById(ifsInventoryId);
- } else {
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getState, 0)
- .set(IfsInventoryQuantity::getIsQuarter, 1)
- .eq(IfsInventoryQuantity::getId, ifsInventoryId));
- }
-
- insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
- .eq(InsOrder::getIfsInventoryId, ifsInventoryId)
- .set(InsOrder::getState, -1)
- .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
- return true;
- }
-
- /**
- * 鍘熸潗鏂欏厤妫�涓嬪崟
- * @param list
- * @param insOrder
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder) {
- if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
- throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�");
- }
- insOrder.setSendTime(LocalDateTime.now());
- // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠�
- insOrder.setState(4);
- insOrder.setTypeSource(1);
-
- String code = "Y";
- // 鐢熸垚缂栧彿
- String no = numberGenerator.generateNumberWithPrefix(3,
- "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
- InsOrder::getEntrustCode);
-
- insOrderMapper.insert(insOrder); // 涓昏〃
-
- AtomicInteger count = new AtomicInteger();
- list.forEach(a -> {
- count.getAndIncrement();
- a.setId(null);
- a.setInsOrderId(insOrder.getId());
- if (StrUtil.isEmpty(a.getSampleCode())) {
- // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�
- if (list.size() != 1) {
- a.setSampleCode(no + "-" + count.get());
- } else {
- a.setSampleCode(no);
- }
- }
- insSampleMapper.insert(a);
-
- if (!CollectionUtil.isEmpty(a.getInsProduct())) {
- throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」");
- }
- });
-
- // 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
- Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
- User user = userMapper.selectById(declareUserId);
- // 渚涘簲鍟嗗悕绉�
- insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
- // 濮旀墭浜哄悕绉�
- insOrder.setPrepareUser(user.getName());
- insOrder.setPhone(user.getPhone());
-
- // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠�
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 2)
- .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
-
- insOrder.setExamineTime(LocalDateTime.now());
-
- insOrder.setEntrustCode(no);
- insOrder.setIsExemption(1);
-
- insOrderMapper.updateById(insOrder);
-
- // 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
-
- // todo: ifs鐩存帴绉诲簱
- insReportService.isRawMaterial(insOrder);
-
- return insOrder.getId();
- }
-
-
- /**
- * 鏌ヨ寰呬笅鍗�
- * @param page
- * @param ifsInventoryQuantity
- * @return
- */
- @Override
- public Map<String, Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) {
- Map<String, Object> map = new HashMap<>();
- map.put("head", PrintChina.printChina(IfsInventoryQuantityCheckDto.class));
- map.put("body", standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity)));
- return map;
- }
-
- /**
- * 鏌ヨ宸叉楠�
- * @param page
- * @param ifsInventoryQuantityDto
- * @return
- */
- @Override
- public Map<String, Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
- Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
- if (map1.get("look") == 1) {
- //涓汉
- ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
- }
- String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
- String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
- ifsInventoryQuantityDto.setBeginDeclareDate(null);
- ifsInventoryQuantityDto.setEndDeclareDate(null);
-
- Map<String, Object> map = new HashMap<>();
- map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class));
- map.put("body", standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate));
- return map;
- }
-
- /**
- * 鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅
- * @param id
- * @return
- */
- @Override
- public int delIfsInventory(Integer id) {
- return ifsInventoryQuantityMapper.deleteById(id);
- }
-
- /**
- * 鍘熸潗鏂欐斁琛屽厤妫�
- * @param ifsInventoryId
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean rawOrderRelease(Integer ifsInventoryId, String partDetail) {
- // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠�
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getState, 2)
- .set(IfsInventoryQuantity::getIsQuarter, 0)
- .eq(IfsInventoryQuantity::getId, ifsInventoryId));
-
- // 鏌ヨ鍘熸潗鏂欎俊鎭�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
- // 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
- Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
- User user = userMapper.selectById(declareUserId);
-
- InsOrder insOrder = new InsOrder();
- insOrder.setState(4);
- insOrder.setTypeSource(1);
- String code = "Y";
- // 鐢熸垚缂栧彿
- String no = numberGenerator.generateNumberWithPrefix(3,
- "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
- InsOrder::getEntrustCode);
- insOrder.setExamineTime(LocalDateTime.now());
- insOrder.setEntrustCode(no);
- insOrder.setIsExemption(1);
- // 渚涘簲鍟嗗悕绉�
- insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
- // 濮旀墭浜哄悕绉�
- insOrder.setPrepareUser(user.getName());
- insOrder.setPhone(user.getPhone());
- insOrder.setIfsInventoryId(ifsInventoryId);
- insOrder.setPartDetail(partDetail);
- insOrder.setSendTime(LocalDateTime.now());
- insOrder.setSample(ifsInventoryQuantity.getPartDesc());
- // 杩涘巶妫�楠�
- insOrder.setOrderType(InsOrderTypeConstants.ENTER_THE_FACTORY);
-
- insOrderMapper.insert(insOrder);
-
- // 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
-
- // todo: ifs鐩存帴绉诲簱
- insReportService.isRawMaterial(insOrder);
- return true;
- }
-
- /**
- * 0, 鏃犳彁绀�, 1鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡妫�楠岃繃, 鍙互鍏嶆, 2 鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡瓒�20鍚�, 闇�瑕佸绾у娆℃楠�
- *
- * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
- * @param ifsInventoryId
- * @return
- */
- @Override
- public int notificationRawOrder(Integer ifsInventoryId) {
- IfsInventoryQuantity ifsInventory = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
- // 鏌ヨ褰撳墠鎵规, 渚涘簲鍟�, 闆朵欢鍙风殑鍘熸潗鏂欐槸鍚﹁秴杩囦簡20鍚�, 瓒呰繃浜�20鍚ㄩ渶瑕佽繘琛屽娆℃楠屾彁閱�
- List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
- .eq(IfsInventoryQuantity::getPartNo, ifsInventory.getPartNo())
- .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventory.getUpdateBatchNo())
- .eq(IfsInventoryQuantity::getSupplierId, ifsInventory.getSupplierId())
- .eq(IfsInventoryQuantity::getSupplierName, ifsInventory.getSupplierName()));
-
- // 鍒ゆ柇鏄惁澶т簬20鍚�
- BigDecimal bigDecimal = new BigDecimal("20000");
- BigDecimal count = BigDecimal.ZERO;
- for (IfsInventoryQuantity inventoryQuantity : quantityList) {
- // 鍒ゆ柇鍗曚綅鏄痥g鎴栬�卼
- if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("t")) {
- count = count.add(inventoryQuantity.getQtyArrived().multiply(new BigDecimal("1000")));
- } else if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("kg")) {
- count = count.add(inventoryQuantity.getQtyArrived());
- }
- }
-
- if (count.compareTo(bigDecimal) >= 0) {
- return 2;
- } else {
- // 鍒ゆ柇涔嬪墠鏄惁鍑鸿繃鎶ュ憡, 鍑鸿繃鎶ュ憡鍙互鍏嶆
- int reportCount = ifsInventoryQuantityMapper.selectReportCountById(ifsInventoryId);
- if (reportCount > 0) {
- return 1;
- }
- }
- return 0;
- }
-
- /**
- * 鎶ユ鍙互鏂板鎶ユ淇℃伅
- * @param ifsInventoryQuantity
- */
- @Override
- public void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity) {
- ifsInventoryQuantity.setIsSource(0);
- ifsInventoryQuantity.setState(0);
- ifsInventoryQuantity.setIsFinish(0);
- ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
- }
-
- @Override
- public void shiftingParking(List<Integer> ids) {
- for (Integer id : ids) {
- InsOrder order = insOrderService.getById(id);
- // todo: ifs鐩存帴绉诲簱
- insReportService.isRawMaterial(order);
- }
- }
-
- /**
- * 閾滃崟涓濅笅鍗曞厤妫�
- * @param list
- * @param insOrder
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) {
- if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
- throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�");
- }
- insOrder.setSendTime(LocalDateTime.now());
- // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠�
- insOrder.setState(4);
- insOrder.setTypeSource(1);
-
- String code = "Y";
- // 鐢熸垚缂栧彿
- String no = numberGenerator.generateNumberWithPrefix(3,
- "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
- InsOrder::getEntrustCode);
-
- insOrderMapper.insert(insOrder); // 涓昏〃
-
- AtomicInteger count = new AtomicInteger();
- list.forEach(a -> {
- count.getAndIncrement();
- a.setId(null);
- a.setInsOrderId(insOrder.getId());
- if (StrUtil.isEmpty(a.getSampleCode())) {
- // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�
- if (list.size() != 1) {
- a.setSampleCode(no + "-" + count.get());
- } else {
- a.setSampleCode(no);
- }
- }
- insSampleMapper.insert(a);
-
- if (!CollectionUtil.isEmpty(a.getInsProduct())) {
- throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」");
- }
- });
- // 娣诲姞鍘熸潗鏂欎俊鎭�
- IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
- // 鍩烘湰淇℃伅
- ifsInventoryQuantity.setIsSource(0);
- ifsInventoryQuantity.setState(2);
- ifsInventoryQuantity.setIsInspect(1);
- ifsInventoryQuantity.setIsFinish(1);
- ifsInventoryQuantity.setIsCopper(1);
- ifsInventoryQuantity.setInspectStatus(1);
- ifsInventoryQuantity.setIsQuarter(0);
-
- ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived());
- ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas());
- ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName());
- ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo());
- ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate());
-
- ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
-
- insOrder.setIfsInventoryId(ifsInventoryQuantity.getId());
- insOrder.setExamineTime(LocalDateTime.now());
-
- insOrder.setEntrustCode(no);
- insOrder.setIsExemption(1);
-
- insOrderMapper.updateById(insOrder);
-
- // 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
-
- return insOrder.getId();
- }
-
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean concessionRelease(Integer ifsInventoryId) {
- // 鏌ヨ鍘熸潗鏂欎俊鎭�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
- if (!ifsInventoryQuantity.getInspectStatus().equals(2)) {
- throw new ErrorException("涓嶅悎鏍肩殑鍘熸潗鏂欐墠鑳借姝ユ斁琛�");
- }
-
- // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛�
- String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
-
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getInspectStatus, 4)
- .set(IfsInventoryQuantity::getToLocation, toLocation)
- .eq(IfsInventoryQuantity::getId, ifsInventoryId));
-
- return true;
- }
-
- /**
- * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
- * @param enterOrderId
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean repealEnterRawOrder(Integer enterOrderId) {
- // 鏌ヨ璁㈠崟
- InsOrder order = insOrderMapper.selectById(enterOrderId);
-
- // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
- if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
- // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛�
- ifsInventoryQuantityMapper.deleteById(order.getIfsInventoryId());
- } else {
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getState, 0)
- .set(IfsInventoryQuantity::getIsQuarter, 1)
- .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
- }
- insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
- .eq(InsOrder::getId, enterOrderId)
- .set(InsOrder::getState, -1)
- .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
-
- // 娓呴櫎涔嬪墠鐨勫伐鏃�
- auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
- .eq(AuxiliaryOutputWorkingHours::getOrderId, enterOrderId));
-
- // 娓呴櫎涔嬪墠鎶ュ憡
- insReportService.remove(Wrappers.<InsReport>lambdaQuery()
- .eq(InsReport::getInsOrderId, enterOrderId));
-
- return true;
- }
-
- /**
- * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
- * @param quarterOrderId
- * @return
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public boolean repealQuarterRawOrder(Integer quarterOrderId) {
- // 鏌ヨ璁㈠崟
- InsOrder order = insOrderMapper.selectById(quarterOrderId);
-
- Long count = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
- .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId())
- .ne(InsOrder::getState, -1)
- .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY)
- .ne(InsOrder::getId, order.getId()));
- // 鍒ゆ柇涔嬪墠鏄惁鏈夎繘鍘傛楠�, 娌℃湁闇�瑕佷慨鏀瑰師鏉愭枡淇℃伅
- if (count == 0) {
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getState, 0)
- .set(IfsInventoryQuantity::getIsQuarter, 1)
- .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
- } else {
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getIsQuarter, 1)
- .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
- }
-
- insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
- .eq(InsOrder::getId, quarterOrderId)
- .set(InsOrder::getState, -1)
- .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
- auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
- .eq(AuxiliaryOutputWorkingHours::getOrderId, quarterOrderId));
- // 娓呴櫎涔嬪墠鎶ュ憡
- insReportService.remove(Wrappers.<InsReport>lambdaQuery()
- .eq(InsReport::getInsOrderId, quarterOrderId));
- return true;
- }
-
- /**
- * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭
- * @param ifsInventoryQuantityDto
- * @param response
- */
- @Override
- public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException {
- //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
- String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
- String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
- ifsInventoryQuantityDto.setBeginDeclareDate(null);
- ifsInventoryQuantityDto.setEndDeclareDate(null);
- List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
-
- for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) {
- dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- dto.setReceiverDateString(dto.getReceiverDate() == null ? "" : dto.getReceiverDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- dto.setDeclareDateString(dto.getDeclareDate() == null ? "" : dto.getDeclareDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- switch (dto.getInspectStatus()) {
- case 1:
- dto.setInspectStatusString("鍚堟牸");
- break;
- case 2:
- dto.setInspectStatusString("涓嶅悎鏍�");
- // 鏌ヨ涓嶅悎鏍奸」
- List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(dto.getEnterOrderId() == null ? dto.getQuarterOrderId() : dto.getEnterOrderId());
- dto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ","));
- break;
- case 3:
- dto.setInspectStatusString("鏈笅鍗�");
- break;
- case 4:
- dto.setInspectStatusString("璁╂鏀捐");
- break;
- case 0:
- dto.setInspectStatusString("妫�楠屼腑");
- break;
-
- }
- }
-
-
- 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");
- try {
- //鏂板缓ExcelWriter
- ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
- //鑾峰彇sheet0瀵硅薄
- WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭鍑�").head(IfsInventoryQuantitySupplierDto.class).build();
-
- //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶�
- excelWriter.write(ifsByOverList, mainSheet);
- //鍏抽棴娴�
- excelWriter.finish();
- } catch (IOException e) {
- throw new RuntimeException("瀵煎嚭澶辫触");
- }
- }
-
- /**
- * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭
- * @param page
- * @param ifsInventoryQuantityDto
- * @return
- */
- @Override
- public Map<String, Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
- Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("getIfsByStateOne");
- if (map1.get("look") == 1) {
- //涓汉
- ifsInventoryQuantityDto.setCreateUser(map1.get("userId"));
- }
- String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
- String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
- ifsInventoryQuantityDto.setBeginDeclareDate(null);
- ifsInventoryQuantityDto.setEndDeclareDate(null);
-
- Map<String, Object> map = new HashMap<>();
- map.put("head", PrintChina.printChina(IfsInventoryQuantitySupplierDto.class));
- map.put("body", standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate));
- return map;
- }
-
- /**
- * 鎻愬墠鍏ュ簱
- * @param ifsInventoryId
- * @return
- */
- @Override
- public boolean advancedGodown(Integer ifsInventoryId) {
- // 鏌ヨ鍘熸潗鏂欎俊鎭�
- IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
- if (!ifsInventoryQuantity.getInspectStatus().equals(0)
- && !ifsInventoryQuantity.getInspectStatus().equals(3)) {
- throw new ErrorException("鏈娴嬪畬鎴愭暟鎹墠鑳芥彁鍓嶅叆搴�");
- }
-
- // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛�
- String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
-
- ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
- .set(IfsInventoryQuantity::getInspectStatus, 1)
- .set(IfsInventoryQuantity::getIsFinish, 1)
- .set(IfsInventoryQuantity::getToLocation, toLocation)
- .eq(IfsInventoryQuantity::getId, ifsInventoryId));
-
- return true;
- }
-
-
- /**
- * 娣诲姞宸ユ椂
- * @param insOrder
- * @param ifsInventoryQuantity
- */
- private void addAuxiliary(InsOrder insOrder, IfsInventoryQuantity ifsInventoryQuantity) {
- AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
- auxiliaryOutputWorkingHours.setInspectionItemClass(ifsInventoryQuantity.getUpdateBatchNo() + "鍏嶆");//妫�娴嬮」鍒嗙被
- auxiliaryOutputWorkingHours.setSample(insOrder.getEntrustCode());//鏍峰搧缂栧彿
- auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id
- auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
-
- // 鍏嶆榛樿2
- auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal("2"));//闈炲姞鐝伐鏃�
- auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
- auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
- LocalDateTime localDateTime = LocalDateTime.now();
- DateTime parse = DateUtil.parse(localDateTime.format(formatter));
- auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
- auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
- auxiliaryOutputWorkingHours.setCheck(getLook.selectPowerByMethodAndUserId(null).get("userId"));//妫�娴嬩汉
- auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//鍗曚环
-
- auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
- }
-
- public static String getWeek(String dayStr) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- Date date = sdf.parse(dayStr);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- return getWeekDay(dayOfWeek);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
-
- public static String getWeekDay(int dayOfWeek) {
- switch (dayOfWeek) {
- case Calendar.MONDAY:
- return "鍛ㄤ竴";
- case Calendar.TUESDAY:
- return "鍛ㄤ簩";
- case Calendar.WEDNESDAY:
- return "鍛ㄤ笁";
- case Calendar.THURSDAY:
- return "鍛ㄥ洓";
- case Calendar.FRIDAY:
- return "鍛ㄤ簲";
- case Calendar.SATURDAY:
- return "鍛ㄥ叚";
- case Calendar.SUNDAY:
- return "鍛ㄦ棩";
- default:
- return "鏈煡";
- }
- }
-}
+//package com.ruoyi.inspect.service.impl;
+//
+//import cn.hutool.core.collection.CollUtil;
+//import cn.hutool.core.collection.CollectionUtil;
+//import cn.hutool.core.date.DateTime;
+//import cn.hutool.core.date.DateUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.alibaba.excel.EasyExcel;
+//import com.alibaba.excel.ExcelWriter;
+//import com.alibaba.excel.write.metadata.WriteSheet;
+//import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.ruoyi.basic.dto.*;
+//import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+//import com.ruoyi.common.constant.InsOrderTypeConstants;
+//import com.ruoyi.common.core.domain.entity.User;
+//import com.ruoyi.common.utils.LimsDateUtil;
+//import com.ruoyi.common.utils.QueryWrappers;
+//import com.ruoyi.common.utils.SecurityUtils;
+//import com.ruoyi.common.utils.WxCpUtils;
+//import com.ruoyi.framework.properties.WechatProperty;
+//import com.ruoyi.inspect.dto.CopperInsOrderDto;
+//import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
+//import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+//import com.ruoyi.basic.mapper.StandardTreeMapper;
+//import com.ruoyi.inspect.dto.SampleProductDto;
+//import com.ruoyi.inspect.mapper.InsOrderMapper;
+//import com.ruoyi.inspect.mapper.InsProductMapper;
+//import com.ruoyi.inspect.mapper.InsSampleMapper;
+//import com.ruoyi.inspect.pojo.InsOrder;
+//import com.ruoyi.inspect.pojo.InsReport;
+//import com.ruoyi.inspect.service.InsOrderService;
+//import com.ruoyi.inspect.service.InsReportService;
+//import com.ruoyi.inspect.service.RawMaterialOrderService;
+//import com.ruoyi.common.numgen.NumberGenerator;
+//import com.ruoyi.framework.exception.ErrorException;
+//import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
+//import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
+//import com.ruoyi.system.mapper.UserMapper;
+//import lombok.AllArgsConstructor;
+//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.io.UnsupportedEncodingException;
+//import java.math.BigDecimal;
+//import java.net.URLEncoder;
+//import java.text.SimpleDateFormat;
+//import java.time.LocalDateTime;
+//import java.time.format.DateTimeFormatter;
+//import java.util.*;
+//import java.util.concurrent.atomic.AtomicInteger;
+//
+///**
+// * @Author zhuo
+// * @Date 2024/7/31
+// */
+//@Service
+//@AllArgsConstructor
+//public class RawMaterialOrderServiceImpl implements RawMaterialOrderService {
+//
+// private StandardTreeMapper standardTreeMapper;
+// private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+// private UserMapper userMapper;
+// private InsOrderService insOrderService;
+// private InsOrderMapper insOrderMapper;
+// private InsSampleMapper insSampleMapper;
+// private final NumberGenerator<InsOrder> numberGenerator;
+// private InsReportService insReportService;
+// private WechatProperty wechatProperty;
+// private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+// private InsProductMapper insProductMapper;
+// private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
+//
+//
+// @Override
+// public RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo) {
+// if (StringUtils.isBlank(partNo)) {
+// throw new ErrorException("闆朵欢鍙蜂涪澶�");
+// }
+// List<FactoryDto> factoryDtos = standardTreeMapper.selectStandardTreeListByPartNo(partNo);
+// if (CollectionUtil.isEmpty(factoryDtos)) {
+// throw new ErrorException("闆朵欢鍙蜂负" + partNo + "鐨勫師鏉愭枡娌℃湁瀵瑰簲鐨勬爣鍑嗗簱閰嶇疆");
+// }
+// RawMaterialStandardTreeDto rawMaterialStandardTreeDto = new RawMaterialStandardTreeDto();
+// for (FactoryDto factoryDto : factoryDtos) {
+// for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
+// for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
+// if (sampleTypeDto.getChildren().size() == 0) {
+// sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
+// }
+// // 鍒ゆ柇缁戝畾鐨勬槸鍚︽槸褰撳墠闆朵欢鍙�
+// if (sampleTypeDto.getPartNo() != null && sampleTypeDto.getPartNo().equals(partNo)) {
+// // 娣诲姞瀵硅薄
+// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
+// + laboratoryDto.getValue() + "-"
+// + sampleTypeDto.getValue());
+// rawMaterialStandardTreeDto.setCode(sampleTypeDto.getCode());
+// rawMaterialStandardTreeDto.setLabel(sampleTypeDto.getLabel());
+// rawMaterialStandardTreeDto.setValue(sampleTypeDto.getValue());
+// rawMaterialStandardTreeDto.setChildren1(sampleTypeDto.getChildren());
+// } else {
+// for (SampleDto sampleDto : sampleTypeDto.getChildren()) {
+// if (sampleDto.getPartNo() != null && sampleDto.getPartNo().equals(partNo)) {
+// // 娣诲姞瀵硅薄
+// rawMaterialStandardTreeDto.setTreeName(factoryDto.getValue() + "-"
+// + laboratoryDto.getValue() + "-"
+// + sampleTypeDto.getValue() + "-"
+// + sampleDto.getValue());
+// rawMaterialStandardTreeDto.setCode(sampleDto.getCode());
+// rawMaterialStandardTreeDto.setLabel(sampleDto.getLabel());
+// rawMaterialStandardTreeDto.setValue(sampleDto.getValue());
+// rawMaterialStandardTreeDto.setChildren2(sampleDto.getChildren());
+// }
+// }
+// }
+// }
+// }
+// }
+// return rawMaterialStandardTreeDto;
+// }
+//
+// @Override
+// public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+// return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+// }
+//
+// @Override
+// public IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto) {
+// return standardTreeMapper.getIfsByStateOne(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto));
+// }
+//
+//
+// /**
+// * 鎶ユ
+// * @param ids
+// * @return
+// */
+// @Override
+// public int inspectionReport(List<Integer> ids) {
+// Integer userId = SecurityUtils.getUserId().intValue();
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .in(IfsInventoryQuantity::getId, ids)
+// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
+// .set(IfsInventoryQuantity::getDeclareUserId, userId)
+// .set(IfsInventoryQuantity::getIsInspect, 1)
+// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
+// );
+// threadPoolTaskExecutor.execute(() -> {
+// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+// .in(IfsInventoryQuantity::getId, ids));
+// // 浼佷笟寰俊閫氱煡
+// String message = "";
+// message += "鏂板鎶ユ閫氱煡";
+// for (IfsInventoryQuantity inventoryQuantity : quantityList) {
+// message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
+// message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
+// message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+//
+// // 鍒ゆ柇鏈夋病鏈夊埌20鍚�. 鎴栬�呰兘鍚﹀厤妫�
+// int result = notificationRawOrder(inventoryQuantity.getId());
+// switch (result) {
+// case 1:
+// message += "\n褰撳墠鏍峰搧宸叉楠岃繃, 鍙互鍏嶆";
+// break;
+// case 2:
+// message += "\n褰撳墠鏍峰搧宸茶秴杩�20鍚�";
+// break;
+// }
+// message += "\n";
+// }
+// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+// });
+// return 1;
+// }
+//
+// /**
+// * 鎾ら攢鎶ユ
+// * @param id
+// * @return
+// */
+// @Override
+// public int revokeInspectionReport(Integer id) {
+// return ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, id)
+// .set(IfsInventoryQuantity::getIsInspect, 0)
+// );
+// }
+//
+// /**
+// * 鎵撳嵃鏍囩鏌ヨ
+// * @param ids
+// * @return
+// */
+// @Override
+// public List<IfsInventoryQuantityDto> printLabel(List<Integer> ids) {
+// return ifsInventoryQuantityMapper.printLabel(ids);
+// }
+//
+// /**
+// * 鎶ユ
+// * @param ifsInventoryQuantity
+// * @return
+// */
+// @Override
+// public int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity) {
+// Integer userId = SecurityUtils.getUserId().intValue();
+// ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
+// .eq(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
+// .set(IfsInventoryQuantity::getDeclareUser, userMapper.selectById(userId).getName())
+// .set(IfsInventoryQuantity::getDeclareUserId, userId)
+// .set(IfsInventoryQuantity::getIsInspect, 1)
+// .set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
+// .set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
+// );
+//
+// threadPoolTaskExecutor.execute(() -> {
+// IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
+// // 浼佷笟寰俊閫氱煡
+// String message = "";
+// message += "鏂板鎶ユ閫氱煡";
+// message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
+// message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
+// message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+// WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+// });
+// return 1;
+// }
+//
+// /**
+// * 鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�
+// * @param id
+// * @return
+// */
+// @Override
+// public String getIndustryChain(Integer id) {
+// return ifsInventoryQuantityMapper.selectById(id).getIndustryChain();
+// }
+//
+// /**
+// * 鍘熸潗鏂欐挙閿�鎺ュ彛
+// * @param ifsInventoryId
+// * @return
+// */
+// @Override
+// public boolean repealRawOrder(Integer ifsInventoryId) {
+// // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
+// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
+// // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛�
+// ifsInventoryQuantityMapper.deleteById(ifsInventoryId);
+// } else {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getState, 0)
+// .set(IfsInventoryQuantity::getIsQuarter, 1)
+// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
+// }
+//
+// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getIfsInventoryId, ifsInventoryId)
+// .set(InsOrder::getState, -1)
+// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
+// return true;
+// }
+//
+// /**
+// * 鍘熸潗鏂欏厤妫�涓嬪崟
+// * @param list
+// * @param insOrder
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder) {
+// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
+// throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�");
+// }
+// insOrder.setSendTime(LocalDateTime.now());
+// // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠�
+// insOrder.setState(4);
+// insOrder.setTypeSource(1);
+//
+// String code = "Y";
+// // 鐢熸垚缂栧彿
+// String no = numberGenerator.generateNumberWithPrefix(3,
+// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
+// InsOrder::getEntrustCode);
+//
+// insOrderMapper.insert(insOrder); // 涓昏〃
+//
+// AtomicInteger count = new AtomicInteger();
+// list.forEach(a -> {
+// count.getAndIncrement();
+// a.setId(null);
+// a.setInsOrderId(insOrder.getId());
+// if (StrUtil.isEmpty(a.getSampleCode())) {
+// // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�
+// if (list.size() != 1) {
+// a.setSampleCode(no + "-" + count.get());
+// } else {
+// a.setSampleCode(no);
+// }
+// }
+// insSampleMapper.insert(a);
+//
+// if (!CollectionUtil.isEmpty(a.getInsProduct())) {
+// throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」");
+// }
+// });
+//
+// // 鍘熸潗鏂欎笅鍗�: 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
+// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
+// User user = userMapper.selectById(declareUserId);
+// // 渚涘簲鍟嗗悕绉�
+// insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
+// // 濮旀墭浜哄悕绉�
+// insOrder.setPrepareUser(user.getName());
+// insOrder.setPhone(user.getPhone());
+//
+// // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠�
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>().set(IfsInventoryQuantity::getState, 2)
+// .eq(IfsInventoryQuantity::getId, insOrder.getIfsInventoryId()));
+//
+// insOrder.setExamineTime(LocalDateTime.now());
+//
+// insOrder.setEntrustCode(no);
+// insOrder.setIsExemption(1);
+//
+// insOrderMapper.updateById(insOrder);
+//
+// // 娣诲姞宸ユ椂
+// addAuxiliary(insOrder, ifsInventoryQuantity);
+//
+// // todo: ifs鐩存帴绉诲簱
+// insReportService.isRawMaterial(insOrder);
+//
+// return insOrder.getId();
+// }
+//
+//
+// /**
+// * 鏌ヨ寰呬笅鍗�
+// * @param page
+// * @param ifsInventoryQuantity
+// * @return
+// */
+// @Override
+// public IPage<IfsInventoryQuantityCheckDto> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity) {
+// return standardTreeMapper.selectIfsInventoryQuantity(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+// }
+//
+// /**
+// * 鏌ヨ宸叉楠�
+// * @param page
+// * @param ifsInventoryQuantityDto
+// * @return
+// */
+// @Override
+// public IPage<IfsInventoryQuantitySupplierDto> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
+// // todo: 鍙湅鎴�
+// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
+// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
+// ifsInventoryQuantityDto.setBeginDeclareDate(null);
+// ifsInventoryQuantityDto.setEndDeclareDate(null);
+//
+// return standardTreeMapper.getIfsByOver(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+// }
+//
+// /**
+// * 鍒犻櫎鍘熸潗鏂欐姤妫�淇℃伅
+// * @param id
+// * @return
+// */
+// @Override
+// public int delIfsInventory(Integer id) {
+// return ifsInventoryQuantityMapper.deleteById(id);
+// }
+//
+// /**
+// * 鍘熸潗鏂欐斁琛屽厤妫�
+// * @param ifsInventoryId
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean rawOrderRelease(Integer ifsInventoryId, String partDetail) {
+// // 淇敼鍘熸潗鏂欐暟鎹洿鎺ヤ负宸叉楠�
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getState, 2)
+// .set(IfsInventoryQuantity::getIsQuarter, 0)
+// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
+//
+// // 鏌ヨ鍘熸潗鏂欎俊鎭�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
+// // 濮旀墭浜哄氨鏄姤妫�浜�, 鐢熶骇鍗曚綅灏辨槸渚涘簲鍟嗗崟浣�
+// Integer declareUserId = ifsInventoryQuantity.getDeclareUserId();
+// User user = userMapper.selectById(declareUserId);
+//
+// InsOrder insOrder = new InsOrder();
+// insOrder.setState(4);
+// insOrder.setTypeSource(1);
+// String code = "Y";
+// // 鐢熸垚缂栧彿
+// String no = numberGenerator.generateNumberWithPrefix(3,
+// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
+// InsOrder::getEntrustCode);
+// insOrder.setExamineTime(LocalDateTime.now());
+// insOrder.setEntrustCode(no);
+// insOrder.setIsExemption(1);
+// // 渚涘簲鍟嗗悕绉�
+// insOrder.setProduction(ifsInventoryQuantity.getSupplierName());
+// // 濮旀墭浜哄悕绉�
+// insOrder.setPrepareUser(user.getName());
+// insOrder.setPhone(user.getPhone());
+// insOrder.setIfsInventoryId(ifsInventoryId);
+// insOrder.setPartDetail(partDetail);
+// insOrder.setSendTime(LocalDateTime.now());
+// insOrder.setSample(ifsInventoryQuantity.getPartDesc());
+// // 杩涘巶妫�楠�
+// insOrder.setOrderType(InsOrderTypeConstants.ENTER_THE_FACTORY);
+//
+// insOrderMapper.insert(insOrder);
+//
+// // 娣诲姞宸ユ椂
+// addAuxiliary(insOrder, ifsInventoryQuantity);
+//
+// // todo: ifs鐩存帴绉诲簱
+// insReportService.isRawMaterial(insOrder);
+// return true;
+// }
+//
+// /**
+// * 0, 鏃犳彁绀�, 1鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡妫�楠岃繃, 鍙互鍏嶆, 2 鎻愮ず 褰撳墠鎵规鐨勬牱鍝佸凡瓒�20鍚�, 闇�瑕佸绾у娆℃楠�
+// *
+// * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
+// * @param ifsInventoryId
+// * @return
+// */
+// @Override
+// public int notificationRawOrder(Integer ifsInventoryId) {
+// IfsInventoryQuantity ifsInventory = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
+// // 鏌ヨ褰撳墠鎵规, 渚涘簲鍟�, 闆朵欢鍙风殑鍘熸潗鏂欐槸鍚﹁秴杩囦簡20鍚�, 瓒呰繃浜�20鍚ㄩ渶瑕佽繘琛屽娆℃楠屾彁閱�
+// List<IfsInventoryQuantity> quantityList = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+// .eq(IfsInventoryQuantity::getPartNo, ifsInventory.getPartNo())
+// .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventory.getUpdateBatchNo())
+// .eq(IfsInventoryQuantity::getSupplierId, ifsInventory.getSupplierId())
+// .eq(IfsInventoryQuantity::getSupplierName, ifsInventory.getSupplierName()));
+//
+// // 鍒ゆ柇鏄惁澶т簬20鍚�
+// BigDecimal bigDecimal = new BigDecimal("20000");
+// BigDecimal count = BigDecimal.ZERO;
+// for (IfsInventoryQuantity inventoryQuantity : quantityList) {
+// // 鍒ゆ柇鍗曚綅鏄痥g鎴栬�卼
+// if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("t")) {
+// count = count.add(inventoryQuantity.getQtyArrived().multiply(new BigDecimal("1000")));
+// } else if (inventoryQuantity.getBuyUnitMeas().equalsIgnoreCase("kg")) {
+// count = count.add(inventoryQuantity.getQtyArrived());
+// }
+// }
+//
+// if (count.compareTo(bigDecimal) >= 0) {
+// return 2;
+// } else {
+// // 鍒ゆ柇涔嬪墠鏄惁鍑鸿繃鎶ュ憡, 鍑鸿繃鎶ュ憡鍙互鍏嶆
+// int reportCount = ifsInventoryQuantityMapper.selectReportCountById(ifsInventoryId);
+// if (reportCount > 0) {
+// return 1;
+// }
+// }
+// return 0;
+// }
+//
+// /**
+// * 鎶ユ鍙互鏂板鎶ユ淇℃伅
+// * @param ifsInventoryQuantity
+// */
+// @Override
+// public void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity) {
+// ifsInventoryQuantity.setIsSource(0);
+// ifsInventoryQuantity.setState(0);
+// ifsInventoryQuantity.setIsFinish(0);
+// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
+// }
+//
+// @Override
+// public void shiftingParking(List<Integer> ids) {
+// for (Integer id : ids) {
+// InsOrder order = insOrderService.getById(id);
+// // todo: ifs鐩存帴绉诲簱
+// insReportService.isRawMaterial(order);
+// }
+// }
+//
+// /**
+// * 閾滃崟涓濅笅鍗曞厤妫�
+// * @param list
+// * @param insOrder
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto insOrder) {
+// if (!insOrder.getOrderType().equals(InsOrderTypeConstants.ENTER_THE_FACTORY)) {
+// throw new ErrorException("鍙湁杩涘巶妫�楠屾墠鑳藉厤妫�");
+// }
+// insOrder.setSendTime(LocalDateTime.now());
+// // 淇敼璁㈠崟琛ㄧ洿鎺ヤ负宸叉楠�
+// insOrder.setState(4);
+// insOrder.setTypeSource(1);
+//
+// String code = "Y";
+// // 鐢熸垚缂栧彿
+// String no = numberGenerator.generateNumberWithPrefix(3,
+// "JCZX/ZB-" + code + LimsDateUtil.resetDate(LocalDateTime.now()),
+// InsOrder::getEntrustCode);
+//
+// insOrderMapper.insert(insOrder); // 涓昏〃
+//
+// AtomicInteger count = new AtomicInteger();
+// list.forEach(a -> {
+// count.getAndIncrement();
+// a.setId(null);
+// a.setInsOrderId(insOrder.getId());
+// if (StrUtil.isEmpty(a.getSampleCode())) {
+// // 濡傛灉鍙湁涓�涓牱鍝佸氨涓嶉渶瑕佹嫾鎺ユ暟瀛�
+// if (list.size() != 1) {
+// a.setSampleCode(no + "-" + count.get());
+// } else {
+// a.setSampleCode(no);
+// }
+// }
+// insSampleMapper.insert(a);
+//
+// if (!CollectionUtil.isEmpty(a.getInsProduct())) {
+// throw new ErrorException("鍏嶆涓嶉渶瑕佸~鍐欐楠岄」");
+// }
+// });
+// // 娣诲姞鍘熸潗鏂欎俊鎭�
+// IfsInventoryQuantity ifsInventoryQuantity = new IfsInventoryQuantity();
+// // 鍩烘湰淇℃伅
+// ifsInventoryQuantity.setIsSource(0);
+// ifsInventoryQuantity.setState(2);
+// ifsInventoryQuantity.setIsInspect(1);
+// ifsInventoryQuantity.setIsFinish(1);
+// ifsInventoryQuantity.setIsCopper(1);
+// ifsInventoryQuantity.setInspectStatus(1);
+// ifsInventoryQuantity.setIsQuarter(0);
+//
+// ifsInventoryQuantity.setQtyArrived(insOrder.getQtyArrived());
+// ifsInventoryQuantity.setBuyUnitMeas(insOrder.getBuyUnitMeas());
+// ifsInventoryQuantity.setSupplierName(insOrder.getSupplierName());
+// ifsInventoryQuantity.setUpdateBatchNo(insOrder.getUpdateBatchNo());
+// ifsInventoryQuantity.setDeclareDate(insOrder.getDeclareDate());
+//
+// ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
+//
+// insOrder.setIfsInventoryId(ifsInventoryQuantity.getId());
+// insOrder.setExamineTime(LocalDateTime.now());
+//
+// insOrder.setEntrustCode(no);
+// insOrder.setIsExemption(1);
+//
+// insOrderMapper.updateById(insOrder);
+//
+// // 娣诲姞宸ユ椂
+// addAuxiliary(insOrder, ifsInventoryQuantity);
+//
+// return insOrder.getId();
+// }
+//
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean concessionRelease(Integer ifsInventoryId) {
+// // 鏌ヨ鍘熸潗鏂欎俊鎭�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
+// if (!ifsInventoryQuantity.getInspectStatus().equals(2)) {
+// throw new ErrorException("涓嶅悎鏍肩殑鍘熸潗鏂欐墠鑳借姝ユ斁琛�");
+// }
+//
+// // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛�
+// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
+//
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getInspectStatus, 4)
+// .set(IfsInventoryQuantity::getToLocation, toLocation)
+// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
+//
+// return true;
+// }
+//
+// /**
+// * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
+// * @param enterOrderId
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean repealEnterRawOrder(Integer enterOrderId) {
+// // 鏌ヨ璁㈠崟
+// InsOrder order = insOrderMapper.selectById(enterOrderId);
+//
+// // 鏌ヨ鍒ゆ柇鏄惁鏄摐鍗曚笣
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+// if (ifsInventoryQuantity.getIsCopper() != null && ifsInventoryQuantity.getIsCopper().equals(1)) {
+// // 閾滃崟涓濈洿鎺ュ垹闄ゅ氨琛�
+// ifsInventoryQuantityMapper.deleteById(order.getIfsInventoryId());
+// } else {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getState, 0)
+// .set(IfsInventoryQuantity::getIsQuarter, 1)
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
+// }
+// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getId, enterOrderId)
+// .set(InsOrder::getState, -1)
+// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
+//
+// // 娓呴櫎涔嬪墠鐨勫伐鏃�
+// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
+// .eq(AuxiliaryOutputWorkingHours::getOrderId, enterOrderId));
+//
+// // 娓呴櫎涔嬪墠鎶ュ憡
+// insReportService.remove(Wrappers.<InsReport>lambdaQuery()
+// .eq(InsReport::getInsOrderId, enterOrderId));
+//
+// return true;
+// }
+//
+// /**
+// * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
+// * @param quarterOrderId
+// * @return
+// */
+// @Override
+// @Transactional(rollbackFor = Exception.class)
+// public boolean repealQuarterRawOrder(Integer quarterOrderId) {
+// // 鏌ヨ璁㈠崟
+// InsOrder order = insOrderMapper.selectById(quarterOrderId);
+//
+// Long count = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery()
+// .eq(InsOrder::getIfsInventoryId, order.getIfsInventoryId())
+// .ne(InsOrder::getState, -1)
+// .eq(InsOrder::getOrderType, InsOrderTypeConstants.ENTER_THE_FACTORY)
+// .ne(InsOrder::getId, order.getId()));
+// // 鍒ゆ柇涔嬪墠鏄惁鏈夎繘鍘傛楠�, 娌℃湁闇�瑕佷慨鏀瑰師鏉愭枡淇℃伅
+// if (count == 0) {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getState, 0)
+// .set(IfsInventoryQuantity::getIsQuarter, 1)
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
+// } else {
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getIsQuarter, 1)
+// .eq(IfsInventoryQuantity::getId, order.getIfsInventoryId()));
+// }
+//
+// insOrderService.update(Wrappers.<InsOrder>lambdaUpdate()
+// .eq(InsOrder::getId, quarterOrderId)
+// .set(InsOrder::getState, -1)
+// .set(InsOrder::getEntrustCode, ""));// 鎾ら攢
+// auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
+// .eq(AuxiliaryOutputWorkingHours::getOrderId, quarterOrderId));
+// // 娓呴櫎涔嬪墠鎶ュ憡
+// insReportService.remove(Wrappers.<InsReport>lambdaQuery()
+// .eq(InsReport::getInsOrderId, quarterOrderId));
+// return true;
+// }
+//
+// /**
+// * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭
+// * @param ifsInventoryQuantityDto
+// * @param response
+// */
+// @Override
+// public void rawAllExport(IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto, HttpServletResponse response) throws UnsupportedEncodingException {
+// //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹�
+// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
+// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
+// ifsInventoryQuantityDto.setBeginDeclareDate(null);
+// ifsInventoryQuantityDto.setEndDeclareDate(null);
+// List<IfsInventoryQuantitySupplierDto> ifsByOverList = standardTreeMapper.getIfsByOverList(QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+//
+// for (IfsInventoryQuantitySupplierDto dto : ifsByOverList) {
+// dto.setSendTimeString(dto.getSendTime() == null ? "" : dto.getSendTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+// dto.setReceiverDateString(dto.getReceiverDate() == null ? "" : dto.getReceiverDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+// dto.setDeclareDateString(dto.getDeclareDate() == null ? "" : dto.getDeclareDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+// switch (dto.getInspectStatus()) {
+// case 1:
+// dto.setInspectStatusString("鍚堟牸");
+// break;
+// case 2:
+// dto.setInspectStatusString("涓嶅悎鏍�");
+// // 鏌ヨ涓嶅悎鏍奸」
+// List<String> unqualifiedList = insProductMapper.selectUnqualifiedList(dto.getEnterOrderId() == null ? dto.getQuarterOrderId() : dto.getEnterOrderId());
+// dto.setUnqualifiedItem(CollUtil.join(unqualifiedList, ","));
+// break;
+// case 3:
+// dto.setInspectStatusString("鏈笅鍗�");
+// break;
+// case 4:
+// dto.setInspectStatusString("璁╂鏀捐");
+// break;
+// case 0:
+// dto.setInspectStatusString("妫�楠屼腑");
+// break;
+//
+// }
+// }
+//
+//
+// 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");
+// try {
+// //鏂板缓ExcelWriter
+// ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+// //鑾峰彇sheet0瀵硅薄
+// WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭鍑�").head(IfsInventoryQuantitySupplierDto.class).build();
+//
+// //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶�
+// excelWriter.write(ifsByOverList, mainSheet);
+// //鍏抽棴娴�
+// excelWriter.finish();
+// } catch (IOException e) {
+// throw new RuntimeException("瀵煎嚭澶辫触");
+// }
+// }
+//
+// /**
+// * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭
+// * @param page
+// * @param ifsInventoryQuantityDto
+// * @return
+// */
+// @Override
+// public IPage<IfsInventoryQuantitySupplierDto> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto) {
+//
+// // todo: 鍙湅鎴�
+// String beginDeclareDate = ifsInventoryQuantityDto.getBeginDeclareDate();
+// String endDeclareDate = ifsInventoryQuantityDto.getEndDeclareDate();
+// ifsInventoryQuantityDto.setBeginDeclareDate(null);
+// ifsInventoryQuantityDto.setEndDeclareDate(null);
+//
+// return standardTreeMapper.getIfsByQuarter(page, QueryWrappers.queryWrappers(ifsInventoryQuantityDto), beginDeclareDate, endDeclareDate);
+// }
+//
+// /**
+// * 鎻愬墠鍏ュ簱
+// * @param ifsInventoryId
+// * @return
+// */
+// @Override
+// public boolean advancedGodown(Integer ifsInventoryId) {
+// // 鏌ヨ鍘熸潗鏂欎俊鎭�
+// IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId);
+// if (!ifsInventoryQuantity.getInspectStatus().equals(0)
+// && !ifsInventoryQuantity.getInspectStatus().equals(3)) {
+// throw new ErrorException("鏈娴嬪畬鎴愭暟鎹墠鑳芥彁鍓嶅叆搴�");
+// }
+//
+// // todo:闇�瑕佸垽鏂璷a娴佺▼鏄惁鏄姝ユ斁琛�
+// String toLocation = insReportService.moveRawMaterial(ifsInventoryQuantity);
+//
+// ifsInventoryQuantityMapper.update(null, new LambdaUpdateWrapper<IfsInventoryQuantity>()
+// .set(IfsInventoryQuantity::getInspectStatus, 1)
+// .set(IfsInventoryQuantity::getIsFinish, 1)
+// .set(IfsInventoryQuantity::getToLocation, toLocation)
+// .eq(IfsInventoryQuantity::getId, ifsInventoryId));
+//
+// return true;
+// }
+//
+//
+// /**
+// * 娣诲姞宸ユ椂
+// * @param insOrder
+// * @param ifsInventoryQuantity
+// */
+// private void addAuxiliary(InsOrder insOrder, IfsInventoryQuantity ifsInventoryQuantity) {
+// AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours();
+// auxiliaryOutputWorkingHours.setInspectionItemClass(ifsInventoryQuantity.getUpdateBatchNo() + "鍏嶆");//妫�娴嬮」鍒嗙被
+// auxiliaryOutputWorkingHours.setSample(insOrder.getEntrustCode());//鏍峰搧缂栧彿
+// auxiliaryOutputWorkingHours.setOrderId(insOrder.getId());//璁㈠崟id
+// auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙�
+//
+// // 鍏嶆榛樿2
+// auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal("2"));//闈炲姞鐝伐鏃�
+// auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲�
+// auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : BigDecimal.ZERO));//浜ч噺宸ユ椂
+// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+// DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+// auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡
+// LocalDateTime localDateTime = LocalDateTime.now();
+// DateTime parse = DateUtil.parse(localDateTime.format(formatter));
+// auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡
+// auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ
+// auxiliaryOutputWorkingHours.setCheck(SecurityUtils.getUserId().intValue());//妫�娴嬩汉
+// auxiliaryOutputWorkingHours.setPrice(new BigDecimal("1"));//鍗曚环
+//
+// auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours);
+// }
+//
+// public static String getWeek(String dayStr) {
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+// try {
+// Date date = sdf.parse(dayStr);
+// Calendar calendar = Calendar.getInstance();
+// calendar.setTime(date);
+// int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+// int day = calendar.get(Calendar.DAY_OF_MONTH);
+// return getWeekDay(dayOfWeek);
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// return null;
+// }
+//
+// public static String getWeekDay(int dayOfWeek) {
+// switch (dayOfWeek) {
+// case Calendar.MONDAY:
+// return "鍛ㄤ竴";
+// case Calendar.TUESDAY:
+// return "鍛ㄤ簩";
+// case Calendar.WEDNESDAY:
+// return "鍛ㄤ笁";
+// case Calendar.THURSDAY:
+// return "鍛ㄥ洓";
+// case Calendar.FRIDAY:
+// return "鍛ㄤ簲";
+// case Calendar.SATURDAY:
+// return "鍛ㄥ叚";
+// case Calendar.SUNDAY:
+// return "鍛ㄦ棩";
+// default:
+// return "鏈煡";
+// }
+// }
+//}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviationAnalyzeVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviationAnalyzeVo.java
new file mode 100644
index 0000000..3b98458
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/DeviationAnalyzeVo.java
@@ -0,0 +1,58 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 鍋忓樊鍒嗘瀽瀵硅薄
+ *
+ * @Author zhuo
+ * @Date 2024/10/25
+ */
+@Data
+public class DeviationAnalyzeVo {
+
+ @ApiModelProperty("鍘傚妫�娴嬫暟鎹�")
+ private List<Object> supplierData;
+
+ @ApiModelProperty("鏈湴妫�娴嬫暟鎹�")
+ private List<Object> localData;
+
+ @ApiModelProperty("缁濆鍋忓樊")
+ private List<Object> absoluteDeviation;
+
+ @ApiModelProperty("骞冲潎鍊�")
+ private List<Object> average;
+
+ /**
+ * 鍘傚
+ */
+ @ApiModelProperty("UCL")
+ private List<Object> supplierULC;
+
+ @ApiModelProperty("LCL")
+ private List<Object> supplierLCL;
+
+ @ApiModelProperty("骞冲潎鍊�")
+ private List<Object> supplierAverage;
+
+ @ApiModelProperty("鏋佸樊")
+ private List<Object> supplierRange;
+
+ /**
+ * 鏈湴
+ */
+ @ApiModelProperty("UCL")
+ private List<Object> localULC;
+
+ @ApiModelProperty("LCL")
+ private List<Object> localLCL;
+
+ @ApiModelProperty("骞冲潎鍊�")
+ private List<Object> localAverage;
+
+ @ApiModelProperty("鏋佸樊")
+ private List<Object> localRange;
+}
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..4a064d3
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanTaskSwitchVo.java
@@ -0,0 +1,35 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class InsOrderPlanTaskSwitchVo{
+ private String id;
+
+ private String entrustCode;
+
+ private String sampleType;
+
+ @ApiModelProperty("绱ф�ョ▼搴�")
+ private String type;
+
+ @ApiModelProperty("鐘舵��")
+ private String insState;
+
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ private String appointed;
+
+ @ApiModelProperty("涓嬪彂鏃堕棿")
+ 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..fe6ff0c
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java
@@ -0,0 +1,78 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class InsOrderPlanVO{
+
+
+ private String id;
+
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String sampleModel;
+
+ @ApiModelProperty("绱ф�ョ▼搴�")
+ private String type;
+
+ @ApiModelProperty("妫�楠岀被鍨�")
+ private String orderType;
+
+ @ApiModelProperty("鐘舵��")
+ private String insState;
+
+ @ApiModelProperty("妫�楠屼汉")
+ private String userName;
+
+ @ApiModelProperty("澶嶆牳浜�")
+ private String checkName;
+
+ private Integer userId;
+
+ @ApiModelProperty("妫�楠屽紑濮嬫椂闂�")
+ private String insTime;
+
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ private String appointed;
+
+ @ApiModelProperty("涓嬪彂鏃堕棿")
+ private String sendTime;
+
+ @ApiModelProperty("鐞嗙敱")
+ private String verifyTell;
+
+
+ private String sonLaboratory;
+
+ private Integer orderUserId;
+
+ private Integer verifyUser;
+
+ @ApiModelProperty("涓嬪崟绫诲埆")
+ private Integer typeSource;
+
+ @ApiModelProperty("鍘熸潗鏂檌d")
+ private Integer ifsInventoryId;
+
+ @ApiModelProperty("鎶ュ憡鍦板潃")
+ private String url;
+
+ @ApiModelProperty("鏂板湴鍧�")
+ private String urlS;
+
+ @ApiModelProperty("鏄惁鏄摐鍗曚笣")
+ private Integer isCopper;
+
+ @ApiModelProperty("鏌ョ湅涓存椂鎶ュ憡鍦板潃")
+ private String tempUrlPdf;
+
+ @ApiModelProperty("鎶ュ憡id")
+ private String insReportId;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPrintingVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPrintingVo.java
new file mode 100644
index 0000000..46595ea
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPrintingVo.java
@@ -0,0 +1,47 @@
+package com.ruoyi.inspect.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author zhuo
+ * @Date 2024/12/3
+ */
+@Data
+public class InsOrderPrintingVo {
+
+ @ApiModelProperty("璁㈠崟缂栧彿")
+ private Integer insOrderId;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sampleView;
+
+ @ApiModelProperty("鐢熶骇鍗曚綅")
+ private String production;
+
+ @ApiModelProperty("瑙勬牸鍨嬪彿")
+ private String sampleModel;
+
+ @ApiModelProperty("濮旀墭鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime sendTime;
+
+ @ApiModelProperty("濮旀墭浜�")
+ private String prepareUser;
+
+ @ApiModelProperty("妫�娴嬬紪鍙�")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private String testQuantity;
+
+ @ApiModelProperty("鏉″舰鐮�")
+ private String labelBarCode;
+
+ @ApiModelProperty("璁㈠崟鐘舵��")
+ private Integer insState;
+
+}
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/RawMaterialSupplierVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/RawMaterialSupplierVo.java
new file mode 100644
index 0000000..3b047ab
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/RawMaterialSupplierVo.java
@@ -0,0 +1,31 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2024/10/24
+ */
+@Data
+public class RawMaterialSupplierVo {
+
+ @ApiModelProperty("璁㈠崟id")
+ private Integer OrderId;
+
+ @ApiModelProperty("渚涘簲鍟嗗悕绉�")
+ private String supplierName;
+
+ @ApiModelProperty("妫�娴嬬紪鍙�")
+ private String entrustCode;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("妫�娴嬪��")
+ private String lastValue;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/vo/RawProductAnalysisVo.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/RawProductAnalysisVo.java
new file mode 100644
index 0000000..39efd36
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/RawProductAnalysisVo.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 椤规鍒嗘瀽杩斿洖瀵硅薄
+ *
+ * @Author zhuo
+ * @Date 2024/10/17
+ */
+@Data
+public class RawProductAnalysisVo {
+
+ @ApiModelProperty("妫�楠岄」鍚嶇О")
+ private List<String> itemNames;
+
+ @ApiModelProperty("妫�楠岄」鍐呭")
+ private List<Map<String, Object>> productList;
+}
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/UnqualifiedHandlerVO.java b/inspect-server/src/main/java/com/ruoyi/inspect/vo/UnqualifiedHandlerVO.java
new file mode 100644
index 0000000..bebc1ca
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/vo/UnqualifiedHandlerVO.java
@@ -0,0 +1,155 @@
+package com.ruoyi.inspect.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.inspect.pojo.InsUnqualifiedHandler;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class UnqualifiedHandlerVO extends InsUnqualifiedHandler {
+
+ @ApiModelProperty("涓嶅悎鏍煎鐞嗕富閿甶d")
+ private Long handlerId;
+
+ @ApiModelProperty("鍩�")
+ private String contract;
+
+ @ApiModelProperty("璁㈠崟鍙�")
+ private String orderNo;
+
+ @ApiModelProperty("琛屽彿")
+ private String lineNo;
+
+ @ApiModelProperty("涓嬭揪鍙�")
+ private String releaseNo;
+
+ @ApiModelProperty("鎺ユ敹鍙�")
+ private Integer receiptNo;
+
+ @ApiModelProperty("闆朵欢鍙�")
+ private String partNo;
+
+ @ApiModelProperty("闆朵欢鎻忚堪")
+ private String partDesc;
+
+ @ApiModelProperty("鐘舵�佹弿杩�")
+ private String status;
+
+ @ApiModelProperty("鐘舵��")
+ private String statusDB;
+
+ @ApiModelProperty("鎶佃揪鐨勯噰璐暟閲�")
+ private BigDecimal qtyArrived;
+
+ @ApiModelProperty("宸叉楠岀殑璐拱鏁伴噺")
+ private BigDecimal qtyInspected;
+
+ @ApiModelProperty("瑕佹楠岀殑閲囪喘鏁伴噺")
+ private BigDecimal qtyToInspect;
+
+ @ApiModelProperty("渚涘簲鍟嗙紪鍙�")
+ private String supplierId;
+
+ @ApiModelProperty("渚涘簲鍟嗗悕绉�")
+ private String supplierName;
+
+ @ApiModelProperty("鎶佃揪鐨勫簱瀛樻暟閲�")
+ private BigDecimal invQtyInStore;
+
+ @ApiModelProperty("鎶佃揪鐨勯噰璐暟閲�")
+ private BigDecimal purQtyInStore;
+
+ @ApiModelProperty("閰嶇疆鏍囪瘑")
+ private String configurationId;
+
+ @ApiModelProperty("鎵瑰彿")
+ private String lotBatchNo;
+
+ @ApiModelProperty("wdr鍙�")
+ private String waivDevRejNo;
+
+ @ApiModelProperty("娲诲姩搴忓垪")
+ private String activitySeq;
+
+
+ @ApiModelProperty("搴忓垪鍙�")
+ private String serialNo;
+
+ @ApiModelProperty("搴撲綅鍙�")
+ private String locationNo;
+
+ @ApiModelProperty("鐗堟湰鍙�")
+ private String engChgLevel;
+
+ @ApiModelProperty("鎺ユ敹浜�")
+ private String receiver;
+
+ @ApiModelProperty("鎺ユ敹浜哄鍚�")
+ private String receiverName;
+
+ @ApiModelProperty("閲囪喘鍛�")
+ private String buyerCode;
+
+ @ApiModelProperty("閲囪喘鍛樺鍚�")
+ private String buyerName;
+
+ @ApiModelProperty("瀹為檯鍒拌揣鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime arriveDate;
+
+ @ApiModelProperty("瀹為檯浜よ揣鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime deliveryDate;
+
+ @ApiModelProperty("鐢熶骇鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime productDate;
+
+ @ApiModelProperty("澶辨晥鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime invalidDate;
+
+
+ @ApiModelProperty("瀹℃壒鏃ユ湡")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime approvedDate;
+
+ @ApiModelProperty("閲囪喘鐢宠鍒涘缓浜�")
+ private String reqCeater;
+
+ @ApiModelProperty("閲囪喘鐢宠鍒涘缓浜哄鍚�")
+ private String reqCeaterName;
+
+ @ApiModelProperty("閲囪喘璁㈠崟琛屽娉�")
+ private String lineRemarks;
+
+ @ApiModelProperty("閲囪喘鍗曚綅")
+ private String buyUnitMeas;
+
+ /**
+ * 鏄惁涓篿fs鎷夊彇 1:鏄� 0:鍚�
+ */
+ @ApiModelProperty("鏄惁涓篿fs鎷夊彇 1:鏄� 0:鍚�")
+ private Integer isSource;
+
+ /**
+ * 鎷嗗垎鏁伴噺
+ */
+ @ApiModelProperty("鎷嗗垎鏁伴噺")
+ private Integer number;
+
+
+ /**
+ * 妫�楠岀姸鎬�
+ */
+ @ApiModelProperty("妫�楠岀姸鎬�")
+ private Integer state;
+
+ @ApiModelProperty("鎺ユ敹鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime receiverDate;
+
+}
diff --git a/inspect-server/src/main/resources/static/factory_verify.docx b/inspect-server/src/main/resources/static/factory_verify.docx
new file mode 100644
index 0000000..c74f9d8
--- /dev/null
+++ b/inspect-server/src/main/resources/static/factory_verify.docx
Binary files differ
diff --git a/inspect-server/src/main/resources/static/report-template.docx b/inspect-server/src/main/resources/static/report-template.docx
new file mode 100644
index 0000000..446e3f9
--- /dev/null
+++ b/inspect-server/src/main/resources/static/report-template.docx
Binary files differ
diff --git a/inspect-server/src/main/resources/static/small-report-template.docx b/inspect-server/src/main/resources/static/small-report-template.docx
new file mode 100644
index 0000000..8fc7a23
--- /dev/null
+++ b/inspect-server/src/main/resources/static/small-report-template.docx
Binary files differ
diff --git a/inspect-server/src/main/resources/static/spot_check_quarter.docx b/inspect-server/src/main/resources/static/spot_check_quarter.docx
new file mode 100644
index 0000000..0d1c843
--- /dev/null
+++ b/inspect-server/src/main/resources/static/spot_check_quarter.docx
Binary files differ
diff --git a/inspect-server/src/main/resources/static/spot_check_year.docx b/inspect-server/src/main/resources/static/spot_check_year.docx
new file mode 100644
index 0000000..0df5e76
--- /dev/null
+++ b/inspect-server/src/main/resources/static/spot_check_year.docx
Binary files differ
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java
index 290e0f2..80cb612 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java
@@ -35,7 +35,7 @@
AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService;
@ApiOperation(value = "鏌ヨ淇宸ユ椂")
- @PostMapping("/selectAuxiliaryCorrectionHours")
+ @GetMapping("/selectAuxiliaryCorrectionHours")
public Result selectAuxiliaryCorrectionHours(Page page,AuxiliaryCorrectionHoursDto entity) throws Exception {
return Result.success(auxiliaryCorrectionHoursService.selectAuxiliaryCorrectionHours(page, entity));
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java
index e70636c..62e128b 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java
@@ -25,20 +25,20 @@
AuxiliaryOriginalHoursService auxiliaryOriginalHoursService;
@ApiOperation(value = "鏌ヨ鍘熷宸ユ椂")
- @PostMapping("/selectAuxiliaryOriginalHours")
+ @GetMapping("/selectAuxiliaryOriginalHours")
public Result selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto entity) throws Exception {
return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryOriginalHours(page, entity));
}
@ApiOperation(value = "瀵煎嚭鍘熷宸ユ椂")
- @PostMapping("/exportOriginalHours")
+ @GetMapping("/exportOriginalHours")
public void exportOriginalHours(@RequestParam("month") String month, @RequestParam("name") String name, @RequestParam("departLims") String departLims,HttpServletResponse response) throws IOException {
auxiliaryOriginalHoursService.exportWorkingHours(month,name,departLims,response);
}
@ApiOperation(value = "鏌ヨ鏈堜唤鍏ㄩ儴宸ユ椂")
- @PostMapping("/selectAuxiliaryAllByMonth")
- public Result selectAuxiliaryAllByMonth(@RequestBody AuxiliaryOriginalHoursLookDto dto){
+ @GetMapping("/selectAuxiliaryAllByMonth")
+ public Result selectAuxiliaryAllByMonth(AuxiliaryOriginalHoursLookDto dto){
return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryAllByMonth(dto));
}
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java
index 5fb7d13..2bd041b 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java
@@ -33,15 +33,14 @@
private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService;
@ApiOperation(value = "鏌ヨ浜ч噺宸ユ椂")
- @PostMapping("/selectAuxiliaryOutputWorkingHours")
+ @GetMapping("/selectAuxiliaryOutputWorkingHours")
public Result selectAuxiliaryOutputWorkingHours(Page page,AuxiliaryOutputWorkingHoursDto entity) throws Exception {
return Result.success(auxiliaryOutputWorkingHoursService.selectAuxiliaryOutputWorkingHours(page, entity));
}
@ApiOperation(value = "缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨��")
- @PostMapping("/collectWorkingHours")
- public Result collectWorkingHours(@RequestBody Map<String, Object> data)throws Exception{
- AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class);
+ @GetMapping("/collectWorkingHours")
+ public Result collectWorkingHours(AuxiliaryOutputWorkingHoursDto entity)throws Exception{
return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours(entity));
}
@@ -65,9 +64,8 @@
* @throws IOException
*/
@ApiOperation(value = "瀵煎嚭浜ч噺宸ユ椂")
- @PostMapping("/exportOutputHours")
- public void exportOutputHours(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception {
- AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class);
+ @GetMapping("/exportOutputHours")
+ public void exportOutputHours(AuxiliaryOutputWorkingHoursDto entity, HttpServletResponse response) throws Exception {
auxiliaryOutputWorkingHoursService.exportOutputHours(entity, response);
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java
index bab8fc7..4afdf9f 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java
@@ -8,10 +8,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
@@ -33,13 +30,13 @@
private AuxiliaryWorkingHoursService auxiliaryWorkingHoursService;
@ApiOperation(value="鏌ヨ杈呭姪宸ユ椂")
- @PostMapping("/selectAuxiliaryWorkingHours")
+ @GetMapping("/selectAuxiliaryWorkingHours")
public Result selectAuxiliaryWorkingHours(Page page,AuxiliaryWorkingHours entity) throws Exception {
return Result.success(auxiliaryWorkingHoursService.selectAuxiliaryWorkingHours(page,entity));
}
@ApiOperation(value="鍒犻櫎杈呭姪宸ユ椂")
- @PostMapping("/deleteAuxiliaryWorkingHours")
+ @DeleteMapping("/deleteAuxiliaryWorkingHours")
public Result deleteAuxiliaryWorkingHours(Integer id){
return Result.success(auxiliaryWorkingHoursService.deleteAuxiliaryWorkingHours(id));
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java
index 97b0a81..4fce31e 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java
@@ -10,10 +10,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@@ -39,19 +36,19 @@
private AuxiliaryWorkingHoursDayService auxiliaryWorkingHoursDayService;
@ApiOperation(value = "鏌ヨ宸ユ椂缁熻鐨勮緟鍔╁伐鏃�")
- @PostMapping("/selectAuxiliaryWorkingHoursDay")
+ @GetMapping("/selectAuxiliaryWorkingHoursDay")
public Result selectAuxiliaryWorkingHoursDay(Page page,AuxiliaryWorkingHoursDayDto entity) throws Exception {
return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursDay(page, entity));
}
@ApiOperation(value = "鏍规嵁缂栧彿鏌ヨ杈呭姪宸ユ椂閰嶇疆淇℃伅")
- @PostMapping("/selectAuxiliaryWorkingHoursByNumber")
+ @GetMapping("/selectAuxiliaryWorkingHoursByNumber")
public Result selectAuxiliaryWorkingHoursByNumber(String number) {
return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursByNumber(number));
}
@ApiOperation(value = "鏍规嵁缂栧彿褰撳墠鐢ㄦ埛淇℃伅鏌ヨ鎵�鍦ㄧ彮娆�")
- @PostMapping("/selectshiftByUser")
+ @GetMapping("/selectshiftByUser")
public Result selectshiftByUser(LocalDateTime dateTime) {
return Result.success(auxiliaryWorkingHoursDayService.selectshiftByUser(dateTime));
}
@@ -81,7 +78,7 @@
}
@ApiOperation(value = "鍒犻櫎宸ユ椂缁熻鐨勮緟鍔╁伐鏃�")
- @PostMapping("/deleteAuxiliaryWorkingHoursDay")
+ @DeleteMapping("/deleteAuxiliaryWorkingHoursDay")
public Result deleteAuxiliaryWorkingHoursDay(Integer id) {
return Result.success(auxiliaryWorkingHoursDayService.deleteAuxiliaryWorkingHoursDay(id));
}
@@ -92,9 +89,8 @@
* @throws IOException
*/
@ApiOperation(value = "瀵煎嚭杈呭姪宸ユ椂")
- @PostMapping("/exportAssistantHours")
- public void exportAssistantHours(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception {
- AuxiliaryWorkingHoursDayDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDayDto.class);
+ @GetMapping("/exportAssistantHours")
+ public void exportAssistantHours(AuxiliaryWorkingHoursDayDto entity, HttpServletResponse response) throws Exception {
auxiliaryWorkingHoursDayService.exportWorkingHours(entity, response);
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java
index ecdabdb..7b02c03 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java
@@ -63,19 +63,19 @@
}
@ApiOperation(value = "鏈堜唤鍒嗛〉鏌ヨ")
- @PostMapping("page")
+ @GetMapping("page")
public Result<?> performanceShiftPage(Integer size, Integer current, String time, String userName, String laboratory) {
return Result.success(performanceShiftService.performanceShiftPage(new Page<>(current, size), time, userName, laboratory));
}
@ApiOperation(value = "骞翠唤鍒嗛〉鏌ヨ")
- @PostMapping("pageYear")
+ @GetMapping("pageYear")
public Result<?> performanceShiftPageYear(Integer size, Integer current, String time, String userName, String laboratory) {
return Result.success(performanceShiftService.performanceShiftPageYear(new Page<>(current, size), time, userName, laboratory));
}
@ApiOperation(value = "鐝鐘舵�佷慨鏀�")
- @PutMapping("update")
+ @PostMapping("update")
public Result<?> performanceShiftUpdate(@RequestBody PerformanceShift performanceShift) {
performanceShiftService.performanceShiftUpdate(performanceShift);
return Result.success();
diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java
index 96364e1..6286cd5 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/controller/ShiftTimeController.java
@@ -6,10 +6,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
/**
* <p>
@@ -35,13 +32,13 @@
}
@ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆鏌ヨ")
- @PostMapping("list")
+ @GetMapping("list")
public Result<?> shiftTimeList() {
return Result.success(shiftTimeService.shiftTimeList());
}
@ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆鍒犻櫎")
- @PostMapping("remove")
+ @DeleteMapping("remove")
public Result<?> shiftTimeRemove(Long id) {
return Result.success(shiftTimeService.removeById(id));
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryWorkingHoursMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryWorkingHoursMapper.java
index 46f2c6a..d412e8b 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryWorkingHoursMapper.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryWorkingHoursMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.performance.pojo.AuxiliaryWorkingHours;
+import org.apache.ibatis.annotations.Param;
/**
* <p>
@@ -15,5 +16,5 @@
* @since 2024-05-09 06:58:31
*/
public interface AuxiliaryWorkingHoursMapper extends BaseMapper<AuxiliaryWorkingHours> {
- IPage<AuxiliaryWorkingHours> selectAuxiliaryWorkingHours(Page page, QueryWrapper<AuxiliaryWorkingHours> ew);
+ IPage<AuxiliaryWorkingHours> selectAuxiliaryWorkingHours(@Param("page") Page page, @Param("ew") QueryWrapper<AuxiliaryWorkingHours> ew);
}
diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java
index 091ad29..b339b4f 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/mapper/PerformanceShiftMapper.java
@@ -5,7 +5,7 @@
import com.ruoyi.framework.mybatis_config.MyBaseMapper;
import com.ruoyi.performance.dto.PerformanceShiftMapDto;
import com.ruoyi.performance.pojo.PerformanceShift;
-import org.springframework.data.repository.query.Param;
+import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -31,11 +31,11 @@
@Param("userName") String userName,
@Param("laboratory") String laboratory);
- IPage<Map<String, Object>> performanceShiftYear(Page<Object> page, String time, String userName, String laboratory);
+ IPage<Map<String, Object>> performanceShiftYear(@Param("page") Page<Object> page, @Param("time") String time, @Param("userName") String userName, @Param("laboratory") String laboratory);
- List<Map<String, Object>> performanceShiftYearList(String time, String userName, String laboratory);
+ List<Map<String, Object>> performanceShiftYearList(@Param("time") String time, @Param("userName") String userName, @Param("laboratory") String laboratory);
- List<PerformanceShiftMapDto> performanceShiftList(String time, String userName, String laboratory);
+ List<PerformanceShiftMapDto> performanceShiftList(@Param("time") String time, @Param("userName") String userName, @Param("laboratory") String laboratory);
- String seldepLimsId(int depLimsId);
+ String seldepLimsId(@Param("depLimsId") int depLimsId);
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/InsOrderTypeConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/InsOrderTypeConstants.java
new file mode 100644
index 0000000..676efa1
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/InsOrderTypeConstants.java
@@ -0,0 +1,19 @@
+package com.ruoyi.common.constant;
+
+/**
+ * 妫�楠岀被鍨�
+ *
+ * @Author zhuo
+ * @Date 2024/8/11
+ */
+public class InsOrderTypeConstants {
+ // 妫�楠岀被鍨�
+ public static final String SPOT_CHECK = "鎶芥";
+ // 濮旀墭妫�楠�
+ public static final String CUSTOMER_ORDERED = "Customer-ordered test";
+ // 杩涘巶妫�楠�
+ public static final String ENTER_THE_FACTORY = "杩涘巶妫�楠�";
+ // 瀛e害妫�楠�
+ public static final String QUARTERLY_TEST = "Quarterly inspection";
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java
index 29d18a7..eb50fe3 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/User.java
@@ -18,10 +18,10 @@
@ApiModelProperty(value = "涓婚敭")
@TableId(type = IdType.AUTO)
- private Long id;
+ private Integer id;
@ApiModelProperty(value = "閮ㄩ棬ID")
- private Long deptId;
+ private Integer deptId;
@ApiModelProperty(value = "鐢ㄦ埛璐﹀彿")
private String account;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/properties/IfsProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/properties/IfsProperties.java
new file mode 100644
index 0000000..655a7d3
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/properties/IfsProperties.java
@@ -0,0 +1,46 @@
+package com.ruoyi.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author zhuo
+ * @Date 2024/9/29
+ */
+@Configuration
+@ConfigurationProperties(prefix = "ifs")
+@Data
+public class IfsProperties {
+
+ /**
+ * 鍩�
+ */
+ private String contract;
+
+ /**
+ * 绉橀挜-get
+ */
+ private String contractKeyGet;
+
+
+ /**
+ * 绉橀挜-post
+ */
+ private String contractKeyPost;
+
+ /**
+ * 80
+ */
+ private String custorder;
+
+ /**
+ * 8008
+ */
+ private String custorderPort;
+
+ /**
+ * 8081
+ */
+ private String erpServices;
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/properties/WechatProperty.java b/ruoyi-common/src/main/java/com/ruoyi/common/properties/WechatProperty.java
new file mode 100644
index 0000000..cf484eb
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/properties/WechatProperty.java
@@ -0,0 +1,21 @@
+package com.ruoyi.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author ZTT
+ */
+@Configuration
+@ConfigurationProperties(prefix = "wechat")
+@Data
+public class WechatProperty {
+
+ /**
+ * 瑁呭鐢电紗锛氭姤妫�閫氱煡url
+ */
+ private String examiningUrl;
+
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Base64.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Base64.java
new file mode 100644
index 0000000..abd4425
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Base64.java
@@ -0,0 +1,27 @@
+package com.ruoyi.common.utils;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+
+import javax.xml.bind.DatatypeConverter;
+import java.nio.charset.StandardCharsets;
+
+public class Base64 {
+ /**
+ * base64 缂栫爜锛堟柟娉曚竴锛�
+ * @explain DatatypeConverter.java瀹炵幇
+ * @param str 寰呯紪鐮佸瓧绗︿覆
+ * @return 缂栫爜瀛楃涓�
+ */
+ public static String encode(String str) {
+ // base64瀛楃涓�
+ String base64Str = "";
+ // 闈炲瓧绗︿覆鎵嶈繘琛岀紪鐮�
+ if (StringUtils.isNotBlank(str)) {
+ // String 杞� byte[]
+ byte[] bytes = str.getBytes(StandardCharsets.UTF_8);
+ // 缂栫爜
+ base64Str = DatatypeConverter.printBase64Binary(bytes);
+ }
+ return base64Str;
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IfsApiUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IfsApiUtils.java
new file mode 100644
index 0000000..21460ef
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IfsApiUtils.java
@@ -0,0 +1,180 @@
+package com.ruoyi.common.utils;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.properties.IfsProperties;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author zhuo
+ * @Date 2024/9/29
+ */
+@Slf4j
+@AllArgsConstructor
+@Component
+public class IfsApiUtils {
+
+ private IfsProperties ifsProperties;
+
+
+ /**
+ * 鏌ヨ閲囪喘璁㈠崟鏈楠�
+ */
+ private String getStock(String inAttr) {
+ return ifsProperties.getCustorderPort() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=QUERY_POL_RECEIPT_STD&userId=lims_user&inAttr=" + inAttr;
+ }
+
+ public List<Map<String, Object>> getInventory(String inAttr) {
+ String body = HttpRequest.get(getStock(inAttr)).execute().body();
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ Map map = objectMapper.readValue(body, Map.class);
+ List<Map<String, Object>> maps = objectMapper.readValue(JSONUtil.toJsonStr(map.get("LIST_INFO")), new TypeReference<List<Map<String, Object>>>() {
+ });
+ log.info("鑾峰彇閲囪喘璁㈠崟-->>" + maps);
+ return maps;
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * 鐧昏閲囪喘妫�楠岀粨鏋淪TD
+ */
+ private String ProcurementResultsURL(String inAttr) {
+ return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=REGIST_INSPECTION_RESULTS_STD&userId=lims_user&inAttr=" + inAttr;
+ }
+
+ public Result getProcurementResults(String inAttr) {
+ String body = HttpRequest.get(ProcurementResultsURL(inAttr)).execute().body();
+ log.info("鐧昏閲囪喘妫�楠岀粨鏋�-->" + body);
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ Map map = objectMapper.readValue(body, Map.class);
+ String successFlag = map.get("SuccessFlag").toString();
+ if (Integer.valueOf(successFlag) == 1) {
+ return Result.success(map);
+ } else {
+ return Result.fail(map.get("ErrorMsg").toString());
+ }
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return Result.fail(e.getMessage());
+ }
+ }
+
+
+ /**
+ * 妫�楠屽悗绉诲簱
+ */
+ private String getMoveReceiptApi(String inAttr) {
+
+ return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=MOVE_RECEIPT_STD&userId=lims_user&inAttr=" + inAttr;
+ }
+
+ /**
+ * 鍘熸潗鏂欐楠�-妫�楠屽悗绉诲簱
+ *
+ * @param inAttr
+ * @return
+ */
+ public Result moveReceipt(String inAttr) {
+ String body = HttpRequest.get(getMoveReceiptApi(inAttr)).execute().body();
+ log.info("妫�楠屽悗绉诲簱-->" + body);
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ Map map = objectMapper.readValue(body, Map.class);
+ String successFlag = map.get("SuccessFlag").toString();
+ if (Integer.valueOf(successFlag) == 1) {
+ return Result.success(map);
+ } else {
+ return Result.fail(map.get("ErrorMsg").toString());
+ }
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return Result.fail(e.getMessage());
+ }
+ }
+
+ /**
+ * 閲囪喘鎺ユ敹鏇存敼鎵瑰彿
+ */
+ private String getMoveReceiptLotApi(String inAttr) {
+
+ return ifsProperties.getCustorder() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=MODIFY_PURCH_RECEIPT_LOT_STD&userId=lims_user&inAttr=" + inAttr;
+ }
+
+ /**
+ * 鍘熸潗鏂欐楠�-妫�楠屽悗绉诲簱
+ *
+ * @param inAttr
+ * @return
+ */
+ public Result updateMoveReceiptLot(String inAttr) {
+ String body = HttpRequest.get(getMoveReceiptLotApi(inAttr)).execute().body();
+ log.info("淇敼閲囪喘璁㈠崟鎵规鍙�-->" + body);
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ Map map = objectMapper.readValue(body, Map.class);
+ String successFlag = map.get("SuccessFlag").toString();
+ if (Integer.valueOf(successFlag) == 1) {
+ return Result.success(map);
+ } else {
+ return Result.fail(map.get("ErrorMsg").toString());
+ }
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return Result.fail(e.getMessage());
+ }
+ }
+
+
+ /**
+ * 鏌ヨ搴撳瓨鏁版嵁
+ */
+ private String getIfsStockApi(String inAttr) {
+
+ return ifsProperties.getCustorderPort() + "contract=" + ifsProperties.getContract() + "&contractKey=" + ifsProperties.getContractKeyGet() + "&procedureName=QUERY_INVENTORY_INFO_STD&userId=lims_user&inAttr=" + inAttr;
+ }
+
+ /**
+ * 鏌ヨ搴撳瓨鏁版嵁
+ *
+ * @param inAttr
+ * @return
+ */
+ public Result getIfsStock(String inAttr) {
+ JSONObject stockMap = new JSONObject();
+ stockMap.put("procedureName", "QUERY_INVENTORY_INFO_STD");
+ stockMap.put("contract", ifsProperties.getContract());
+ stockMap.put("contractKey", ifsProperties.getContractKeyPost());
+ stockMap.put("userId", "userId");
+ stockMap.put("inAttr", inAttr);
+ String body = HttpRequest.post(ifsProperties.getCustorderPort()).form(stockMap).execute().body();
+ log.info("鏌ヨ搴撳瓨淇℃伅-->" + body);
+ ObjectMapper objectMapper = new ObjectMapper();
+ try {
+ Map map = objectMapper.readValue(body, Map.class);
+ String successFlag = map.get("SuccessFlag").toString();
+ if (Integer.valueOf(successFlag) == 1) {
+ return Result.success(map);
+ } else {
+ return Result.fail(map.get("ErrorMsg").toString());
+ }
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return Result.fail(e.getMessage());
+ }
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
new file mode 100644
index 0000000..b3620ee
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
@@ -0,0 +1,93 @@
+package com.ruoyi.common.utils;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+public class IndustryChainUtils {
+ private static final String CLOUD_LOGIN = "https://gym.ztt.cn:1443/openApi/v1/user/login";
+ private static final String CLOUD_REQUEST = "https://gym.ztt.cn:1443/openApi/codeGenerate/getCodeDetailByOrder";
+ //璇锋眰琛ㄥ崟璐﹀彿
+ private static final String USERNAME = "ZTKJ-N002096";
+ //璇锋眰琛ㄥ崟瀵嗙爜
+ private static final String PASSWORD = "Abc12345@";
+ //Base64鏍煎紡缂栫爜
+ private static final String PWDBASE64 = Base64.encode(PASSWORD);
+
+ //鑾峰彇token
+ public static String getToken() {
+ HttpRequest request = HttpRequest.post(CLOUD_LOGIN)
+ .header("Content-Type", "application/x-www-form-urlencoded")
+ .form("username", USERNAME)
+ .form("password", PWDBASE64);
+ HttpResponse response = request.execute();
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode jsonNode;
+ try {
+ jsonNode = objectMapper.readTree(response.body());
+ //閫氳繃杩斿洖鏁版嵁鑾峰彇token
+ String accessToken = jsonNode.get("data").get("token").asText();
+ return accessToken;
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
+ //杈撳嚭鎵�鏈夋暟鎹�
+ public static String getIndustryChainAll(String orderNo, String lineNum, String releaseNum) {
+ String token = getToken();
+ HttpRequest request = HttpRequest.get(CLOUD_REQUEST)
+ .header("Authorization", "Bearer " + token)
+ .form("orderNo", orderNo)
+ .form("lineNum", lineNum)
+ .form("releaseNum", releaseNum);
+ HttpResponse response = request.execute();
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode jsonNode;
+ try {
+ jsonNode = objectMapper.readTree(response.body());
+ return jsonNode.toString();
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
+ /**
+ *
+ * @param orderNo 璁㈠崟鍙�
+ * @param lineNum 琛屽彿
+ * @param releaseNum 涓嬭揪鍙�
+ * @return
+ */
+ public static String getIndustryChainAttrFields(String orderNo, String lineNum, String releaseNum) {
+ String token = getToken();
+ HttpRequest request = HttpRequest.get(CLOUD_REQUEST)
+ .header("Authorization", "Bearer " + token)
+ .form("orderNo", orderNo)
+ .form("lineNum", lineNum)
+ .form("releaseNum", releaseNum);
+ HttpResponse response = request.execute();
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode jsonNode;
+ try {
+ jsonNode = objectMapper.readTree(response.body());
+ // 鍒ゆ柇鏄惁閫氳繃
+ if (jsonNode.get("code").asInt() != 200) {
+ return null;
+ }
+ JsonNode data = jsonNode.get("data");
+ for (JsonNode dataNode : data) {
+ //鑾峰彇attrFields鏁版嵁
+ String attrFields = dataNode.get("attrFields").toPrettyString();
+ return attrFields;
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ return null;
+ }
+
+
+}
+
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/LimsDateUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LimsDateUtil.java
new file mode 100644
index 0000000..a40ea33
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/LimsDateUtil.java
@@ -0,0 +1,33 @@
+package com.ruoyi.common.utils;
+
+import cn.hutool.core.date.DateUtil;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Author zhuo
+ * @Date 2024/9/28
+ */
+public class LimsDateUtil {
+
+
+ /**
+ * 鏃ユ湡鏍煎紡鍒�26鍙锋湀浠藉姞涓�
+ * @param localDateTime
+ * @return
+ */
+ public static String resetDate(LocalDateTime localDateTime) {
+ // 鑾峰彇褰撳墠鏃�
+ int dayOfMonth = localDateTime.getDayOfMonth();
+
+ // 鍒ゆ柇鏄惁鏄�26鏃ュ強浠ヤ笂
+ if (dayOfMonth >= 26) {
+ // 鏈堜唤鍔�1
+ localDateTime = localDateTime.plusMonths(1);
+ }
+
+ // 鏍煎紡鍖栦负"yyMM"鏍煎紡
+ String formattedDate = DateUtil.format(localDateTime, "yyMM");
+ return formattedDate;
+ }
+}
--
Gitblit v1.9.3