From 6d0410c352afeceed069f8eb5f5b6b074fdc4814 Mon Sep 17 00:00:00 2001 From: shiyunteng <shiyunteng@example.com> Date: 星期一, 31 三月 2025 16:44:40 +0800 Subject: [PATCH] 设备维保 设备租赁先 --- platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml | 18 + platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java | 48 ++++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceLeasingLedger.java | 2 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java | 9 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java | 7 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java | 29 ++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java | 132 ++++++++++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java | 10 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.java | 11 + platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java | 53 ++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java | 20 + platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.java | 11 + platformx-device-biz/src/main/resources/mapper/DeviceScrapMapper.xml | 21 + platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java | 3 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java | 12 + platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java | 45 ++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java | 36 +++ platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml | 22 ++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java | 6 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java | 145 +++++++++++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java | 2 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceLeasingLedgerServiceImpl.java | 1 22 files changed, 641 insertions(+), 2 deletions(-) diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java index e862309..6ded1eb 100644 --- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java @@ -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; } 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 index e2ba23c..f676182 100644 --- 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 @@ -93,7 +93,7 @@ */ @JsonFormat(pattern = "yyyy-MM-dd") @Schema(description = "鍑虹鏃ユ湡") - @Column(columnDefinition="datetime comment '鍒拌揣楠屾敹鏃ユ湡'") + @Column(columnDefinition="datetime comment '鍑虹鏃ユ湡'") private Date deliveryDate; } diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java new file mode 100644 index 0000000..de9b0fb --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceRepair.java @@ -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; +} diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java new file mode 100644 index 0000000..dda46cb --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceScrap.java @@ -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; + +} diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java new file mode 100644 index 0000000..371f3f4 --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java @@ -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; + +} diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java index 80e083d..3f4dadc 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java +++ b/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()); + } } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java index 3268151..9c25d1a 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java +++ b/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); + } } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java new file mode 100644 index 0000000..f570bff --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceRepairController.java @@ -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); + } +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java new file mode 100644 index 0000000..7ac2bfd --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceScrapController.java @@ -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); + } +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java index c059f90..0db9e94 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceInventoryMapper.java +++ b/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); } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.java new file mode 100644 index 0000000..d93cca8 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceRepairMapper.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.DeviceRepair; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DeviceRepairMapper extends PlatformxBaseMapper<DeviceRepair> { + + +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.java new file mode 100644 index 0000000..ebfb2e1 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DeviceScrapMapper.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.DeviceScrap; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DeviceScrapMapper extends PlatformxBaseMapper<DeviceScrap> { + + +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java index 7083605..c559473 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceInventoryService.java +++ b/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); } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java new file mode 100644 index 0000000..055fd4e --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceRepairService.java @@ -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); +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java new file mode 100644 index 0000000..8d4cf0f --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceScrapService.java @@ -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); +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java index da0b221..bb6f0fd 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceInventoryServiceImpl.java +++ b/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); + } } 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 index 2e5479b..e3862fa 100644 --- 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 @@ -113,6 +113,7 @@ //鍑哄簱鎿嶄綔 搴撳瓨鐘舵�佷负 绉熻祦涓� inventory.setInventoryStatus(2); } + inventory.setLedgerItemId(item.getId()); //搴撳瓨璋冩暣 inventoryMapper.insert(inventory); diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java new file mode 100644 index 0000000..c483823 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceRepairServiceImpl.java @@ -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(); + } +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java new file mode 100644 index 0000000..2dd8044 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceScrapServiceImpl.java @@ -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(); + } + +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.xml new file mode 100644 index 0000000..f85d139 --- /dev/null +++ b/platformx-device-biz/src/main/resources/mapper/DeviceRepairMapper.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.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> \ No newline at end of file diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceScrapMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceScrapMapper.xml new file mode 100644 index 0000000..13c0b83 --- /dev/null +++ b/platformx-device-biz/src/main/resources/mapper/DeviceScrapMapper.xml @@ -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> \ No newline at end of file diff --git a/platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml b/platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml index b84b53e..ac2a1b0 100644 --- a/platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml +++ b/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> -- Gitblit v1.9.1