shiyunteng
2025-03-31 6d0410c352afeceed069f8eb5f5b6b074fdc4814
设备维保 设备租赁先
9个文件已修改
13个文件已添加
643 ■■■■■ 已修改文件
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/DeviceScrapMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java
@@ -45,6 +45,10 @@
    private Integer source;
    @Schema(description = "库存状态")
    @Column(columnDefinition="int comment '库存状态 1 可用 2 租赁中 3 冻结 4 报废'")
    @Column(columnDefinition="int comment '库存状态 1 可用 2 租赁中 3 维修中 4 报废'")
    private Integer inventoryStatus;
    @Schema(description = "关联台账明细ID")
    @Column(columnDefinition="bigint comment '关联台账明细ID'")
    private Long ledgerItemId;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java
@@ -93,7 +93,7 @@
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "出租日期")
    @Column(columnDefinition="datetime comment '到货验收日期'")
    @Column(columnDefinition="datetime comment '出租日期'")
    private Date deliveryDate;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java
New file
@@ -0,0 +1,53 @@
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 org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.util.Date;
@Data
@Entity
@TableName("device_repair")
@javax.persistence.Table(name = "device_repair")
@Table(appliesTo = "device_repair", comment = "设备维修")
public class DeviceRepair extends BaseModel<DeviceRepair> {
    @Schema(description = "设备ID")
    @Column(columnDefinition="long comment '设备ID'")
    private Long deviceId;
    @Schema(description = "设备库存ID")
    @Column(columnDefinition="long comment '设备库存ID'")
    private Long inventoryId;
    @Schema(description = "设备序列号")
    @Column(columnDefinition="VARCHAR(64) comment '序列号'")
    private String serialNo;
    @Schema(description = "设备编码")
    @Column(columnDefinition="VARCHAR(64) comment '设备编码'")
    private String deviceCode;
    @Schema(description = "设备维修状态")
    @Column(columnDefinition="int comment '设备维修状态 1 待审批 2 维修中 3 完成'")
    private Integer status;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "维修开始日期")
    @Column(columnDefinition = "datetime comment '维修开始日期'")
    private Date repairStartDate;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "维修结束日期")
    @Column(columnDefinition = "datetime comment '维修结束日期'")
    private Date repairEndDate;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java
New file
@@ -0,0 +1,48 @@
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 org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import java.util.Date;
@Data
@Entity
@TableName("device_scrap")
@javax.persistence.Table(name = "device_scrap")
@Table(appliesTo = "device_scrap", comment = "设备报废")
public class DeviceScrap extends BaseModel<DeviceScrap> {
    @Schema(description = "设备ID")
    @Column(columnDefinition="long comment '设备ID'")
    private Long deviceId;
    @Schema(description = "设备编码")
    @Column(columnDefinition="VARCHAR(64) comment '设备编码'")
    private String deviceCode;
    @Schema(description = "设备库存ID")
    @Column(columnDefinition="long comment '设备库存ID'")
    private Long inventoryId;
    @Schema(description = "设备序列号")
    @Column(columnDefinition="VARCHAR(64) comment '序列号'")
    private String serialNo;
    @Schema(description = "设备报废状态")
    @Column(columnDefinition="int comment '设备报废状态 1 待审批 2 完成'")
    private Integer status;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "报废日期")
    @Column(columnDefinition = "datetime comment '报废日期'")
    private Date scrapDate;
}
platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java
New file
@@ -0,0 +1,29 @@
package com.by4cloud.platformx.device.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
@Data
@Schema(description = "设备库存详情")
public class InventoryDetailVo {
    @Schema(description = "合同名称")
    private String contractName;
    @Schema(description = "租赁方")
    private String partyb;
    @Schema(description = "设备编号")
    private String deviceNumber;
    @Schema(description = "设备序列号")
    private String serialNo;
    @Schema(description = "出租日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date deliveryDate;
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java
@@ -212,4 +212,13 @@
    public List<Device> export(Device device,Long[] ids) {
        return deviceService.list(Wrappers.lambdaQuery(device).in(ArrayUtil.isNotEmpty(ids), Device::getId, ids));
    }
    /**
     * 所有设备下拉
     * @return
     */
    @GetMapping("/getDropdowmList" )
    public R getDeviceList() {
        return R.ok(deviceService.list());
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java
@@ -145,4 +145,24 @@
    public List<DeviceInventory> export(DeviceInventory deviceInventory,Long[] ids) {
        return deviceInventoryService.list(Wrappers.lambdaQuery(deviceInventory).in(ArrayUtil.isNotEmpty(ids), DeviceInventory::getId, ids));
    }
    /**
     * 设备下所有序列号下拉
     * @return
     */
    @GetMapping("/getDropdowmList/{deviceId}" )
    public R getDeviceList(@PathVariable("deviceId")Long deviceId) {
        QueryWrapper<DeviceInventory> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("device_id",deviceId);
        return R.ok(deviceInventoryService.list(queryWrapper));
    }
    /**
     * 租赁状态下的设备租赁详情
     * @return
     */
    @GetMapping("/getReleaseDetail/{id}" )
    public R getReleaseDetail(@PathVariable("id")Long id) {
        return deviceInventoryService.getReleaseDetail(id);
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java
New file
@@ -0,0 +1,145 @@
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.conditions.query.QueryWrapper;
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.DeviceInventory;
import com.by4cloud.platformx.device.entity.DeviceRepair;
import com.by4cloud.platformx.device.service.DeviceRepairService;
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-31 13:51:53
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/deviceRepair" )
@Tag(description = "deviceRepair" , name = "设备维修管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class DeviceRepairController {
    private final  DeviceRepairService deviceRepairService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param deviceRepair 设备维修
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_view')" )
    public R getDeviceRepairPage(@ParameterObject Page page, @ParameterObject DeviceRepair deviceRepair) {
        LambdaQueryWrapper<DeviceRepair> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(StrUtil.isNotBlank(deviceRepair.getSerialNo()),DeviceRepair::getSerialNo,deviceRepair.getSerialNo());
        wrapper.orderByDesc(DeviceRepair::getCreateTime);
        return R.ok(deviceRepairService.page(page, wrapper));
    }
    /**
     * 通过id查询设备维修
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(deviceRepairService.getById(id));
    }
    /**
     * 新增设备维修
     * @param deviceRepair 设备维修
     * @return R
     */
    @Operation(summary = "新增设备维修" , description = "新增设备维修" )
    @SysLog("新增设备维修" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_add')" )
    public R save(@RequestBody DeviceRepair deviceRepair) {
        deviceRepair.setStatus(1);
        return R.ok(deviceRepairService.save(deviceRepair));
    }
    /**
     * 修改设备维修
     * @param deviceRepair 设备维修
     * @return R
     */
    @Operation(summary = "修改设备维修" , description = "修改设备维修" )
    @SysLog("修改设备维修" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_edit')" )
    public R updateById(@RequestBody DeviceRepair deviceRepair) {
        return R.ok(deviceRepairService.updateById(deviceRepair));
    }
    /**
     * 通过id删除设备维修
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除设备维修" , description = "通过id删除设备维修" )
    @SysLog("通过id删除设备维修" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(deviceRepairService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param deviceRepair 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_export')" )
    public List<DeviceRepair> export(DeviceRepair deviceRepair,Long[] ids) {
        return deviceRepairService.list(Wrappers.lambdaQuery(deviceRepair).in(ArrayUtil.isNotEmpty(ids), DeviceRepair::getId, ids));
    }
    /**
     * 设备维修审批通过
     * @return
     */
    @GetMapping("/approved/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_approved')" )
    public R approved(@PathVariable("id")Long id) {
        return deviceRepairService.approved(id);
    }
    /**
     * 设备维修完成
     * @return
     */
    @GetMapping("/complete/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceRepair_complete')" )
    public R complete(@PathVariable("id")Long id) {
        return deviceRepairService.complete(id);
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java
New file
@@ -0,0 +1,132 @@
package com.by4cloud.platformx.device.controller;
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.DeviceRepair;
import com.by4cloud.platformx.device.entity.DeviceScrap;
import com.by4cloud.platformx.device.service.DeviceScrapService;
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-31 13:49:43
 */
@RestController
@RequiredArgsConstructor
@RequestMapping("/deviceScrap" )
@Tag(description = "deviceScrap" , name = "设备报废管理" )
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class DeviceScrapController {
    private final  DeviceScrapService deviceScrapService;
    /**
     * 分页查询
     * @param page 分页对象
     * @param deviceScrap 设备报废
     * @return
     */
    @Operation(summary = "分页查询" , description = "分页查询" )
    @GetMapping("/page" )
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_view')" )
    public R getDeviceScrapPage(@ParameterObject Page page, @ParameterObject DeviceScrap deviceScrap) {
        LambdaQueryWrapper<DeviceScrap> wrapper = Wrappers.lambdaQuery();
        wrapper.orderByDesc(DeviceScrap::getCreateTime);
        return R.ok(deviceScrapService.page(page, wrapper));
    }
    /**
     * 通过id查询设备报废
     * @param id id
     * @return R
     */
    @Operation(summary = "通过id查询" , description = "通过id查询" )
    @GetMapping("/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_view')" )
    public R getById(@PathVariable("id" ) Long id) {
        return R.ok(deviceScrapService.getById(id));
    }
    /**
     * 新增设备报废
     * @param deviceScrap 设备报废
     * @return R
     */
    @Operation(summary = "新增设备报废" , description = "新增设备报废" )
    @SysLog("新增设备报废" )
    @PostMapping
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_add')" )
    public R save(@RequestBody DeviceScrap deviceScrap) {
        deviceScrap.setStatus(1);
        return R.ok(deviceScrapService.save(deviceScrap));
    }
    /**
     * 修改设备报废
     * @param deviceScrap 设备报废
     * @return R
     */
    @Operation(summary = "修改设备报废" , description = "修改设备报废" )
    @SysLog("修改设备报废" )
    @PutMapping
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_edit')" )
    public R updateById(@RequestBody DeviceScrap deviceScrap) {
        return R.ok(deviceScrapService.updateById(deviceScrap));
    }
    /**
     * 通过id删除设备报废
     * @param ids id列表
     * @return R
     */
    @Operation(summary = "通过id删除设备报废" , description = "通过id删除设备报废" )
    @SysLog("通过id删除设备报废" )
    @DeleteMapping
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_del')" )
    public R removeById(@RequestBody Long[] ids) {
        return R.ok(deviceScrapService.removeBatchByIds(CollUtil.toList(ids)));
    }
    /**
     * 导出excel 表格
     * @param deviceScrap 查询条件
        * @param ids 导出指定ID
     * @return excel 文件流
     */
    @ResponseExcel
    @GetMapping("/export")
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_export')" )
    public List<DeviceScrap> export(DeviceScrap deviceScrap,Long[] ids) {
        return deviceScrapService.list(Wrappers.lambdaQuery(deviceScrap).in(ArrayUtil.isNotEmpty(ids), DeviceScrap::getId, ids));
    }
    /**
     * 设备维修审批通过
     * @return
     */
    @GetMapping("/approved/{id}" )
    @PreAuthorize("@pms.hasPermission('device_deviceScrap_approved')" )
    public R approved(@PathVariable("id")Long id) {
        return deviceScrapService.approved(id);
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java
@@ -2,10 +2,13 @@
import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper;
import com.by4cloud.platformx.device.entity.DeviceInventory;
import com.by4cloud.platformx.device.entity.vo.InventoryDetailVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface DeviceInventoryMapper extends PlatformxBaseMapper<DeviceInventory> {
    InventoryDetailVo getReleaseDetail(@Param("id") Long id);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.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.DeviceRepair;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceRepairMapper extends PlatformxBaseMapper<DeviceRepair> {
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.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.DeviceScrap;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface DeviceScrapMapper extends PlatformxBaseMapper<DeviceScrap> {
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java
@@ -1,9 +1,11 @@
package com.by4cloud.platformx.device.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceInventory;
import com.by4cloud.platformx.device.entity.InventoryFlowWater;
public interface DeviceInventoryService extends IService<DeviceInventory> {
    R getReleaseDetail(Long id);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java
New file
@@ -0,0 +1,12 @@
package com.by4cloud.platformx.device.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceRepair;
public interface DeviceRepairService extends IService<DeviceRepair> {
    R approved(Long id);
    R complete(Long id);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java
New file
@@ -0,0 +1,10 @@
package com.by4cloud.platformx.device.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceScrap;
public interface DeviceScrapService extends IService<DeviceScrap> {
    R approved(Long id);
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java
@@ -1,8 +1,10 @@
package com.by4cloud.platformx.device.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceInventory;
import com.by4cloud.platformx.device.entity.InventoryFlowWater;
import com.by4cloud.platformx.device.entity.vo.InventoryDetailVo;
import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper;
import com.by4cloud.platformx.device.mapper.InventoryFlowWaterMapper;
import com.by4cloud.platformx.device.service.DeviceInventoryService;
@@ -17,4 +19,9 @@
 */
@Service
public class DeviceInventoryServiceImpl extends ServiceImpl<DeviceInventoryMapper, DeviceInventory> implements DeviceInventoryService {
    @Override
    public R getReleaseDetail(Long id) {
        InventoryDetailVo detailVo = baseMapper.getReleaseDetail(id);
        return R.ok(detailVo);
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java
@@ -113,6 +113,7 @@
                        //出库操作 库存状态为  租赁中
                        inventory.setInventoryStatus(2);
                    }
                    inventory.setLedgerItemId(item.getId());
                    //库存调整
                    inventoryMapper.insert(inventory);
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java
New file
@@ -0,0 +1,45 @@
package com.by4cloud.platformx.device.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceInventory;
import com.by4cloud.platformx.device.entity.DeviceRepair;
import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper;
import com.by4cloud.platformx.device.mapper.DeviceRepairMapper;
import com.by4cloud.platformx.device.service.DeviceRepairService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
 * 设备维修
 *
 * @author syt
 * @date 2025-03-31 13:51:53
 */
@Service
@AllArgsConstructor
public class DeviceRepairServiceImpl extends ServiceImpl<DeviceRepairMapper, DeviceRepair> implements DeviceRepairService {
    private final DeviceInventoryMapper inventoryMapper;
    @Override
    public R approved(Long id) {
        DeviceRepair repair = baseMapper.selectById(id);
        repair.setStatus(2);
        baseMapper.updateById(repair);
        DeviceInventory inventory = inventoryMapper.selectById(repair.getInventoryId());
        inventory.setInventoryStatus(3);
        inventoryMapper.updateById(inventory);
        return R.ok();
    }
    @Override
    public R complete(Long id) {
        DeviceRepair repair = baseMapper.selectById(id);
        repair.setStatus(3);
        baseMapper.updateById(repair);
        DeviceInventory inventory = inventoryMapper.selectById(repair.getInventoryId());
        inventory.setInventoryStatus(1);
        inventoryMapper.updateById(inventory);
        return R.ok();
    }
}
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java
New file
@@ -0,0 +1,36 @@
package com.by4cloud.platformx.device.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.by4cloud.platformx.common.core.util.R;
import com.by4cloud.platformx.device.entity.DeviceInventory;
import com.by4cloud.platformx.device.entity.DeviceRepair;
import com.by4cloud.platformx.device.entity.DeviceScrap;
import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper;
import com.by4cloud.platformx.device.mapper.DeviceScrapMapper;
import com.by4cloud.platformx.device.service.DeviceScrapService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
 * 设备报废
 *
 * @author syt
 * @date 2025-03-31 13:49:43
 */
@Service
@AllArgsConstructor
public class DeviceScrapServiceImpl extends ServiceImpl<DeviceScrapMapper, DeviceScrap> implements DeviceScrapService {
    private final DeviceInventoryMapper inventoryMapper;
    @Override
    public R approved(Long id) {
        DeviceScrap scrap = baseMapper.selectById(id);
        scrap.setStatus(2);
        baseMapper.updateById(scrap);
        DeviceInventory inventory = inventoryMapper.selectById(scrap.getInventoryId());
        inventory.setInventoryStatus(4);
        inventoryMapper.updateById(inventory);
        return R.ok();
    }
}
platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.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.DeviceRepairMapper">
  <resultMap id="deviceRepairMap" type="com.by4cloud.platformx.device.entity.DeviceScrap">
        <id property="id" column="id"/>
        <result property="compId" column="comp_id"/>
        <result property="deviceCoder" column="device_coder"/>
        <result property="deviceId" column="device_id"/>
        <result property="inventoryId" column="inventory_id"/>
        <result property="repairEndDate" column="repair_end_date"/>
        <result property="repairStartDate" column="repair_start_date"/>
        <result property="serialNo" column="serial_no"/>
        <result property="status" column="status"/>
        <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/DeviceScrapMapper.xml
New file
@@ -0,0 +1,21 @@
<?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.DeviceScrapMapper">
  <resultMap id="deviceScrapMap" type="com.by4cloud.platformx.device.entity.DeviceScrap">
        <id property="id" column="id"/>
        <result property="compId" column="comp_id"/>
        <result property="deviceCoder" column="device_coder"/>
        <result property="deviceId" column="device_id"/>
        <result property="inventoryId" column="inventory_id"/>
        <result property="scrapDate" column="scrap_date"/>
        <result property="serialNo" column="serial_no"/>
        <result property="status" column="status"/>
        <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/deviceInventoryMapper.xml
@@ -18,4 +18,22 @@
        <result property="updateTime" column="update_time"/>
        <result property="delFlag" column="del_flag"/>
  </resultMap>
    <select id="getReleaseDetail" resultType="com.by4cloud.platformx.device.entity.vo.InventoryDetailVo">
        select
            c.name contractName,
            c.partyb,
            di.device_number,
            di.serial_no,
            dll.delivery_date
        from
            device_inventory di
                join device_leasing_ledger_item dlli on
                di.ledger_item_id = dlli.id
                join device_leasing_ledger dll on
                dll.id = dlli.ledger_id
                join contract c on
                c.`number`  = dll.contract_code
        where
            di.id =#{id}
    </select>
</mapper>