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/ContractServiceImpl.java |   71 ++++++++++++++++++++++++++++++++---
 1 files changed, 64 insertions(+), 7 deletions(-)

diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
index 930e4e9..4f4e358 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
@@ -3,10 +3,10 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
-import com.by4cloud.platformx.device.entity.Contract;
-import com.by4cloud.platformx.device.entity.ContractItem;
-import com.by4cloud.platformx.device.mapper.ContractItemMapper;
-import com.by4cloud.platformx.device.mapper.ContractMapper;
+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.ContractService;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollUtil;
@@ -27,11 +27,16 @@
 @RequiredArgsConstructor
 public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements ContractService {
   private final ContractItemMapper contractItemMapper;
+  private final DeviceLeasingLedgerMapper leasingLedgerMapper;
+  private final DeviceLeasingLedgerItemMapper ledgerItemMapper;
+  private final DeviceInventoryMapper inventoryMapper;
+  private final InventoryFlowWaterMapper flowWaterMapper;
+  private final DeviceMapper deviceMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean saveDeep(Contract contract) {
-		contract.setStatus(0);
+		contract.setStatus(CommonStatusContant.CONTRACT_STATUS_PENDING_APPROVAL);
         baseMapper.insert(contract);
         for (ContractItem contractItem : contract.getContractItemList()) {
             contractItem.setContractId(contract.getId());
@@ -87,7 +92,7 @@
 	@Override
 	public Boolean approved(Long id) {
 		Contract contract = baseMapper.selectById(id);
-		contract.setStatus(1);
+		contract.setStatus(CommonStatusContant.CONTRACT_STATUS_APPROVED);
 		baseMapper.updateById(contract);
 		return Boolean.TRUE;
 	}
@@ -95,8 +100,60 @@
 	@Override
 	public List<Contract> getApprovedContractList() {
 		QueryWrapper<Contract> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("status",1);
+		queryWrapper.eq("status",CommonStatusContant.CONTRACT_STATUS_APPROVED);
 		List<Contract> list = baseMapper.selectList(queryWrapper);
 		return list;
 	}
+
+	@Override
+	public R approvelInvalid(Long id) {
+		Contract contract = baseMapper.selectById(id);
+		contract.setStatus(CommonStatusContant.CONTRACT_STATUS_INVALID_PENDING_APPROVAL);
+		baseMapper.updateById(contract);
+		return R.ok();
+	}
+
+	@Override
+	public R invalidById(Long id) {
+		Contract contract = baseMapper.selectById(id);
+		contract.setStatus(CommonStatusContant.CONTRACT_STATUS_INVALID);
+		baseMapper.updateById(contract);
+		//鏍规嵁鍚堝悓鏌ユ壘鐩稿叧绉熻祦鍙拌处
+		QueryWrapper<DeviceLeasingLedger> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("contract_id",id);
+		DeviceLeasingLedger ledger = leasingLedgerMapper.selectOne(queryWrapper);
+		if (ledger!=null){
+			//鏌ユ壘鐩稿叧鍙拌处鏄庣粏
+			QueryWrapper<DeviceLeasingLedgerItem> ledgerItemQueryWrapper = new QueryWrapper<>();
+			ledgerItemQueryWrapper.eq("ledger_id",ledger.getId());
+			List<DeviceLeasingLedgerItem> ledgerItemList = ledgerItemMapper.selectList(ledgerItemQueryWrapper);
+			if(ledgerItemList.size()>0){
+				//鏍规嵁鍙拌处鏄庣粏鏌ヨ璁惧搴撳瓨
+				ledgerItemList.stream().forEach(deviceLeasingLedgerItem -> {
+					QueryWrapper<DeviceInventory> inventoryQueryWrapper = new QueryWrapper<>();
+					inventoryQueryWrapper.eq("ledger_item_id",deviceLeasingLedgerItem.getId());
+					List<DeviceInventory> inventoryList = inventoryMapper.selectList(inventoryQueryWrapper);
+					//灏嗚澶囧簱瀛樼姸鎬佹洿涓哄彲鐢�
+					if (inventoryList.size()>0){
+						inventoryList.stream().forEach(deviceInventory -> {
+							deviceInventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_USABLE);
+							inventoryMapper.updateById(deviceInventory);
+							//搴撳瓨娴佹按
+							InventoryFlowWater flowWater = new InventoryFlowWater();
+							flowWater.setDeviceId(deviceInventory.getDeviceId());
+							Device device = deviceMapper.selectById(deviceInventory.getDeviceId());
+							if (device!=null){
+								flowWater.setClassId(device.getClassId());
+							}
+							flowWater.setInventoryId(deviceInventory.getId());
+							flowWater.setSerialNo(deviceInventory.getSerialNo());
+							flowWater.setOperateType(CommonStatusContant.DEVICE_INVENTORY_FLOW_WATER_IN);
+							flowWaterMapper.insert(flowWater);
+						});
+					}
+				});
+			}
+		}
+		return R.ok();
+	}
 }

--
Gitblit v1.9.1