diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/block/BlockController.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/block/BlockController.java index b98f64b..a05667c 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/block/BlockController.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/block/BlockController.java @@ -55,8 +55,12 @@ public class BlockController { if( null ==createReqVO.getBaseId()){ return error(500,"请选择农场"); } + TraceabilityBaseDO traceabilityBaseDO = baseService.selectById(createReqVO.getBaseId().longValue()); - if(traceabilityBaseDO.getBaseArea().compareTo(createReqVO.getBlockArea()) ==-1){ + // 查询基地已使用面积 + BigDecimal useBaseArea =blockService.selectSumBlockArea(createReqVO.getBaseId().longValue(),null); + BigDecimal allBaseArea = createReqVO.getBlockArea().add(useBaseArea); + if(traceabilityBaseDO.getBaseArea().compareTo(allBaseArea) ==-1){ return error(500,"该地块超出基地面积!"); } return success(blockService.createBlock(createReqVO)); @@ -67,7 +71,9 @@ public class BlockController { @PreAuthorize("@ss.hasPermission('traceability:block:update')") public CommonResult updateBlock(@Valid @RequestBody BlockSaveReqVO updateReqVO) { TraceabilityBaseDO traceabilityBaseDO = baseService.selectById(updateReqVO.getBaseId().longValue()); - if(traceabilityBaseDO.getBaseArea().compareTo(updateReqVO.getBlockArea()) ==-1){ + BigDecimal useBaseArea =blockService.selectSumBlockArea(updateReqVO.getBaseId().longValue(),null); + BigDecimal allBaseArea = updateReqVO.getBlockArea().add(useBaseArea); + if(traceabilityBaseDO.getBaseArea().compareTo(allBaseArea) ==-1){ return error(500,"该地块超出基地面积!"); } blockService.updateBlock(updateReqVO); diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java index e750b91..a09ab16 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java @@ -1,5 +1,6 @@ package com.cjy.traceability.module.traceability.dal.mysql.block; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.cjy.traceability.framework.common.pojo.PageResult; import com.cjy.traceability.framework.mybatis.core.query.LambdaQueryWrapperX; @@ -14,7 +15,9 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import com.cjy.traceability.module.traceability.controller.admin.block.vo.*; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -60,4 +63,10 @@ public interface BlockMapper extends BaseMapperX { .eq(BlockDO :: getBaseId,baseId) ); } + + @Select(value={ + ""}) + public BigDecimal selectSumBlockArea(@Param("baseId") Long baseId,@Param("blockId") Long blockId); } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockService.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockService.java index 8e91716..d37c479 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockService.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockService.java @@ -6,6 +6,7 @@ import com.cjy.traceability.module.traceability.dal.dataobject.block.BlockCropDO import com.cjy.traceability.module.traceability.dal.dataobject.block.BlockDO; import com.cjy.traceability.framework.common.pojo.PageResult; +import java.math.BigDecimal; import java.util.List; /** @@ -69,4 +70,6 @@ public interface BlockService { * @return */ boolean selectIsBindCropper(Integer baseId); + + public BigDecimal selectSumBlockArea(Long baseId,Long blockId); } \ No newline at end of file diff --git a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockServiceImpl.java b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockServiceImpl.java index 8b054c6..c9c3975 100644 --- a/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockServiceImpl.java +++ b/cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockServiceImpl.java @@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; import static com.cjy.traceability.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -100,4 +101,9 @@ public class BlockServiceImpl implements BlockService { return cropperMapper.selectBlockIsBindCropper(baseId)>0; } + @Override + public BigDecimal selectSumBlockArea(Long baseId,Long blockId) { + return blockMapper.selectSumBlockArea(baseId,blockId); + } + } \ No newline at end of file