From dc0dc216eec524e67ce19f820d2501a3798fcfe0 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期五, 28 三月 2025 16:49:45 +0800
Subject: [PATCH] fix: 年度投资计划

---
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanController.java        |  132 ++++++++++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java      |    1 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanItemController.java    |  119 +++++++++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanService.java              |    8 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanItemMapper.java            |   11 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanMapper.java                |   11 +
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanServiceImpl.java     |   16 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/constant/MaxSizeContant.java                    |    4 
 platformx-device-biz/src/main/resources/mapper/InvestmentPlanMapper.xml                                          |   26 ++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlanItem.java                  |   66 +++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java          |    2 
 platformx-device-biz/src/main/resources/mapper/InvestmentPlanItemMapper.xml                                      |   27 +++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanItemServiceImpl.java |   16 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlan.java                      |   77 ++++++++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanItemService.java          |    8 
 15 files changed, 523 insertions(+), 1 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 db5de15..ad399d5 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
@@ -15,6 +15,10 @@
 	 */
 	String PLAN_NUM = "PLAN_NUM";
 	/**
+	 * 骞村害鎶曡祫璁″垝缂栧彿
+	 */
+	String TZPLAN_NUM = "TZPLAN_NUM";
+	/**
 	 * 鍚堝悓缂栧彿
 	 */
 	String CONTRACT_NUM = "CONTRACT_NUM";
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlan.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlan.java
new file mode 100644
index 0000000..c43e667
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlan.java
@@ -0,0 +1,77 @@
+package com.by4cloud.platformx.device.entity;
+
+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;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName InvestmentPlan.java
+ * @Description TODO
+ * @createTime 2025骞�03鏈�28鏃� 09:17:00
+ */
+@Data
+@Entity
+@Table(appliesTo = "investment_plan", comment = "骞村害鎶曡祫璁″垝涓昏〃")
+public class InvestmentPlan extends BaseModel<InvestmentPlan> {
+
+	@Schema(description = "缂栧彿")
+	@Column(columnDefinition="VARCHAR(64) comment '缂栧彿'")
+	private String number;
+	@Schema(description = "骞村害")
+	@Column(columnDefinition="int comment '骞村害'")
+	private Integer year;
+
+	@Column(columnDefinition = "double(10,2) comment '璁″垝鎬婚'")
+	private Double amount;
+
+	@Schema(description = "鑱旂郴浜�")
+	@Column(columnDefinition="VARCHAR(64) comment '鑱旂郴浜�'")
+	private String contacts;
+
+	@Schema(description = "鍚嶇О")
+	@Column(columnDefinition="VARCHAR(64) comment '鍚嶇О'")
+	private String name;
+
+	@Schema(description = "濉姤鍏徃")
+	@Column(columnDefinition="VARCHAR(64) comment '濉姤鍏徃'")
+	private String releaseCompName;
+	@Schema(description = "濉姤浜�")
+	@Column(columnDefinition="VARCHAR(64) comment '濉姤浜�'")
+	private String releasePerson;
+
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "濉姤鏃堕棿")
+	@Column(columnDefinition = "datetime comment '濉姤鏃堕棿'")
+	private Date releaseDate;
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd")
+	@Schema(description = "涓婃姤鏃堕棿")
+	@Column(columnDefinition = "datetime comment '涓婃姤鏃堕棿'")
+	private Date sendDate;
+
+	@Schema(description = "鐢虫姤鐘舵�� 0鐢宠涓紝1瀹℃壒鎷掔粷  2瀹℃牳閫氳繃 ")
+	@Column(columnDefinition="int comment '鐢虫姤鐘舵��'")
+	private Integer status;
+
+	@Schema(description = "鐢虫姤绫诲瀷")
+	@Column(columnDefinition="int comment '鐢虫姤绫诲瀷'")
+	private Integer type;
+
+	@Column(columnDefinition = "double(10,2) comment '璋冩暣鍋忕Щ鐜�'")
+	private Double deviation;
+
+	@Schema(description = "鎶曡祫璁″垝ids")
+	@Column(columnDefinition="VARCHAR(64) comment '鎶曡祫璁″垝ids'")
+	private String planIds;
+
+}
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlanItem.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlanItem.java
new file mode 100644
index 0000000..cbf7b9c
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/InvestmentPlanItem.java
@@ -0,0 +1,66 @@
+package com.by4cloud.platformx.device.entity;
+
+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;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName InvestmentPlan.java
+ * @Description TODO
+ * @createTime 2025骞�03鏈�28鏃� 09:17:00
+ */
+@Data
+@Entity
+@Table(appliesTo = "investment_plan_item", comment = "骞村害鎶曡祫璁″垝瀛愯〃")
+public class InvestmentPlanItem extends BaseModel<InvestmentPlanItem> {
+	@Schema(description = "骞村害")
+	@Column(columnDefinition="int comment '骞村害'")
+	private Integer year;
+	@Schema(description = "鏈堜唤")
+	@Column(columnDefinition="int comment '鏈堜唤'")
+	private Integer month;
+
+	@Schema(description = "璁惧琛╥d")
+	@Column(columnDefinition="long comment '璁惧琛╥d'")
+	private Long deviceId;
+	@Schema(description = "璁惧缂栫爜")
+	@Column(columnDefinition="VARCHAR(64) comment '璁惧缂栫爜'")
+	private String number;
+
+	@Column(columnDefinition = "varchar(200) comment '瑙勬牸鍨嬪彿'")
+	private String specification;
+
+	@Column(columnDefinition = "int comment '鏁伴噺'")
+	private Integer num;
+
+	@Column(columnDefinition = "varchar(20) comment '鍗曚綅'")
+	private String unit;
+
+	@Column(columnDefinition = "double(10,2) comment '棰勪及鍗曚环'")
+	private Double price;
+
+	@Column(columnDefinition = "double(10,2) comment '璁″垝鎬婚'")
+	private Double amount;
+
+	@Schema(description = "寤鸿鍘傚")
+	@Column(columnDefinition="VARCHAR(64) comment '寤鸿鍘傚'")
+	private String manu;
+
+	@Schema(description = "鎶曡祫蹇呰鎬�")
+	@Column(columnDefinition="VARCHAR(64) comment '鎶曡祫蹇呰鎬�'")
+	private String necessity;
+	@Schema(description = "澧炲噺璁″垝")
+	@Column(columnDefinition="int comment '澧炲噺璁″垝'")
+	private Integer flucPlan;
+
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java
index f67a136..3cfa40b 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java
@@ -77,6 +77,7 @@
 		wrapper.eq(deviceDemandPlan.getDeclareCompId() !=null,DeviceDemandPlan::getDeclareCompId,deviceDemandPlan.getDeclareCompId());
 		wrapper.eq(deviceDemandPlan.getReleasePerson() !=null,DeviceDemandPlan::getReleasePerson,deviceDemandPlan.getReleasePerson());
 		wrapper.eq(deviceDemandPlan.getYear() !=null,DeviceDemandPlan::getYear,deviceDemandPlan.getYear());
+		wrapper.eq(deviceDemandPlan.getStatus() !=null,DeviceDemandPlan::getStatus,deviceDemandPlan.getStatus());
 		wrapper.eq(DeviceDemandPlan::getType2,1);
 		return R.ok(deviceDemandPlanService.page(page, wrapper));
 	}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanController.java
new file mode 100644
index 0000000..b881e08
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanController.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.StringUtils;
+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.DeviceDemandPlan;
+import com.by4cloud.platformx.device.entity.InvestmentPlan;
+import com.by4cloud.platformx.device.service.DeviceDemandPlanService;
+import com.by4cloud.platformx.device.service.InvestmentPlanService;
+import com.by4cloud.platformx.device.service.JcMaxSizeService;
+import com.by4cloud.platformx.device.util.NumUtils;
+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 kdq
+ * @date 2025-03-28 11:06:50
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/investmentPlan" )
+@Tag(description = "investmentPlan" , name = "骞村害鎶曡祫璁″垝涓昏〃绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class InvestmentPlanController {
+
+    private final  InvestmentPlanService investmentPlanService;
+    private final DeviceDemandPlanService deviceDemandPlanService;
+    private final JcMaxSizeService maxSizeService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param investmentPlan 骞村害鎶曡祫璁″垝涓昏〃
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_view')" )
+    public R getInvestmentPlanPage(@ParameterObject Page page, @ParameterObject InvestmentPlan investmentPlan) {
+        LambdaQueryWrapper<InvestmentPlan> wrapper = Wrappers.lambdaQuery();
+		wrapper.eq(investmentPlan.getYear()!=null,InvestmentPlan::getYear,investmentPlan.getYear());
+		wrapper.like(StringUtils.isNotBlank(investmentPlan.getName()),InvestmentPlan::getName,investmentPlan.getName());
+        return R.ok(investmentPlanService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ骞村害鎶曡祫璁″垝涓昏〃
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(investmentPlanService.getById(id));
+    }
+
+    /**
+     * 鏂板骞村害鎶曡祫璁″垝涓昏〃
+     * @param investmentPlan 骞村害鎶曡祫璁″垝涓昏〃
+     * @return R
+     */
+    @Operation(summary = "鏂板骞村害鎶曡祫璁″垝涓昏〃" , description = "鏂板骞村害鎶曡祫璁″垝涓昏〃" )
+    @SysLog("鏂板骞村害鎶曡祫璁″垝涓昏〃" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_add')" )
+    public R save(@RequestBody InvestmentPlan investmentPlan) {
+		investmentPlan.setNumber(maxSizeService.nextNo(MaxSizeContant.TZPLAN_NUM));
+		investmentPlanService.save(investmentPlan);
+
+		return R.ok();
+    }
+
+    /**
+     * 淇敼骞村害鎶曡祫璁″垝涓昏〃
+     * @param investmentPlan 骞村害鎶曡祫璁″垝涓昏〃
+     * @return R
+     */
+    @Operation(summary = "淇敼骞村害鎶曡祫璁″垝涓昏〃" , description = "淇敼骞村害鎶曡祫璁″垝涓昏〃" )
+    @SysLog("淇敼骞村害鎶曡祫璁″垝涓昏〃" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_edit')" )
+    public R updateById(@RequestBody InvestmentPlan investmentPlan) {
+        return R.ok(investmentPlanService.updateById(investmentPlan));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝涓昏〃
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝涓昏〃" , description = "閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝涓昏〃" )
+    @SysLog("閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝涓昏〃" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(investmentPlanService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param investmentPlan 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_investmentPlan_export')" )
+    public List<InvestmentPlan> export(InvestmentPlan investmentPlan,Long[] ids) {
+        return investmentPlanService.list(Wrappers.lambdaQuery(investmentPlan).in(ArrayUtil.isNotEmpty(ids), InvestmentPlan::getId, ids));
+    }
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanItemController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanItemController.java
new file mode 100644
index 0000000..0932a04
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/InvestmentPlanItemController.java
@@ -0,0 +1,119 @@
+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.InvestmentPlanItem;
+import com.by4cloud.platformx.device.service.InvestmentPlanItemService;
+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 kdq
+ * @date 2025-03-28 11:08:34
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/investmentPlanItem" )
+@Tag(description = "investmentPlanItem" , name = "骞村害鎶曡祫璁″垝瀛愯〃绠$悊" )
+@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
+public class InvestmentPlanItemController {
+
+    private final  InvestmentPlanItemService investmentPlanItemService;
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page 鍒嗛〉瀵硅薄
+     * @param investmentPlanItem 骞村害鎶曡祫璁″垝瀛愯〃
+     * @return
+     */
+    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @GetMapping("/page" )
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_view')" )
+    public R getInvestmentPlanItemPage(@ParameterObject Page page, @ParameterObject InvestmentPlanItem investmentPlanItem) {
+        LambdaQueryWrapper<InvestmentPlanItem> wrapper = Wrappers.lambdaQuery();
+        return R.ok(investmentPlanItemService.page(page, wrapper));
+    }
+
+
+    /**
+     * 閫氳繃id鏌ヨ骞村害鎶曡祫璁″垝瀛愯〃
+     * @param id id
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+    @GetMapping("/{id}" )
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_view')" )
+    public R getById(@PathVariable("id" ) Long id) {
+        return R.ok(investmentPlanItemService.getById(id));
+    }
+
+    /**
+     * 鏂板骞村害鎶曡祫璁″垝瀛愯〃
+     * @param investmentPlanItem 骞村害鎶曡祫璁″垝瀛愯〃
+     * @return R
+     */
+    @Operation(summary = "鏂板骞村害鎶曡祫璁″垝瀛愯〃" , description = "鏂板骞村害鎶曡祫璁″垝瀛愯〃" )
+    @SysLog("鏂板骞村害鎶曡祫璁″垝瀛愯〃" )
+    @PostMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_add')" )
+    public R save(@RequestBody InvestmentPlanItem investmentPlanItem) {
+        return R.ok(investmentPlanItemService.save(investmentPlanItem));
+    }
+
+    /**
+     * 淇敼骞村害鎶曡祫璁″垝瀛愯〃
+     * @param investmentPlanItem 骞村害鎶曡祫璁″垝瀛愯〃
+     * @return R
+     */
+    @Operation(summary = "淇敼骞村害鎶曡祫璁″垝瀛愯〃" , description = "淇敼骞村害鎶曡祫璁″垝瀛愯〃" )
+    @SysLog("淇敼骞村害鎶曡祫璁″垝瀛愯〃" )
+    @PutMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_edit')" )
+    public R updateById(@RequestBody InvestmentPlanItem investmentPlanItem) {
+        return R.ok(investmentPlanItemService.updateById(investmentPlanItem));
+    }
+
+    /**
+     * 閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝瀛愯〃
+     * @param ids id鍒楄〃
+     * @return R
+     */
+    @Operation(summary = "閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝瀛愯〃" , description = "閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝瀛愯〃" )
+    @SysLog("閫氳繃id鍒犻櫎骞村害鎶曡祫璁″垝瀛愯〃" )
+    @DeleteMapping
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_del')" )
+    public R removeById(@RequestBody Long[] ids) {
+        return R.ok(investmentPlanItemService.removeBatchByIds(CollUtil.toList(ids)));
+    }
+
+
+    /**
+     * 瀵煎嚭excel 琛ㄦ牸
+     * @param investmentPlanItem 鏌ヨ鏉′欢
+   	 * @param ids 瀵煎嚭鎸囧畾ID
+     * @return excel 鏂囦欢娴�
+     */
+    @ResponseExcel
+    @GetMapping("/export")
+    @PreAuthorize("@pms.hasPermission('device_investmentPlanItem_export')" )
+    public List<InvestmentPlanItem> export(InvestmentPlanItem investmentPlanItem,Long[] ids) {
+        return investmentPlanItemService.list(Wrappers.lambdaQuery(investmentPlanItem).in(ArrayUtil.isNotEmpty(ids), InvestmentPlanItem::getId, ids));
+    }
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanItemMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanItemMapper.java
new file mode 100644
index 0000000..64193ef
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanItemMapper.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.InvestmentPlanItem;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InvestmentPlanItemMapper extends PlatformxBaseMapper<InvestmentPlanItem> {
+
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanMapper.java
new file mode 100644
index 0000000..f3b82b6
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/InvestmentPlanMapper.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.InvestmentPlan;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InvestmentPlanMapper extends PlatformxBaseMapper<InvestmentPlan> {
+
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanItemService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanItemService.java
new file mode 100644
index 0000000..af7e9d6
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanItemService.java
@@ -0,0 +1,8 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.entity.InvestmentPlanItem;
+
+public interface InvestmentPlanItemService extends IService<InvestmentPlanItem> {
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanService.java
new file mode 100644
index 0000000..c2af7a1
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/InvestmentPlanService.java
@@ -0,0 +1,8 @@
+package com.by4cloud.platformx.device.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.device.entity.InvestmentPlan;
+
+public interface InvestmentPlanService extends IService<InvestmentPlan> {
+
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanItemServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanItemServiceImpl.java
new file mode 100644
index 0000000..f115d4a
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanItemServiceImpl.java
@@ -0,0 +1,16 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.device.entity.InvestmentPlanItem;
+import com.by4cloud.platformx.device.mapper.InvestmentPlanItemMapper;
+import com.by4cloud.platformx.device.service.InvestmentPlanItemService;
+import org.springframework.stereotype.Service;
+/**
+ * 骞村害鎶曡祫璁″垝瀛愯〃
+ *
+ * @author kdq
+ * @date 2025-03-28 11:08:34
+ */
+@Service
+public class InvestmentPlanItemServiceImpl extends ServiceImpl<InvestmentPlanItemMapper, InvestmentPlanItem> implements InvestmentPlanItemService {
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanServiceImpl.java
new file mode 100644
index 0000000..a2a15e8
--- /dev/null
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/InvestmentPlanServiceImpl.java
@@ -0,0 +1,16 @@
+package com.by4cloud.platformx.device.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.device.entity.InvestmentPlan;
+import com.by4cloud.platformx.device.mapper.InvestmentPlanMapper;
+import com.by4cloud.platformx.device.service.InvestmentPlanService;
+import org.springframework.stereotype.Service;
+/**
+ * 骞村害鎶曡祫璁″垝涓昏〃
+ *
+ * @author kdq
+ * @date 2025-03-28 11:06:50
+ */
+@Service
+public class InvestmentPlanServiceImpl extends ServiceImpl<InvestmentPlanMapper, InvestmentPlan> implements InvestmentPlanService {
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java
index 26d748b..2c3d2a5 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java
@@ -56,7 +56,7 @@
 					String s = pre+format+suf+randomNumber+n;
 					return s;
 				}else {
-					Integer currentNumber = dayMax.getCurrentNumber();
+					Integer currentNumber = dayMax.getCurrentNumber()==null?0:dayMax.getCurrentNumber();
 					int current = currentNumber+1;
 					String n = padStart(current, maxSize.getLength());
 					String pre = (maxSize.getUsePrefix() == 0 ? "" : maxSize.getPrefixName());
diff --git a/platformx-device-biz/src/main/resources/mapper/InvestmentPlanItemMapper.xml b/platformx-device-biz/src/main/resources/mapper/InvestmentPlanItemMapper.xml
new file mode 100644
index 0000000..f436531
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InvestmentPlanItemMapper.xml
@@ -0,0 +1,27 @@
+<?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.InvestmentPlanItemMapper">
+
+  <resultMap id="investmentPlanItemMap" type="com.by4cloud.platformx.device.entity.InvestmentPlanItem">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="year" column="year"/>
+        <result property="month" column="month"/>
+        <result property="amount" column="amount"/>
+        <result property="number" column="number"/>
+        <result property="num" column="num"/>
+        <result property="price" column="price"/>
+        <result property="unit" column="unit"/>
+        <result property="manu" column="manu"/>
+        <result property="specification" column="specification"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="flucPlan" column="fluc_plan"/>
+        <result property="necessity" column="necessity"/>
+        <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>
diff --git a/platformx-device-biz/src/main/resources/mapper/InvestmentPlanMapper.xml b/platformx-device-biz/src/main/resources/mapper/InvestmentPlanMapper.xml
new file mode 100644
index 0000000..fcb4cfc
--- /dev/null
+++ b/platformx-device-biz/src/main/resources/mapper/InvestmentPlanMapper.xml
@@ -0,0 +1,26 @@
+<?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.InvestmentPlanMapper">
+
+  <resultMap id="investmentPlanMap" type="com.by4cloud.platformx.device.entity.InvestmentPlan">
+        <id property="id" column="id"/>
+        <result property="compId" column="comp_id"/>
+        <result property="year" column="year"/>
+        <result property="amount" column="amount"/>
+        <result property="releasePerson" column="release_person"/>
+        <result property="contacts" column="contacts"/>
+        <result property="releaseDate" column="release_date"/>
+        <result property="sendDate" column="send_date"/>
+        <result property="deviation" column="deviation"/>
+        <result property="status" column="status"/>
+        <result property="planIds" column="plan_ids"/>
+        <result property="type" column="type"/>
+        <result property="releaseCompName" column="release_comp_name"/>
+        <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>

--
Gitblit v1.9.1