From 18d187869d098a2893d79acdadc7d7a99aad28e6 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 24 三月 2025 15:23:37 +0800
Subject: [PATCH] fix: 更新设备项目表和项目子表接口

---
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java                 |    7 +
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java                   |    7 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceClassController.java         |   19 +++
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DemandPlanVo.java                   |   18 +++
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandPlanController.java    |    5 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceInventoryController.java     |   56 +++++++-
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandPlan.java                  |    5 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceController.java              |   84 ++++++++++++-
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceDemandPlanService.java          |    3 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceDemandPlanServiceImpl.java |    4 
 platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/Device.java                            |    4 
 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java   |  101 ++++++++++++++--
 12 files changed, 267 insertions(+), 46 deletions(-)

diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/Device.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/Device.java
index 26dc966..5a68e34 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/Device.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/Device.java
@@ -75,6 +75,10 @@
 	@Column(columnDefinition="int comment '搴撳瓨鏁�'")
 	private Integer num;
 
+	@Schema(description = "澶囨敞")
+	@Column(columnDefinition="VARCHAR(64) comment '澶囨敞'")
+	private String remark;
+
 	@Column(
 			columnDefinition = "varchar(100) comment '鍚嶇О'"
 	)
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandPlan.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandPlan.java
index 9bfd7bf..0f8736b 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandPlan.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandPlan.java
@@ -1,5 +1,6 @@
 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;
@@ -20,7 +21,7 @@
 @Data
 @Entity
 @Table(appliesTo = "device_demand_plan", comment = "璁惧闇�姹傝鍒掍富琛�")
-public class DeviceDemandPlan extends DeviceBaseModel<DeviceDemandPlan>{
+public class DeviceDemandPlan extends BaseModel<DeviceDemandPlan> {
 	@Schema(description = "璁惧缂栫爜")
 	@Column(columnDefinition="VARCHAR(64) comment '璁惧缂栫爜'")
 	private String number;
@@ -30,7 +31,7 @@
 	@Schema(description = "鑱旂郴浜�")
 	@Column(columnDefinition="VARCHAR(64) comment '鑱旂郴浜�'")
 	private String contacts;
-	@Schema(description = "鐢虫姤鐘舵��")
+	@Schema(description = "鐢虫姤鐘舵�� 0鐢宠涓紝1浜岀骇鍗曚綅瀹℃牳鎷掔粷  2浜岀骇鍗曚綅瀹℃牳閫氳繃 3闆嗗洟瀹℃牳鎷掔粷 4闆嗗洟瀹℃牳閫氳繃")
 	@Column(columnDefinition="int comment '鐢虫姤鐘舵��'")
 	private Integer status;
 	@Schema(description = "鐢虫姤绫诲瀷")
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java
index e74e3ef..3936224 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java
@@ -19,8 +19,11 @@
 @Table(appliesTo = "device_demand_sub", comment = "璁惧闇�姹傝鍒掕澶囧瓙琛�")
 public class DeviceDemandSub extends DeviceBaseModel<DeviceDemandSub>{
 	@Schema(description = "椤圭洰琛╥d")
-	@Column(columnDefinition="int comment '椤圭洰琛╥d'")
-	private Integer totalId;
+	@Column(columnDefinition="long comment '椤圭洰琛╥d'")
+	private Long totalId;
+	@Schema(description = "璁惧琛╥d")
+	@Column(columnDefinition="long comment '璁惧琛╥d'")
+	private Long deviceId;
 	@Schema(description = "璁惧缂栫爜")
 	@Column(columnDefinition="VARCHAR(64) comment '璁惧缂栫爜'")
 	private String number;
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java
index 7d562bc..4803e0a 100644
--- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java
@@ -1,11 +1,14 @@
 package com.by4cloud.platformx.device.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.hibernate.annotations.Table;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.util.List;
 
 /**
  * @author kdq
@@ -33,4 +36,8 @@
 	@Schema(description = "鎶曡祫蹇呰鎬�")
 	@Column(columnDefinition="VARCHAR(64) comment '鎶曡祫蹇呰鎬�'")
 	private String necessity;
+
+	@Transient
+	@TableField(exist = false)
+	private List<DeviceDemandSub> subList;
 }
diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DemandPlanVo.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DemandPlanVo.java
new file mode 100644
index 0000000..caa3846
--- /dev/null
+++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/vo/DemandPlanVo.java
@@ -0,0 +1,18 @@
+package com.by4cloud.platformx.device.entity.vo;
+
+import com.by4cloud.platformx.device.entity.DeviceDemandPlan;
+import com.by4cloud.platformx.device.entity.DeviceDemandTotal;
+import lombok.Data;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName DemandPlanVo.java
+ * @Description TODO
+ * @createTime 2025骞�03鏈�13鏃� 16:28:00
+ */
+@Data
+public class DemandPlanVo {
+	private DeviceDemandPlan plan;
+	private DeviceDemandTotal total;
+}
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceClassController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceClassController.java
index 2f377e2..b9b2553 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceClassController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceClassController.java
@@ -4,11 +4,13 @@
 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.DeviceClass;
+import com.by4cloud.platformx.device.entity.DeviceInventory;
 import com.by4cloud.platformx.device.service.DeviceClassService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
@@ -49,7 +51,7 @@
     @PreAuthorize("@pms.hasPermission('platformx_deviceClass_view')" )
     public R getDeviceClassPage(@ParameterObject Page page, @ParameterObject DeviceClass deviceClass) {
         LambdaQueryWrapper<DeviceClass> wrapper = Wrappers.lambdaQuery();
-		wrapper.eq(StrUtil.isNotBlank(deviceClass.getName()),DeviceClass::getName,deviceClass.getName());
+		wrapper.like(StrUtil.isNotBlank(deviceClass.getName()),DeviceClass::getName,deviceClass.getName());
 		wrapper.eq(StrUtil.isNotBlank(deviceClass.getNumber()),DeviceClass::getNumber,deviceClass.getNumber());
         return R.ok(deviceClassService.page(page, wrapper));
     }
@@ -99,6 +101,12 @@
 		if(deviceClass.getParentId()==null){
 			return R.failed("涓婄骇鍒嗙被鏈�夋嫨锛�");
 		}
+		QueryWrapper<DeviceClass> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(DeviceClass::getNumber,deviceClass.getNumber());
+		List<DeviceClass> list = deviceClassService.list(wrapper);
+		if(list!=null&&list.size()>0){
+			return R.failed("璇ョ紪鍙峰凡瀛樺湪");
+		}
 		deviceClass.setPId(deviceClass.getParentId().longValue());
 		return R.ok(deviceClassService.save(deviceClass));
     }
@@ -116,6 +124,15 @@
 		if(deviceClass.getParentId()==null){
 			return R.failed("涓婄骇鍒嗙被鏈�夋嫨锛�");
 		}
+		QueryWrapper<DeviceClass> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(DeviceClass::getNumber,deviceClass.getNumber());
+		List<DeviceClass> list = deviceClassService.list(wrapper);
+		if(list!=null&&list.size()>0){
+			DeviceClass deviceClass1 = list.get(0);
+			if(!deviceClass1.getId().equals(deviceClass.getId())){
+				return R.failed("宸插瓨鍦ㄨ搴忓垪鍙凤紝璇烽噸鏂版坊鍔�");
+			}
+		}
 		deviceClass.setPId(deviceClass.getParentId().longValue());
         return R.ok(deviceClassService.updateById(deviceClass));
     }
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 8727174..b9943ed 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
@@ -4,6 +4,8 @@
 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.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.by4cloud.platformx.admin.api.entity.SysDeptRelation;
@@ -11,6 +13,8 @@
 import com.by4cloud.platformx.common.log.annotation.SysLog;
 import com.by4cloud.platformx.common.security.util.SecurityUtils;
 import com.by4cloud.platformx.device.entity.Device;
+import com.by4cloud.platformx.device.entity.DeviceInventory;
+import com.by4cloud.platformx.device.service.DeviceInventoryService;
 import com.by4cloud.platformx.device.service.DeviceService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
@@ -39,6 +43,7 @@
 public class DeviceController {
 
     private final  DeviceService deviceService;
+    private final DeviceInventoryService inventoryService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -54,7 +59,14 @@
 		wrapper.eq(Device::getReqStatus,1);
 		wrapper.like(StrUtil.isNotBlank(device.getNumber()),Device::getNumber,device.getNumber());
 		wrapper.like(StrUtil.isNotBlank(device.getName()),Device::getName,device.getName());
-        return R.ok(deviceService.page(page, wrapper));
+		Page<Device> page1 = deviceService.page(page, wrapper);
+		for (Device device1 : page1.getRecords()) {
+			QueryWrapper<DeviceInventory> wrapper1 = new QueryWrapper<>();
+			wrapper1.lambda().eq(DeviceInventory::getDeviceId,device1.getId());
+			long count = inventoryService.count(wrapper1);
+			device1.setNum(Integer.parseInt(count+""));
+		}
+		return R.ok(page1);
     }
 	/**
 	 * 鍒嗛〉鏌ヨ
@@ -71,6 +83,16 @@
 		wrapper.like(StrUtil.isNotBlank(device.getNumber()),Device::getNumber,device.getNumber());
 		wrapper.like(StrUtil.isNotBlank(device.getName()),Device::getName,device.getName());
 		return R.ok(deviceService.page(page, wrapper));
+	}
+
+	@Operation(summary = "鏍规嵁璁惧鍒嗙被鑾峰彇璁惧" , description = "鏍规嵁璁惧鍒嗙被鑾峰彇璁惧" )
+	@GetMapping("/getByClassId" )
+	public R getByClassId(@ParameterObject Device device) {
+		LambdaQueryWrapper<Device> wrapper = Wrappers.lambdaQuery();
+		wrapper.eq(Device::getReqStatus,1);
+		wrapper.eq(Device::getClassId,device.getClassId());
+		wrapper.like(StrUtil.isNotBlank(device.getName()),Device::getName,device.getName());
+		return R.ok(deviceService.list(wrapper));
 	}
 
 
@@ -93,20 +115,34 @@
 	@Operation(summary = "瀹℃壒閫氳繃" , description = "瀹℃壒閫氳繃" )
 	@PostMapping("/pass" )
 	public R passById(@RequestBody Device device) {
+		if(StringUtils.isBlank(device.getNumber())){
+			return R.failed("璇峰~鍐欒澶囩紪鍙�");
+		}
+		QueryWrapper<Device> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(Device::getNumber,device.getNumber());
+		List<Device> list = deviceService.list(wrapper);
+		if(list !=null && list.size()>0){
+			Device device1 = list.get(0);
+			if(!device1.getId().equals(device.getId())){
+				return R.failed("宸插瓨鍦ㄨ缂栧彿");
+			}
+		}
 		device.setReqStatus(1);
 		deviceService.updateById(device);
 		return R.ok();
 	}
 	/**
 	 * 瀹℃壒鎷掔粷
-	 * @param id id
 	 * @return R
 	 */
 	@Operation(summary = "瀹℃壒鎷掔粷" , description = "瀹℃壒鎷掔粷" )
-	@GetMapping("/kill/{id}" )
-	public R killById(@PathVariable("id" ) Long id) {
-		Device byId = deviceService.getById(id);
+	@GetMapping("/kill" )
+	public R killById(@ParameterObject Device device) {
+		Device byId = deviceService.getById(device.getId());
 		byId.setReqStatus(2);
+		if(StringUtils.isNotBlank(device.getRemark())){
+			byId.setRemark(device.getRemark());
+		}
 		deviceService.updateById(byId);
 		return R.ok();
 	}
@@ -119,13 +155,34 @@
     @Operation(summary = "鏂板鍑虹璁惧娓呭崟琛�" , description = "鏂板鍑虹璁惧娓呭崟琛�" )
     @SysLog("鏂板鍑虹璁惧娓呭崟琛�" )
     @PostMapping
-    @PreAuthorize("@pms.hasPermission('platformx_device_add')" )
     public R save(@RequestBody Device device) {
-		if(device.getReqStatus() == 0){
-			device.setReqCompId(SecurityUtils.getUser().getDeptId());
+		if(device.getReqStatus()==0){
+			return R.ok(deviceService.save(device));
 		}
-        return R.ok(deviceService.save(device));
+		if(StringUtils.isBlank(device.getNumber())){
+			return R.failed("璇峰~鍐欒澶囩紪鍙�");
+		}
+		QueryWrapper<Device> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(Device::getNumber,device.getNumber());
+		List<Device> list = deviceService.list(wrapper);
+		if(list !=null && list.size()>0){
+			return R.failed("宸插瓨鍦ㄨ缂栧彿");
+		}
+		return R.ok(deviceService.save(device));
     }
+
+	/**
+	 * 涓夌骇鍗曚綅鏂板璁惧娓呭崟
+	 * @param device 涓夌骇鍗曚綅鏂板璁惧娓呭崟
+	 * @return R
+	 */
+	@Operation(summary = "涓夌骇鍗曚綅鏂板璁惧娓呭崟" , description = "涓夌骇鍗曚綅鏂板璁惧娓呭崟" )
+	@SysLog("鏂板鍑虹璁惧娓呭崟琛�" )
+	@PostMapping("/childAdd")
+	public R childAdd(@RequestBody Device device) {
+		device.setReqStatus(0);
+		return R.ok(deviceService.save(device));
+	}
 
     /**
      * 淇敼鍑虹璁惧娓呭崟琛�
@@ -137,6 +194,15 @@
     @PutMapping
     @PreAuthorize("@pms.hasPermission('platformx_device_edit')" )
     public R updateById(@RequestBody Device device) {
+		QueryWrapper<Device> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(Device::getNumber,device.getNumber());
+		List<Device> list = deviceService.list(wrapper);
+		if(list !=null && list.size()>0){
+			Device device1 = list.get(0);
+			if(!device1.getId().equals(device.getId())){
+				return R.failed("宸插瓨鍦ㄨ缂栧彿");
+			}
+		}
         return R.ok(deviceService.updateById(device));
     }
 
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 95f48c8..8f16af1 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
@@ -43,12 +43,11 @@
      * @param deviceDemandPlan 璁惧闇�姹傝鍒掍富琛�
      * @return
      */
-    @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" )
+    @Operation(summary = "鏈崟浣嶅垎椤垫煡璇�" , description = "鏈崟浣嶅垎椤垫煡璇�" )
     @GetMapping("/page" )
-    @PreAuthorize("@pms.hasPermission('platformx_deviceDemandPlan_view')" )
     public R getDeviceDemandPlanPage(@ParameterObject Page page, @ParameterObject DeviceDemandPlan deviceDemandPlan) {
         LambdaQueryWrapper<DeviceDemandPlan> wrapper = Wrappers.lambdaQuery();
-        return R.ok(deviceDemandPlanService.page(page, wrapper));
+        return R.ok(deviceDemandPlanService.pageByScope(page, wrapper));
     }
 
 
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java
index 8ebe9d6..914cdb9 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java
@@ -3,11 +3,15 @@
 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.DeviceDemandPlan;
+import com.by4cloud.platformx.device.entity.DeviceDemandSub;
 import com.by4cloud.platformx.device.entity.DeviceDemandTotal;
+import com.by4cloud.platformx.device.service.DeviceDemandSubService;
 import com.by4cloud.platformx.device.service.DeviceDemandTotalService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import com.by4cloud.platformx.common.excel.annotation.ResponseExcel;
@@ -36,6 +40,7 @@
 public class DeviceDemandTotalController {
 
     private final  DeviceDemandTotalService deviceDemandTotalService;
+    private final DeviceDemandSubService deviceDemandSubService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -61,10 +66,31 @@
     @GetMapping("/{id}" )
     @PreAuthorize("@pms.hasPermission('platformx_deviceDemandTotal_view')" )
     public R getById(@PathVariable("id" ) Long id) {
-        return R.ok(deviceDemandTotalService.getById(id));
+		DeviceDemandTotal demandTotal = deviceDemandTotalService.getById(id);
+		QueryWrapper<DeviceDemandSub> wrapper = new QueryWrapper<>();
+		wrapper.lambda()
+				.eq(DeviceDemandSub::getTotalId,demandTotal.getId());
+		List<DeviceDemandSub> list = deviceDemandSubService.list(wrapper);
+		demandTotal.setSubList(list);
+		return R.ok(demandTotal);
     }
 
-    /**
+	/**
+	 * 閫氳繃id鏌ヨ璁惧闇�姹傝鍒掗」鐩瓙琛�
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
+	@GetMapping("/getByPlanId/{id}" )
+	public R getByPlanId(@PathVariable("id" ) Long id) {
+		QueryWrapper<DeviceDemandTotal> wrapper = new QueryWrapper<>();
+		wrapper.lambda()
+				.eq(DeviceDemandTotal::getPlanId,id);
+		return R.ok(deviceDemandTotalService.list(wrapper));
+	}
+
+
+	/**
      * 鏂板璁惧闇�姹傝鍒掗」鐩瓙琛�
      * @param deviceDemandTotal 璁惧闇�姹傝鍒掗」鐩瓙琛�
      * @return R
@@ -72,9 +98,17 @@
     @Operation(summary = "鏂板璁惧闇�姹傝鍒掗」鐩瓙琛�" , description = "鏂板璁惧闇�姹傝鍒掗」鐩瓙琛�" )
     @SysLog("鏂板璁惧闇�姹傝鍒掗」鐩瓙琛�" )
     @PostMapping
-    @PreAuthorize("@pms.hasPermission('platformx_deviceDemandTotal_add')" )
     public R save(@RequestBody DeviceDemandTotal deviceDemandTotal) {
-        return R.ok(deviceDemandTotalService.save(deviceDemandTotal));
+		if(deviceDemandTotal.getPlanId()==null){
+			return R.failed("璁″垝id蹇呬紶");
+		}
+		deviceDemandTotalService.save(deviceDemandTotal);
+		List<DeviceDemandSub> subList = deviceDemandTotal.getSubList();
+		for (DeviceDemandSub deviceDemandSub : subList) {
+			deviceDemandSub.setTotalId(deviceDemandTotal.getId());
+			deviceDemandSubService.save(deviceDemandSub);
+		}
+		return R.ok("娣诲姞鎴愬姛");
     }
 
     /**
@@ -87,21 +121,54 @@
     @PutMapping
     @PreAuthorize("@pms.hasPermission('platformx_deviceDemandTotal_edit')" )
     public R updateById(@RequestBody DeviceDemandTotal deviceDemandTotal) {
-        return R.ok(deviceDemandTotalService.updateById(deviceDemandTotal));
+		List<DeviceDemandSub> subList = deviceDemandTotal.getSubList();
+		QueryWrapper<DeviceDemandSub> wrapper = new QueryWrapper<>();
+		wrapper.lambda()
+				.eq(DeviceDemandSub::getTotalId,deviceDemandTotal.getId());
+		List<DeviceDemandSub> list = deviceDemandSubService.list(wrapper);
+		deviceDemandSubService.removeBatchByIds(list);
+		for (DeviceDemandSub deviceDemandSub : subList) {
+			deviceDemandSub.setTotalId(deviceDemandTotal.getId());
+			deviceDemandSubService.save(deviceDemandSub);
+		}
+		return R.ok(deviceDemandTotalService.updateById(deviceDemandTotal));
     }
 
-    /**
-     * 閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�
-     * @param ids id鍒楄〃
-     * @return R
-     */
-    @Operation(summary = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" , description = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
-    @SysLog("閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
-    @DeleteMapping
-    @PreAuthorize("@pms.hasPermission('platformx_deviceDemandTotal_del')" )
-    public R removeById(@RequestBody Long[] ids) {
-        return R.ok(deviceDemandTotalService.removeBatchByIds(CollUtil.toList(ids)));
-    }
+	/**
+	 * 閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�
+	 * @param id id
+	 * @return R
+	 */
+	@Operation(summary = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" , description = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
+	@SysLog("閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
+	@GetMapping("/deleteById/{id}")
+	public R deleteById(@PathVariable("id" ) Long id) {
+		DeviceDemandTotal byId = deviceDemandTotalService.getById(id);
+		if(byId != null){
+			deviceDemandTotalService.removeById(id);
+			QueryWrapper<DeviceDemandSub> wrapper = new QueryWrapper<>();
+			wrapper.lambda()
+					.eq(DeviceDemandSub::getTotalId,byId.getId());
+			List<DeviceDemandSub> list = deviceDemandSubService.list(wrapper);
+			deviceDemandSubService.removeBatchByIds(list);
+		}else {
+			return R.failed("鏈煡璇㈠埌璇ラ」鐩�");
+		}
+		return R.ok();
+	}
+
+//    /**
+//     * 閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�
+//     * @param ids id鍒楄〃
+//     * @return R
+//     */
+//    @Operation(summary = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" , description = "閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
+//    @SysLog("閫氳繃id鍒犻櫎璁惧闇�姹傝鍒掗」鐩瓙琛�" )
+//    @DeleteMapping
+//    @PreAuthorize("@pms.hasPermission('platformx_deviceDemandTotal_del')" )
+//    public R removeById(@RequestBody Long[] ids) {
+//        return R.ok(deviceDemandTotalService.removeBatchByIds(CollUtil.toList(ids)));
+//    }
 
 
     /**
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 0856eae..955925f 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
@@ -3,6 +3,8 @@
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ArrayUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+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;
@@ -34,7 +36,7 @@
 @SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
 public class DeviceInventoryController {
 
-    private final DeviceInventoryService DeviceInventoryService;
+    private final DeviceInventoryService deviceInventoryService;
 
     /**
      * 鍒嗛〉鏌ヨ
@@ -46,7 +48,10 @@
     @GetMapping("/page" )
     public R getDeviceInventoryPage(@ParameterObject Page page, @ParameterObject DeviceInventory deviceInventory) {
         LambdaQueryWrapper<DeviceInventory> wrapper = Wrappers.lambdaQuery();
-        return R.ok(DeviceInventoryService.page(page, wrapper));
+		wrapper.like(StringUtils.isNotBlank(deviceInventory.getDeviceNumber()),DeviceInventory::getDeviceNumber,deviceInventory.getDeviceNumber());
+		wrapper.like(StringUtils.isNotBlank(deviceInventory.getSerialNo()),DeviceInventory::getSerialNo,deviceInventory.getSerialNo());
+		wrapper.like(StringUtils.isNotBlank(deviceInventory.getName()),DeviceInventory::getName,deviceInventory.getName());
+        return R.ok(deviceInventoryService.page(page, wrapper));
     }
 
 
@@ -58,30 +63,59 @@
     @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" )
     @GetMapping("/{id}" )
     public R getById(@PathVariable("id" ) Long id) {
-        return R.ok(DeviceInventoryService.getById(id));
+        return R.ok(deviceInventoryService.getById(id));
     }
 
     /**
      * 鏂板搴撳瓨娴佹按琛�
-     * @param DeviceInventory 搴撳瓨琛�
+     * @param deviceInventory 搴撳瓨琛�
      * @return R
      */
     @Operation(summary = "鏂板搴撳瓨琛�" , description = "鏂板搴撳瓨琛�" )
     @SysLog("鏂板搴撳瓨娴佹按琛�" )
     @PostMapping
-    public R save(@RequestBody DeviceInventory DeviceInventory) {
-        return R.ok(DeviceInventoryService.save(DeviceInventory));
+    public R save(@RequestBody DeviceInventory deviceInventory) {
+		if(deviceInventory.getDeviceId()==null){
+			return R.failed("璇烽�夋嫨璁惧娓呭崟");
+		}
+		if(deviceInventory.getSerialNo()==null){
+			return R.failed("璇峰~鍐欒澶囧簭鍒楀彿");
+		}
+		QueryWrapper<DeviceInventory> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(DeviceInventory::getDeviceId,deviceInventory.getDeviceId())
+				.eq(DeviceInventory::getSerialNo,deviceInventory.getSerialNo());
+		List<DeviceInventory> list = deviceInventoryService.list(wrapper);
+		if(list !=null && list.size()>0){
+			return R.failed("宸插瓨鍦ㄨ搴忓垪鍙凤紝璇烽噸鏂版坊鍔�");
+		}
+		return R.ok(deviceInventoryService.save(deviceInventory));
     }
 
     /**
      * 淇敼搴撳瓨琛�
-     * @param DeviceInventory 搴撳瓨琛�
+     * @param deviceInventory 搴撳瓨琛�
      * @return R
      */
     @SysLog("淇敼搴撳瓨琛�" )
     @PutMapping
-    public R updateById(@RequestBody DeviceInventory DeviceInventory) {
-        return R.ok(DeviceInventoryService.updateById(DeviceInventory));
+    public R updateById(@RequestBody DeviceInventory deviceInventory) {
+		if(deviceInventory.getDeviceId()==null){
+			return R.failed("璇烽�夋嫨璁惧娓呭崟");
+		}
+		if(deviceInventory.getSerialNo()==null){
+			return R.failed("璇峰~鍐欒澶囧簭鍒楀彿");
+		}
+		QueryWrapper<DeviceInventory> wrapper = new QueryWrapper<>();
+		wrapper.lambda().eq(DeviceInventory::getDeviceId,deviceInventory.getDeviceId())
+				.eq(DeviceInventory::getSerialNo,deviceInventory.getSerialNo());
+		List<DeviceInventory> list = deviceInventoryService.list(wrapper);
+		if(list !=null && list.size()>0){
+			DeviceInventory deviceInventory1 = list.get(0);
+			if(!deviceInventory1.getId().equals(deviceInventory.getId())){
+				return R.failed("宸插瓨鍦ㄨ搴忓垪鍙凤紝璇烽噸鏂版坊鍔�");
+			}
+		}
+        return R.ok(deviceInventoryService.updateById(deviceInventory));
     }
 
     /**
@@ -93,7 +127,7 @@
     @SysLog("閫氳繃id鍒犻櫎搴撳瓨娴佹按琛�" )
     @DeleteMapping
     public R removeById(@RequestBody Long[] ids) {
-        return R.ok(DeviceInventoryService.removeBatchByIds(CollUtil.toList(ids)));
+        return R.ok(deviceInventoryService.removeBatchByIds(CollUtil.toList(ids)));
     }
 
 
@@ -107,6 +141,6 @@
     @GetMapping("/export")
     @PreAuthorize("@pms.hasPermission('platformx_DeviceInventory_export')" )
     public List<DeviceInventory> export(DeviceInventory deviceInventory,Long[] ids) {
-        return DeviceInventoryService.list(Wrappers.lambdaQuery(deviceInventory).in(ArrayUtil.isNotEmpty(ids), DeviceInventory::getId, ids));
+        return deviceInventoryService.list(Wrappers.lambdaQuery(deviceInventory).in(ArrayUtil.isNotEmpty(ids), DeviceInventory::getId, ids));
     }
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceDemandPlanService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceDemandPlanService.java
index d18da00..ea736a9 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceDemandPlanService.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/DeviceDemandPlanService.java
@@ -1,8 +1,9 @@
 package com.by4cloud.platformx.device.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.by4cloud.platformx.common.data.mybatis.IIService;
 import com.by4cloud.platformx.device.entity.DeviceDemandPlan;
 
-public interface DeviceDemandPlanService extends IService<DeviceDemandPlan> {
+public interface DeviceDemandPlanService extends IIService<DeviceDemandPlan> {
 
 }
diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceDemandPlanServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceDemandPlanServiceImpl.java
index b0b3984..b4995fd 100644
--- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceDemandPlanServiceImpl.java
+++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/DeviceDemandPlanServiceImpl.java
@@ -1,9 +1,13 @@
 package com.by4cloud.platformx.device.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.by4cloud.platformx.common.data.datascope.DataScope;
 import com.by4cloud.platformx.device.entity.DeviceDemandPlan;
 import com.by4cloud.platformx.device.mapper.DeviceDemandPlanMapper;
 import com.by4cloud.platformx.device.service.DeviceDemandPlanService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 /**
  * 璁惧闇�姹傝鍒掍富琛�

--
Gitblit v1.9.1