From e275e91030a13f5627e21e7e44d308cee78fb31c Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 28 十一月 2025 11:04:40 +0800
Subject: [PATCH] 原材料报检:同一批次号不是第一次报检,企业微信通知格式调整 原材料下单:待下单的订单批次号重复的高亮显示

---
 basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java                    |    6 +-
 basic-server/src/main/resources/mapper/StandardTreeMapper.xml                                |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java                             |   16 +++++++-
 ruoyi-admin/src/main/resources/application-test.yml                                          |    6 +++
 basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java                    |    6 +++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java         |    9 ++--
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java |   45 ++++++++++++++++++----
 ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java                    |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java          |   11 +++--
 inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java    |    3 -
 10 files changed, 79 insertions(+), 27 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
index d824587..a743522 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -6,9 +6,9 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.basic.dto.*;
 import com.ruoyi.basic.pojo.IfsInventoryQuantity;
-import com.ruoyi.basic.pojo.StandardMethodList;
 import com.ruoyi.basic.pojo.StandardProductList;
 import com.ruoyi.basic.pojo.StandardTree;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -47,8 +47,8 @@
 
     List<FactoryDto> selectStandardTreeListByPartNo(@Param("partNo") String partNo);
 
-    IPage<IfsInventoryQuantity> selectIfsPage(IPage<IfsInventoryQuantity> page,
-                                              @Param("ew") QueryWrapper<IfsInventoryQuantity> ew);
+    IPage<IfsInventoryQuantityVO> selectIfsPage(IPage<IfsInventoryQuantity> page,
+                                                @Param("ew") QueryWrapper<IfsInventoryQuantity> ew);
 
     IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page,
                                                     @Param("ew") QueryWrapper<IfsInventoryQuantityDto> ew);
diff --git a/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java b/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
index a7cc348..5de8544 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/vo/IfsInventoryQuantityVO.java
@@ -28,4 +28,10 @@
     @ApiModelProperty(value = "鍚屾鐘舵�侊紙0锛氭湭鍚屾锛�1锛氬凡鍚屾锛�")
     private Integer syncStatus;
 
+    /**
+     * 鎵规鍙锋槸鍚﹂噸澶嶆姤妫�
+     */
+    @ApiModelProperty("鎵规鍙锋槸鍚﹂噸澶嶆姤妫�")
+    private Boolean lotBatchNoHasRepeat;
+
 }
diff --git a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
index 61812e8..aca179c 100644
--- a/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
+++ b/basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -317,7 +317,7 @@
         order by send_time desc
     </select>
 
-    <select id="selectIfsPage" resultType="com.ruoyi.basic.pojo.IfsInventoryQuantity">
+    <select id="selectIfsPage" resultType="com.ruoyi.basic.vo.IfsInventoryQuantityVO">
         SELECT * from ifs_inventory_quantity ifs
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
index 5644cdc..ae17b0d 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -141,7 +141,6 @@
     @ApiOperation(value = "鎶ユ")
     @PostMapping("/inspectionReportOne")
     public Result<?> inspectionReportOne(@RequestBody IfsInventoryQuantity ifsInventoryQuantity) {
-
         return Result.success(rawMaterialOrderService.inspectionReportOne(ifsInventoryQuantity));
     }
 
@@ -178,7 +177,7 @@
 
     @ApiOperation(value = "浠撳簱鎶ユ鏌ヨ")
     @GetMapping("/getWarehouseSubmit")
-    public Result getWarehouseSubmit(Page page, IfsInventoryQuantity ifsInventoryQuantity) throws Exception {
+    public Result getWarehouseSubmit(Page page, IfsInventoryQuantity ifsInventoryQuantity) {
         return Result.success(rawMaterialOrderService.getWarehouseSubmit(page, ifsInventoryQuantity));
     }
 
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
index e6ceea9..3cc8a95 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
@@ -2,21 +2,22 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.basic.dto.*;
+import com.ruoyi.basic.dto.IfsInventoryQuantityCheckDto;
+import com.ruoyi.basic.dto.IfsInventoryQuantityDto;
+import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto;
 import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
 import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.dto.CopperInsOrderDto;
 import com.ruoyi.inspect.dto.OrderSplitDTO;
 import com.ruoyi.inspect.dto.SampleProductDto;
 import com.ruoyi.inspect.pojo.InsOrder;
-import com.ruoyi.inspect.dto.CopperInsOrderDto;
-import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Author zhuo
@@ -32,7 +33,7 @@
      * @param ifsInventoryQuantity
      * @return
      */
-    IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
+    IPage<IfsInventoryQuantityVO> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity);
 
     /**
      * 鏌ヨ妫�楠屽��
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
index d3f2274..3899218 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -638,11 +638,12 @@
                 if(isSplitOrder){
                     ifsInventoryQuantity.setIsSplitOrder(1);
                 }
+                //todo:涓嶆竻妤氱敤閫旓紝鏆傛椂灞忚斀鎺�
                 // 鏌ヨ浜т笟閾炬娴嬫暟鎹�
-                String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(),
-                        ifsInventoryQuantity.getLineNo(),
-                        ifsInventoryQuantity.getReleaseNo());
-                ifsInventoryQuantity.setIndustryChain(industryChainAttrFields);
+//                String industryChainAttrFields = IndustryChainUtils.getIndustryChainAttrFields(ifsInventoryQuantity.getOrderNo(),
+//                        ifsInventoryQuantity.getLineNo(),
+//                        ifsInventoryQuantity.getReleaseNo());
+//                ifsInventoryQuantity.setIndustryChain(industryChainAttrFields);
 
                 ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
             }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 50a5633..f95862f 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -50,6 +50,7 @@
 import com.ruoyi.inspect.service.RawMaterialOrderService;
 import com.ruoyi.common.numgen.NumberGenerator;
 import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
 import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
 import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
 import com.ruoyi.system.mapper.UserMapper;
@@ -146,8 +147,15 @@
     }
 
     @Override
-    public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
-        return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+    public IPage<IfsInventoryQuantityVO> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+        IPage<IfsInventoryQuantityVO> ifsInventoryQuantityIPage = standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+        ifsInventoryQuantityIPage.getRecords().forEach(f->{
+            Long count = ifsInventoryQuantityMapper.selectCount(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+                    .ne(IfsInventoryQuantity::getId,f.getId())
+                    .eq(IfsInventoryQuantity::getUpdateBatchNo, f.getUpdateBatchNo()));
+            f.setLotBatchNoHasRepeat(count>0);
+        });
+        return ifsInventoryQuantityIPage;
     }
 
     @Override
@@ -241,13 +249,32 @@
 
         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);
+            //鏌ヨ鐩稿悓鎵瑰彿鐨勫巻鍙瞚fs璁㈠崟
+            List<IfsInventoryQuantity> historyRecords = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+                    .ne(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
+                    .eq(IfsInventoryQuantity::getIsInspect, 1)
+                    .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
+            );
+            if(CollUtil.isEmpty(historyRecords)){
+                // 浼佷笟寰俊閫氱煡
+                String message = "";
+                message += "鏂板鎶ユ閫氱煡";
+                message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
+                message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
+                message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+                WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+            }else{
+                //鑾峰彇鍘嗗彶鎶佃揪鏁伴噺
+                double sum = historyRecords.stream().map(IfsInventoryQuantity::getQtyArrived).mapToDouble(BigDecimal::doubleValue).sum();
+                String historyQuantity = sum + inventoryQuantity.getBuyUnitMeas();
+                String messageMarkdown = "";
+                messageMarkdown += "鏂板鎶ユ閫氱煡";
+                messageMarkdown += "\n鎵规鍙�: <font color='warning'>" + inventoryQuantity.getUpdateBatchNo() + "</font>";
+                messageMarkdown += "\n闆朵欢鎻忚堪: "+ inventoryQuantity.getPartDesc();
+                messageMarkdown += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+                messageMarkdown += "\n鍘嗗彶鎶佃揪鏁伴噺: " + historyQuantity;
+                WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), messageMarkdown,"markdown");
+            }
         });
         return 1;
     }
diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml
index 95840c7..15072c7 100644
--- a/ruoyi-admin/src/main/resources/application-test.yml
+++ b/ruoyi-admin/src/main/resources/application-test.yml
@@ -150,6 +150,12 @@
   # 璐ㄩ噺鎶ユ閫氱煡
   examiningUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=21993616-9966-4fe4-81b0-68e99a40c964
 
+mes:
+  ztzb:
+    ip: http://192.168.7.48:8100
+    user: chen
+    password: u3QMBneOYFqgWoMYdWzjjg==
+
 ifs:
   contract: ZTZB
   contract-key-get: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
index b3620ee..1547e9d 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/IndustryChainUtils.java
@@ -11,7 +11,7 @@
     //璇锋眰琛ㄥ崟璐﹀彿
     private static final String USERNAME = "ZTKJ-N002096";
     //璇锋眰琛ㄥ崟瀵嗙爜
-    private static final String PASSWORD = "Abc12345@";
+    private static final String PASSWORD = "Comp&52316167";
     //Base64鏍煎紡缂栫爜
     private static final String PWDBASE64 = Base64.encode(PASSWORD);
 
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
index 32266bf..9651311 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
@@ -100,9 +100,21 @@
 	 * @throws Exception
 	 */
 	public static String informWebHook(String webHook, String content) {
+		return informWebHook(webHook, content,"text");
+	}
+
+	/**
+	 * 鎺ㄩ�佺兢娑堟伅
+	 *
+	 * @param webHook 浼佷笟寰俊鏈哄櫒浜哄湴鍧�
+	 * @param content 鏁版嵁
+	 * @param msgType 娑堟伅绫诲瀷
+	 * @throws Exception
+	 */
+	public static String informWebHook(String webHook, String content,String msgType) {
 		JSONObject jsonObject = new JSONObject()
-				.accumulate("msgtype", "text")
-				.accumulate("text", new JSONObject()
+				.accumulate("msgtype", msgType)
+				.accumulate(msgType, new JSONObject()
 						.accumulate("content", content));
 		return HttpRequest.post(webHook).header("Content-Type", "application/json").body(jsonObject.toString()).execute().body();
 	}

--
Gitblit v1.9.3