shiyunteng
2025-03-27 2f6bd04715eba821713b9e1492999b7e5be7fcdb
租赁台账
13个文件已修改
12个文件已添加
719 ■■■■■ 已修改文件
platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNote.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/ReceivingNoteItem.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ContractItemController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/ReceivingNoteController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/ReceivingNoteService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ReceivingNoteServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceTechnicalAgreementMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/ReceivingNoteItemMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/ReceivingNoteItemQueryDTO.java
@@ -9,4 +9,6 @@
    private String releaseCode;
    private Long noteId;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java
New file
@@ -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;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedgerItem.java
New file
@@ -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;
}
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;
}
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;
}
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));
    }
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 = "分页查询" )
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerController.java
New file
@@ -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));
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceLeasingLedgerItemController.java
New file
@@ -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));
    }
}
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));
    }
    /**
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerItemMapper.java
New file
@@ -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> {
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceLeasingLedgerMapper.java
New file
@@ -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> {
}
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);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerItemService.java
New file
@@ -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> {
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceLeasingLedgerService.java
New file
@@ -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);
}
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);
}
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);
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerItemServiceImpl.java
New file
@@ -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 {
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
New file
@@ -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;
    }
}
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;
    }
}
platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerItemMapper.xml
New file
@@ -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>
platformx-device-biz/src/main/resources/mapper/DeviceLeasingLedgerMapper.xml
New file
@@ -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>
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>
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
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>