From a7ad35b3e20867204cda9faa7bdf8a686264e906 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 27 三月 2025 17:17:43 +0800
Subject: [PATCH] 合同及明细业务调整

---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java                       |    2 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java          |    3 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java                      |   22 +++---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java             |    8 +-
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java                   |    1 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java |   17 +++++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java                    |    4 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java          |   30 ++++++---
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java                 |    8 ++
 platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml                                                 |   17 +++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java    |   11 +++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java     |   49 ++++++++++++----
 12 files changed, 131 insertions(+), 41 deletions(-)

diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java
index 267fc3b..e862309 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java
@@ -44,5 +44,7 @@
 	@Column(columnDefinition="int comment '鏉ユ簮 0浠撳簱 1璐拱 2瀛愬崟浣嶉棽缃�'")
 	private Integer source;
 
-
+	@Schema(description = "搴撳瓨鐘舵��")
+	@Column(columnDefinition="int comment '搴撳瓨鐘舵�� 1 鍙敤 2 绉熻祦涓� 3 鍐荤粨 4 鎶ュ簾'")
+	private Integer inventoryStatus;
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java
index 3102bb6..86aa06f 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InventoryFlowWater.java
@@ -47,7 +47,11 @@
 	@Column(columnDefinition="VARCHAR(200) comment '澶囨敞'")
 	private String remark;
 
+	@Schema(description = "璁惧搴忓垪鍙�")
+	@Column(columnDefinition="VARCHAR(64) comment '璁惧搴忓垪鍙�'")
+	private String serialNo;
 
-
-
+	@Schema(description = "鎿嶄綔绫诲瀷")
+	@Column(columnDefinition="integer comment ' 鎿嶄綔绫诲瀷 1 鍑哄簱 2 鍏ュ簱'")
+	private Integer operateType;
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java
index 2f70181..c192bac 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java
@@ -29,16 +29,16 @@
 @Table(appliesTo = "receiving_note", comment = "楠屾敹琛�")
 public class ReceivingNote extends BaseModel<ReceivingNote> {
 	/**
-	 * 鎵跨鍚堝悓Id
+	 * 鍚堝悓Id
 	 */
-	@Column(columnDefinition="long comment '鎵跨鍚堝悓Id'")
-	private Long lesseeContractId;
+	@Column(columnDefinition="long comment '鍚堝悓Id'")
+	private Long contractId;
 
-	/**
-	 * 绉熺敤鍚堝悓Id
-	 */
-	@Column(columnDefinition="long comment '绉熺敤鍚堝悓Id'")
-	private Long rentContractId;
+//	/**
+//	 * 绉熺敤鍚堝悓Id
+//	 */
+//	@Column(columnDefinition="long comment '绉熺敤鍚堝悓Id'")
+//	private Long rentContractId;
 
 	@Schema(description = "楠屾敹鍏徃")
 	@Column(columnDefinition="VARCHAR(64) comment '楠屾敹鍏徃'")
@@ -126,9 +126,9 @@
 	/**
 	 * 浣跨敤鍏徃
 	 */
-	@Schema(description = "浣跨敤鍏徃")
-	@Column(columnDefinition="long comment '浣跨敤鍏徃'")
-	private Long deptId;
+//	@Schema(description = "浣跨敤鍏徃")
+//	@Column(columnDefinition="long comment '浣跨敤鍏徃'")
+//	private Long deptId;
 
 	@Transient
 	@TableField(exist = false)
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java
index 0b7ce8f..4bbec76 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java
@@ -70,7 +70,7 @@
     @GetMapping("/{id}" )
     @PreAuthorize("@pms.hasPermission('platformx_contract_view')" )
     public R getById(@PathVariable("id" ) Long id) {
-        return R.ok(contractService.getById(id));
+        return R.ok(contractService.getDetailById(id));
     }
 
     /**
@@ -84,7 +84,7 @@
     @PreAuthorize("@pms.hasPermission('platformx_contract_add')" )
     public R save(@RequestBody Contract contract) {
 		contract.setNumber(maxSizeService.nextNo(MaxSizeContant.CONTRACT_NUM));
-        return R.ok(contractService.save(contract));
+        return R.ok(contractService.saveDeep(contract));
     }
 
     /**
@@ -97,7 +97,7 @@
     @PutMapping
     @PreAuthorize("@pms.hasPermission('platformx_contract_edit')" )
     public R updateById(@RequestBody Contract contract) {
-        return R.ok(contractService.updateById(contract));
+        return R.ok(contractService.updateDeep(contract));
     }
 
     /**
@@ -110,7 +110,7 @@
     @DeleteMapping
     @PreAuthorize("@pms.hasPermission('platformx_contract_del')" )
     public R removeById(@RequestBody Long[] ids) {
-        return R.ok(contractService.removeBatchByIds(CollUtil.toList(ids)));
+        return R.ok(contractService.removeDeep(ids));
     }
 
 
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java
index 14d40f2..3d54e29 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteItemController.java
@@ -116,4 +116,15 @@
     public List<ReceivingNoteItem> export(ReceivingNoteItem receivingNoteItem,Long[] ids) {
         return receivingNoteItemService.list(Wrappers.lambdaQuery(receivingNoteItem).in(ArrayUtil.isNotEmpty(ids), ReceivingNoteItem::getId, ids));
     }
+
+	/**
+	 * 鏍规嵁鍚堝悓鏌ヨ鍚堝悓鍐呯殑璁惧
+	 * @param contractId
+	 * @return
+	 */
+	@Operation(summary = "鏍规嵁鍚堝悓鏌ヨ鍚堝悓鍐呯殑璁惧" , description = "鏍规嵁鍚堝悓鏌ヨ鍚堝悓鍐呯殑璁惧")
+			@GetMapping("/getDeviceListByContractId/{contractId}")
+	public R getDeviceListByContractId(@PathVariable("contractId")Long contractId) {
+		return receivingNoteItemService.getDeviceListByContractId(contractId);
+	}
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java
index 524c1fd..6eed404 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java
@@ -12,4 +12,6 @@
 
 
     List<Device> getDeviceSelectListByLedgerId(@Param("ledgerId") Long ledgerId);
+
+    List<Device> getDeviceListByContractId(@Param("contractId")Long contractId);
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java
index 1d80c42..ce94d2f 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ContractService.java
@@ -12,4 +12,5 @@
 
     Boolean removeChild(Long[] ids);
 
+	Contract getDetailById(Long id);
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java
index d2accf0..33e36a7 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteItemService.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.common.core.util.R;
 import com.by4cloud.platformx.device.dto.ReceivingNoteItemQueryDTO;
 import com.by4cloud.platformx.device.entity.ReceivingNoteItem;
 
 public interface ReceivingNoteItemService extends IService<ReceivingNoteItem> {
 
     IPage pageNew(Page page, ReceivingNoteItemQueryDTO queryDTO);
+
+    R getDeviceListByContractId(Long contractId);
 }
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 1a03df0..f858eda 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
@@ -1,5 +1,6 @@
 package com.by4cloud.platformx.device.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import com.by4cloud.platformx.device.entity.Contract;
@@ -14,6 +15,7 @@
 import lombok.RequiredArgsConstructor;
 
 import java.io.Serializable;
+import java.util.List;
 import java.util.Objects;
 /**
  * 鍚堝悓琛�
@@ -42,14 +44,17 @@
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateDeep(Contract contract) {
         baseMapper.updateById(contract);
-        for (ContractItem  contractItem : contract.getContractItemList()) {
-            if (Objects.isNull(contractItem.getId())) {
-                contractItem.setContractId(contract.getId());
-                contractItemMapper.insert(contractItem);
-            } else {
-                contractItemMapper.updateById(contractItem);
-            }
-        }
+		if (contract.getContractItemList() != null&&contract.getContractItemList().size()>0) {
+			QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("contract_id",contract.getId());
+			contractItemMapper.delete(queryWrapper);
+			for (ContractItem  contractItem : contract.getContractItemList()) {
+				contractItem.setId(null);
+				contractItem.setContractId(contract.getId());
+				contractItemMapper.insert( contractItem);
+			}
+		}
+
         return Boolean.TRUE;
     }
 
@@ -69,7 +74,12 @@
     }
 
 	@Override
-	public Contract getByIdDeep(Serializable id) {
-		return ContractService.super.getByIdDeep(id);
+	public Contract getDetailById(Long id) {
+		Contract contract = baseMapper.selectById(id);
+		QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("contract_id",id);
+		List<ContractItem> itemList = contractItemMapper.selectList(queryWrapper);
+		contract.setContractItemList(itemList);
+		return contract;
 	}
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java
index f3b24a9..71eaeca 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteItemServiceImpl.java
@@ -3,11 +3,18 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.common.core.util.R;
 import com.by4cloud.platformx.device.dto.ReceivingNoteItemQueryDTO;
+import com.by4cloud.platformx.device.entity.Device;
 import com.by4cloud.platformx.device.entity.ReceivingNoteItem;
+import com.by4cloud.platformx.device.mapper.DeviceMapper;
 import com.by4cloud.platformx.device.mapper.ReceivingNoteItemMapper;
 import com.by4cloud.platformx.device.service.ReceivingNoteItemService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+
 /**
  * 楠屾敹瀛愰」琛�
  *
@@ -15,9 +22,19 @@
  * @date 2025-03-13 11:04:28
  */
 @Service
+@AllArgsConstructor
 public class ReceivingNoteItemServiceImpl extends ServiceImpl<ReceivingNoteItemMapper, ReceivingNoteItem> implements ReceivingNoteItemService {
+
+	private final DeviceMapper deviceMapper;
+
 	@Override
 	public IPage pageNew(Page page, ReceivingNoteItemQueryDTO queryDTO) {
 		return baseMapper.pageNew(page,queryDTO);
 	}
+
+	@Override
+	public R getDeviceListByContractId(Long contractId) {
+		List<Device> deviceList = deviceMapper.getDeviceListByContractId(contractId);
+		return R.ok(deviceList);
+	}
 }
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 e4d4310..a8673d5 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
@@ -5,12 +5,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.by4cloud.platformx.device.dto.ReceivingNoteQueryDTO;
-import com.by4cloud.platformx.device.entity.DeviceInventory;
-import com.by4cloud.platformx.device.entity.ReceivingNote;
-import com.by4cloud.platformx.device.entity.ReceivingNoteItem;
-import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper;
-import com.by4cloud.platformx.device.mapper.ReceivingNoteItemMapper;
-import com.by4cloud.platformx.device.mapper.ReceivingNoteMapper;
+import com.by4cloud.platformx.device.entity.*;
+import com.by4cloud.platformx.device.mapper.*;
 import com.by4cloud.platformx.device.service.ReceivingNoteService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -30,6 +26,9 @@
 
 	private final ReceivingNoteItemMapper itemMapper;
 	private final DeviceInventoryMapper inventoryMapper;
+	private final InventoryFlowWaterMapper inventoryFlowWaterMapper;
+	private final DeviceMapper deviceMapper;
+	private final ContractMapper contractMapper;
 
 	@Override
 	public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) {
@@ -48,13 +47,37 @@
 				if (item.getSerialNos()!=null&&item.getSerialNos().size()>0){
 					for (String serialNo:item.getSerialNos()
 						 ) {
-						DeviceInventory inventory = new DeviceInventory();
-						inventory.setDeviceId(item.getDeviceId());
-						inventory.setDeviceNumber(item.getDeviceCode());
-						inventory.setName(item.getDeviceName());
-						inventory.setSerialNo(serialNo);
-						inventory.setSource(1);
-						inventoryMapper.insert(inventory);
+						Device device = deviceMapper.selectById(item.getDeviceId());
+						Contract contract = contractMapper.selectById(entity.getContractId());
+						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(1);
+								inventory.setInventoryStatus(2);
+							}
+							inventoryMapper.insert(inventory);
+							//璁惧搴撳瓨娴佹按鍚屾鏂板
+							InventoryFlowWater flowWater = new InventoryFlowWater();
+							flowWater.setDeviceId(item.getDeviceId());
+							flowWater.setSerialNo(serialNo);
+							flowWater.setInventoryId(inventory.getId());
+							flowWater.setClassId(device.getClassId());
+							if (contract!=null&&(contract.getType()==1||contract.getType()==2)){
+								flowWater.setOperateType(2);
+							}
+							if (contract!=null&&contract.getType()==0){
+								flowWater.setOperateType(1);
+							}
+							inventoryFlowWaterMapper.insert(flowWater);
+						}
 					}
 
 				}
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
index 2d6d259..635bf6f 100644
--- a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
@@ -49,4 +49,21 @@
 					dll.id = #{ledgerId}
 				  and	d.id = ci.device_id );
 	</select>
+    <select id="getDeviceListByContractId" resultType="com.by4cloud.platformx.device.entity.Device">
+		select
+			*
+		from
+			device d
+		where
+			d.del_flag = '0'
+		  and exists (
+				select
+					ci.device_id
+				from
+					contract_item ci
+				where
+					ci.del_flag = '0'
+				  and ci.contract_id = #{contractId}
+				  and ci.device_id = d.id )
+	</select>
 </mapper>

--
Gitblit v1.9.1