From cc59b65bc63b839127c29775bcd410dd407de66d Mon Sep 17 00:00:00 2001 From: shiyunteng <shiyunteng@example.com> Date: 星期一, 21 四月 2025 17:20:02 +0800 Subject: [PATCH] 设备采购计划与设备照片 --- platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml | 3 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DevicePurchasePlanController.java | 137 ++++++++++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DevicePurchasePlanService.java | 20 + platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanItemMapper.java | 11 + platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlanItem.java | 89 ++++++++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/InventoryDetailVo.java | 2 platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java | 5 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanMapper.java | 16 + platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DevicePurchasePlanPageVo.java | 55 +++++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java | 11 + platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanMapper.xml | 48 ++++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DevicePurchasePlanQueryDTO.java | 20 + platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanItemMapper.xml | 23 ++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DevicePurchasePlanServiceImpl.java | 91 ++++++++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceInventory.java | 4 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlan.java | 72 ++++++ 16 files changed, 605 insertions(+), 2 deletions(-) diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java index ad399d5..0265a11 100644 --- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java @@ -38,7 +38,10 @@ * 绉熻祦鍙拌处缂栧彿 */ String LEDGER_CODE = "LEDGER_CODE"; - + /** + * 璁惧閲囪喘璁″垝缂栧彿 + */ + String DEVICE_PURCHASE_CODE = "DEVICE_PURCHASE_CODE"; diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DevicePurchasePlanQueryDTO.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DevicePurchasePlanQueryDTO.java new file mode 100644 index 0000000..027142f --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/dto/DevicePurchasePlanQueryDTO.java @@ -0,0 +1,20 @@ +package com.by4cloud.platformx.device.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class DevicePurchasePlanQueryDTO { + + /** + * 閲囪喘璁″垝鍚嶇О + */ + @Schema(description = "閲囪喘璁″垝鍚嶇О") + private String planName; + + /** + * 閲囪喘璁″垝缂栧彿 + */ + @Schema(description = "閲囪喘璁″垝缂栧彿") + private String planCode; +} 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 6ded1eb..8657194 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 @@ -51,4 +51,8 @@ @Schema(description = "鍏宠仈鍙拌处鏄庣粏ID") @Column(columnDefinition="bigint comment '鍏宠仈鍙拌处鏄庣粏ID'") private Long ledgerItemId; + + @Schema(description = "璁惧鐓х墖鍦板潃") + @Column(columnDefinition="varchar(256) comment '璁惧鐓х墖鍦板潃'") + private String filePath; } diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlan.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlan.java new file mode 100644 index 0000000..9934127 --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlan.java @@ -0,0 +1,72 @@ +package com.by4cloud.platformx.device.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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 javax.persistence.Transient; +import java.util.Date; +import java.util.List; + +@Data +@Entity +@TableName("device_purchase_plan") +@javax.persistence.Table(name = "device_purchase_plan") +@Table(appliesTo = "device_purchase_plan", comment = "璁惧閲囪喘璁″垝") +public class DevicePurchasePlan extends BaseModel<DevicePurchasePlan> { + + /** + * 閲囪喘璁″垝鍚嶇О + */ + @Schema(description = "閲囪喘璁″垝鍚嶇О") + @Column(columnDefinition="VARCHAR(128) comment '閲囪喘璁″垝鍚嶇О'") + private String planName; + + /** + * 閲囪喘璁″垝缂栧彿 + */ + @Schema(description = "閲囪喘璁″垝缂栧彿") + @Column(columnDefinition="VARCHAR(128) comment '閲囪喘璁″垝缂栧彿'") + private String planCode; + + /** + * 鐢宠浜� + */ + @Schema(description = "鐢宠浜�") + @Column(columnDefinition="bigint comment '鐢宠浜�'") + private Long releaseId; + + /** + * 鐢宠鍗曚綅 + */ + @Schema(description = "鐢宠鍗曚綅") + @Column(columnDefinition="bigint comment '鐢宠鍗曚綅'") + private Long releaseCompId; + + /** + * 鐢宠鏃堕棿 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "鐢宠鏃堕棿") + @Column(columnDefinition="datetime comment '鐢宠鏃堕棿'") + private Date releaseTime; + + /** + * 鐘舵�� + */ + @Schema(description = "鐘舵��") + @Column(columnDefinition="int comment '绫诲瀷 0寰呭鎵癸紝1宸插鎵�'") + private Integer status; + + @Transient + @TableField(exist = false) + private List<DevicePurchasePlanItem> planItemList; +} diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlanItem.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlanItem.java new file mode 100644 index 0000000..754040a --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DevicePurchasePlanItem.java @@ -0,0 +1,89 @@ +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; +import java.math.BigDecimal; + +@Data +@Entity +@TableName("device_purchase_plan_item") +@javax.persistence.Table(name = "device_purchase_plan_item") +@Table(appliesTo = "device_purchase_plan_item", comment = "璁惧閲囪喘璁″垝瀛愰」") +public class DevicePurchasePlanItem extends BaseModel<DevicePurchasePlanItem> { + + /** + * 璁″垝ID + */ + @Schema(description="璁″垝ID") + @Column(columnDefinition="bigint comment '璁″垝ID'") + private Long planId; + + /** + * 璁惧ID + */ + @Schema(description="璁惧ID") + @Column(columnDefinition="bigint comment '璁惧ID'") + private Long deviceId; + + /** + * 璁惧缂栫爜 + */ + @Schema(description="璁惧缂栫爜") + @Column(columnDefinition="VARCHAR(32) 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; + + /** + * 鍗曚环 + */ + @Schema(description = "鍗曚环") + @Column(columnDefinition="decimal(10,2) comment '鍗曚环'") + private BigDecimal unitPrice; + + /** + * 閲戦 + */ + @Schema(description = "閲戦") + @Column(columnDefinition="decimal(10,2) comment '閲戦'") + private BigDecimal amount; +} diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DevicePurchasePlanPageVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DevicePurchasePlanPageVo.java new file mode 100644 index 0000000..087ca3f --- /dev/null +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DevicePurchasePlanPageVo.java @@ -0,0 +1,55 @@ +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 org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class DevicePurchasePlanPageVo { + + private Long id; + /** + * 閲囪喘璁″垝鍚嶇О + */ + @Schema(description = "閲囪喘璁″垝鍚嶇О") + private String planName; + + /** + * 閲囪喘璁″垝缂栧彿 + */ + @Schema(description = "閲囪喘璁″垝缂栧彿") + private String planCode; + + /** + * 鐢宠浜� + */ + @Schema(description = "鐢宠浜�") + private Long releaseId; + + /** + * 鐢宠鍗曚綅 + */ + @Schema(description = "鐢宠鍗曚綅") + private Long releaseCompId; + + /** + * 鐢宠鏃堕棿 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + @Schema(description = "鐢宠鏃堕棿") + private Date releaseTime; + + /** + * 鐘舵�� + */ + @Schema(description = "鐘舵��") + private Integer status; + + private String userName; + + private String deptName; +} 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 index 3861361..fb1cdf0 100644 --- 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 @@ -26,4 +26,6 @@ @JsonFormat(pattern = "yyyy-MM-dd") private Date deliveryDate; + @Schema(description = "鍥剧墖鍦板潃") + private String filePath; } 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 a1c9a82..6a60a0b 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 @@ -166,4 +166,15 @@ public R getReleaseDetail(@PathVariable("id")Long id) { return deviceInventoryService.getReleaseDetail(id); } + + /** + * 淇敼搴撳瓨琛� + * @param deviceInventory 搴撳瓨琛� + * @return R + */ + @SysLog("淇敼搴撳瓨琛�" ) + @PutMapping("/uploadPic") + public R uploadPic(@RequestBody DeviceInventory deviceInventory) { + return R.ok(deviceInventoryService.updateById(deviceInventory)); + } } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DevicePurchasePlanController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DevicePurchasePlanController.java new file mode 100644 index 0000000..b5136e5 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DevicePurchasePlanController.java @@ -0,0 +1,137 @@ +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.common.security.util.SecurityUtils; +import com.by4cloud.platformx.device.constant.MaxSizeContant; +import com.by4cloud.platformx.device.dto.DevicePurchasePlanQueryDTO; +import com.by4cloud.platformx.device.entity.DevicePurchasePlan; +import com.by4cloud.platformx.device.service.DevicePurchasePlanService; +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.Date; +import java.util.List; +import java.util.Objects; + +/** + * 璁惧閲囪喘璁″垝 + * + * @author syt + * @date 2025-04-21 14:43:13 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/devicePurchasePlan" ) +@Tag(description = "devicePurchasePlan" , name = "璁惧閲囪喘璁″垝绠$悊" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class DevicePurchasePlanController { + + private final DevicePurchasePlanService devicePurchasePlanService; + + /** + * 鍒嗛〉鏌ヨ + * @param page 鍒嗛〉瀵硅薄 + * @param devicePurchasePlan 璁惧閲囪喘璁″垝 + * @return + */ + @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_view')" ) + public R getDevicePurchasePlanPage(@ParameterObject Page page, @ParameterObject DevicePurchasePlanQueryDTO queryDTO) { + return R.ok(devicePurchasePlanService.pageNew(page, queryDTO)); + } + + + /** + * 閫氳繃id鏌ヨ璁惧閲囪喘璁″垝 + * @param id id + * @return R + */ + @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(devicePurchasePlanService.getByIdNew(id)); + } + + /** + * 鏂板璁惧閲囪喘璁″垝 + * @param devicePurchasePlan 璁惧閲囪喘璁″垝 + * @return R + */ + @Operation(summary = "鏂板璁惧閲囪喘璁″垝" , description = "鏂板璁惧閲囪喘璁″垝" ) + @SysLog("鏂板璁惧閲囪喘璁″垝" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_add')" ) + public R save(@RequestBody DevicePurchasePlan devicePurchasePlan) { + + return R.ok(devicePurchasePlanService.saveNew(devicePurchasePlan)); + } + + /** + * 淇敼璁惧閲囪喘璁″垝 + * @param devicePurchasePlan 璁惧閲囪喘璁″垝 + * @return R + */ + @Operation(summary = "淇敼璁惧閲囪喘璁″垝" , description = "淇敼璁惧閲囪喘璁″垝" ) + @SysLog("淇敼璁惧閲囪喘璁″垝" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_edit')" ) + public R updateById(@RequestBody DevicePurchasePlan devicePurchasePlan) { + return R.ok(devicePurchasePlanService.updateByIdNew(devicePurchasePlan)); + } + + /** + * 閫氳繃id鍒犻櫎璁惧閲囪喘璁″垝 + * @param ids id鍒楄〃 + * @return R + */ + @Operation(summary = "閫氳繃id鍒犻櫎璁惧閲囪喘璁″垝" , description = "閫氳繃id鍒犻櫎璁惧閲囪喘璁″垝" ) + @SysLog("閫氳繃id鍒犻櫎璁惧閲囪喘璁″垝" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(devicePurchasePlanService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 瀵煎嚭excel 琛ㄦ牸 + * @param devicePurchasePlan 鏌ヨ鏉′欢 + * @param ids 瀵煎嚭鎸囧畾ID + * @return excel 鏂囦欢娴� + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_export')" ) + public List<DevicePurchasePlan> export(DevicePurchasePlan devicePurchasePlan,Long[] ids) { + return devicePurchasePlanService.list(Wrappers.lambdaQuery(devicePurchasePlan).in(ArrayUtil.isNotEmpty(ids), DevicePurchasePlan::getId, ids)); + } + + /** + * 閫氳繃id閫氳繃璁惧閲囪喘璁″垝 + * @param id id + * @return R + */ + @Operation(summary = "閫氳繃id閫氳繃璁惧閲囪喘璁″垝" , description = "閫氳繃id閫氳繃璁惧閲囪喘璁″垝" ) + @GetMapping("/approved/{id}" ) + @PreAuthorize("@pms.hasPermission('device_devicePurchasePlan_approved')" ) + public R approved(@PathVariable("id" ) Long id) { + return R.ok(devicePurchasePlanService.approved(id)); + } +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanItemMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanItemMapper.java new file mode 100644 index 0000000..73f2ba8 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanItemMapper.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.DevicePurchasePlanItem; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DevicePurchasePlanItemMapper extends PlatformxBaseMapper<DevicePurchasePlanItem> { + + +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanMapper.java new file mode 100644 index 0000000..8af023d --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/DevicePurchasePlanMapper.java @@ -0,0 +1,16 @@ +package com.by4cloud.platformx.device.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.by4cloud.platformx.common.data.datascope.PlatformxBaseMapper; +import com.by4cloud.platformx.device.dto.DevicePurchasePlanQueryDTO; +import com.by4cloud.platformx.device.entity.DevicePurchasePlan; +import com.by4cloud.platformx.device.entity.vo.DevicePurchasePlanPageVo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DevicePurchasePlanMapper extends PlatformxBaseMapper<DevicePurchasePlan> { + + + IPage<DevicePurchasePlanPageVo> page(Page page, DevicePurchasePlanQueryDTO queryDTO); +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DevicePurchasePlanService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DevicePurchasePlanService.java new file mode 100644 index 0000000..2176343 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DevicePurchasePlanService.java @@ -0,0 +1,20 @@ +package com.by4cloud.platformx.device.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.by4cloud.platformx.device.dto.DevicePurchasePlanQueryDTO; +import com.by4cloud.platformx.device.entity.DevicePurchasePlan; + +public interface DevicePurchasePlanService extends IService<DevicePurchasePlan> { + + boolean saveNew(DevicePurchasePlan devicePurchasePlan); + + IPage pageNew(Page page, DevicePurchasePlanQueryDTO queryDTO); + + boolean approved(Long id); + + DevicePurchasePlan getByIdNew(Long id); + + boolean updateByIdNew(DevicePurchasePlan devicePurchasePlan); +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DevicePurchasePlanServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DevicePurchasePlanServiceImpl.java new file mode 100644 index 0000000..339476d --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DevicePurchasePlanServiceImpl.java @@ -0,0 +1,91 @@ +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.common.security.util.SecurityUtils; +import com.by4cloud.platformx.device.constant.MaxSizeContant; +import com.by4cloud.platformx.device.dto.DevicePurchasePlanQueryDTO; +import com.by4cloud.platformx.device.entity.DevicePurchasePlan; +import com.by4cloud.platformx.device.entity.DevicePurchasePlanItem; +import com.by4cloud.platformx.device.mapper.DevicePurchasePlanItemMapper; +import com.by4cloud.platformx.device.mapper.DevicePurchasePlanMapper; +import com.by4cloud.platformx.device.service.DevicePurchasePlanService; +import com.by4cloud.platformx.device.service.JcMaxSizeService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * 璁惧閲囪喘璁″垝 + * + * @author syt + * @date 2025-04-21 14:43:13 + */ +@Service +@AllArgsConstructor +public class DevicePurchasePlanServiceImpl extends ServiceImpl<DevicePurchasePlanMapper, DevicePurchasePlan> implements DevicePurchasePlanService { + + private final JcMaxSizeService maxSizeService; + + private final DevicePurchasePlanItemMapper itemMapper; + + @Override + public boolean saveNew(DevicePurchasePlan devicePurchasePlan) { + devicePurchasePlan.setPlanCode(maxSizeService.nextNo(MaxSizeContant.DEVICE_PURCHASE_CODE)); + devicePurchasePlan.setReleaseCompId(SecurityUtils.getUser().getCompId()); + devicePurchasePlan.setReleaseId(SecurityUtils.getUser().getId()); + devicePurchasePlan.setReleaseTime(new Date()); + devicePurchasePlan.setStatus(0); + baseMapper.insert(devicePurchasePlan); + if (devicePurchasePlan.getPlanItemList() != null&&devicePurchasePlan.getPlanItemList().size()>0) { + devicePurchasePlan.getPlanItemList().forEach(item->{ + item.setPlanId(devicePurchasePlan.getId()); + itemMapper.insert(item); + }); + } + return true; + } + + @Override + public IPage pageNew(Page page, DevicePurchasePlanQueryDTO queryDTO) { + return baseMapper.page(page,queryDTO); + } + + @Override + public boolean approved(Long id) { + DevicePurchasePlan plan = baseMapper.selectById(id); + plan.setStatus(1); + baseMapper.updateById(plan); + return true; + } + + @Override + public DevicePurchasePlan getByIdNew(Long id) { + DevicePurchasePlan plan = baseMapper.selectById(id); + QueryWrapper<DevicePurchasePlanItem> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("plan_id",id); + List<DevicePurchasePlanItem> planItemList = itemMapper.selectList(queryWrapper); + plan.setPlanItemList(planItemList); + return plan; + } + + @Override + public boolean updateByIdNew(DevicePurchasePlan devicePurchasePlan) { + baseMapper.updateById(devicePurchasePlan); + if (devicePurchasePlan.getPlanItemList() != null&&devicePurchasePlan.getPlanItemList().size()>0) { + devicePurchasePlan.getPlanItemList().forEach(item->{ + item.setPlanId(devicePurchasePlan.getId()); + if (item.getId()==null) { + itemMapper.insert(item); + }else { + itemMapper.updateById(item); + } + }); + } + return true; + } +} \ No newline at end of file diff --git a/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanItemMapper.xml b/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanItemMapper.xml new file mode 100644 index 0000000..dd688f1 --- /dev/null +++ b/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanItemMapper.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + +<mapper namespace="com.by4cloud.platformx.device.mapper.DevicePurchasePlanItemMapper"> + + <resultMap id="devicePurchasePlanItemMap" type="com.by4cloud.platformx.device.entity.DevicePurchasePlanItem"> + <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="planId" column="plan_id"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="delFlag" column="del_flag"/> + </resultMap> +</mapper> \ No newline at end of file diff --git a/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanMapper.xml b/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanMapper.xml new file mode 100644 index 0000000..db99b03 --- /dev/null +++ b/platformx-device-biz/src/main/resources/mapper/DevicePurchasePlanMapper.xml @@ -0,0 +1,48 @@ +<?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.DevicePurchasePlanMapper"> + + <resultMap id="devicePurchasePlanMap" type="com.by4cloud.platformx.device.entity.DevicePurchasePlan"> + <id property="id" column="id"/> + <result property="compId" column="comp_id"/> + <result property="planCode" column="plan_code"/> + <result property="planName" column="plan_name"/> + <result property="releaseCompId" column="release_comp_id"/> + <result property="releaseId" column="release_id"/> + <result property="status" column="status"/> + <result property="releaseTime" column="release_time"/> + <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> + <select id="page" resultType="com.by4cloud.platformx.device.entity.vo.DevicePurchasePlanPageVo"> + select + dpp.id, + dpp.plan_code, + dpp.plan_name, + dpp.release_comp_id, + dpp.release_id, + dpp.status, + dpp.release_time, + su.name userName, + sd.name deptName + from + platformxx_device.device_purchase_plan dpp + join platformxx_boot.sys_user su on + su.user_id = dpp.release_id + join platformxx_boot.sys_dept sd on + sd.dept_id = dpp.release_comp_id + where + dpp.del_flag = '0' + <if test="queryDTO.planName != null and queryDTO.planName!=''"> + and dpp.plan_name like CONCAT('%', #{queryDTO.planName}, '%') + </if> + <if test="queryDTO.planCode != null and queryDTO.planCode!=''"> + and dpp.plan_code like CONCAT('%', #{queryDTO.planCode}, '%') + </if> + order by dpp.create_time desc + </select> +</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 e509be6..8c9400d 100644 --- a/platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml +++ b/platformx-device-biz/src/main/resources/mapper/deviceInventoryMapper.xml @@ -24,7 +24,8 @@ sd.name rentName, di.device_number, di.serial_no, - dll.delivery_date + dll.delivery_date, + di.file_path from device_inventory di join device_leasing_ledger_item dlli on -- Gitblit v1.9.1