From 2f6bd04715eba821713b9e1492999b7e5be7fcdb Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期四, 27 三月 2025 15:32:33 +0800
Subject: [PATCH] 租赁台账

---
 platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml                                      |   22 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java                   |    4 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java              |    6 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java               |    2 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java                   |    2 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java                            |    6 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java                |   11 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java                  |   74 ++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java              |   14 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java          |    8 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java                      |   81 ++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java            |   11 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java        |  142 +++++++++++
 platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml                                                       |   25 ++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java           |   68 +++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java    |  121 ++++++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java                             |    4 
 platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml                                          |   23 +
 platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml                                     |    2 
 platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml                                            |    3 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java                    |    6 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java |   16 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java                |    7 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java                        |   22 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java     |   39 +++
 25 files changed, 711 insertions(+), 8 deletions(-)

diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java
index 0bf8c61..b9b2522 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java
@@ -9,4 +9,6 @@
 
 	private String releaseCode;
 
+	private Long noteId;
+
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java
new file mode 100644
index 0000000..b205abf
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java
@@ -0,0 +1,81 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.criteria.CriteriaBuilder;
+import java.util.Date;
+
+@Data
+@Entity
+@TableName("device_leasing_ledger")
+@javax.persistence.Table(name = "device_leasing_ledger")
+@Table(appliesTo = "device_leasing_ledger", comment = "璁惧绉熻祦鍙拌处")
+public class DeviceLeasingLedger extends BaseModel<DeviceLeasingLedger> {
+
+	/**
+	 * 绉熻祦鍙拌处缂栧彿
+	 */
+	@Schema(description = "绉熻祦鍙拌处缂栧彿")
+	@Column(columnDefinition="VARCHAR(32) comment '绉熻祦鍙拌处缂栧彿'")
+	private String ledgerCode;
+
+	/**
+	 * 绉熻祦鍚堝悓鍙�
+	 */
+	@Schema(description = "绉熻祦鍚堝悓鍙�")
+	@Column(columnDefinition="VARCHAR(32) comment '绉熻祦鍚堝悓鍙�'")
+	private String contractCode;
+
+	/**
+	 * 璧风鏃ユ湡
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "璧风鏃ユ湡")
+	@Column(columnDefinition="datetime comment '璧风鏃ユ湡'")
+	private Date leaseStartDate;
+
+	/**
+	 * 鍋滅鏃ユ湡
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "鍋滅鏃ユ湡")
+	@Column(columnDefinition="datetime comment '鍋滅鏃ユ湡'")
+	private Date leaseStopDate;
+
+	/**
+	 * 鍑哄巶楠屾敹鏃ユ湡
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "鍑哄巶楠屾敹鏃ユ湡")
+	@Column(columnDefinition="datetime comment '鍑哄巶楠屾敹鏃ユ湡'")
+	private Date factoryAcceptanceDate;
+
+	/**
+	 * 鍒拌揣楠屾敹鏃ユ湡
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "鍒拌揣楠屾敹鏃ユ湡")
+	@Column(columnDefinition="datetime comment '鍒拌揣楠屾敹鏃ユ湡'")
+	private Date deliveryAcceptanceDate;
+
+	/**
+	 * 绉熻祦绫诲瀷
+	 */
+	@Schema(description = "绉熻祦绫诲瀷")
+	@Column(columnDefinition="INTEGER comment '绉熻祦绫诲瀷(1:鍗曚竴绉熻祦锛�2:澶氱璧�;3:瀵瑰绉�)'")
+	private Integer leaseType;
+
+	/**
+	 * 鎵跨鍏徃
+	 */
+	@Schema(description = "鎵跨鍏徃")
+	@Column(columnDefinition="bigint comment '鎵跨鍏徃'")
+	private Long lesseeContractId;
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java
new file mode 100644
index 0000000..e0b9404
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java
@@ -0,0 +1,74 @@
+package com.by4cloud.platformx.device.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.by4cloud.platformx.common.data.mybatis.BaseModel;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.annotations.Table;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+
+@Data
+@Entity
+@TableName("device_leasing_ledger_item")
+@javax.persistence.Table(name = "device_leasing_ledger_item")
+@Table(appliesTo = "device_leasing_ledger_item", comment = "璁惧绉熻祦鍙拌处鏄庣粏")
+public class DeviceLeasingLedgerItem extends BaseModel<DeviceLeasingLedger> {
+
+	/**
+	 * 璁惧ID
+	 */
+	@Schema(description="鍙拌处ID")
+	@Column(columnDefinition="bigint comment '鍙拌处ID'")
+	private Long ledgerId;
+
+	/**
+	 * 璁惧ID
+	 */
+	@Schema(description="璁惧ID")
+	@Column(columnDefinition="bigint comment '璁惧ID'")
+	private Long deviceId;
+
+	/**
+	 * 璁惧缂栫爜
+	 */
+	@Schema(description="璁惧缂栫爜")
+	@Column(columnDefinition="VARCHAR(16) comment '璁惧缂栫爜'")
+	private String deviceCode;
+
+	/**
+	 * 璁惧鍚嶇О
+	 */
+	@Schema(description="璁惧鍚嶇О")
+	@Column(columnDefinition="VARCHAR(256) comment '璁惧鍚嶇О'")
+	private String deviceName;
+
+	/**
+	 * 瑙勬牸鍨嬪彿
+	 */
+	@Schema(description="瑙勬牸鍨嬪彿")
+	@Column(columnDefinition="VARCHAR(256) comment '瑙勬牸鍨嬪彿'")
+	private String deviceModels;
+
+	/**
+	 * 鍏抽敭鍙傛暟
+	 */
+	@Schema(description="鍏抽敭鍙傛暟")
+	@Column(columnDefinition="VARCHAR(256) comment '鍏抽敭鍙傛暟'")
+	private String keyParameter;
+
+	/**
+	 * 璁¢噺鍗曚綅
+	 */
+	@Schema(description="璁¢噺鍗曚綅")
+	@Column(columnDefinition="VARCHAR(32) comment '璁¢噺鍗曚綅'")
+	private String meteringUnit;
+
+	/**
+	 * 鏁伴噺
+	 */
+	@Schema(description = "鏁伴噺")
+	@Column(columnDefinition="INTEGER comment '鏁伴噺'")
+	private Integer num;
+}
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 5670ea3..2f70181 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
@@ -11,7 +11,9 @@
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.Transient;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author kdq
@@ -127,4 +129,8 @@
 	@Schema(description = "浣跨敤鍏徃")
 	@Column(columnDefinition="long comment '浣跨敤鍏徃'")
 	private Long deptId;
+
+	@Transient
+	@TableField(exist = false)
+	private List<ReceivingNoteItem> noteItemList;
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java
index bb91a8e..5ab650a 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java
@@ -11,7 +11,9 @@
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.Transient;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author kdq
@@ -29,17 +31,17 @@
 	/**
 	 * 楠屾敹涓昏〃Id
 	 */
-	@Column(columnDefinition="long comment '楠屾敹涓昏〃Id'")
+	@Column(columnDefinition="bigint comment '楠屾敹涓昏〃Id'")
 	private Long noteId;
 
 	/**
 	 * 鍚堝悓Id
 	 */
-	@Column(columnDefinition="long comment '鍚堝悓瀛愰」Id'")
+	@Column(columnDefinition="bigint comment '鍚堝悓瀛愰」Id'")
 	private Long contractItemId;
 
 	@Schema(description = "鏁伴噺")
-	@Column(columnDefinition="long comment '鏁伴噺'")
+	@Column(columnDefinition="bigint comment '鏁伴噺'")
 	private Long num;
 
 	/**
@@ -48,6 +50,13 @@
 	@TableField("`output`")
 	@Column(columnDefinition="double comment '楠屾敹閲戦'")
 	private Double output;
+
+	/**
+	 * 璁惧ID
+	 */
+	@Schema(description="璁惧ID")
+	@Column(columnDefinition="bigint comment '璁惧ID'")
+	private Long deviceId;
 
 	/**
 	 * 璁惧缂栫爜
@@ -85,4 +94,11 @@
 	@Column(columnDefinition="VARCHAR(32) comment '璁¢噺鍗曚綅'")
 	private String meteringUnit;
 
+	/**
+	 * 鍏ュ簱鏃舵墍闇�搴忓垪鍙�
+	 */
+	@Schema(description = "璁惧搴忓垪鍙�")
+	@Transient
+	@TableField(exist = false)
+	private List<String> serialNos;
 }
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 1d8bf4e..0b7ce8f 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
@@ -10,8 +10,10 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.by4cloud.platformx.common.core.util.R;
 import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.constant.MaxSizeContant;
 import com.by4cloud.platformx.device.entity.Contract;
 import com.by4cloud.platformx.device.service.ContractService;
+import com.by4cloud.platformx.device.service.JcMaxSizeService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
 import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -39,6 +41,7 @@
 public class ContractController {
 
     private final ContractService contractService;
+	private final JcMaxSizeService maxSizeService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -80,6 +83,7 @@
     @PostMapping
     @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));
     }
 
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java
index 583add0..ce4aa3b 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java
@@ -43,7 +43,7 @@
     /**
      * 鍒嗛〉鏌ヨ
      * @param page 鍒嗛〉瀵硅薄
-     * @param  鍚堝悓鏄庣粏琛�
+     * @param
      * @return
      */
     @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java
new file mode 100644
index 0000000..6c6d1ab
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java
@@ -0,0 +1,142 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.constant.MaxSizeContant;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedger;
+import com.by4cloud.platformx.device.service.DeviceLeasingLedgerService;
+import com.by4cloud.platformx.device.service.JcMaxSizeService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 璁惧绉熻祦鍙拌处
+ *
+ * @author syt
+ * @date 2025-03-27 09:30:29
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/deviceLeasingLedger" )
+@Tag(description = "deviceLeasingLedger" , name = "璁惧绉熻祦鍙拌处绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class DeviceLeasingLedgerController {
+
+    private final  DeviceLeasingLedgerService deviceLeasingLedgerService;
+	private final JcMaxSizeService maxSizeService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param deviceLeasingLedger 璁惧绉熻祦鍙拌处
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_view')" )
+    public R getDeviceLeasingLedgerPage(@ParameterObject Page page, @ParameterObject DeviceLeasingLedger deviceLeasingLedger) {
+        LambdaQueryWrapper<DeviceLeasingLedger> wrapper = Wrappers.lambdaQuery();
+		wrapper.eq(StrUtil.isNotBlank(deviceLeasingLedger.getContractCode()),DeviceLeasingLedger::getContractCode,deviceLeasingLedger.getContractCode());
+		wrapper.eq(StrUtil.isNotBlank(deviceLeasingLedger.getLedgerCode()),DeviceLeasingLedger::getLedgerCode,deviceLeasingLedger.getLedgerCode());
+        return R.ok(deviceLeasingLedgerService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ璁惧绉熻祦鍙拌处
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(deviceLeasingLedgerService.getById(id));
+    }
+
+    /**
+     * 鏂板璁惧绉熻祦鍙拌处
+     * @param deviceLeasingLedger 璁惧绉熻祦鍙拌处
+     * @return R
+     */
+    @Operation(summary = "鏂板璁惧绉熻祦鍙拌处" , description = "鏂板璁惧绉熻祦鍙拌处" )
+    @SysLog("鏂板璁惧绉熻祦鍙拌处" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_add')" )
+    public R save(@RequestBody DeviceLeasingLedger deviceLeasingLedger) {
+		deviceLeasingLedger.setLedgerCode(maxSizeService.nextNo(MaxSizeContant.LEDGER_CODE));
+        return R.ok(deviceLeasingLedgerService.save(deviceLeasingLedger));
+    }
+
+    /**
+     * 淇敼璁惧绉熻祦鍙拌处
+     * @param deviceLeasingLedger 璁惧绉熻祦鍙拌处
+     * @return R
+     */
+    @Operation(summary = "淇敼璁惧绉熻祦鍙拌处" , description = "淇敼璁惧绉熻祦鍙拌处" )
+    @SysLog("淇敼璁惧绉熻祦鍙拌处" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_edit')" )
+    public R updateById(@RequestBody DeviceLeasingLedger deviceLeasingLedger) {
+        return R.ok(deviceLeasingLedgerService.updateById(deviceLeasingLedger));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处" , description = "閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处" )
+    @SysLog("閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(deviceLeasingLedgerService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param deviceLeasingLedger 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedger_export')" )
+    public List<DeviceLeasingLedger> export(DeviceLeasingLedger deviceLeasingLedger,Long[] ids) {
+        return deviceLeasingLedgerService.list(Wrappers.lambdaQuery(deviceLeasingLedger).in(ArrayUtil.isNotEmpty(ids), DeviceLeasingLedger::getId, ids));
+    }
+
+	/**
+	 * 鍙拌处涓嬫媺
+	 */
+	@GetMapping("/getSelectList")
+	public R getSelectList() {
+		return R.ok(deviceLeasingLedgerService.getSelectList());
+	}
+
+	/**
+	 * 鏍规嵁鍙拌处鑾峰彇璁惧涓嬫媺
+	 */
+	@GetMapping("/getDeviceSelectList/{ledgerId}")
+	public R getDeviceSelectList(@PathVariable("ledgerId")Long ledgerId) {
+		return R.ok(deviceLeasingLedgerService.getDeviceSelectList(ledgerId));
+	}
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java
new file mode 100644
index 0000000..e19a466
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java
@@ -0,0 +1,121 @@
+package com.by4cloud.platformx.device.controller;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.by4cloud.platformx.common.core.util.R;
+import com.by4cloud.platformx.common.log.annotation.SysLog;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedgerItem;
+import com.by4cloud.platformx.device.service.DeviceLeasingLedgerItemService;
+import org.springframework.security.access.prepost.PreAuthorize;
+import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
+import io.swagger.v3.oas.annotations.security.SecurityRequirement;
+import org.springdoc.api.annotations.ParameterObject;
+import org.springframework.http.HttpHeaders;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 璁惧绉熻祦鍙拌处鏄庣粏
+ *
+ * @author syt
+ * @date 2025-03-27 09:33:07
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/deviceLeasingLedgerItem" )
+@Tag(description = "deviceLeasingLedgerItem" , name = "璁惧绉熻祦鍙拌处鏄庣粏绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class DeviceLeasingLedgerItemController {
+
+    private final  DeviceLeasingLedgerItemService deviceLeasingLedgerItemService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param deviceLeasingLedgerItem 璁惧绉熻祦鍙拌处鏄庣粏
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_view')" )
+    public R getDeviceLeasingLedgerItemPage(@ParameterObject Page page, @ParameterObject DeviceLeasingLedgerItem deviceLeasingLedgerItem) {
+        LambdaQueryWrapper<DeviceLeasingLedgerItem> wrapper = Wrappers.lambdaQuery();
+		wrapper.eq(StrUtil.isNotBlank(deviceLeasingLedgerItem.getDeviceCode()),DeviceLeasingLedgerItem::getDeviceCode,deviceLeasingLedgerItem.getDeviceCode());
+        return R.ok(deviceLeasingLedgerItemService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ璁惧绉熻祦鍙拌处鏄庣粏
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(deviceLeasingLedgerItemService.getById(id));
+    }
+
+    /**
+     * 鏂板璁惧绉熻祦鍙拌处鏄庣粏
+     * @param deviceLeasingLedgerItem 璁惧绉熻祦鍙拌处鏄庣粏
+     * @return R
+     */
+    @Operation(summary = "鏂板璁惧绉熻祦鍙拌处鏄庣粏" , description = "鏂板璁惧绉熻祦鍙拌处鏄庣粏" )
+    @SysLog("鏂板璁惧绉熻祦鍙拌处鏄庣粏" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_add')" )
+    public R save(@RequestBody DeviceLeasingLedgerItem deviceLeasingLedgerItem) {
+        return R.ok(deviceLeasingLedgerItemService.save(deviceLeasingLedgerItem));
+    }
+
+    /**
+     * 淇敼璁惧绉熻祦鍙拌处鏄庣粏
+     * @param deviceLeasingLedgerItem 璁惧绉熻祦鍙拌处鏄庣粏
+     * @return R
+     */
+    @Operation(summary = "淇敼璁惧绉熻祦鍙拌处鏄庣粏" , description = "淇敼璁惧绉熻祦鍙拌处鏄庣粏" )
+    @SysLog("淇敼璁惧绉熻祦鍙拌处鏄庣粏" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_edit')" )
+    public R updateById(@RequestBody DeviceLeasingLedgerItem deviceLeasingLedgerItem) {
+        return R.ok(deviceLeasingLedgerItemService.updateById(deviceLeasingLedgerItem));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处鏄庣粏
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处鏄庣粏" , description = "閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处鏄庣粏" )
+    @SysLog("閫氳繃id鍒犻櫎璁惧绉熻祦鍙拌处鏄庣粏" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(deviceLeasingLedgerItemService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param deviceLeasingLedgerItem 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_deviceLeasingLedgerItem_export')" )
+    public List<DeviceLeasingLedgerItem> export(DeviceLeasingLedgerItem deviceLeasingLedgerItem,Long[] ids) {
+        return deviceLeasingLedgerItemService.list(Wrappers.lambdaQuery(deviceLeasingLedgerItem).in(ArrayUtil.isNotEmpty(ids), DeviceLeasingLedgerItem::getId, ids));
+    }
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java
index c8a7142..120840d 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java
@@ -60,7 +60,7 @@
     @GetMapping("/{id}" )
     @PreAuthorize("@pms.hasPermission('device_receivingNote_view')" )
     public R getById(@PathVariable("id" ) Long id) {
-        return R.ok(receivingNoteService.getById(id));
+        return R.ok(receivingNoteService.getByIdDeep(id));
     }
 
     /**
@@ -73,7 +73,7 @@
     @PostMapping
     @PreAuthorize("@pms.hasPermission('device_receivingNote_add')" )
     public R save(@RequestBody ReceivingNote receivingNote) {
-        return R.ok(receivingNoteService.save(receivingNote));
+        return R.ok(receivingNoteService.saveDeep(receivingNote));
     }
 
     /**
@@ -86,7 +86,7 @@
     @PutMapping
     @PreAuthorize("@pms.hasPermission('device_receivingNote_edit')" )
     public R updateById(@RequestBody ReceivingNote receivingNote) {
-        return R.ok(receivingNoteService.updateById(receivingNote));
+        return R.ok(receivingNoteService.updateByIdDeep(receivingNote));
     }
 
     /**
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java
new file mode 100644
index 0000000..5c623c1
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedgerItem;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DeviceLeasingLedgerItemMapper extends PlatformxBaseMapper<DeviceLeasingLedgerItem> {
+
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java
new file mode 100644
index 0000000..1caa0c1
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java
@@ -0,0 +1,11 @@
+package com.by4cloud.platformx.device.mapper;
+
+import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedger;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DeviceLeasingLedgerMapper extends PlatformxBaseMapper<DeviceLeasingLedger> {
+
+
+}
\ No newline at end of file
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 06b4439..524c1fd 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
@@ -3,9 +3,13 @@
 import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
 import com.by4cloud.platformx.device.entity.Device;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 @Mapper
 public interface DeviceMapper extends PlatformxBaseMapper<Device> {
 
 
+    List<Device> getDeviceSelectListByLedgerId(@Param("ledgerId") Long ledgerId);
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java
new file mode 100644
index 0000000..41ff5c5
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java
@@ -0,0 +1,8 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedgerItem;
+
+public interface DeviceLeasingLedgerItemService extends IService<DeviceLeasingLedgerItem> {
+
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java
new file mode 100644
index 0000000..31904ec
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java
@@ -0,0 +1,14 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.entity.Device;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedger;
+
+import java.util.List;
+
+public interface DeviceLeasingLedgerService extends IService<DeviceLeasingLedger> {
+
+    List<DeviceLeasingLedger> getSelectList();
+
+	List<Device> getDeviceSelectList(Long ledgerId);
+}
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java
index 6ae7af8..1e00631 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java
@@ -9,4 +9,10 @@
 public interface ReceivingNoteService extends IService<ReceivingNote> {
 
     IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO);
+
+	boolean saveDeep(ReceivingNote receivingNote);
+
+	boolean updateByIdDeep(ReceivingNote receivingNote);
+
+	ReceivingNote getByIdDeep(Long id);
 }
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 312841b..1a03df0 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
@@ -12,6 +12,8 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.springframework.transaction.annotation.Transactional;
 import lombok.RequiredArgsConstructor;
+
+import java.io.Serializable;
 import java.util.Objects;
 /**
  * 鍚堝悓琛�
@@ -65,4 +67,9 @@
         contractItemMapper.deleteBatchIds(CollUtil.toList(ids));
         return Boolean.TRUE;
     }
+
+	@Override
+	public Contract getByIdDeep(Serializable id) {
+		return ContractService.super.getByIdDeep(id);
+	}
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java
new file mode 100644
index 0000000..a0a7855
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java
@@ -0,0 +1,16 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedgerItem;
+import com.by4cloud.platformx.device.mapper.DeviceLeasingLedgerItemMapper;
+import com.by4cloud.platformx.device.service.DeviceLeasingLedgerItemService;
+import org.springframework.stereotype.Service;
+/**
+ * 璁惧绉熻祦鍙拌处鏄庣粏
+ *
+ * @author syt
+ * @date 2025-03-27 09:33:07
+ */
+@Service
+public class DeviceLeasingLedgerItemServiceImpl extends ServiceImpl<DeviceLeasingLedgerItemMapper, DeviceLeasingLedgerItem> implements DeviceLeasingLedgerItemService {
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..44c7d67
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
@@ -0,0 +1,39 @@
+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.Device;
+import com.by4cloud.platformx.device.entity.DeviceLeasingLedger;
+import com.by4cloud.platformx.device.mapper.DeviceLeasingLedgerMapper;
+import com.by4cloud.platformx.device.mapper.DeviceMapper;
+import com.by4cloud.platformx.device.service.DeviceLeasingLedgerService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 璁惧绉熻祦鍙拌处
+ *
+ * @author syt
+ * @date 2025-03-27 09:30:29
+ */
+@Service
+@AllArgsConstructor
+public class DeviceLeasingLedgerServiceImpl extends ServiceImpl<DeviceLeasingLedgerMapper, DeviceLeasingLedger> implements DeviceLeasingLedgerService {
+
+	private final DeviceMapper deviceMapper;
+
+	@Override
+	public List<DeviceLeasingLedger> getSelectList() {
+		QueryWrapper<DeviceLeasingLedger> queryWrapper = new QueryWrapper<>();
+		List<DeviceLeasingLedger> list = baseMapper.selectList(queryWrapper);
+		return list;
+	}
+
+	@Override
+	public List<Device> getDeviceSelectList(Long ledgerId) {
+		List<Device> list = deviceMapper.getDeviceSelectListByLedgerId(ledgerId);
+		return list;
+	}
+}
\ No newline at end of file
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 4f159a1..e4d4310 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
@@ -1,13 +1,23 @@
 package com.by4cloud.platformx.device.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.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.service.ReceivingNoteService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import java.io.Serializable;
+import java.util.List;
+
 /**
  * 楠屾敹琛�
  *
@@ -15,9 +25,67 @@
  * @date 2025-03-13 11:03:52
  */
 @Service
+@AllArgsConstructor
 public class ReceivingNoteServiceImpl extends ServiceImpl<ReceivingNoteMapper, ReceivingNote> implements ReceivingNoteService {
+
+	private final ReceivingNoteItemMapper itemMapper;
+	private final DeviceInventoryMapper inventoryMapper;
+
 	@Override
 	public IPage pageNew(Page page, ReceivingNoteQueryDTO queryDTO) {
 		return baseMapper.pageNew(page,queryDTO);
 	}
+
+	@Override
+	public boolean saveDeep(ReceivingNote entity) {
+		baseMapper.insert(entity);
+		if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){
+			for (ReceivingNoteItem item:entity.getNoteItemList()
+				 ) {
+				item.setNoteId(entity.getId());
+				itemMapper.insert(item);
+				//璁惧搴撳瓨鍚屾鏂板
+				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);
+					}
+
+				}
+			}
+		}
+		return Boolean.TRUE;
+	}
+
+	@Override
+	public boolean updateByIdDeep(ReceivingNote entity) {
+		baseMapper.updateById(entity);
+		QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("note_id",entity.getId());
+		itemMapper.delete(queryWrapper);
+		if (entity.getNoteItemList()!=null&&entity.getNoteItemList().size()>0){
+			for (ReceivingNoteItem item:entity.getNoteItemList()
+			) {
+				item.setNoteId(entity.getId());
+				itemMapper.insert(item);
+			}
+		}
+		return Boolean.TRUE;
+	}
+
+	@Override
+	public ReceivingNote getByIdDeep(Long id) {
+		ReceivingNote note = baseMapper.selectById(id);
+		QueryWrapper<ReceivingNoteItem> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("note_id",note.getId());
+		List<ReceivingNoteItem> itemList = itemMapper.selectList(queryWrapper);
+		note.setNoteItemList(itemList);
+		return note;
+	}
 }
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml
new file mode 100644
index 0000000..d75dbf0
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.by4cloud.platformx.device.mapper.DeviceLeasingLedgerItemMapper">
+
+  <resultMap id="deviceLeasingLedgerItemMap" type="com.by4cloud.platformx.device.entity.DeviceLeasingLedgerItem">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="deviceCode" column="device_code"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="deviceModels" column="device_models"/>
+        <result property="deviceName" column="device_name"/>
+        <result property="keyParameter" column="key_parameter"/>
+        <result property="meteringUnit" column="metering_unit"/>
+        <result property="num" column="num"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml
new file mode 100644
index 0000000..95b7826
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.by4cloud.platformx.device.mapper.DeviceLeasingLedgerMapper">
+
+  <resultMap id="deviceLeasingLedgerMap" type="com.by4cloud.platformx.device.entity.DeviceLeasingLedger">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="contractCode" column="contract_code"/>
+        <result property="deliveryAcceptanceDate" column="delivery_acceptance_date"/>
+        <result property="factoryAcceptanceDate" column="factory_acceptance_date"/>
+        <result property="leaseStartDate" column="lease_start_date"/>
+        <result property="leaseStopDate" column="lease_stop_date"/>
+        <result property="leaseType" column="lease_type"/>
+        <result property="ledgerCode" column="ledger_code"/>
+        <result property="lesseeContractId" column="lessee_contract_id"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+  </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
index ec1d5c8..2d6d259 100644
--- a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml
@@ -24,4 +24,29 @@
         <result property="updateTime" column="update_time"/>
         <result property="delFlag" column="del_flag"/>
   </resultMap>
+    <select id="getDeviceSelectListByLedgerId" resultType="com.by4cloud.platformx.device.entity.Device">
+		select
+			id,
+			d.name,
+			d.specification,
+			d.number
+		from
+			device d
+		where
+			d.del_flag = '0'
+		  and exists (
+				select
+					ci.device_id
+				from
+					contract_item ci
+						join contract c on
+						c.`id` = ci.contract_id
+						join device_leasing_ledger dll on
+						dll.contract_code = c.`number`
+						join device_leasing_ledger_item dlli on
+						dll.id = dlli.ledger_id
+				where
+					dll.id = #{ledgerId}
+				  and	d.id = ci.device_id );
+	</select>
 </mapper>
diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
index c7df52c..f939b40 100644
--- a/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
+++ b/platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml
@@ -35,7 +35,7 @@
 			dta.partyc ,
 			dta.sign_date ,
 			d.name deviceName,
-			d.`number` deviceCode
+			dta.device_code
 		from
 			device_technical_agreement dta
 		join contract c on dta.contract_id = c.id
diff --git a/platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml b/platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml
index 6ebc75f..4ff3176 100644
--- a/platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml
+++ b/platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml
@@ -35,5 +35,8 @@
 		<if test="queryDTO.releaseCode != null and queryDTO.releaseCode !=''">
 			and rn.release_code like CONCAT('%', #{queryDTO.releaseCode}, '%')
 		</if>
+		<if test="queryDTO.noteId != null and queryDTO.noteId !=''">
+			and rni.note_id = #{queryDTO.noteId}
+		</if>
 	</select>
 </mapper>

--
Gitblit v1.9.1