From f81493860c646e87584efc9906d73b2968802c1c Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 19 Aug 2022 10:09:45 +0800
Subject: [PATCH] 新增删除地块时需要先结束当前地块种养品种才能删除地块

---
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.java            |    2 ++
 src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java |    5 +++++
 src/main/java/org/springblade/modules/lang/controller/LandController.java    |    9 ++++++++-
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml             |    7 +++++++
 src/main/java/org/springblade/modules/lang/service/ILandService.java         |    2 ++
 src/main/java/org/springblade/modules/lang/vo/LandVO.java                    |    1 +
 6 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/lang/controller/LandController.java b/src/main/java/org/springblade/modules/lang/controller/LandController.java
index 2261a08..c78e810 100644
--- a/src/main/java/org/springblade/modules/lang/controller/LandController.java
+++ b/src/main/java/org/springblade/modules/lang/controller/LandController.java
@@ -30,6 +30,7 @@
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.farm.entity.Farm;
 import org.springblade.modules.farm.vo.FarmVO;
 import org.springblade.modules.resource.endpoint.OssEndpoint;
@@ -314,7 +315,13 @@
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(landService.deleteLogic(Func.toLongList(ids)));
+		//先要判断该地块是否还有正在种植的作物,先结束才能删除地块
+		List<LandVO> land= landService.findPlantInLand(ids);
+		if (land.size()<=0) {
+			return R.status(landService.deleteLogic(Func.toLongList(ids)));
+		}else {
+			throw new org.springblade.core.log.exception.ServiceException(StringUtil.format("请先结束该地块正在种养品种"));
+		}
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
index 1a3840e..5e0d6bb 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
@@ -97,4 +97,6 @@
 	List<Land> selectByStrainId(@Param("strainId") String strainId,@Param("farmId") String farmId);
 
 	List<Land> getByStrainIdFarmId(@Param("land")LandVO land);
+
+	List<LandVO> findPlantInLand(String ids);
 }
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
index 14e002b..3907596 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
@@ -246,5 +246,12 @@
             AND sfp.status = #{land.sfpStatus}
         </if>
     </select>
+    <select id="findPlantInLand" resultType="org.springblade.modules.lang.vo.LandVO">
+        SELECT land.*,sfp.id AS sfpId,sfp.strain_id
+        FROM sys_land land
+        LEFT JOIN sys_farm_plant sfp ON land.id = sfp.land_id
+        WHERE land.is_deleted = 0  AND sfp.status = 1
+        AND land.id = #{ids}
+    </select>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/lang/service/ILandService.java b/src/main/java/org/springblade/modules/lang/service/ILandService.java
index cd31d4e..0334dd9 100644
--- a/src/main/java/org/springblade/modules/lang/service/ILandService.java
+++ b/src/main/java/org/springblade/modules/lang/service/ILandService.java
@@ -106,4 +106,6 @@
 	 * @return
 	 */
 	List<Land> getByStrainIdFarmId(LandVO land);
+
+	List<LandVO> findPlantInLand(String ids);
 }
diff --git a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
index ba8817c..e3b5814 100644
--- a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
+++ b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
@@ -128,4 +128,9 @@
 	public List<Land> getByStrainIdFarmId(LandVO land) {
 		return baseMapper.getByStrainIdFarmId(land);
 	}
+
+	@Override
+	public List<LandVO> findPlantInLand(String ids) {
+		return baseMapper.findPlantInLand(ids);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/lang/vo/LandVO.java b/src/main/java/org/springblade/modules/lang/vo/LandVO.java
index 5f53e23..be4feff 100644
--- a/src/main/java/org/springblade/modules/lang/vo/LandVO.java
+++ b/src/main/java/org/springblade/modules/lang/vo/LandVO.java
@@ -39,4 +39,5 @@
 	 * 种养品种植状态
 	 */
 	String sfpStatus;
+	String sfpId;
 }

--
Gitblit v1.9.3