From 8ebb968641c80accdc03551164cfeb93e41ff976 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 29 十二月 2025 17:36:34 +0800
Subject: [PATCH] 修改零件批次属性问题修复

---
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java |   50 +++++++++++++-----------
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/IfsPartPropsRecordMapper.java            |    2 +
 inspect-server/src/main/resources/mapper/IfsPartPropsRecordMapper.xml                          |   10 +++++
 3 files changed, 39 insertions(+), 23 deletions(-)

diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/IfsPartPropsRecordMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/IfsPartPropsRecordMapper.java
index 7e7b986..9548beb 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/IfsPartPropsRecordMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/IfsPartPropsRecordMapper.java
@@ -3,6 +3,7 @@
 import com.ruoyi.inspect.pojo.IfsPartPropsRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @author 27233
@@ -13,6 +14,7 @@
 @Mapper
 public interface IfsPartPropsRecordMapper extends BaseMapper<IfsPartPropsRecord> {
 
+    Long selectCountByPartNoAndLotBatchNo(@Param("partNo") String partNo, @Param("lotBatchNo") String lotBatchNo);
 }
 
 
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java
index 89fb4c2..ab2e7cc 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java
@@ -48,29 +48,33 @@
         if(Objects.isNull(ifsPartPropsRecord)){
             throw new RuntimeException("鍙傛暟涓嶈兘涓虹┖");
         }
-        //鍒ゆ柇鏄柊澧炶繕鏄洿鏂�
-        String actionType = Objects.isNull(ifsPartPropsRecord.getId())?"New":"Modify";
-        Map<String, Object> inAttrMap = new HashMap<>();
-        inAttrMap.put("RECORD_ID", UUID.randomUUID().toString());
-        inAttrMap.put("SYSCODE", "LIMS");
-        inAttrMap.put("SYSMODEL", "搴撳瓨鐗╂枡鎵规灞炴�т慨鏀�");
-        HashMap<String, Object> batchInfoMap = new HashMap<>();
-        batchInfoMap.put("CONTRACT","ZTNS");//鍩�
-        batchInfoMap.put("PART_NO",ifsPartPropsRecord.getPartNo());//闆朵欢鍙�
-        batchInfoMap.put("LOT_BATCH_NO",ifsPartPropsRecord.getLotBatchNo());//鎵规鍙�
-        batchInfoMap.put("ATTR1",ifsPartPropsRecord.getDrumNo());//杞藉叿缂栧彿
-        batchInfoMap.put("ATTR2",ifsPartPropsRecord.getStartMeterMark().toString());//璧峰绫虫爣
-        batchInfoMap.put("ATTR3",ifsPartPropsRecord.getEndMeterMark().toString());//鎴绫虫爣
-        batchInfoMap.put("ATTR4", ifsPartPropsRecord.getOuterColor());//澶栨姢棰滆壊
-        batchInfoMap.put("ATTR5",ifsPartPropsRecord.getInsulationColor());//缁濈紭棰滆壊
-        batchInfoMap.put("ATTR8",ifsPartPropsRecord.getLetteringInfo());//鍗板瓧淇℃伅
-        batchInfoMap.put("ATTR23","杞﹂棿璁㈠崟");//鍏ュ簱鏉ユ簮
-        batchInfoMap.put("ATTR24","0");//鍒嗗壊棰勭暀鏁伴噺
-        batchInfoMap.put("ACTION_TYPE",actionType);//鎿嶄綔绫诲瀷
-        inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap));
-        Result result = ifsApiUtils.importPartLotAttr(JSONUtil.toJsonStr(inAttrMap));
-        if(result.getCode()!=200){
-            throw new RuntimeException("搴撳瓨鐗╂枡鎵规灞炴�ф洿鏂板け璐ワ細"+result.getMessage());
+        //鏌ヨ鏄惁宸叉湁鍚屾壒娆″悓闆朵欢鍙风殑鎵规灞炴�э紝娌℃湁鎵嶆洿鏂�
+        Long count = baseMapper.selectCountByPartNoAndLotBatchNo(ifsPartPropsRecord.getPartNo(),ifsPartPropsRecord.getLotBatchNo());
+        if(count==0){
+            //鍒ゆ柇鏄柊澧炶繕鏄洿鏂�
+            String actionType = Objects.isNull(ifsPartPropsRecord.getId())?"New":"Modify";
+            Map<String, Object> inAttrMap = new HashMap<>();
+            inAttrMap.put("RECORD_ID", UUID.randomUUID().toString());
+            inAttrMap.put("SYSCODE", "LIMS");
+            inAttrMap.put("SYSMODEL", "搴撳瓨鐗╂枡鎵规灞炴�т慨鏀�");
+            HashMap<String, Object> batchInfoMap = new HashMap<>();
+            batchInfoMap.put("CONTRACT","ZTNS");//鍩�
+            batchInfoMap.put("PART_NO",ifsPartPropsRecord.getPartNo());//闆朵欢鍙�
+            batchInfoMap.put("LOT_BATCH_NO",ifsPartPropsRecord.getLotBatchNo());//鎵规鍙�
+            batchInfoMap.put("ATTR1",ifsPartPropsRecord.getDrumNo());//杞藉叿缂栧彿
+            batchInfoMap.put("ATTR2",ifsPartPropsRecord.getStartMeterMark().toString());//璧峰绫虫爣
+            batchInfoMap.put("ATTR3",ifsPartPropsRecord.getEndMeterMark().toString());//鎴绫虫爣
+            batchInfoMap.put("ATTR4", ifsPartPropsRecord.getOuterColor());//澶栨姢棰滆壊
+            batchInfoMap.put("ATTR5",ifsPartPropsRecord.getInsulationColor());//缁濈紭棰滆壊
+            batchInfoMap.put("ATTR8",ifsPartPropsRecord.getLetteringInfo());//鍗板瓧淇℃伅
+            batchInfoMap.put("ATTR23","杞﹂棿璁㈠崟");//鍏ュ簱鏉ユ簮
+            batchInfoMap.put("ATTR24","0");//鍒嗗壊棰勭暀鏁伴噺
+            batchInfoMap.put("ACTION_TYPE",actionType);//鎿嶄綔绫诲瀷
+            inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap));
+            Result result = ifsApiUtils.importPartLotAttr(JSONUtil.toJsonStr(inAttrMap));
+            if(result.getCode()!=200){
+                throw new RuntimeException("搴撳瓨鐗╂枡鎵规灞炴�ф洿鏂板け璐ワ細"+result.getMessage());
+            }
         }
         return this.saveOrUpdate(ifsPartPropsRecord);
     }
diff --git a/inspect-server/src/main/resources/mapper/IfsPartPropsRecordMapper.xml b/inspect-server/src/main/resources/mapper/IfsPartPropsRecordMapper.xml
index c29c7a1..4cccb84 100644
--- a/inspect-server/src/main/resources/mapper/IfsPartPropsRecordMapper.xml
+++ b/inspect-server/src/main/resources/mapper/IfsPartPropsRecordMapper.xml
@@ -21,4 +21,14 @@
         start_meter_mark,end_meter_mark,insulation_color,
         outer_color,lettering_info,part_props_flag
     </sql>
+    <select id="selectCountByPartNoAndLotBatchNo" resultType="java.lang.Long">
+        select
+            COUNT(iiq.id)
+        from ifs_inventory_quantity  iiq
+            left join ifs_part_props_record ippr
+                on iiq.id = ippr.ifs_inventory_id
+        where iiq.part_no = #{partNo}
+          and iiq.update_batch_no= #{lotBatchNo}
+          and ippr.id  is not null
+    </select>
 </mapper>

--
Gitblit v1.9.3