From fc8c86e7a365d5c6bdc37c2b05b9f83115ac2bc3 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期三, 23 四月 2025 17:30:52 +0800
Subject: [PATCH] 巡检任务  设备维修新增是否生成工单

---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java |   58 +++++++++++++++++-----------------------------------------
 1 files changed, 17 insertions(+), 41 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 2e5479b..18f8ff2 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
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.device.constant.CommonStatusContant;
 import com.by4cloud.platformx.device.entity.*;
 import com.by4cloud.platformx.device.mapper.*;
 import com.by4cloud.platformx.device.service.DeviceLeasingLedgerService;
@@ -71,16 +72,10 @@
 					if (contractItem.getNum()<item.getNum()) {
 						return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺涓庡彴璐︽槑缁嗕腑涓嶄竴鑷达紝鏃犳硶寤虹珛鍙拌处");
 					}
+					Integer deviceNum = itemMapper.selectDeviceNumByContractId(contract.getId(),contractItem.getDeviceId());
 					//鏌ヨ鏄惁鏈夊巻鍙插嚭璐�
-					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()+"璁惧鏁伴噺鍑虹鍙拌处宸茶秴鍑鸿澶囧簱瀛橈紝鏃犳硶寤虹珛鍙拌处");
-						}
+					if (contractItem.getNum()<(item.getNum()+deviceNum)) {
+						return R.failed("鍚堝悓涓�"+item.getDeviceName()+"璁惧鏁伴噺鍑虹鍙拌处宸茶秴鍑鸿澶囧疄闄呭簱瀛橈紝鏃犳硶寤虹珛鍙拌处");
 					}
 				}
 			}
@@ -95,26 +90,15 @@
 			for (String serialNo:item.getSerialNos()
 			) {
 				Device device = deviceMapper.selectById(item.getDeviceId());
-				if (device!=null) {
-					DeviceInventory inventory = new DeviceInventory();
-					inventory.setDeviceId(item.getDeviceId());
-					inventory.setDeviceNumber(item.getDeviceCode());
-					inventory.setName(device.getName());
-					inventory.setSerialNo(serialNo);
-					//鏍规嵁鍚堝悓绫诲瀷 璐拱 鎵跨 鍚堝悓绫诲瀷涓哄叆搴撴搷浣�
-					if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
-						inventory.setSource(1);
-						//鍏ュ簱鎿嶄綔 搴撳瓨鐘舵�佷负 鍙敤
-						inventory.setInventoryStatus(1);
-					}
-					//鏍规嵁鍚堝悓绫诲瀷 绉熻祦 鍚堝悓绫诲瀷涓哄嚭搴撴搷浣�
-					if (contract!=null&&contract.getType()==0){
-						inventory.setSource(0);
-						//鍑哄簱鎿嶄綔 搴撳瓨鐘舵�佷负  绉熻祦涓�
-						inventory.setInventoryStatus(2);
-					}
+				QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>();
+				inventoryQueryWrapper.eq("device_id",item.getDeviceId());
+				inventoryQueryWrapper.eq("serial_no",serialNo);
+				DeviceInventory inventory = inventoryMapper.selectOne(inventoryQueryWrapper);
+				if (device!=null&&inventory!=null) {
+					inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_RENTING);
+					inventory.setLedgerItemId(item.getId());
 					//搴撳瓨璋冩暣
-					inventoryMapper.insert(inventory);
+					inventoryMapper.updateById(inventory);
 
 					//璁惧搴撳瓨娴佹按鍚屾鏂板
 					InventoryFlowWater flowWater = new InventoryFlowWater();
@@ -124,11 +108,11 @@
 					flowWater.setClassId(device.getClassId());
 					//鏍规嵁鍚堝悓绫诲瀷 璐拱 鎵跨 娴佹按鎿嶄綔绫诲瀷涓哄叆搴撴搷浣�
 					if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
-						flowWater.setOperateType(2);
+						flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_IN);
 					}
 					//鏍规嵁鍚堝悓绫诲瀷 绉熻祦 娴佹按鎿嶄綔绫诲瀷涓哄嚭搴撴搷浣�
 					if (contract!=null&&contract.getType()==0){
-						flowWater.setOperateType(1);
+						flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_OUT);
 					}
 					//璁板綍搴撳瓨娴佹按
 					inventoryFlowWaterMapper.insert(flowWater);
@@ -138,17 +122,9 @@
 		//鍚堝悓鏄庣粏涓笌鍙拌处瀵规瘮
 		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 {
+			Integer deviceNum = itemMapper.selectDeviceNumByContractId(contract.getId(),contractItem.getDeviceId());
+			//鏌ヨ鏄惁鏈夊巻鍙插嚭璐�
+			if (contractItem.getNum()!=deviceNum) {
 				return R.ok();
 			}
 		}

--
Gitblit v1.9.1