From b0fd64098134466414d22af52baa823245839070 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 31 三月 2025 16:48:18 +0800
Subject: [PATCH] fix: 年度投资计划接口

---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
index 53bfba2..bba1fa4 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java
@@ -57,20 +57,43 @@
 		QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
 		queryWrapper.eq("contract_id",contract.getId());
 		List<ContractItem> list = contractItemMapper.selectList(queryWrapper);
-
-		//姣旇緝璁惧绉嶇被鏄惁涓�鑷�
-		if (list.size()!=entity.getNoteItemList().size()){
-			return R.failed("鍚堝悓涓澶囩绫讳笌楠屾敹鏄庣粏涓笉涓�鑷�");
-		}
-
+//
+//		//姣旇緝璁惧绉嶇被鏄惁涓�鑷�
+//		if (list.size()!=entity.getNoteItemList().size()){
+//			return R.failed("鍚堝悓涓澶囩绫讳笌楠屾敹鏄庣粏涓笉涓�鑷�");
+//		}
+//
 		//姣旇緝鍗曚釜璁惧鍙拌处鏁伴噺鏄惁涓庡悎鍚屼腑涓�鑷�
 		for (ContractItem contractItem:list
 		) {
 			for (ReceivingNoteItem item:entity.getNoteItemList()
 			) {
 				if (contractItem.getDeviceId().equals(item.getDeviceId())){
-					if (contractItem.getNum()!=item.getNum()) {
-						return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺涓庨獙鏀舵槑缁嗕腑涓嶄竴鑷�");
+					if (contractItem.getNum()>=item.getNum()) {
+						return R.failed("楠屾敹鏄庣粏涓�"+item.getDeviceName()+"璁惧鏁伴噺涓嶈兘瓒呰繃鍚堝悓鏄庣粏涓璁㈢殑璁惧鏁伴噺");
+					}
+					//鏌ヨ鏄惁鏈夊巻鍙查獙鏀�
+					QueryWrapper<ReceivingNoteItem> queryWrapperNoteItem = new QueryWrapper<>();
+					queryWrapperNoteItem.eq("contract_id",contract.getId());
+					queryWrapperNoteItem.eq("device_id",contractItem.getDeviceId());
+					List<ReceivingNoteItem> noteItemList = itemMapper.selectList(queryWrapperNoteItem);
+					if (noteItemList != null&&noteItemList.size()>0) {
+						Integer deviceNum = noteItemList.stream().mapToInt(ReceivingNoteItem::getNum).sum();
+						if (contractItem.getNum()>=(item.getNum()+deviceNum)) {
+							return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺涓庡疄闄呴獙鏀舵槑缁嗕腑涓嶄竴鑷�");
+						}
+					}
+				}
+				//璁惧搴忓垪鍙锋鏌ユ槸鍚︽湁鐩稿悓鐨勫瓨鍦�
+				List<String> serialArr = Arrays.stream(item.getSerialNos().split(",")).collect(Collectors.toList());
+				for (String serialNo:serialArr
+				) {
+					QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>();
+					inventoryQueryWrapper.eq("device_id",item.getDeviceId());
+					inventoryQueryWrapper.eq("serial_no",serialNo);
+					List<DeviceInventory> inventoryList = inventoryMapper.selectList(inventoryQueryWrapper);
+					if (inventoryList!=null&&inventoryList.size()>0){
+						return R.failed("鍚堝悓鏄庣粏涓澶囧簭鍒楀彿"+serialNo+"宸插瓨鍦紝璇锋鏌ュ簭鍒楀彿");
 					}
 				}
 			}
@@ -130,6 +153,23 @@
 			}
 		}
 
+		//鍚堝悓鏄庣粏涓笌瀹為檯楠屾敹瀵规瘮
+		for (ContractItem contractItem:list
+		) {
+			//鏌ヨ瀹為檯楠屾敹鎯呭喌
+			QueryWrapper<ReceivingNoteItem> queryWrapperNoteItem = new QueryWrapper<>();
+			queryWrapperNoteItem.eq("contract_id",contract.getId());
+			queryWrapperNoteItem.eq("device_id",contractItem.getDeviceId());
+			List<ReceivingNoteItem> noteItemList = itemMapper.selectList(queryWrapperNoteItem);
+			if (noteItemList != null&&noteItemList.size()>0) {
+				Integer deviceNum = noteItemList.stream().mapToInt(ReceivingNoteItem::getNum).sum();
+				if (contractItem.getNum()!=deviceNum) {
+					return R.ok();
+				}
+			}else {
+				return R.ok();
+			}
+		}
 		//鏇存柊鍚堝悓鐘舵�佷负瀹屾垚
 		contract.setStatus(2);
 		contractMapper.updateById(contract);

--
Gitblit v1.9.1