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/DeviceLeasingLedgerServiceImpl.java |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
index 0d15e4c..e3862fa 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
@@ -67,9 +67,20 @@
 			 ) {
 			for (DeviceLeasingLedgerItem item:deviceLeasingLedger.getLedgerItemList()
 			) {
-				if (contractItem.getDeviceId()==item.getDeviceId()){
-					if (contractItem.getNum()!=item.getNum()) {
-						return R.failed("鍚堝悓涓�"+contract.getName()+"璁惧鏁伴噺涓庡彴璐︽槑缁嗕腑涓嶄竴鑷�");
+				if (contractItem.getDeviceId().equals(item.getDeviceId())){
+					if (contractItem.getNum()<item.getNum()) {
+						return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺涓庡彴璐︽槑缁嗕腑涓嶄竴鑷达紝鏃犳硶寤虹珛鍙拌处");
+					}
+					//鏌ヨ鏄惁鏈夊巻鍙插嚭璐�
+					QueryWrapper<DeviceLeasingLedgerItem> queryWrapperLedgerItem = new QueryWrapper<>();
+					queryWrapperLedgerItem.eq("contract_id",contract.getId());
+					queryWrapperLedgerItem.eq("device_id",contractItem.getDeviceId());
+					List<DeviceLeasingLedgerItem> noteItemList = itemMapper.selectList(queryWrapperLedgerItem);
+					if (noteItemList != null&&noteItemList.size()>0) {
+						Integer deviceNum = noteItemList.stream().mapToInt(DeviceLeasingLedgerItem::getNum).sum();
+						if (contractItem.getNum()<(item.getNum()+deviceNum)) {
+							return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺鍑虹鍙拌处宸茶秴鍑鸿澶囧簱瀛橈紝鏃犳硶寤虹珛鍙拌处");
+						}
 					}
 				}
 			}
@@ -102,6 +113,7 @@
 						//鍑哄簱鎿嶄綔 搴撳瓨鐘舵�佷负  绉熻祦涓�
 						inventory.setInventoryStatus(2);
 					}
+					inventory.setLedgerItemId(item.getId());
 					//搴撳瓨璋冩暣
 					inventoryMapper.insert(inventory);
 
@@ -124,7 +136,23 @@
 				}
 			}
 		}
-
+		//鍚堝悓鏄庣粏涓笌鍙拌处瀵规瘮
+		for (ContractItem contractItem:list
+		) {
+			//鏌ヨ瀹為檯鍙拌处鎯呭喌
+			QueryWrapper<DeviceLeasingLedgerItem> queryWrapperLedgerItem = new QueryWrapper<>();
+			queryWrapperLedgerItem.eq("contract_id",contract.getId());
+			queryWrapperLedgerItem.eq("device_id",contractItem.getDeviceId());
+			List<DeviceLeasingLedgerItem> ledgerItemList = itemMapper.selectList(queryWrapperLedgerItem);
+			if (ledgerItemList != null&&ledgerItemList.size()>0) {
+				Integer deviceNum = ledgerItemList.stream().mapToInt(DeviceLeasingLedgerItem::getNum).sum();
+				if (contractItem.getNum()!=deviceNum) {
+					return R.ok();
+				}
+			}else {
+				return R.ok();
+			}
+		}
 		//鏇存柊鍚堝悓鐘舵�佷负瀹屾垚
 		contract.setStatus(2);
 		contractMapper.updateById(contract);

--
Gitblit v1.9.1