From dda17e80a787c40c460a923cd50ac1a1f94ba157 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 17 二月 2025 14:57:10 +0800
Subject: [PATCH] 移植检验下单模板
---
inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderServiceImpl.java | 1711 ++++++++++----------
inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto2.java | 124 +
ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Util.java | 68
cnas-require/pom.xml | 8
inspect-server/src/main/java/com/ruoyi/basic/dto/InsulatingDto.java | 20
pom.xml | 46
inspect-server/src/main/java/com/ruoyi/basic/dto/InsOrderUpdateDto.java | 21
inspect-server/src/main/java/com/ruoyi/basic/dto/CopperInsOrderDto.java | 37
ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java | 153 +
inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProduct.java | 214 ++
inspect-server/src/main/java/com/ruoyi/basic/pojo/InsOrder.java | 214 ++
inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProductResult.java | 52
inspect-server/src/main/java/com/ruoyi/basic/dto/RawMaterialStandardTreeDto.java | 33
inspect-server/src/main/java/com/ruoyi/basic/service/InsOrderService.java | 115 +
inspect-server/src/main/java/com/ruoyi/basic/pojo/InsUnqualifiedRetestProduct.java | 137 +
inspect-server/pom.xml | 14
inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderTemplateService.java | 50
basic-server/src/main/java/com/ruoyi/basic/dto/SampleDto.java | 5
inspect-server/src/main/java/com/ruoyi/basic/dto/IfsStockQueryDTO.java | 130
basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java | 2
basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java | 2
inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto.java | 32
ruoyi-admin/pom.xml | 5
inspect-server/src/main/java/com/ruoyi/basic/pojo/InsSample.java | 246 +-
inspect-server/src/main/java/com/ruoyi/basic/dto/CostStatisticsDto.java | 63
performance-server/pom.xml | 5
inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderTemplateServiceImpl.java | 138
ruoyi-common/pom.xml | 18
/dev/null | 125 -
inspect-server/src/main/java/com/ruoyi/basic/dto/SampleOrderDto.java | 93 +
inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderService.java | 289 +-
inspect-server/src/main/java/com/ruoyi/basic/pojo/RawMaterialOrderTemplate.java | 52
inspect-server/src/main/java/com/ruoyi/basic/controller/RawMaterialOrderController.java | 635 +++---
basic-server/pom.xml | 5
inspect-server/src/main/java/com/ruoyi/basic/mapper/RawMaterialOrderTemplateMapper.java | 17
35 files changed, 3,147 insertions(+), 1,732 deletions(-)
diff --git a/basic-server/pom.xml b/basic-server/pom.xml
index e0f5431..b45552d 100644
--- a/basic-server/pom.xml
+++ b/basic-server/pom.xml
@@ -11,14 +11,19 @@
<artifactId>basic-server</artifactId>
<dependencies>
+ <!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
+
+ <!-- 鏍稿績妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
+
+ <!-- 绯荤粺妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java
index db5c582..d6d48c8 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java
@@ -14,7 +14,7 @@
* @Date 2024/8/28
*/
@Data
-public class IfsInventoryQuantityCheckDto implements Serializable {
+public class IfsInventoryQuantityCheckDto implements Serializable {
private Integer id;
diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/SampleDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/SampleDto.java
index 18fc086..886c9f7 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/dto/SampleDto.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/dto/SampleDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.basic.dto;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@@ -13,11 +14,13 @@
private String value;
+ @ApiModelProperty("闆朵欢鍙�")
private String partNo;
- // 鏍峰搧鑻辨枃
+ @ApiModelProperty("鏍峰搧鑻辨枃")
private String sampleEn;
+ @ApiModelProperty("浜у搧")
private List<ModelDto> children;
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
index f63a161..f83bd97 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CapacityScopeServiceImpl.java
@@ -33,8 +33,6 @@
@AllArgsConstructor
public class CapacityScopeServiceImpl extends ServiceImpl<StructureItemParameterMapper, StructureItemParameter> implements CapacityScopeService {
- private LaboratoryMapper laboratoryMapper;
-
private StructureItemParameterMapper structureItemParameterMapper;
private StructureTestObjectMapper structureTestObjectMapper;
diff --git a/cnas-require/pom.xml b/cnas-require/pom.xml
index 5fda62b..52aab93 100644
--- a/cnas-require/pom.xml
+++ b/cnas-require/pom.xml
@@ -18,19 +18,23 @@
</properties>
<dependencies>
+ <!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
+
+ <!-- 鏍稿績妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
+
+ <!--涓氬姟妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>inspect-server</artifactId>
- <version>3.8.9</version>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/inspect-server/pom.xml b/inspect-server/pom.xml
index 38a4862..c124706 100644
--- a/inspect-server/pom.xml
+++ b/inspect-server/pom.xml
@@ -12,22 +12,34 @@
<artifactId>inspect-server</artifactId>
<dependencies>
+ <!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
+
+ <!-- 鏍稿績妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
+
+ <!--鍩虹妯″潡-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>basic-server</artifactId>
+ </dependency>
+
+ <!-- 绯荤粺妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
+
+ <!-- poi-tl鍖呯敓鎴愭姤鍛� -->
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
- <version>1.12.2</version>
</dependency>
</dependencies>
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/basic/controller/RawMaterialOrderController.java
index e913cf4..0a5e48c 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/controller/RawMaterialOrderController.java
@@ -1,318 +1,317 @@
-//package com.ruoyi.basic.controller;
-//
-//import com.alibaba.fastjson.JSON;
-//import com.alibaba.fastjson.JSONArray;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//import com.ruoyi.basic.dto.IfsInventoryQuantityCheckDto;
-//import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
-//import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
-//import com.ruoyi.basic.service.RawMaterialOrderService;
-//import com.ruoyi.basic.service.RawMaterialOrderTemplateService;
-//import com.ruoyi.common.core.domain.Result;
-//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));
-// }
-//
-// @ValueClassify("鍘熸潗鏂欎笅鍗�")
-// @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();
-// }
-//
-// @ValueClassify("鍘熸潗鏂欎笅鍗�")
-// @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
-// */
-// @ValueClassify("鍘熸潗鏂欎笅鍗�")
-// @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 = "鍘熸潗鏂欐楠屾煡璇㈠搴︽楠�")
-// @PostMapping("/getIfsByQuarter")
-// public Result getIfsByQuarter(@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.getIfsByQuarter(page, ifsInventoryQuantityDto));
-// }
-//
-// /**
-// * 鎻愬墠鍏ュ簱
-// * @param ifsInventoryId
-// * @return
-// */
-// @ApiOperation(value = "鎻愬墠鍏ュ簱")
-// @PostMapping("/advancedGodown")
-// public Result<?> advancedGodown(Integer ifsInventoryId){
-// return Result.success(rawMaterialOrderService.advancedGodown(ifsInventoryId));
-// }
-//
-//}
+package com.ruoyi.basic.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.basic.pojo.InsOrder;
+import com.ruoyi.basic.pojo.RawMaterialOrderTemplate;
+import com.ruoyi.basic.service.RawMaterialOrderService;
+import com.ruoyi.basic.service.RawMaterialOrderTemplateService;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.common.utils.JackSonUtil;
+import com.ruoyi.common.utils.WxCpUtils;
+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));
+ }
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/CopperInsOrderDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/CopperInsOrderDto.java
new file mode 100644
index 0000000..328126f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/CopperInsOrderDto.java
@@ -0,0 +1,37 @@
+package com.ruoyi.basic.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.basic.pojo.InsOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 閾滃崟涓濅笅鍗曚俊鎭�
+ *
+ * @Author zhuo
+ * @Date 2024/9/13
+ */
+@Data
+public class CopperInsOrderDto extends InsOrder {
+
+ @ApiModelProperty("鍒拌揣鏁伴噺")
+ private BigDecimal qtyArrived;
+
+ @ApiModelProperty("鍗曚綅")
+ private String buyUnitMeas;
+
+ @ApiModelProperty("渚涘簲鍟嗗悕绉�")
+ private String supplierName;
+
+ @ApiModelProperty("鎵瑰彿")
+ private String updateBatchNo;
+
+ @ApiModelProperty("鎺ユ敹鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private LocalDateTime declareDate;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/CostStatisticsDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/CostStatisticsDto.java
new file mode 100644
index 0000000..904619b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/CostStatisticsDto.java
@@ -0,0 +1,63 @@
+package com.ruoyi.basic.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class CostStatisticsDto{
+
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","鏃ユ湡"})
+ private LocalDateTime createTime;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","妫�楠岀紪鍙�"})
+ private String entrustCode;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鍚嶇О"})
+ private String sample;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","瑙勬牸鍨嬪彿"})
+ private String model;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鏁伴噺"})
+ private Integer num;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鎬讳环"})
+ private BigDecimal price;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","璇曢獙椤圭洰"})
+ private String inspectionItem;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭鍗曚綅"})
+ private String company;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭浜�"})
+ private String name;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鐢熶骇鍗曚綅"})
+ private String production;
+
+ @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","宸ョ▼鍚嶇О"})
+ private String engineering;
+
+ @ExcelIgnore
+ private Integer createUser;
+
+ @ExcelIgnore
+ private Integer insSampleId;
+
+ @ExcelIgnore
+ private Double cost;//宸ユ椂
+
+ @TableField(exist = false,select = false)
+ @ExcelIgnore
+ private String dates;
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java
deleted file mode 100644
index e74a7ca..0000000
--- a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityCheckDto.java
+++ /dev/null
@@ -1,183 +0,0 @@
-//package com.ruoyi.basic.dto;
-//
-//import com.fasterxml.jackson.annotation.JsonFormat;
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.Data;
-//
-//import java.io.Serializable;
-//import java.math.BigDecimal;
-//import java.time.LocalDateTime;
-//
-///**
-// * 鍘熸潗鏂欐煡璇�, 鎺掗櫎浜嗕緵搴斿晢
-// * @Author zhuo
-// * @Date 2024/8/28
-// */
-//@Data
-//public class IfsInventoryQuantityCheckDto implements Serializable {
-//
-// private Integer id;
-//
-// @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 BigDecimal invQtyInStore;
-//
-// @ApiModelProperty("鎶佃揪鐨勯噰璐暟閲�")
-// private BigDecimal purQtyInStore;
-//
-// @ApiModelProperty("閰嶇疆鏍囪瘑")
-// private String configurationId;
-//
-// @ApiModelProperty("鎵瑰彿")
-// private String lotBatchNo;
-//
-// @ApiModelProperty("wdr鍙�")
-// private String waivDevRejNo;
-//
-// @ApiModelProperty("娲诲姩搴忓垪")
-// private Integer 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;
-//
-//
-// private Integer isSource;
-//
-// private Integer number;
-//
-//
-// private Integer state;
-//
-// @ApiModelProperty("鎺ユ敹鏃堕棿")
-// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
-// private LocalDateTime receiverDate;
-//
-// @ApiModelProperty("鏄惁涓洪娆″嚭鐜� 0 鍚� 1 鏄�")
-// private Integer isFirst;
-//
-// @ApiModelProperty("鐩爣搴撲綅鍙�")
-// private String toLocation;
-//
-// @ApiModelProperty("鏄惁鏄姤妫� 0 鍚� 1 鏄�")
-// private Integer isInspect;
-//
-// @ApiModelProperty("鎶ユ浜�")
-// private String declareUser;
-//
-//
-// @ApiModelProperty("鎶ユ浜篿d")
-// private Integer declareUserId;
-//
-// @ApiModelProperty("鍗曚綅")
-// private String partUnit;
-//
-// @ApiModelProperty("浜т笟閾炬娴嬫暟鎹�")
-// private String industryChain;
-//
-// @ApiModelProperty("鎶ユ鏃堕棿")
-// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
-// private LocalDateTime declareDate;
-//
-// @ApiModelProperty("鏄惁鍗″彲浠ュ搴︽楠� 0 鍚� 1 鏄�")
-// private Integer isQuarter;
-//
-// // 淇敼鍚庣殑
-// @ApiModelProperty("鎵瑰彿")
-// private String updateBatchNo;
-//
-// @ApiModelProperty("鏄惁鏄摐鍗曚笣, 0鍚�, 1鏄�")
-// private Integer isCopper;
-//
-// @ValueTableShow(8)
-// @ApiModelProperty("鐗╂枡绫诲瀷")
-// private Integer isExpire;
-//
-//}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityDto.java
deleted file mode 100644
index 8997838..0000000
--- a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantityDto.java
+++ /dev/null
@@ -1,82 +0,0 @@
-//package com.ruoyi.basic.dto;
-//
-//import com.fasterxml.jackson.annotation.JsonFormat;
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.Data;
-//
-//import java.time.LocalDateTime;
-//
-//@Data
-//public class IfsInventoryQuantityDto extends IfsInventoryQuantityCheckDto {
-//
-// /**
-// * 濮旀墭缂栧彿
-// */
-// @ApiModelProperty("濮旀墭缂栧彿")
-// private String entrustCode;
-//
-// @ApiModelProperty("妫�楠屽璞�")
-// private String sampleType;
-//
-// @ApiModelProperty("鏍峰搧鍚嶇О")
-// private String sampleName;
-//
-// @ApiModelProperty("鏍峰搧鍨嬪彿")
-// private String sampleModel;
-//
-// @ApiModelProperty("鏍峰搧缂栧彿")
-// private String sampleCode;
-//
-// // 杩涘巶
-// @ApiModelProperty("璁㈠崟id")
-// private Integer enterOrderId;
-//
-// @ApiModelProperty("鎶ュ憡id")
-// private String enterReportId;
-//
-// @ApiModelProperty("绯荤粺鐢熸垚鎶ュ憡鍦板潃")
-// private String enterUrl;
-//
-// @ApiModelProperty("鎵嬪姩涓婁紶鎶ュ憡鍦板潃")
-// private String enterUrlS;
-//
-// // 瀛e害
-// @ApiModelProperty("璁㈠崟id")
-// private Integer quarterOrderId;
-//
-// @ApiModelProperty("鎶ュ憡id")
-// private String quarterReportId;
-//
-// @ApiModelProperty("绯荤粺鐢熸垚鎶ュ憡鍦板潃")
-// private String quarterUrl;
-//
-// @ApiModelProperty("鎵嬪姩涓婁紶鎶ュ憡鍦板潃")
-// private String quarterUrlS;
-//
-// private Integer orderState;
-//
-// @ApiModelProperty("涓嬪彂鏃堕棿")
-// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-// private LocalDateTime sendTime;
-//
-// @ApiModelProperty("鏉愭枡鍘傚")
-// private String supplierName;
-//
-// @ApiModelProperty("濮旀墭浜�")
-// private String prepareUser;
-//
-// @ApiModelProperty("棰滆壊")
-// private String color;
-//
-// @ApiModelProperty("鏍囩鐘舵��")
-// private String labelStatus;
-//
-// @ApiModelProperty("鏍囩鏉″舰鐮�")
-// private String labelBarCode;
-//
-// @ApiModelProperty("鍒涘缓浜�")
-// private Integer createUser;
-//
-// @ApiModelProperty("妫�楠屼汉")
-// private String userName;
-//}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
deleted file mode 100644
index 1a6acd8..0000000
--- a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsInventoryQuantitySupplierDto.java
+++ /dev/null
@@ -1,125 +0,0 @@
-//package com.ruoyi.basic.dto;
-//
-//import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-//import com.alibaba.excel.annotation.ExcelProperty;
-//import com.fasterxml.jackson.annotation.JsonFormat;
-//import com.yuanchu.mom.annotation.ValueTableShow;
-//import com.yuanchu.mom.pojo.IfsInventoryQuantity;
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.Data;
-//
-//import java.time.LocalDateTime;
-//
-///**
-// * 鑳芥煡璇㈠埌渚涘簲鍟�
-// */
-//@Data
-//@ExcelIgnoreUnannotated
-//public class IfsInventoryQuantitySupplierDto extends IfsInventoryQuantity {
-//
-// /**
-// * 濮旀墭缂栧彿
-// */
-// @ExcelProperty(index = 2, value = "濮旀墭缂栧彿")
-// @ApiModelProperty("濮旀墭缂栧彿")
-// private String entrustCode;
-//
-// @ApiModelProperty("鏍峰搧id")
-// private Integer sampleId;
-//
-// @ApiModelProperty("妫�楠屽璞�")
-// private String sampleType;
-//
-// @ExcelProperty(index = 7, value = "鏍峰搧鍚嶇О")
-// @ApiModelProperty("鏍峰搧鍚嶇О")
-// private String sampleName;
-//
-// @ExcelProperty(index = 8, value = "鏍峰搧鍨嬪彿")
-// @ApiModelProperty("鏍峰搧鍨嬪彿")
-// private String sampleModel;
-//
-// @ApiModelProperty("鏍峰搧缂栧彿")
-// private String sampleCode;
-//
-// // 杩涘巶
-// @ApiModelProperty("杩涘巶璁㈠崟id")
-// private Integer enterOrderId;
-//
-// @ApiModelProperty("鎶ュ憡id")
-// private String enterReportId;
-//
-// @ApiModelProperty("绯荤粺鐢熸垚鎶ュ憡鍦板潃")
-// private String enterUrl;
-//
-// @ApiModelProperty("鎵嬪姩涓婁紶鎶ュ憡鍦板潃")
-// private String enterUrlS;
-//
-// // 瀛e害
-// @ApiModelProperty("瀛e害璁㈠崟id")
-// private Integer quarterOrderId;
-//
-// @ApiModelProperty("鎶ュ憡id")
-// private String quarterReportId;
-//
-// @ApiModelProperty("绯荤粺鐢熸垚鎶ュ憡鍦板潃")
-// private String quarterUrl;
-//
-// @ApiModelProperty("鎵嬪姩涓婁紶鎶ュ憡鍦板潃")
-// private String quarterUrlS;
-//
-// private Integer orderState;
-//
-// @ApiModelProperty("涓嬪彂鏃堕棿")
-// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-// private LocalDateTime sendTime;
-//
-// @ApiModelProperty("濮旀墭浜�")
-// private String prepareUser;
-//
-// @ApiModelProperty("棰滆壊")
-// private String color;
-//
-// @ApiModelProperty("鏍囩鐘舵��")
-// private String labelStatus;
-//
-// @ApiModelProperty("鏍囩鏉″舰鐮�")
-// private String labelBarCode;
-//
-// @ApiModelProperty("鍒涘缓浜�")
-// private Integer createUser;
-//
-// @ExcelProperty(index = 9, value = "妫�楠屼汉")
-// @ApiModelProperty("妫�楠屼汉")
-// private String userName;
-//
-// @ExcelProperty(index = 10, value = "涓嬪彂鏃堕棿")
-// private String sendTimeString;
-//
-// @ExcelProperty(index = 14, value = "鎺ユ敹鏃堕棿")
-// private String receiverDateString;
-//
-// @ExcelProperty(index = 15, value = "鎶ユ鏃堕棿")
-// private String declareDateString;
-//
-// // 鍚堟牸鐘舵��,: 0 妫�楠屼腑, 1鍚堟牸, 2涓嶅悎鏍�, 3鏈笅鍗�,4璁╂鏀捐
-// @ExcelProperty(index = 6, value = "妫�楠岀姸鎬�")
-// private String inspectStatusString;
-//
-// @ApiModelProperty("鎶ユ寮�濮嬫椂闂�")
-// private String beginDeclareDate;
-//
-// @ApiModelProperty("鎶ユ缁撴潫鏃堕棿")
-// private String endDeclareDate;
-//
-// @ApiModelProperty("涓嶅悎鏍兼弿杩�")
-// @ExcelProperty(index = 16, value = "涓嶅悎鏍兼弿杩�")
-// private String unqualifiedDesc;
-//
-//
-// @ApiModelProperty("涓嶅悎鏍奸」")
-// @ExcelProperty(index = 17, value = "涓嶅悎鏍奸」")
-// private String unqualifiedItem;
-//
-// @ApiModelProperty("鍏嶆")
-// private Integer isExemption;
-//}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsStockQueryDTO.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsStockQueryDTO.java
index 1a05501..da1294c 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsStockQueryDTO.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/IfsStockQueryDTO.java
@@ -1,65 +1,65 @@
-//package com.ruoyi.basic.dto;
-//
-//import lombok.Data;
-//
-//@Data
-//public class IfsStockQueryDTO {
-// private String partNo;
-// private String partDescription; // 闆朵欢鎻忚堪
-// private String partDesc;
-// private String locNo; // 搴撲綅鍙�
-// private String locDesc; // 搴撲綅鎻忚堪
-// private String lotBatchNo; // 鎵瑰彿
-// private String wdrNo; // WDR缂栧彿
-// private String warehouse; // 浠撳簱
-// private String quantityFlag; // 鏁伴噺鏍囪瘑(鐜版湁鏁伴噺)
-// private String locationGroup; // 搴撲綅缁�
-// private String locationGroupDesc; // 搴撲綅缁勬弿杩�
-// private String reelNumber; // 杞藉叿缂栧彿
-// private String startMeter; // 璧峰绫虫爣
-// private String endMeter; // 鎴绫虫爣
-// private String outerColor; // 澶栨姢棰滆壊
-// private String insulationColor; // 缁濈紭棰滆壊
-// private String otcOrderNo; // 鐗╂枡灞炴�ч噷闈㈢殑OTC璁㈠崟鍙�
-// private String mpsNo; // 鐢熶骇璁″垝鍙�
-// private String letteringInfo; // 鍗板瓧淇℃伅
-// private String sStockQuantity; // 搴撳瓨鏁伴噺2
-// private String availableStockQuantity; // 鍙敤搴撳瓨鏁伴噺
-// private String sAvailableStockQuantity; // 搴撶敤搴撳瓨鏁伴噺2
-// private String sunit; // 鍗曚綅2
-// private String stockSource; // 鏉ユ簮
-// private String inspInstorageTime; // 妫�娴嬪叆搴撴棩鏈�
-// private String testRemark; // 妫�娴嬪娉�
-// private String grossWeight; // 姣涢噸
-// private String netWeight; // 鍑�閲�
-// private String packingManner; // 鍖呰鏂瑰紡
-// private String cylinderNumber; //鎵撳湀涓暟
-// private String systemNo; //绯荤粺鍙�
-// private String remark; //澶囨敞
-// private String customerName; //瀹㈡埛鍚嶇О
-// private String reserveQuantity; //棰勭暀鏁伴噺
-// private String lengthRequirement; // 鍒ゆ柇瑕佹眰
-// private String inSource;//鍏ュ簱鏉ユ簮
-// private String splitQuality;//鍒嗗壊棰勭暀鏁伴噺
-//
-// //鎺ュ彛 getIfsStockReport 鐢ㄥ埌鐨勫瓧娈�
-// private String attr23;//鍏ュ簱鏉ユ簮
-// private String attr6;//otc璁㈠崟鍙�
-// private String attr21;//瀹㈡埛鍚嶇О
-// private String attr4;//澶栨姢棰滆壊
-// private String attr5;//缁濈紭棰滆壊
-// private String attr8;//鍗板瓧淇℃伅
-// private String lot_batch_no;//鎵规鍙�
-// private String location_no;//搴撲綅鍙�
-// private String attr17;//鍖呰鏂瑰紡
-// private String attr1;//杞藉叿缂栧彿
-//
-// //鎺ュ彛queryColReservedInfoStd 鐢ㄥ埌鐨勪袱涓瓧娈�
-// private String cotcOrderNo; // 琛ㄩ噷闈㈢殑OTC璁㈠崟鍙�
-// private String cotcLineNo; // 琛ㄩ噷闈㈢殑OTC琛屽彿
-//
-// private Boolean isAll;//鏄惁鏌ヨ鍏ㄩ儴搴撳瓨
-//
-// private Long page;
-// private Long limit;
-//}
+package com.ruoyi.basic.dto;
+
+import lombok.Data;
+
+@Data
+public class IfsStockQueryDTO {
+ private String partNo;
+ private String partDescription; // 闆朵欢鎻忚堪
+ private String partDesc;
+ private String locNo; // 搴撲綅鍙�
+ private String locDesc; // 搴撲綅鎻忚堪
+ private String lotBatchNo; // 鎵瑰彿
+ private String wdrNo; // WDR缂栧彿
+ private String warehouse; // 浠撳簱
+ private String quantityFlag; // 鏁伴噺鏍囪瘑(鐜版湁鏁伴噺)
+ private String locationGroup; // 搴撲綅缁�
+ private String locationGroupDesc; // 搴撲綅缁勬弿杩�
+ private String reelNumber; // 杞藉叿缂栧彿
+ private String startMeter; // 璧峰绫虫爣
+ private String endMeter; // 鎴绫虫爣
+ private String outerColor; // 澶栨姢棰滆壊
+ private String insulationColor; // 缁濈紭棰滆壊
+ private String otcOrderNo; // 鐗╂枡灞炴�ч噷闈㈢殑OTC璁㈠崟鍙�
+ private String mpsNo; // 鐢熶骇璁″垝鍙�
+ private String letteringInfo; // 鍗板瓧淇℃伅
+ private String sStockQuantity; // 搴撳瓨鏁伴噺2
+ private String availableStockQuantity; // 鍙敤搴撳瓨鏁伴噺
+ private String sAvailableStockQuantity; // 搴撶敤搴撳瓨鏁伴噺2
+ private String sunit; // 鍗曚綅2
+ private String stockSource; // 鏉ユ簮
+ private String inspInstorageTime; // 妫�娴嬪叆搴撴棩鏈�
+ private String testRemark; // 妫�娴嬪娉�
+ private String grossWeight; // 姣涢噸
+ private String netWeight; // 鍑�閲�
+ private String packingManner; // 鍖呰鏂瑰紡
+ private String cylinderNumber; //鎵撳湀涓暟
+ private String systemNo; //绯荤粺鍙�
+ private String remark; //澶囨敞
+ private String customerName; //瀹㈡埛鍚嶇О
+ private String reserveQuantity; //棰勭暀鏁伴噺
+ private String lengthRequirement; // 鍒ゆ柇瑕佹眰
+ private String inSource;//鍏ュ簱鏉ユ簮
+ private String splitQuality;//鍒嗗壊棰勭暀鏁伴噺
+
+ //鎺ュ彛 getIfsStockReport 鐢ㄥ埌鐨勫瓧娈�
+ private String attr23;//鍏ュ簱鏉ユ簮
+ private String attr6;//otc璁㈠崟鍙�
+ private String attr21;//瀹㈡埛鍚嶇О
+ private String attr4;//澶栨姢棰滆壊
+ private String attr5;//缁濈紭棰滆壊
+ private String attr8;//鍗板瓧淇℃伅
+ private String lot_batch_no;//鎵规鍙�
+ private String location_no;//搴撲綅鍙�
+ private String attr17;//鍖呰鏂瑰紡
+ private String attr1;//杞藉叿缂栧彿
+
+ //鎺ュ彛queryColReservedInfoStd 鐢ㄥ埌鐨勪袱涓瓧娈�
+ private String cotcOrderNo; // 琛ㄩ噷闈㈢殑OTC璁㈠崟鍙�
+ private String cotcLineNo; // 琛ㄩ噷闈㈢殑OTC琛屽彿
+
+ private Boolean isAll;//鏄惁鏌ヨ鍏ㄩ儴搴撳瓨
+
+ private Long page;
+ private Long limit;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/InsOrderUpdateDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/InsOrderUpdateDto.java
new file mode 100644
index 0000000..45c53f5
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/InsOrderUpdateDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.basic.dto;
+
+import com.ruoyi.basic.pojo.InsOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/11/29
+ */
+@Data
+public class InsOrderUpdateDto {
+
+ @ApiModelProperty("璁㈠崟淇敼瀵硅薄")
+ private InsOrder insOrder;
+
+ @ApiModelProperty("妫�娴嬫牱鍝佸璞�")
+ private List<SampleProductDto> sampleProduct;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/InsulatingDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/InsulatingDto.java
new file mode 100644
index 0000000..53ced02
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/InsulatingDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.basic.dto;
+
+import com.ruoyi.basic.pojo.InsProduct;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class InsulatingDto {
+
+ // 鏂规硶id
+ private Integer standardMethodListId;
+
+ // 鑺暟
+ private List<String> num;
+
+ // 妫�楠岄」
+ private List<InsProduct> insProduct;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/RawMaterialStandardTreeDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/RawMaterialStandardTreeDto.java
new file mode 100644
index 0000000..28fbe65
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/RawMaterialStandardTreeDto.java
@@ -0,0 +1,33 @@
+package com.ruoyi.basic.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author zhuo
+ * @Date 2024/7/31
+ */
+@Data
+public class RawMaterialStandardTreeDto {
+
+ @ApiModelProperty("鏍戝悕绉�")
+ private String treeName;
+
+ @ApiModelProperty("鏍戝悕绉�")
+ private String code;
+
+ @ApiModelProperty("鏍戝悕绉�")
+ private String label;
+
+ @ApiModelProperty("鏍戝悕绉�")
+ private String value;
+
+ @ApiModelProperty("浜у搧")
+ private List<SampleDto> children1;
+
+ @ApiModelProperty("鍨嬪彿")
+ private List<ModelDto> children2;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleOrderDto.java
new file mode 100644
index 0000000..299b09b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleOrderDto.java
@@ -0,0 +1,93 @@
+package com.ruoyi.basic.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.basic.pojo.InsOrder;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author gaoaoy
+ * @version 1.0.0
+ * @create 2024/3/14 18:46
+ **/
+@Data
+@ExcelIgnoreUnannotated
+public class SampleOrderDto extends InsOrder {
+
+ @ApiModelProperty("妫�楠屽璞�")
+ private String sampleType;
+
+ @ExcelProperty(index = 2, value = "鏍峰搧鍚嶇О")
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sampleName;
+
+ @ExcelProperty(index = 3, value = "鏍峰搧鍨嬪彿")
+ @ApiModelProperty("鏍峰搧鍨嬪彿")
+ private String sampleModel;
+
+ private String assign;
+
+ @ExcelProperty(index = 4, value = "鏍峰搧鏁伴噺")
+ @ApiModelProperty("鏍峰搧鏁伴噺")
+ private Integer sampleNum;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ExcelProperty(index = 8, value = "妫�楠岃繘搴�%")
+ @ApiModelProperty("妫�楠岃繘搴�%")
+ private String insProgress;
+
+ @ApiModelProperty("鎶ュ憡id")
+ private String reportId;
+
+ @TableField("`url`")
+ private String url;
+
+ private String urlS;
+
+ private String name;
+
+ @ExcelProperty(index = 5, value = "妫�楠屼汉")
+ @ApiModelProperty("妫�楠屼汉")
+ private String testingName;
+
+ /**
+ * (鎶ュ憡瀵煎嚭)绱ф�ョ▼搴� 锛�0鏅�� 1浼樺厛 2绱ф�ワ級
+ */
+ @ExcelProperty(index = 6, value = "绱ф�ョ▼搴�")
+ @ApiModelProperty("绱ф�ョ▼搴� 锛�0鏅�� 1浼樺厛 2绱ф�ワ級")
+ private String typeString;
+
+ /**
+ * (鎶ュ憡瀵煎嚭)妫�楠岀粨鏋�
+ */
+ @ExcelProperty(index = 10, value = "妫�楠岀粨鏋�")
+ @ApiModelProperty("妫�楠岀粨鏋�")
+ private String insResultString;
+
+ /**
+ * (鎶ュ憡瀵煎嚭)涓嶅悎鏍奸」鐩�
+ */
+ @ApiModelProperty("涓嶅悎鏍奸」")
+ @ExcelProperty(index = 13, value = "涓嶅悎鏍奸」")
+ private String unqualifiedItem;
+
+ /**
+ * (鎶ュ憡瀵煎嚭)涓嬪崟鏃堕棿
+ */
+ @ExcelProperty(index = 11, value = "涓嬪崟鏃堕棿")
+ @ApiModelProperty("涓嬪崟鏃堕棿")
+ private String createTimeString;
+
+ @ApiModelProperty("瀛愬疄楠屽")
+ private String sonLaboratory;
+
+
+
+
+
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto.java
new file mode 100644
index 0000000..a651523
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto.java
@@ -0,0 +1,32 @@
+package com.ruoyi.basic.dto;
+
+import com.ruoyi.basic.pojo.InsProduct;
+import com.ruoyi.basic.pojo.InsSample;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SampleProductDto extends InsSample {
+
+ @ApiModelProperty("妫�楠岄」鐩�")
+ private List<InsProduct> insProduct;
+
+// private List<BushingDto> bushing;
+
+ @ApiModelProperty("瀛愭牱鍝侀厤缃�")
+ private List<SampleProductDto> childSampleList;
+
+ @ApiModelProperty("鐢电紗閰嶇疆瀵硅薄")
+ private InsulatingDto insulating;
+
+ @ApiModelProperty("杈呭姪绾胯姱閰嶇疆")
+ private InsulatingDto auxiliaryWireCore;
+
+// private SheathDto sheath;
+
+ @ApiModelProperty("妫�楠屼汉")
+ private String checkName;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto2.java b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto2.java
new file mode 100644
index 0000000..7abb63b
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/dto/SampleProductDto2.java
@@ -0,0 +1,124 @@
+package com.ruoyi.basic.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.TreeMap;
+
+@Data
+public class SampleProductDto2 implements Serializable {
+
+ @ApiModelProperty("鏍峰搧id")
+ private Integer id;
+
+ @ApiModelProperty("妫�楠岄」id")
+ private Integer insProductId;
+
+ @ApiModelProperty("鏍峰搧缂栧彿")
+ private String sampleCode;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+
+ @ApiModelProperty("妫�楠岄」鍒嗙被鑻辨枃")
+ private String inspectionItemClassEN;
+
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠岄」鑻辨枃")
+ private String inspectionItemEn;
+
+ @ApiModelProperty("妫�楠屽瓙椤�")
+ private String inspectionItemSubclass;
+
+ @ApiModelProperty("妫�楠屽瓙椤硅嫳鏂�")
+ 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 equipValue;
+
+ @ApiModelProperty("搴忓彿")
+ private String index;
+ @ApiModelProperty("鏍峰搧鍚嶇О(鏁翠綋)")
+ private String inspectionName;
+
+ @ApiModelProperty("鏉′欢")
+ private String radius;
+
+ @ApiModelProperty("妫�楠岀粨鏋滃垪琛�")
+ private List<String> lastValueList;
+
+ @ApiModelProperty("妫�楠岀粨鏋滃垪琛�")
+ private List<Integer> insResultList;
+
+ @ApiModelProperty("鏈�缁堢粨鏋�")
+ private String finalResult;
+
+ @ApiModelProperty("鍘熸潗鏂檌d")
+ private Integer ifsInventoryId;
+
+ @ApiModelProperty("妫�楠屽崟绫诲瀷")
+ private String orderType;
+
+ @ApiModelProperty("妫�楠屽崟绫诲瀷")
+ private Integer quantity;
+
+ @ApiModelProperty("妫�楠屽崟绫诲瀷")
+ private Integer sort;
+
+ @ApiModelProperty("鐢电紗鏍囪瘑")
+ private String cableTag;
+
+ @ApiModelProperty("鍞竴缁撴灉鍊�")
+ private LinkedHashSet<String> tellSet;
+
+ @ApiModelProperty("鐢电紗鏍囪瘑鍐呭闆嗗悎")
+ private TreeMap<String, String> cableTagValueMap;
+
+ @ApiModelProperty("鐢电紗鏍囪瘑缁撴灉闆嗗悎")
+ private TreeMap<String, Integer> cableTagResultMap;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/mapper/RawMaterialOrderTemplateMapper.java b/inspect-server/src/main/java/com/ruoyi/basic/mapper/RawMaterialOrderTemplateMapper.java
new file mode 100644
index 0000000..e4e78f2
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/mapper/RawMaterialOrderTemplateMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.basic.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.basic.pojo.RawMaterialOrderTemplate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 鍘熸潗鏂欎笅鍗曟ā鏉�
+ *
+ * @author zhuo
+ * @since 2024-08-05
+ */
+@Mapper
+public interface RawMaterialOrderTemplateMapper extends BaseMapper<RawMaterialOrderTemplate> {
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsOrder.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsOrder.java
new file mode 100644
index 0000000..7d3f20f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsOrder.java
@@ -0,0 +1,214 @@
+package com.ruoyi.basic.pojo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+* 妫�楠屼笅鍗�
+* @TableName ins_order
+*/
+@Data
+@TableName("ins_order")
+@ExcelIgnoreUnannotated
+public class InsOrder implements Serializable {
+
+
+ @ApiModelProperty(value = "涓婚敭")
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ExcelProperty(index = 0, value = "濮旀墭缂栧彿")
+ @ApiModelProperty(value = "濮旀墭缂栧彿")
+ private String entrustCode;
+
+ @ApiModelProperty(value = "澶栭儴濮旀墭缂栧彿")
+ private String outEntrustCode;
+
+ @ApiModelProperty(value = "妫�楠岀被鍒�")
+ private String orderType;
+
+ @ApiModelProperty("涓嬪崟瀹㈡埛")
+ private String custom;
+
+ @ExcelProperty(index = 1, value = "濮旀墭鍗曚綅")
+ @ApiModelProperty("濮旀墭鍗曚綅")
+ private String company;
+
+ @ApiModelProperty("鑱旂郴鏂瑰紡")
+ private String phone;
+
+ @ApiModelProperty("宸ュ巶鍩�")
+ private String code;
+
+ @ApiModelProperty("绱ф�ョ▼搴� 锛�0鏅�� 1浼樺厛 2绱ф�ワ級")
+ private Integer type;
+
+ @ExcelProperty(index = 9, value = "绾﹀畾鏃堕棿%")
+ @ApiModelProperty("绾﹀畾鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate appointed;
+
+ @ApiModelProperty("妫�楠岀粨鏋�, 0 涓嶅悎鏍�, 1鍚堟牸")
+ private Integer insResult;
+
+ @ApiModelProperty("鏍峰搧澶勭悊鏂瑰紡")
+ private Integer processing;
+
+ @ApiModelProperty("鏄惁鐣欐牱")
+ private Integer isLeave;
+
+ @ApiModelProperty("鐘舵��:-1:鍘熸潗鏂欐挙鍥� 1锛氭楠屽鐞� 0锛氬緟瀹℃牳 2锛氶��鍥� 3锛氭挙閿�")
+ private Integer state;
+
+ @ExcelProperty(index = 7, value = "澶囨敞")
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("澶囨敞鑻辨枃")
+ private String remarkEn;
+
+ @ApiModelProperty("OTC璁㈠崟鍙�")
+ private String otcCode;
+
+ @ApiModelProperty("涓嬪崟浜�")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("涓嬪崟鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @ApiModelProperty("涓嬪彂鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime sendTime;
+
+ @ApiModelProperty("")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("涓嬪崟浜篿d")
+ private Integer userId;
+
+ @ApiModelProperty("鏄惁鏈夐厤濂楁牱鍝�")
+ private Integer mating;
+
+ @ApiModelProperty("妫�楠岀姸鎬�(0锛氬緟妫�楠� 1:妫�楠屼腑 2:宸叉楠� 3锛氬緟澶嶆牳 4锛氬鏍告湭閫氳繃 5锛氬鏍搁�氳繃)")
+ private Integer insState;
+
+ @ApiModelProperty("妫�楠屽伐鍘�")
+ private String factory;
+
+ @ApiModelProperty("瀹為獙瀹ゅ悕绉�")
+ private String laboratory;
+
+ @ApiModelProperty("鏍峰搧绫诲瀷")
+ private String sampleType;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О")
+ private String sample;
+
+ @ApiModelProperty("妫�楠屾椂闂�")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime insTime;
+
+ @ApiModelProperty("閫�鍥炵悊鐢�")
+ private String tell;
+
+ @ApiModelProperty("鎶ュ憡鍙戦�佹柟寮� 1: 鑷彇, 0:鍏朵粬")
+ private Integer send;
+
+ @ApiModelProperty("鏉ユ牱鏂瑰紡")
+ private String formType;
+
+ @ApiModelProperty("瀹℃牳鏃堕棿")
+ private LocalDateTime examineTime;
+
+ @ApiModelProperty("宸ョ▼鍚嶇О")
+ private String engineering;
+
+ @ApiModelProperty("宸ョ▼鍚嶇О鑻辨枃")
+ private String engineeringEn;
+
+ @ApiModelProperty("鐢熶骇鍗曚綅")
+ private String production;
+
+ @ApiModelProperty("鐢熶骇鍗曚綅鑻辨枃")
+ private String productionEn;
+
+ @ApiModelProperty("瀹㈡埛鍗曚綅id")
+ private Long companyId;
+
+ @ApiModelProperty("濮旀墭浜篿d")
+ private Integer prepareUserId;
+
+ @ExcelProperty(index = 12, value = "濮旀墭浜�")
+ private String prepareUser;
+
+ @ApiModelProperty(name = "濮旀墭浜鸿嫳鏂�")
+ private String prepareUserEn;
+
+ @ApiModelProperty(name = "濮旀墭浜哄伐鍙�")
+ private String prepareCode;
+
+ @ApiModelProperty("鏄惁瀹℃牳鎾ら攢")
+ private Integer isRevocation;
+
+ @ApiModelProperty("瀹℃牳鎾ら攢鐨勯」鐩甶d")
+ private String revocationInsProductIds;
+
+ @ApiModelProperty("鏄惁涓哄師鏉愭枡 1 鏄� 0 鍚�")
+ private Integer typeSource;
+
+ @ApiModelProperty("鍘熸潗鏂檌d")
+ private Integer ifsInventoryId;
+
+ @ApiModelProperty("鎶芥煡鏁伴噺")
+ private String testQuantity;
+
+ @ApiModelProperty("闆朵欢鎻忚堪")
+ private String partDetail;
+
+ @ApiModelProperty("鏄惁鏄厤妫�, 0鍚� 1鏄�" )
+ private Integer isExemption;
+
+ @ApiModelProperty("娓╁害")
+ private String temperature;
+
+ @ApiModelProperty("婀垮害")
+ private String humidity;
+
+ @ApiModelProperty("鏍峰搧鐘舵��")
+ private String sampleStatus;
+
+ @ApiModelProperty("瀛e害鎶芥牱椤圭洰id")
+ private Integer quarterItemId;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О(鎶ュ憡灞曠ず瀛楁)")
+ private String sampleView;
+
+ @ApiModelProperty("鏍峰搧鍚嶇О寮曟枃(鎶ュ憡灞曠ず瀛楁)")
+ private String sampleViewEn;
+
+ @ApiModelProperty("鏄惁鏄涓�娆℃彁浜�0鍚�1鏄�")
+ private Integer isFirstSubmit;
+
+ @ApiModelProperty("绗竴娆℃彁浜ゆ椂闂�")
+ private LocalDateTime firstSubmitDate;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProduct.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProduct.java
new file mode 100644
index 0000000..fae198f
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProduct.java
@@ -0,0 +1,214 @@
+package com.ruoyi.basic.pojo;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 妫�楠岄」鐩�
+ *
+ * @TableName ins_product
+ */
+@TableName(value = "ins_product")
+@Data
+public class InsProduct implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("椤圭洰鍙傛暟id")
+ private Integer structureItemParameterId;
+
+ @TableField(exist = false,select = false)
+ private String sampleCode;
+
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItem;
+
+ @ApiModelProperty("妫�楠岄」鑻辨枃")
+ private String inspectionItemEn;
+
+ @ApiModelProperty("妫�楠岄」鍒嗙被")
+ private String inspectionItemClass;
+
+ @ApiModelProperty("妫�楠岄」鍒嗙被EN")
+ private String inspectionItemClassEn;
+
+ @ApiModelProperty("妫�楠岄」瀛愮被")
+ private String inspectionItemSubclass;
+
+ @ApiModelProperty("妫�楠岄」瀛愮被鑻辨枃")
+ private String inspectionItemSubclassEn;
+
+ @ApiModelProperty("宸ュ巶")
+ private String factory;
+
+ @ApiModelProperty("瀹為獙瀹�")
+ private String laboratory;
+
+ @ApiModelProperty("鏍峰搧鍒嗙被")
+ private String sampleType;
+
+ @ApiModelProperty("鏍峰搧")
+ private String sample;
+
+ @ApiModelProperty("鍨嬪彿")
+ private String model;
+
+ @ApiModelProperty("鏂规硶")
+ private String methodS;
+
+ @ApiModelProperty("瀛愬疄楠屽")
+ private String sonLaboratory;
+
+ @ApiModelProperty("璁¢噺鍗曚綅")
+ private String unit;
+
+ @ApiModelProperty("鍗曚环(鍏�)")
+ private BigDecimal price;
+
+ @ApiModelProperty("宸ユ椂(H)")
+ private BigDecimal manHour;
+
+ @ApiModelProperty("宸ユ椂鍒嗙粍")
+ private String manHourGroup;
+
+ @ApiModelProperty("妫�楠岄」绫诲瀷")
+ private String inspectionItemType;
+
+ @ApiModelProperty("妫�楠屽�肩被鍨�")
+ private String inspectionValueType;
+
+ @ApiModelProperty("璁惧缁�")
+ private String deviceGroup;
+
+ @ApiModelProperty("妫�楠屾鏁�")
+ private Integer checkoutNumber;
+
+ @ApiModelProperty("鍖洪棿")
+ private String section;
+
+ @ApiModelProperty("鍙栧�肩被鍨�")
+ private String valueType;
+
+ @ApiModelProperty("鏂规硶")
+ private String method;
+
+ @ApiModelProperty("棰勮鏃堕棿(h)")
+ private Integer manDay;
+
+ @ApiModelProperty("鐗规畩鏍囪瘑")
+ private String bsm;
+
+ @ApiModelProperty("瑕佹眰鍊�")
+ private String ask;
+
+ @ApiModelProperty("瑕佹眰鎻忚堪")
+ private String tell;
+
+ @ApiModelProperty("鏈�缁堝��")
+ @TableField("`last_value`")
+ private String lastValue;
+
+ @ApiModelProperty("鍚堟牸鐘舵��: 1锛氬悎鏍� 0锛氫笉鍚堟牸, 3涓嶅垽瀹�")
+ private Integer insResult;
+
+
+ @ApiModelProperty("1锛氭湁鏁� 0锛氭棤鏁�")
+ private Integer state;
+
+ @ApiModelProperty("澶栭敭锛歩ns_sample琛╥d")
+ private Integer insSampleId;
+
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty("鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty("淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty("澶栭敭锛歴tandard_template琛╥d")
+ private Integer templateId;
+
+ @TableField(exist = false)
+ @ApiModelProperty("妯℃澘鍐呭")
+ private List<JSONObject> template;
+
+ @TableField(exist = false)
+ @ApiModelProperty("妯℃澘鍐呭棰滆壊")
+ private Map<String, Object> style;
+
+ @TableField(exist = false)
+ @ApiModelProperty("妫�楠岀粨鏋滃璞�")
+ private InsProductResult insProductResult;
+
+ @TableField(exist = false)
+ @ApiModelProperty("妯℃澘鍚嶇О")
+ private String templateName;
+
+ @ApiModelProperty("瀛楀吀绫诲瀷")
+ private String dic;
+
+ //娓╁害
+ private String temperature;
+ //婀垮害
+ private String humidity;
+
+ private Integer insFiberId;
+
+ private Integer insFibersId;
+
+ private Integer insBushId;
+
+ @ApiModelProperty("鏍囧噯鏂规硶id")
+ private Integer standardMethodListId;
+
+ //杩斿洖鐨�20搴﹀父娓╃殑璁$畻鍊�(娓╁害寰幆)
+ @TableField(exist = false ,select = false)
+ private String complue;
+
+ @ApiModelProperty(value = "鏉′欢")
+ private String radius;
+
+ @ApiModelProperty(value = "鏀惰垂鏍囧噯(鍏�/娆�)")
+ private String rates;
+
+ @ApiModelProperty(value = "鐢电紗閰嶇疆鏍囪瘑")
+ private String cableTag;
+
+ @ApiModelProperty(value = "鍘熸潗鏂欓厤缃爣璇�")
+ private String rawMaterialTag;
+
+ @ApiModelProperty(value = "閲嶅鏍囪瘑(涓�涓楠岄」鍙兘浼氬瓨鍦ㄥ娆�)")
+ private String repetitionTag;
+
+ @ApiModelProperty(value = "鎺掑簭")
+ private Integer sort;
+
+ // 缁戝畾鍊间笉鍙傚姞灞曠ず, 鍙弬鍔犺绠�
+ @ApiModelProperty(value = "鏄惁鏄粦瀹氬��, 0鍚�, 1鏄�")
+ private Integer isBinding;
+
+ @ApiModelProperty(value = "鑷叧鑱�(缁戝畾id)")
+ private Integer bindingProductId;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProductResult.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProductResult.java
new file mode 100644
index 0000000..15a5598
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsProductResult.java
@@ -0,0 +1,52 @@
+package com.ruoyi.basic.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 妫�楠岄」鐩殑缁撴灉
+ * @TableName ins_product_result
+ */
+@TableName(value ="ins_product_result")
+@Data
+public class InsProductResult implements Serializable {
+
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("澶栭敭锛氭楠岄」鐩甶d")
+ private Integer insProductId;
+
+ @ApiModelProperty("妫�楠屽��")
+ private String insValue;
+
+ @ApiModelProperty("璁$畻鍊�")
+ private String comValue;
+
+ @ApiModelProperty("璁惧鍊�")
+ private String equipValue;
+
+ @ApiModelProperty("璁惧鍚嶇О")
+ 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/basic/pojo/InsSample.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsSample.java
index 6d01fd6..fc15a45 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsSample.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsSample.java
@@ -1,123 +1,123 @@
-//package com.ruoyi.basic.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_sample
-// */
-//@TableName(value ="ins_sample")
-//@Data
-//public class InsSample implements Serializable {
-// /**
-// *
-// */
-// @TableId(type = IdType.AUTO)
-// private Integer id;
-//
-// /**
-// * 1锛氬悎鏍� 0锛氫笉鍚堟牸
-// */
-// private Integer insResult;
-//
-// /**
-// * 澶栭敭锛歩ns_order琛╥d
-// */
-// private Integer insOrderId;
-//
-// /**
-// * 閰嶅鏍峰搧鍨嬪彿
-// */
-// private String joinModel;
-//
-// /**
-// * 閰嶅鏍峰搧鍚嶇О
-// */
-// private String joinName;
-//
-// /**
-// * 閰嶅鏍峰搧鏁伴噺
-// */
-// private Integer joinNum;
-//
-// /**
-// * 鏍峰搧缂栫爜
-// */
-// private String sampleCode;
-//
-// /**
-// * 妫�楠屽伐鍘�
-// */
-// private String factory;
-//
-// /**
-// * 瀹為獙瀹ゅ悕绉�
-// */
-// private String laboratory;
-//
-// /**
-// * 鏍峰搧绫诲瀷
-// */
-// private String sampleType;
-//
-// /**
-// * 鏍峰搧鍚嶇О
-// */
-// private String sample;
-//
-// /**
-// * 瑙勬牸鍨嬪彿
-// */
-// private String model;
-//
-// /**
-// * 妫�楠岀姸鎬�(0锛氬緟妫�楠�1:妫�楠屼腑 2:宸叉楠�3锛氬緟澶嶆牳4锛氬鏍告湭閫氳繃5锛氬鏍搁�氳繃)
-// */
-// private Integer insState;
-//
-// /**
-// * 澶囨敞
-// */
-// private String remark;
-//
-// private Integer standardMethodListId;
-//
-// @ApiModelProperty("鏍峰搧鍗曚綅")
-// private String unit;
-//
-// private Integer cellId;
-//
-// @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;
-//
-// private Integer parentId;
-//
-// @ApiModelProperty("鏁伴噺")
-// private Integer quantity;
-//
-// @ApiModelProperty("鐗规畩鏍囧噯鏂规硶")
-// private String specialStandardMethod;
-//
-// @TableField(select = false,exist = false)
-// private Integer num=1;
-//
-//}
+package com.ruoyi.basic.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_sample
+ */
+@TableName(value ="ins_sample")
+@Data
+public class InsSample implements Serializable {
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 1锛氬悎鏍� 0锛氫笉鍚堟牸
+ */
+ private Integer insResult;
+
+ /**
+ * 澶栭敭锛歩ns_order琛╥d
+ */
+ private Integer insOrderId;
+
+ /**
+ * 閰嶅鏍峰搧鍨嬪彿
+ */
+ private String joinModel;
+
+ /**
+ * 閰嶅鏍峰搧鍚嶇О
+ */
+ private String joinName;
+
+ /**
+ * 閰嶅鏍峰搧鏁伴噺
+ */
+ private Integer joinNum;
+
+ /**
+ * 鏍峰搧缂栫爜
+ */
+ private String sampleCode;
+
+ /**
+ * 妫�楠屽伐鍘�
+ */
+ private String factory;
+
+ /**
+ * 瀹為獙瀹ゅ悕绉�
+ */
+ private String laboratory;
+
+ /**
+ * 鏍峰搧绫诲瀷
+ */
+ private String sampleType;
+
+ /**
+ * 鏍峰搧鍚嶇О
+ */
+ private String sample;
+
+ /**
+ * 瑙勬牸鍨嬪彿
+ */
+ private String model;
+
+ /**
+ * 妫�楠岀姸鎬�(0锛氬緟妫�楠�1:妫�楠屼腑 2:宸叉楠�3锛氬緟澶嶆牳4锛氬鏍告湭閫氳繃5锛氬鏍搁�氳繃)
+ */
+ private Integer insState;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+ private Integer standardMethodListId;
+
+ @ApiModelProperty("鏍峰搧鍗曚綅")
+ private String unit;
+
+ private Integer cellId;
+
+ @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;
+
+ private Integer parentId;
+
+ @ApiModelProperty("鏁伴噺")
+ private Integer quantity;
+
+ @ApiModelProperty("鐗规畩鏍囧噯鏂规硶")
+ private String specialStandardMethod;
+
+ @TableField(select = false,exist = false)
+ private Integer num=1;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsUnqualifiedRetestProduct.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsUnqualifiedRetestProduct.java
new file mode 100644
index 0000000..d45a196
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/InsUnqualifiedRetestProduct.java
@@ -0,0 +1,137 @@
+package com.ruoyi.basic.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 涓嶅悎鏍兼楠岄」鐩娴�
+ *
+ * @author zhuo
+ * @since 2024-09-03
+ */
+@TableName(value = "ins_unqualified_retest_product")
+@Data
+public class InsUnqualifiedRetestProduct implements Serializable {
+ /**
+ * 涓婚敭id
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+ //澶栭敭锛歩ns_product琛╥d
+ private Integer insProductId;
+ //妫�楠岄」
+ private String inspectionItem;
+ //妫�楠岄」瀛愮被
+ private String inspectionItemSubclass;
+ //宸ュ巶
+ private String factory;
+ //瀹為獙瀹�
+ private String laboratory;
+ //鏍峰搧鍒嗙被
+ private String sampleType;
+ //鏍峰搧
+ private String sample;
+ //鍨嬪彿
+ private String model;
+ //瀛愬疄楠屽
+ private String sonLaboratory;
+ //璁¢噺鍗曚綅
+ private String unit;
+ //鍗曚环(鍏�)
+ private Double price;
+ //宸ユ椂(H)
+ private Double manHour;
+ //宸ユ椂鍒嗙粍
+ private String manHourGroup;
+ //妫�楠岄」绫诲瀷
+ private String inspectionItemType;
+ //妫�楠屽�肩被鍨�
+ private String inspectionValueType;
+ //璁惧缁�
+ private String deviceGroup;
+ //妫�楠屾鏁�
+ private Integer checkoutNumber;
+ //鍖洪棿
+ private String section;
+ //鍙栧�肩被鍨�
+ private String valueType;
+ //鏂规硶
+ private String method;
+ //棰勮鏃堕棿(澶�)
+ private Integer manDay;
+ //鐗规畩鏍囪瘑
+ private String bsm;
+ //瑕佹眰鍊�
+ private String ask;
+ //瑕佹眰鎻忚堪
+ private String tell;
+ //鏈�缁堝��
+ @TableField("`last_value`")
+ private String lastValue;
+ //1锛氬悎鏍� 0锛氫笉鍚堟牸 3: 涓嶅垽瀹�
+ private Integer insResult;
+ //1锛氭湁鏁� 0锛氭棤鏁�
+ private Integer state;
+ //澶栭敭锛歩ns_sample琛╥d
+ private Integer insSampleId;
+
+ // 鍒涘缓浜�
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ //鍒涘缓鏃堕棿
+ @TableField(fill = FieldFill.INSERT)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ // 淇敼浜�
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ // 淇敼鏃堕棿
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+ //澶栭敭锛歴tandard_template琛╥d
+ private Integer templateId;
+ //瀛楀吀绫诲瀷
+ private String dic;
+ //鏂规硶
+ private String methodS;
+ //澶栭敭
+ private Integer insFiberId;
+ //澶栭敭
+ private Integer insFibersId;
+ //妫�楠岄」EN
+ private String inspectionItemEn;
+ //妫�楠岄」灏忕被EN
+ private String inspectionItemSubclassEn;
+ //妫�楠岄」鍒嗙被
+ private String inspectionItemClass;
+ //妫�楠岄」鍒嗙被EN
+ private String inspectionItemClassEn;
+ //澶栭敭锛氭爣鍑嗘柟娉昳d
+ private Integer standardMethodListId;
+ //娓╁害
+ private String temperature;
+ //婀垮害
+ private String humidity;
+ //澶栭敭(鐩墠鍙湁鏉惧绠¢」鐩娇鐢�)
+ private Integer insBushId;
+ //鑼冨洿
+ private String radius;
+ //鐢电紗鏍囪瘑
+ private String cableTag;
+ //鍘熸潗鏂欐壒閲忔爣璇�
+ private String rawMaterialTag;
+ //澶嶆祴娆℃暟鏍囪瘑
+ private String retestTag;
+ //鎺掑簭
+ private Integer sort;
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/pojo/RawMaterialOrderTemplate.java b/inspect-server/src/main/java/com/ruoyi/basic/pojo/RawMaterialOrderTemplate.java
new file mode 100644
index 0000000..72fcf37
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/pojo/RawMaterialOrderTemplate.java
@@ -0,0 +1,52 @@
+package com.ruoyi.basic.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-08-05
+ */
+@TableName(value = "raw_material_order_template")
+@Data
+public class RawMaterialOrderTemplate {
+
+ /**
+ *
+ */
+ @TableId(type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 妯℃澘鍚嶇О
+ */
+ @ApiModelProperty("妯℃澘鍚嶇О")
+ private String name;
+
+ /**
+ * 妯℃澘鍚嶇О
+ */
+ @ApiModelProperty("闆朵欢缂栧彿")
+ private String partNo;
+
+ /**
+ * 妯℃澘鍐呭
+ */
+ @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/basic/service/InsOrderService.java b/inspect-server/src/main/java/com/ruoyi/basic/service/InsOrderService.java
new file mode 100644
index 0000000..f36d69a
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/basic/service/InsOrderService.java
@@ -0,0 +1,115 @@
+package com.ruoyi.basic.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.dto.*;
+import com.ruoyi.basic.pojo.InsOrder;
+import com.ruoyi.basic.pojo.InsUnqualifiedRetestProduct;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author gaoaoy
+ * @description 閽堝琛ㄣ�恑ns_order(妫�楠屼笅鍗�)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2024-03-12 16:17:55
+ */
+public interface InsOrderService extends IService<InsOrder> {
+
+ //鑾峰彇鍗曚綅妫�楠屼笅鍗曟暟鎹�
+ Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto);
+
+
+ //淇敼妫�楠屼笅鍗曟暟鎹�
+ int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory);
+
+ int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing);
+
+ Map<String, Object> getInsOrder(Integer id);
+
+ int upInsOrderOfState(InsOrder insOrder);
+
+ Map<String, Object> getInsOrderAndSample(Integer id, String laboratory);
+
+ Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto);
+
+ Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto);
+
+ Map<String, Object> costStatistics2(CostStatisticsDto costStatisticsDto);
+
+ Map<String, Object> selectSampleDefects(Page page, String inspectionItems, String orderNumber);
+
+ int updateStatus(Integer id);
+
+
+ void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response)throws IOException, ServletException;
+
+ // 鑾峰彇ifs搴撳瓨淇℃伅
+ void getIfsOrder();
+
+ /**
+ * 淇敼璁㈠崟鍗曞彿
+ * @param insOrder
+ */
+ void updateEntrustCode(InsOrder insOrder);
+
+ List<InsUnqualifiedRetestProduct> getRetestResult(Integer insProductId);
+
+
+
+ void updateIfsInventoryQuantity(Integer id);
+
+ /**
+ * 閾滄潗涓嬪崟
+ * @param list
+ * @param copperInsOrder
+ * @return
+ */
+ int addRawCopperOrder(List<SampleProductDto> list, CopperInsOrderDto copperInsOrder);
+
+ /**
+ * 淇敼濮旀墭缂栧彿
+ * @param insOrder
+ */
+ void updateOrderEntrustCode(InsOrder insOrder);
+
+
+ /**
+ * 淇敼妫�楠屼笅鍗曞唴瀹�
+ * @param insOrderUpdateDto
+ * @return
+ */
+ Boolean updateInsOrder(InsOrderUpdateDto insOrderUpdateDto);
+
+ /**
+ * 鎴愬搧鏍囩鎵撳嵃
+ * @param ids
+ * @return
+ */
+ List<InsOrderPrintingVo> labelOrderPrinting(List<Integer> ids);
+
+ /**
+ * 鏍规嵁鏍峰搧id鏌ヨ妫�楠岄」鏍�
+ * @param insSampleId
+ * @return
+ */
+ List<StandardProductList> getProductTreeBySampleId(Integer insSampleId);
+
+ /**
+ * 娣诲姞閬楁紡鐨勬楠岄」
+ * @param omitOrderProductDto
+ * @return
+ */
+ boolean addOmitOrderProduct(OmitOrderProductDto omitOrderProductDto);
+
+ /**
+ * 鎴愬搧妫�楠屽崟瀵煎嚭
+ * @param sampleOrderDto
+ * @param response
+ */
+ void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderService.java b/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderService.java
index 3cdf358..1662a1d 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderService.java
@@ -1,143 +1,146 @@
-//package com.ruoyi.basic.service;
-//
-//import com.baomidou.mybatisplus.core.metadata.IPage;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.UnsupportedEncodingException;
-//import java.util.List;
-//import java.util.Map;
-//
-///**
-// * @Author zhuo
-// * @Date 2024/7/31
-// */
-//public interface RawMaterialOrderService {
-//
-// RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo);
-//
-// /**
-// * 鎶ユ鏌ヨ
-// * @param page
-// * @param ifsInventoryQuantity
-// * @return
-// */
-// Map<String,Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
-//
-// /**
-// * 鏌ヨ妫�楠屽��
-// * @param page
-// * @param ifsInventoryQuantityDto
-// * @return
-// */
-// Map<String,Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto);
-//
-// int inspectionReport(List<Integer> ids);
-//
-// int revokeInspectionReport(Integer id);
-//
-// List<IfsInventoryQuantityDto> printLabel(List<Integer> ids);
-//
-// int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity);
-//
-// String getIndustryChain(Integer id);
-//
-// /**
-// * 鍘熸潗鏂欐挙閿�涓嬪崟
-// * @param ifsInventoryId
-// * @return
-// */
-// boolean repealRawOrder(Integer ifsInventoryId);
-//
-// /**
-// * 娣诲姞鍏嶆璁㈠崟
-// * @param list
-// * @param insOrder
-// * @return
-// */
-// int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder);
-//
-// Map<String,Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity);
-//
-// /**
-// * 鏌ヨ宸叉楠�
-// * @param page
-// * @param ifsInventoryQuantityDto
-// * @return
-// */
-// Map<String,Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
-//
-// int delIfsInventory(Integer id);
-//
-// /**
-// * 鍘熸潗鏂欐斁琛屽厤妫�
-// * @param ifsInventoryId
-// * @return
-// */
-// boolean rawOrderRelease(Integer ifsInventoryId, String partDetail);
-//
-// /**
-// * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
-// * @param ifsInventoryId
-// * @return
-// */
-// int notificationRawOrder(Integer ifsInventoryId);
-//
-// /**
-// * 鎵嬪姩娣诲姞鍘熸潗淇℃伅
-// * @param ifsInventoryQuantity
-// */
-// void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity);
-//
-// void shiftingParking(List<Integer> ids);
-//
-// /**
-// * 閾滃崟涓濅笅鍗曞厤妫�
-// * @param list
-// * @param copperInsOrder
-// */
-// int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto copperInsOrder);
-//
-// /**
-// * 璁╂u鏀捐
-// * @param ifsInventoryId
-// * @return
-// */
-// boolean concessionRelease(Integer ifsInventoryId);
-//
-// /**
-// * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
-// * @param enterOrderId
-// * @return
-// */
-// boolean repealEnterRawOrder(Integer enterOrderId);
-//
-// /**
-// * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
-// * @param quarterOrderId
-// * @return
-// */
-// boolean repealQuarterRawOrder(Integer quarterOrderId);
-//
-// /**
-// * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭
-// * @param dto
-// * @param response
-// */
-// void rawAllExport(IfsInventoryQuantitySupplierDto dto, HttpServletResponse response) throws UnsupportedEncodingException;
-//
-// /**
-// * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭
-// * @param page
-// * @param ifsInventoryQuantityDto
-// * @return
-// */
-// Map<String,Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
-//
-// /**
-// * advancedGodown
-// * @param ifsInventoryId
-// * @return
-// */
-// boolean advancedGodown(Integer ifsInventoryId);
-//}
+package com.ruoyi.basic.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.*;
+import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.basic.pojo.InsOrder;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author zhuo
+ * @Date 2024/7/31
+ */
+public interface RawMaterialOrderService {
+
+ RawMaterialStandardTreeDto selectStandardTreeListByPartNo(String partNo);
+
+ /**
+ * 鎶ユ鏌ヨ
+ * @param page
+ * @param ifsInventoryQuantity
+ * @return
+ */
+ Map<String,Object> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
+
+ /**
+ * 鏌ヨ妫�楠屽��
+ * @param page
+ * @param ifsInventoryQuantityDto
+ * @return
+ */
+ Map<String,Object> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto);
+
+ int inspectionReport(List<Integer> ids);
+
+ int revokeInspectionReport(Integer id);
+
+ List<IfsInventoryQuantityDto> printLabel(List<Integer> ids);
+
+ int inspectionReportOne(IfsInventoryQuantity ifsInventoryQuantity);
+
+ String getIndustryChain(Integer id);
+
+ /**
+ * 鍘熸潗鏂欐挙閿�涓嬪崟
+ * @param ifsInventoryId
+ * @return
+ */
+ boolean repealRawOrder(Integer ifsInventoryId);
+
+ /**
+ * 娣诲姞鍏嶆璁㈠崟
+ * @param list
+ * @param insOrder
+ * @return
+ */
+ int addExemptionOrder(List<SampleProductDto> list, InsOrder insOrder);
+
+ Map<String,Object> selectIfsInventoryQuantity(Page<IfsInventoryQuantityCheckDto> page, IfsInventoryQuantityCheckDto ifsInventoryQuantity);
+
+ /**
+ * 鏌ヨ宸叉楠�
+ * @param page
+ * @param ifsInventoryQuantityDto
+ * @return
+ */
+ Map<String,Object> getIfsByOver(Page<IfsInventoryQuantitySupplierDto> page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
+
+ int delIfsInventory(Integer id);
+
+ /**
+ * 鍘熸潗鏂欐斁琛屽厤妫�
+ * @param ifsInventoryId
+ * @return
+ */
+ boolean rawOrderRelease(Integer ifsInventoryId, String partDetail);
+
+ /**
+ * 鍘熸潗鏂欎笅鍗曢�氱煡鍏嶆鎴栬�呭娆℃楠�
+ * @param ifsInventoryId
+ * @return
+ */
+ int notificationRawOrder(Integer ifsInventoryId);
+
+ /**
+ * 鎵嬪姩娣诲姞鍘熸潗淇℃伅
+ * @param ifsInventoryQuantity
+ */
+ void addIfsInventoryQuantity(IfsInventoryQuantity ifsInventoryQuantity);
+
+ void shiftingParking(List<Integer> ids);
+
+ /**
+ * 閾滃崟涓濅笅鍗曞厤妫�
+ * @param list
+ * @param copperInsOrder
+ */
+ int addRawCopperOrderExemptionOrder(List<SampleProductDto> list, CopperInsOrderDto copperInsOrder);
+
+ /**
+ * 璁╂u鏀捐
+ * @param ifsInventoryId
+ * @return
+ */
+ boolean concessionRelease(Integer ifsInventoryId);
+
+ /**
+ * 鍘熸潗鏂欒繘鍘傛挙閿�涓嬪崟
+ * @param enterOrderId
+ * @return
+ */
+ boolean repealEnterRawOrder(Integer enterOrderId);
+
+ /**
+ * 鍘熸潗鏂欏搴︽挙閿�涓嬪崟
+ * @param quarterOrderId
+ * @return
+ */
+ boolean repealQuarterRawOrder(Integer quarterOrderId);
+
+ /**
+ * 鍘熸潗鏂欐姤妫�鍏ㄩ儴淇℃伅瀵煎嚭
+ * @param dto
+ * @param response
+ */
+ void rawAllExport(IfsInventoryQuantitySupplierDto dto, HttpServletResponse response) throws UnsupportedEncodingException;
+
+ /**
+ * 鍘熸潗鏂欐煡璇㈠彲浠ュ搴︽楠岀殑鍐呭
+ * @param page
+ * @param ifsInventoryQuantityDto
+ * @return
+ */
+ Map<String,Object> getIfsByQuarter(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto);
+
+ /**
+ * advancedGodown
+ * @param ifsInventoryId
+ * @return
+ */
+ boolean advancedGodown(Integer ifsInventoryId);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderTemplateService.java b/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderTemplateService.java
index 98b3b5e..71572e0 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderTemplateService.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/service/RawMaterialOrderTemplateService.java
@@ -1,25 +1,25 @@
-//package com.ruoyi.basic.service;
-//
-//import com.baomidou.mybatisplus.extension.service.IService;
-//import com.yuanchu.mom.pojo.RawMaterialOrderTemplate;
-//
-//import java.util.List;
-//
-///**
-// * 鍘熸潗鏂欎笅鍗曟ā鏉�
-// *
-// * @author zhuo
-// * @since 2024-08-05
-// */
-//public interface RawMaterialOrderTemplateService extends IService<RawMaterialOrderTemplate> {
-//
-// int addRawMaterOrderTemplate(RawMaterialOrderTemplate rawMaterialOrderTemplate);
-//
-// List<RawMaterialOrderTemplate> selectRawMaterOrderTemplate(String partNo);
-//
-// String selectRawMaterOrderTemplateById(Integer id);
-//
-// int delRawMaterOrderTemplate(Integer id);
-//
-//}
-//
+package com.ruoyi.basic.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.basic.pojo.RawMaterialOrderTemplate;
+
+import java.util.List;
+
+/**
+ * 鍘熸潗鏂欎笅鍗曟ā鏉�
+ *
+ * @author zhuo
+ * @since 2024-08-05
+ */
+public interface RawMaterialOrderTemplateService extends IService<RawMaterialOrderTemplate> {
+
+ int addRawMaterOrderTemplate(RawMaterialOrderTemplate rawMaterialOrderTemplate);
+
+ List<RawMaterialOrderTemplate> selectRawMaterOrderTemplate(String partNo);
+
+ String selectRawMaterOrderTemplateById(Integer id);
+
+ int delRawMaterOrderTemplate(Integer id);
+
+}
+
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderServiceImpl.java
index 0be3f23..8bc4ca6 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderServiceImpl.java
@@ -1,850 +1,861 @@
-//package com.ruoyi.basic.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.service.RawMaterialOrderService;
-//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.basic.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.basic.dto.RawMaterialStandardTreeDto;
+import com.ruoyi.basic.dto.SampleTypeDto;
+import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+import com.ruoyi.basic.mapper.StandardTreeMapper;
+import com.ruoyi.basic.pojo.InsOrder;
+import com.ruoyi.basic.service.InsOrderService;
+import com.ruoyi.basic.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 "鏈煡";
+ }
+ }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderTemplateServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderTemplateServiceImpl.java
index 60dd9ed..d959998 100644
--- a/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderTemplateServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/basic/service/impl/RawMaterialOrderTemplateServiceImpl.java
@@ -1,68 +1,70 @@
-//package com.ruoyi.basic.service.impl;
-//
-//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.ruoyi.basic.service.RawMaterialOrderTemplateService;
-//import lombok.AllArgsConstructor;
-//import org.springframework.stereotype.Service;
-//
-//import java.util.List;
-//
-///**
-// * 鍘熸潗鏂欎笅鍗曟ā鏉�
-// *
-// * @author zhuo
-// * @since 2024-08-05
-// */
-//@Service
-//@AllArgsConstructor
-//public class RawMaterialOrderTemplateServiceImpl extends ServiceImpl<RawMaterialOrderTemplateMapper, RawMaterialOrderTemplate> implements RawMaterialOrderTemplateService {
-//
-//
-// /**
-// * 娣诲姞鍘熸潗鏂欐楠屽崟妯℃澘
-// * @param rawMaterialOrderTemplate
-// * @return
-// */
-// @Override
-// public int addRawMaterOrderTemplate(RawMaterialOrderTemplate rawMaterialOrderTemplate) {
-// if (StringUtils.isBlank(rawMaterialOrderTemplate.getPartNo())) {
-// throw new RuntimeException("缂哄皯闆朵欢鍙�");
-// }
-// return baseMapper.insert(rawMaterialOrderTemplate);
-// }
-//
-// /**
-// * 鏌ヨ鍘熸潗鏂欐楠屽崟妯℃澘鍒楄〃
-// * @param partNo
-// * @return
-// */
-// @Override
-// public List<RawMaterialOrderTemplate> selectRawMaterOrderTemplate(String partNo) {
-// return baseMapper.selectList(Wrappers.<RawMaterialOrderTemplate>lambdaQuery()
-// .eq(RawMaterialOrderTemplate::getPartNo, partNo));
-// }
-//
-// /**
-// * 閫氳繃鍘熸潗鏂欐楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭
-// * @param id
-// * @return
-// */
-// @Override
-// public String selectRawMaterOrderTemplateById(Integer id) {
-// return baseMapper.selectById(id).getThing();
-// }
-//
-// /**
-// * 鍒犻櫎鍘熸潗鏂欐楠屽崟妯℃澘
-// * @param id
-// * @return
-// */
-// @Override
-// public int delRawMaterOrderTemplate(Integer id) {
-// return baseMapper.deleteById(id);
-// }
-//
-//}
-//
+package com.ruoyi.basic.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.mapper.RawMaterialOrderTemplateMapper;
+import com.ruoyi.basic.pojo.RawMaterialOrderTemplate;
+import com.ruoyi.basic.service.RawMaterialOrderTemplateService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鍘熸潗鏂欎笅鍗曟ā鏉�
+ *
+ * @author zhuo
+ * @since 2024-08-05
+ */
+@Service
+@AllArgsConstructor
+public class RawMaterialOrderTemplateServiceImpl extends ServiceImpl<RawMaterialOrderTemplateMapper, RawMaterialOrderTemplate> implements RawMaterialOrderTemplateService {
+
+
+ /**
+ * 娣诲姞鍘熸潗鏂欐楠屽崟妯℃澘
+ * @param rawMaterialOrderTemplate
+ * @return
+ */
+ @Override
+ public int addRawMaterOrderTemplate(RawMaterialOrderTemplate rawMaterialOrderTemplate) {
+ if (StringUtils.isBlank(rawMaterialOrderTemplate.getPartNo())) {
+ throw new RuntimeException("缂哄皯闆朵欢鍙�");
+ }
+ return baseMapper.insert(rawMaterialOrderTemplate);
+ }
+
+ /**
+ * 鏌ヨ鍘熸潗鏂欐楠屽崟妯℃澘鍒楄〃
+ * @param partNo
+ * @return
+ */
+ @Override
+ public List<RawMaterialOrderTemplate> selectRawMaterOrderTemplate(String partNo) {
+ return baseMapper.selectList(Wrappers.<RawMaterialOrderTemplate>lambdaQuery()
+ .eq(RawMaterialOrderTemplate::getPartNo, partNo));
+ }
+
+ /**
+ * 閫氳繃鍘熸潗鏂欐楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭
+ * @param id
+ * @return
+ */
+ @Override
+ public String selectRawMaterOrderTemplateById(Integer id) {
+ return baseMapper.selectById(id).getThing();
+ }
+
+ /**
+ * 鍒犻櫎鍘熸潗鏂欐楠屽崟妯℃澘
+ * @param id
+ * @return
+ */
+ @Override
+ public int delRawMaterOrderTemplate(Integer id) {
+ return baseMapper.deleteById(id);
+ }
+
+}
+
diff --git a/performance-server/pom.xml b/performance-server/pom.xml
index 12db53e..d24eb14 100644
--- a/performance-server/pom.xml
+++ b/performance-server/pom.xml
@@ -12,14 +12,19 @@
<artifactId>performance-server</artifactId>
<dependencies>
+ <!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
+
+ <!-- 鏍稿績妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
+
+ <!-- 绯荤粺妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
diff --git a/pom.xml b/pom.xml
index d60e905..49bce83 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,8 @@
<swagger.version>3.0.0</swagger.version>
<kaptcha.version>2.3.3</kaptcha.version>
<pagehelper.boot.version>1.4.7</pagehelper.boot.version>
- <fastjson.version>2.0.53</fastjson.version>
+ <fastjson2.version>2.0.53</fastjson2.version>
+ <fastjson.version>2.0.23</fastjson.version>
<oshi.version>6.6.5</oshi.version>
<commons.io.version>2.13.0</commons.io.version>
<poi.version>4.1.2</poi.version>
@@ -44,6 +45,7 @@
<okhttp.version>4.9.0</okhttp.version>
<hutool.version>5.8.18</hutool.version>
<easyexcel.version>3.3.2</easyexcel.version>
+ <poi.tl.version>1.12.2</poi.tl.version>
</properties>
<!-- 渚濊禆澹版槑 -->
@@ -182,7 +184,7 @@
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
- <version>${fastjson.version}</version>
+ <version>${fastjson2.version}</version>
</dependency>
<!-- Token鐢熸垚涓庤В鏋�-->
@@ -206,6 +208,13 @@
<version>${ruoyi.version}</version>
</dependency>
+ <!-- 閫氱敤宸ュ叿-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>ruoyi-common</artifactId>
+ <version>${ruoyi.version}</version>
+ </dependency>
+
<!-- 鏍稿績妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
@@ -220,13 +229,33 @@
<version>${ruoyi.version}</version>
</dependency>
- <!-- 閫氱敤宸ュ叿-->
+ <!--鍩虹妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
- <artifactId>ruoyi-common</artifactId>
+ <artifactId>basic-server</artifactId>
<version>${ruoyi.version}</version>
</dependency>
+ <!--涓氬姟妯″潡-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>inspect-server</artifactId>
+ <version>${ruoyi.version}</version>
+ </dependency>
+
+ <!--缁╂晥妯″潡-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>performance-server</artifactId>
+ <version>${ruoyi.version}</version>
+ </dependency>
+
+ <!--cnas鏍囧噯鐗╄川-->
+ <dependency>
+ <groupId>com.ruoyi</groupId>
+ <artifactId>cnas-require</artifactId>
+ <version>${ruoyi.version}</version>
+ </dependency>
<!-- minio -->
<dependency>
@@ -246,6 +275,13 @@
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp.version}</version>
+ </dependency>
+
+ <!-- poi-tl鍖呯敓鎴愭姤鍛� -->
+ <dependency>
+ <groupId>com.deepoove</groupId>
+ <artifactId>poi-tl</artifactId>
+ <version>${poi.tl.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
@@ -318,7 +354,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
- <version>2.0.23</version>
+ <version>${fastjson.version}</version>
</dependency>
</dependencies>
diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml
index ae1928f..5449aa6 100644
--- a/ruoyi-admin/pom.xml
+++ b/ruoyi-admin/pom.xml
@@ -43,6 +43,7 @@
<artifactId>mysql-connector-java</artifactId>
</dependency>
+ <!-- 閫氱敤宸ュ叿-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
@@ -64,23 +65,21 @@
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>basic-server</artifactId>
- <version>${ruoyi.version}</version>
</dependency>
<!--涓氬姟妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>inspect-server</artifactId>
- <version>${ruoyi.version}</version>
</dependency>
<!--缁╂晥妯″潡-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>performance-server</artifactId>
- <version>${ruoyi.version}</version>
</dependency>
+ <!--cnas鏍囧噯鐗╄川-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>cnas-require</artifactId>
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index ef7ea58..0e5f458 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -141,6 +141,24 @@
<artifactId>commons-text</artifactId>
<version>1.3</version>
</dependency>
+
+ <!--浼佷笟寰俊鎺ュ彛-->
+ <dependency>
+ <groupId>com.github.binarywang</groupId>
+ <artifactId>weixin-java-cp</artifactId>
+ <version>4.1.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.github.binarywang</groupId>
+ <artifactId>weixin-java-common</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.github.binarywang</groupId>
+ <artifactId>weixin-java-common</artifactId>
+ <version>4.1.0</version>
+ </dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Util.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Util.java
new file mode 100644
index 0000000..a56ecf1
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/Md5Util.java
@@ -0,0 +1,68 @@
+package com.ruoyi.common.utils;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @author cxf
+ */
+public class Md5Util {
+ /**
+ * 榛樿鐨勫瘑鐮佸瓧绗︿覆缁勫悎锛岀敤鏉ュ皢瀛楄妭杞崲鎴� 16 杩涘埗琛ㄧず鐨勫瓧绗�
+ */
+ protected static char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+ protected static MessageDigest messagedigest = null;
+
+ static {
+ try {
+ messagedigest = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getFileMd5String(File file) throws IOException {
+ InputStream fis;
+ fis = new FileInputStream(file);
+ byte[] buffer = new byte[1024];
+ int numRead = 0;
+ while ((numRead = fis.read(buffer)) > 0) {
+ messagedigest.update(buffer, 0, numRead);
+ }
+ fis.close();
+ return bufferToHex(messagedigest.digest());
+ }
+
+ public static String getStringMd5(String str) {
+ byte[] buffer = str.getBytes();
+ messagedigest.update(buffer);
+ return bufferToHex(messagedigest.digest());
+ }
+
+ public static String bufferToHex(byte bytes[]) {
+ return bufferToHex(bytes, 0, bytes.length);
+ }
+
+ private static String bufferToHex(byte bytes[], int m, int n) {
+ StringBuffer stringbuffer = new StringBuffer(2 * n);
+ int k = m + n;
+ for (int l = m; l < k; l++) {
+ appendHexPair(bytes[l], stringbuffer);
+ }
+ return stringbuffer.toString();
+ }
+
+ private static void appendHexPair(byte bt, StringBuffer stringbuffer) {
+ // 鍙栧瓧鑺備腑楂� 4 浣嶇殑鏁板瓧杞崲
+ char c0 = hexDigits[(bt & 0xf0) >> 4];
+ // 涓洪�昏緫鍙崇Щ锛屽皢绗﹀彿浣嶄竴璧峰彸绉�,姝ゅ鏈彂鐜颁袱绉嶇鍙锋湁浣曚笉鍚�
+ // 鍙栧瓧鑺備腑浣� 4 浣嶇殑鏁板瓧杞崲
+ char c1 = hexDigits[bt & 0xf];
+ stringbuffer.append(c0);
+ stringbuffer.append(c1);
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
new file mode 100644
index 0000000..32266bf
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
@@ -0,0 +1,153 @@
+package com.ruoyi.common.utils;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+import me.chanjar.weixin.cp.bean.message.WxCpMessage;
+import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
+import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
+
+import java.io.*;
+import java.net.MalformedURLException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+import java.util.List;
+
+/**
+ * @Author: chenxiangfeng
+ * @Date: 2021/7/20 10:35
+ */
+public class WxCpUtils {
+
+ public static final String CORP_ID = "wwa423654b975441ac";
+ public static final String CORP_SECRET = "snXq8qwA5tGu0YN1PlSDQqr6u9x3A0c_jQDmt8CN8Vs";
+ public static final Integer AGENT_ID = 1000515;
+
+ /**
+ * @param user 渚嬶細ZT-033268|ZT-028629锛屽涓腑闂寸敤|闅斿紑
+ * @param content 浼犳枃鏈唴瀹�
+ * @param imageFile 鍥剧墖
+ * @throws Exception
+ */
+ public static void inform(String user, String content, File imageFile) throws Exception {
+ WxCpDefaultConfigImpl config = new WxCpDefaultConfigImpl();
+ // 娉ㄥ唽鐨勪紒涓氫俊鎭�
+ config.setCorpId(CORP_ID);
+ config.setCorpSecret(CORP_SECRET);
+
+ WxCpServiceImpl wxCpService = new WxCpServiceImpl();
+ wxCpService.setWxCpConfigStorage(config);
+
+ WxCpMessage message;
+ WxCpMessageSendResult result;
+ // 鍙戦�佹枃鏈�
+ if (StringUtils.isNotBlank(content)) {
+ message = WxCpMessage.TEXT()
+ .content(content)
+ // 鐢ㄦ埛id
+ .toUser(user)
+ // 搴旂敤id
+ .agentId(AGENT_ID)
+ .build();
+ result = wxCpService.getMessageService().send(message);
+ }
+ // 鍙戦�佹枃浠�
+ if (imageFile != null) {
+ // 鑾峰彇鏂囦欢id
+ WxMediaUploadResult imgResult = wxCpService.getMediaService().upload("file", imageFile);
+ message = WxCpMessage.IMAGE()
+ .mediaId(imgResult.getMediaId())
+ // 鐢ㄦ埛id
+ .toUser(user)
+ // 搴旂敤id
+ .agentId(AGENT_ID)
+ .build();
+ result = wxCpService.getMessageService().send(message);
+ }
+ }
+
+ /**
+ * 鎺ㄩ�佺兢娑堟伅
+ *
+ * @param webHookList 浼佷笟寰俊鏈哄櫒浜哄湴鍧�
+ * @param file 鍥剧墖
+ * @throws Exception
+ */
+ public static void informWebHook(List<String> webHookList, File file) throws Exception {
+ JSONObject json = new JSONObject();
+ json.putOpt("msgtype", "image");
+ JSONObject image = new JSONObject();
+ image.putOpt("base64", getBase64(file));
+ image.putOpt("md5", getMd5(file));
+ json.putOpt("image", image);
+
+ webHookList.stream().forEach(webHook -> {
+ String result = HttpRequest.post(webHook)
+ .header("Content-Type", "application/json")
+ .body(json.toString())
+ .execute().body();
+ });
+ }
+
+ /**
+ * 鎺ㄩ�佺兢娑堟伅
+ *
+ * @param webHook 浼佷笟寰俊鏈哄櫒浜哄湴鍧�
+ * @param content 鏁版嵁
+ * @throws Exception
+ */
+ public static String informWebHook(String webHook, String content) {
+ JSONObject jsonObject = new JSONObject()
+ .accumulate("msgtype", "text")
+ .accumulate("text", new JSONObject()
+ .accumulate("content", content));
+ return HttpRequest.post(webHook).header("Content-Type", "application/json").body(jsonObject.toString()).execute().body();
+ }
+
+ public static String getMd5(File file) {
+ String name = "";
+ try {
+ InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
+ byte[] bytes = new byte[1024];
+ int len = 0;
+ MessageDigest messagedigest = MessageDigest.getInstance("MD5");
+ while ((len = inputStream.read(bytes)) > 0) {
+ messagedigest.update(bytes, 0, len);
+ }
+ name = Md5Util.bufferToHex(messagedigest.digest());
+ inputStream.close();
+ } catch (MalformedURLException e) {
+ } catch (IOException e) {
+ } catch (NoSuchAlgorithmException e) {
+ }
+ return name;
+
+ }
+
+ public static String getBase64(File file) {
+ FileInputStream inputStream = null;
+ String base64Str = "";
+ try {
+ inputStream = new FileInputStream(file);
+ Base64.Encoder encoder = Base64.getEncoder();
+ int available = inputStream.available();
+ byte[] bytes = new byte[available];
+ inputStream.read(bytes);
+ base64Str = encoder.encodeToString(bytes);
+ inputStream.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return base64Str;
+ }
+
+}
--
Gitblit v1.9.3