From 52a7c9b093bcb05ee128b3ad8338007aad2cfccb Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 27 一月 2026 17:09:26 +0800
Subject: [PATCH] 业务管理:问题修复

---
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                                   |    5 
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java                              |    3 
 inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml                                |   35 +++-
 ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java                         |   45 +++--
 inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java                        |    3 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java       |  189 +++++++++++++++------------
 ruoyi-common/src/main/java/com/ruoyi/common/config/ifs/IfsConfig.java                          |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesConfig.java                          |   19 ++
 basic-server/src/main/java/com/ruoyi/basic/mapper/IfsInventoryQuantityMapper.java              |    2 
 ruoyi-admin-ztns/src/main/resources/application-ztns.yml                                       |   13 +
 inspect-server/src/main/resources/mapper/InsReportMapper.xml                                   |   20 ++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java          |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java |    6 
 ruoyi-admin-ztns/src/main/resources/application-druid.yml                                      |   13 +
 ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesProperties.java                      |   31 ++++
 basic-server/src/main/resources/mapper/IfsInventoryQuantityMapper.xml                          |    1 
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java       |   10 
 17 files changed, 263 insertions(+), 136 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/IfsInventoryQuantityMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/IfsInventoryQuantityMapper.java
index 1eae395..cd37071 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/IfsInventoryQuantityMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/IfsInventoryQuantityMapper.java
@@ -45,5 +45,5 @@
                                                       @Param("lineNo")String lineNo,
                                                       @Param("releaseNo")String releaseNo,
                                                       @Param("receiptNo")Integer receiptNo,
-                                                      @Param("orderNo")String orderNo);
+                                                      @Param("orderNo")String orderNo,@Param("contract") String contract);
 }
diff --git a/basic-server/src/main/resources/mapper/IfsInventoryQuantityMapper.xml b/basic-server/src/main/resources/mapper/IfsInventoryQuantityMapper.xml
index 5495210..43edefc 100644
--- a/basic-server/src/main/resources/mapper/IfsInventoryQuantityMapper.xml
+++ b/basic-server/src/main/resources/mapper/IfsInventoryQuantityMapper.xml
@@ -91,6 +91,7 @@
           and iiq.line_no=#{lineNo}
           and iiq.release_no=#{releaseNo}
           and iiq.receipt_no=#{receiptNo}
+          and iiq.contract = #{contract}
           and iiq.is_split_order=1
           and (iiq.is_finish != 1 or isor.sync_status != 1)
           and (io.id is null or io.is_exemption != 1)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
index 2595c51..1cf7d14 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
@@ -4,6 +4,8 @@
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.common.config.mes.MesConfig;
+import com.ruoyi.common.config.mes.MesProperties;
 import com.ruoyi.common.numgen.NumberGenerator;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.api.MesApiUtils;
@@ -38,6 +40,8 @@
 
     @Autowired
     private NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator;
+
+
 
     @Before(value = "execution(* com.ruoyi.inspect.service.impl.InsOrderServiceImpl.moveRawMaterial(..))")
     @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
@@ -92,7 +96,7 @@
 
                     String jsonStr = JSONUtil.toJsonStr(Collections.singletonList(requestMap));
                     log.info("鍚屾MES瀹炴椂搴撳瓨璇锋眰鍙傛暟-->{}",jsonStr);
-                    boolean b = mesApiUtils.batchAddStock(jsonStr);
+                    boolean b = mesApiUtils.batchAddStock(ifsInventoryQuantity.getContract(),jsonStr);
                     //鍚屾鎴愬姛锛屾洿鏂板悓姝ョ姸鎬�
                     if(b){
                         ifsSplitOrderRecordService.update(null,Wrappers.<IfsSplitOrderRecord>lambdaUpdate()
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java
index a1910c6..7516ad2 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java
@@ -48,4 +48,7 @@
     @ApiModelProperty("鍘傚鏁版嵁")
     private List<String> supplierDataList;
 
+    @ApiModelProperty("IFS鍩�")
+    private String contract;
+
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
index 24a5d7f..6d37b53 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
@@ -227,4 +227,7 @@
     @ApiModelProperty("渚涘簲鍟嗗悕绉�")
     private String supplierName;
 
+    @ApiModelProperty("IFS鍩�")
+    private String contract;
+
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
index 5a9ea09..fd7181d 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
@@ -18,15 +18,18 @@
 import com.ruoyi.inspect.vo.RawMaterialSupplierVo;
 import com.ruoyi.inspect.vo.RawProductAnalysisVo;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -55,35 +58,43 @@
         // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
-        DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
-            return maps;
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
+        }
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//            return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
+//        } else
+//            if (dataAnalysisDto.getDateType().equals("1")) {
+////            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+////            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+////            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+////            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+////            DateTime endOfWeek = DateUtil.endOfWeek(now);
+////            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+////            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto);
+//            return maps;
+//        } else
+            if (Arrays.asList("1","2").contains(dataAnalysisDto.getDateType())) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
             List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto);
             return maps;
         } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
             List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto);
             return maps;
         }
@@ -105,35 +116,40 @@
         // 鏍煎紡鍖栧瓧娈�, 閬垮厤鎶ラ敊
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
-        DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
         }
-
-        Map<String, Object> rawPassRateByCake = dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
-
-        return rawPassRateByCake;
+//        DateTime now = DateUtil.date();
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//
+//        } else
+//            if (dataAnalysisDto.getDateType().equals("1")) {
+//            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+//            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+//            DateTime endOfWeek = DateUtil.endOfWeek(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("2")) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("3")) {
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//        }
+        return dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto);
     }
 
     @Override
@@ -142,34 +158,39 @@
         this.formatDataAnalysisDto(dataAnalysisDto);
         // 鑾峰彇褰撳墠鏃ユ湡
         DateTime now = DateUtil.date();
-        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
-
-        } else if (dataAnalysisDto.getDateType().equals("1")) {
-            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
-            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
-            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
-            DateTime endOfWeek = DateUtil.endOfWeek(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("2")) {
-            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
-            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
-            DateTime endOfMonth = DateUtil.endOfMonth(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
-        } else if (dataAnalysisDto.getDateType().equals("3")) {
-            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
-            DateTime beginOfYear = DateUtil.beginOfYear(now);
-            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
-            DateTime endOfYear = DateUtil.endOfYear(now);
-            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
-            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+        if(ObjectUtils.allNull(dataAnalysisDto.getBeginDate(),dataAnalysisDto.getEndDate())){
+            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            LocalDate endDate = LocalDate.now(ZoneId.of("Asia/Shanghai"));
+            LocalDate startDate = endDate.minusDays(6L);
+            dataAnalysisDto.setBeginDate(startDate.atTime(LocalTime.MIN).format(dateTimeFormatter));
+            dataAnalysisDto.setEndDate(endDate.atTime(LocalTime.MAX).format(dateTimeFormatter));
         }
+//        if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) {
+//
+//        } else if (dataAnalysisDto.getDateType().equals("1")) {
+//            // 鑾峰彇鏈懆鐨勫紑濮嬫椂闂达紙鍛ㄤ竴 00:00:00锛�
+//            DateTime beginOfWeek = DateUtil.beginOfWeek(now);
+//            // 鑾峰彇鏈懆鐨勭粨鏉熸椂闂达紙鍛ㄦ棩 23:59:59锛�
+//            DateTime endOfWeek = DateUtil.endOfWeek(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("2")) {
+//            // 鑾峰彇褰撳墠鏈堢殑寮�濮嬫椂闂达紙姣忔湀1鍙� 00:00:00锛�
+//            DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+//            // 鑾峰彇褰撳墠鏈堢殑缁撴潫鏃堕棿锛堟湰鏈堟渶鍚庝竴澶� 23:59:59锛�
+//            DateTime endOfMonth = DateUtil.endOfMonth(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss"));
+//        } else if (dataAnalysisDto.getDateType().equals("3")) {
+//            // 鑾峰彇褰撳墠骞寸殑寮�濮嬫椂闂达紙姣忓勾1鏈�1鏃� 00:00:00锛�
+//            DateTime beginOfYear = DateUtil.beginOfYear(now);
+//            // 鑾峰彇褰撳墠骞寸殑缁撴潫鏃堕棿锛堟瘡骞�12鏈�31鏃� 23:59:59锛�
+//            DateTime endOfYear = DateUtil.endOfYear(now);
+//            dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss"));
+//            dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss"));
+//        }
 
-        List<MaterialPropTableDTO> rawPassRateByCake = dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
-
-        return rawPassRateByCake;
+        return dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto);
     }
 
     /**
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index ad03024..b203491 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -31,6 +31,7 @@
 import com.ruoyi.basic.pojo.IfsInventoryQuantity;
 import com.ruoyi.basic.pojo.StandardTemplate;
 import com.ruoyi.basic.service.StandardTemplateService;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
 import com.ruoyi.common.constant.DictDataConstants;
 import com.ruoyi.common.constant.InsOrderTypeConstants;
 import com.ruoyi.common.constant.MenuJumpPathConstants;
@@ -311,12 +312,13 @@
         if (Objects.nonNull(insOrder.getIfsInventoryId())) {
             IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId());
             //杩囨护鍑轰笉鍚堟牸鎴栨湭鎻愪氦鐨勫崟瀛�
-            count = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo())
-                    .stream()
+            List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo(), one.getContract());
+            count = ifsInventoryQuantityVOS.stream()
                     .filter(f -> (Objects.nonNull(f.getInsOrderId()) && !Objects.equals(f.getInsOrderId(), orderId)) && (Objects.isNull(f.getInsResult()) || 0 == f.getInsResult())).count();
         }
         map.put("errorMsg", collect);
         map.put("unInsOrderCount", count);
+        map.put("unFinishCount", count);
         return map;
     }
 
@@ -1710,7 +1712,7 @@
             List<String> lastValueList = new ArrayList<>();
             SampleProductExportDto dto = new SampleProductExportDto();
             BeanUtil.copyProperties(collect.get(s).get(0), dto);
-            Set<String> tellSet = new HashSet<>();
+            List<String> tellSet = new ArrayList<>();
             for (int i = startIndex; i < endIndex; i++) {
                 String cableTag = cableTags.get(i);
                 for (SampleProductExportDto sDto : collect.get(s)) {
@@ -1721,7 +1723,7 @@
                 }
             }
             //鍒囧壊鐢电紗閰嶇疆椤�
-            dto.setTell(String.join("\n", tellSet.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList())));
+            dto.setTell(tellSet.stream().distinct().collect(Collectors.joining("\n")));
             dto.setLastValueList(lastValueList);
             sampleProductExportDtos.add(dto);
         }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
index 811ecdc..620ed51 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -817,7 +817,7 @@
             //濡傛灉鏄媶鍒嗙殑璁㈠崟锛屽垯鎶婃媶鍒嗙殑鎵�鏈夋壒娆¢兘绉诲簱
             if(one.getIsSplitOrder()==1 && !hasExemption){
                 //鏌ヨ鎷嗗垎璁㈠崟璇︽儏
-                List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo());
+                List<IfsInventoryQuantityVO> ifsInventoryQuantityVOS = ifsInventoryQuantityMapper.selectSplitOrderList(one.getPartNo(), one.getLineNo(), one.getReleaseNo(), one.getReceiptNo(), one.getOrderNo(),one.getContract());
                 for (IfsInventoryQuantityVO vo : ifsInventoryQuantityVOS) {
                     //濡傛灉鏈夊鎵樺崟淇℃伅涓斿悎鏍硷紝璧扮櫥璁板悗绉诲簱锛涘鏋滄病鏈夛紝鍒欒蛋鍏嶆锛涗笉鍚堟牸涓嶅仛澶勭悊
                     if(Objects.isNull(vo.getInsOrderId())){
diff --git a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
index 749041b..40c572b 100644
--- a/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
+++ b/inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -26,7 +26,7 @@
         SELECT
         DAYOFWEEK(io1.send_time) AS week,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         INNER JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -37,7 +37,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1, 2)
+        AND iiq.inspect_status IN (1, 2,4)
         AND io1.order_type = #{dto.orderType}
         AND io1.state != -1
         AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
@@ -86,7 +86,7 @@
         DATE(io1.send_time) AS day,
         COUNT(*) AS total,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         LEFT JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -100,7 +100,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -114,7 +114,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY DATE(io1.send_time)
         ) sub ON ad.day = sub.day
         ORDER BY ad.day
@@ -158,7 +160,7 @@
         MONTH(io1.send_time) AS month,
         COUNT(*) AS total,
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
         FROM ifs_inventory_quantity iiq
         LEFT JOIN ins_order io1
         ON io1.ifs_inventory_id = iiq.id
@@ -172,7 +174,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -186,7 +188,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY MONTH(io1.send_time)
         ) sub ON am.month = sub.month
         ORDER BY am.month
@@ -200,7 +204,7 @@
         /* 鍚堟牸 */
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
         /* 涓嶅悎鏍� */
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified,
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified,
         ROUND(
         SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END)
         / COUNT(*) * 100,
@@ -220,7 +224,7 @@
         ) ins ON ins.ins_order_id = io1.id
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1, 2)
+        AND iiq.inspect_status IN (1, 2,4)
         AND io1.order_type = #{dto.orderType}
         AND io1.state != -1
         AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
@@ -237,13 +241,16 @@
         <if test="dto.supplierName != null and dto.supplierName.trim() != ''">
             AND IFNULL(iiq.supplier_name, '') LIKE CONCAT('%', #{dto.supplierName}, '%')
         </if>
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
     </select>
 
     <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
         SELECT
         iiq.supplier_name AS supplierName,
         COUNT(*) AS totalBatch,
-        SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unqualifiedBatch,
+        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unqualifiedBatch,
         ROUND(SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
 
         FROM ifs_inventory_quantity iiq
@@ -264,7 +271,7 @@
 
         WHERE
         iiq.is_finish = 1
-        AND iiq.inspect_status IN (1,2)
+        AND iiq.inspect_status IN (1,2,4)
 
         <if test="dto.materialProp != null and dto.materialProp != ''">
             AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
@@ -281,7 +288,9 @@
         <if test="dto.supplierName != null and dto.supplierName != ''">
             AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
         </if>
-
+        <if test="dto.contract != null and dto.contract != ''">
+            AND IFNULL(iiq.contract,'') = #{dto.contract}
+        </if>
         GROUP BY
         iiq.supplier_name
 
diff --git a/inspect-server/src/main/resources/mapper/InsReportMapper.xml b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
index d0350eb..68615c0 100644
--- a/inspect-server/src/main/resources/mapper/InsReportMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -20,10 +20,22 @@
         iiq.is_copper,
         iiq.material_prop,
         ip.son_laboratory,
-        iiq.update_batch_no,
-        iiq.part_desc,
-        iiq.supplier_name,
-        iiq.contract
+        CASE
+        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.update_batch_no
+        ELSE io.update_batch_no
+        END AS update_batch_no,
+        CASE
+        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.part_desc
+        ELSE io.part_desc
+        END AS part_desc,
+        CASE
+        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.supplier_name
+        ELSE io.supplier_name
+        END AS supplier_name,
+        CASE
+        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.contract
+        ELSE io.contract
+        END AS contract
         from ins_report ir
         left join ins_order io on io.id = ir.ins_order_id
         LEFT JOIN ifs_inventory_quantity iiq ON iiq.id = io.ifs_inventory_id
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index c361934..84d7228 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -193,7 +193,6 @@
         ira.temp_url_pdf,
         iiq.is_copper,
         iiq.is_split_order,
-        iiq.contract,
         CASE
         WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.update_batch_no
         ELSE io.update_batch_no
@@ -208,6 +207,10 @@
         WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.supplier_name
         ELSE io.supplier_name
         END AS supplier_name,
+        CASE
+        WHEN io.ifs_inventory_id IS NOT NULL THEN iiq.contract
+        ELSE io.contract
+        END AS contract,
 
         iiq.material_prop AS material_prop
         FROM
diff --git a/ruoyi-admin-ztns/src/main/resources/application-druid.yml b/ruoyi-admin-ztns/src/main/resources/application-druid.yml
index 0cf449c..241c5b3 100644
--- a/ruoyi-admin-ztns/src/main/resources/application-druid.yml
+++ b/ruoyi-admin-ztns/src/main/resources/application-druid.yml
@@ -174,10 +174,15 @@
       product-qualified-location: C101                                   #鎴愬搧鍚堟牸搴撲綅
 
 mes:
-  ztns:
-    ip: http://10.16.173.36
-    user: lims
-    password: qCzOMJlqE8TYOHDWGva/Tw==
+  props:
+    - contract: ZTNS
+      ip: http://10.16.173.36
+      user: lims
+      password: qCzOMJlqE8TYOHDWGva/Tw==
+    - contract: KJNS
+      ip: http://10.1.203.177
+      user: lims
+      password: qCzOMJlqE8TYOHDWGva/Tw==
 
 # 澶囨敞 18083瀵嗙爜锛歾ttZTT123!@
 mqtt:
diff --git a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
index 407a01a..6726bee 100644
--- a/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
+++ b/ruoyi-admin-ztns/src/main/resources/application-ztns.yml
@@ -175,10 +175,15 @@
       product-qualified-location: C101                                   #鎴愬搧鍚堟牸搴撲綅
 
 mes:
-  ztns:
-    ip: http://10.1.51.128
-    user: lims
-    password: q1CItm6Zl7P4SQkfczu/oQ==
+  props:
+    - contract: ZTNS
+      ip: http://10.1.51.128
+      user: lims
+      password: qCzOMJlqE8TYOHDWGva/Tw==
+    - contract: KJNS
+      ip: http://10.1.203.177
+      user: lims
+      password: qCzOMJlqE8TYOHDWGva/Tw==
 
 # 澶囨敞 18083瀵嗙爜锛歾ttZTT123!@
 mqtt:
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/ifs/IfsConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/ifs/IfsConfig.java
index 68d94e7..2b6911e 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/config/ifs/IfsConfig.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/ifs/IfsConfig.java
@@ -7,7 +7,7 @@
 import java.util.List;
 
 /**
- * 閰嶇疆鏄犲皠瀹炰綋绫�
+ * ifs閰嶇疆鏄犲皠瀹炰綋绫�
  */
 @Configuration
 @ConfigurationProperties(prefix = "ifs")
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesConfig.java
new file mode 100644
index 0000000..8e8aece
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesConfig.java
@@ -0,0 +1,19 @@
+package com.ruoyi.common.config.mes;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
+
+/**
+ * mes閰嶇疆鏄犲皠瀹炰綋绫�
+ */
+@Configuration
+@ConfigurationProperties(prefix = "mes")
+@Data
+public class MesConfig {
+
+    private List<MesProperties> props;
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesProperties.java b/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesProperties.java
new file mode 100644
index 0000000..dfdcf08
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/config/mes/MesProperties.java
@@ -0,0 +1,31 @@
+package com.ruoyi.common.config.mes;
+
+import lombok.Data;
+
+/**
+ * 瀵规帴mes瀹炴椂搴撳瓨锛岄厤缃璞�
+ */
+@Data
+public class MesProperties {
+
+    /**
+     * 宸ュ巶鍩�
+     */
+    private String contract;
+
+    /**
+     * ip鍦板潃
+     */
+    private String ip;
+
+    /**
+     * 璐﹀彿
+     */
+    private String user;
+
+    /**
+     * 瀵嗙爜
+     */
+    private String password;
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java
index f8d5e8b..72d7fe5 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/api/MesApiUtils.java
@@ -3,7 +3,11 @@
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.ruoyi.common.config.mes.MesConfig;
+import com.ruoyi.common.config.mes.MesProperties;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -15,20 +19,23 @@
 @Component
 public class MesApiUtils {
 
-    @Value("${mes.ztns.ip}")
-    String ip;
+    @Autowired
+    private MesConfig mesConfig;
 
-    @Value("${mes.ztns.user}")
-    String user;
-
-    @Value("${mes.ztns.password}")
-    String password;
+    /**
+     * 鏍规嵁宸ュ巶鍩熷洖鍘籱es閰嶇疆
+     * @param contract
+     * @return
+     */
+    public MesProperties getMesPropertiesByContract(String contract){
+        return mesConfig.getProps().stream().filter(f-> org.apache.commons.lang3.StringUtils.equals(f.getContract(),contract)).findFirst().orElse(new MesProperties());
+    }
 
     /**
      * 鑾峰彇token璇锋眰閾炬帴
      * @return
      */
-    private String getAuthTokenUrl() {
+    private String getAuthTokenUrl(String ip) {
         return ip + "/auth/oauth/token?randomStr=blockPuzzle&grant_type=password";
     }
 
@@ -36,7 +43,7 @@
      * 鏂板瀹炴椂搴撳瓨璇锋眰閾炬帴
      * @return
      */
-    private String getBatchAddStockUrl(){
+    private String getBatchAddStockUrl(String ip){
         return ip + "/mes/stock/batchAddStock";
     }
 
@@ -44,12 +51,12 @@
      * 鑾峰彇mes绯荤粺token
      * @return 鎺ュ彛鍝嶅簲缁撴灉
      */
-    public String getToken(){
+    public String getToken(MesProperties mesProperties){
         try{
             Map<String,Object> bodyMap = new HashMap<>();
-            bodyMap.put("username",user);
-            String bodyStr = "username="+user+"&password="+password;
-            String response = HttpRequest.post(getAuthTokenUrl())
+            bodyMap.put("username",mesProperties.getUser());
+            String bodyStr = "username="+mesProperties.getUser()+"&password="+mesProperties.getPassword();
+            String response = HttpRequest.post(getAuthTokenUrl(mesProperties.getIp()))
                     .header("Authorization", "Basic cGlnOnBpZw==")
                     .header("Content-Type", "application/x-www-form-urlencoded")
                     .body(bodyStr,"application/x-www-form-urlencoded").execute().body();
@@ -67,13 +74,15 @@
 
     /**
      * mes鏂板瀹炴椂搴撳瓨鎺ュ彛
+     * @param contract 宸ュ巶鍩�
      * @param requestJsonStr 璇锋眰鍙傛暟json瀛楃涓�
      * @return 鎺ュ彛鍝嶅簲缁撴灉
      */
-    public boolean batchAddStock(String requestJsonStr){
+    public boolean batchAddStock(String contract,String requestJsonStr){
         try{
-            String response = HttpRequest.post(getBatchAddStockUrl())
-                    .header("Authorization", getToken())
+            MesProperties mesProperties = getMesPropertiesByContract(contract);
+            String response = HttpRequest.post(getBatchAddStockUrl(mesProperties.getIp()))
+                    .header("Authorization", getToken(mesProperties))
                     .header("Content-Type", "application/json")
                     .body(requestJsonStr)
                     .execute()
@@ -82,11 +91,11 @@
             if(entries.getInt("code")==0){
                 return true;
             }else{
-                throw new RuntimeException("鍚屾鍒癕ES澶辫触锛�"+entries.getStr("msg"));
+                throw new RuntimeException("銆�"+contract+"銆戝悓姝ュ埌MES澶辫触锛�"+entries.getStr("msg"));
             }
         }catch (Exception e){
             e.printStackTrace();
-            throw new RuntimeException("鍚屾MES瀹炴椂搴撳瓨鎺ュ彛寮傚父:"+e.getMessage());
+            throw new RuntimeException("銆�"+contract+"銆戝悓姝ES瀹炴椂搴撳瓨鎺ュ彛寮傚父:"+e.getMessage());
         }
     }
 

--
Gitblit v1.9.3