main
masong 2 years ago
parent 22bfc1ac02
commit 5d418920ab
  1. 10
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/controller/admin/block/BlockController.java
  2. 9
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/dal/mysql/block/BlockMapper.java
  3. 3
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockService.java
  4. 6
      cjy-module-traceability/cjy-module-traceability-biz/src/main/java/com/cjy/traceability/module/traceability/service/block/BlockServiceImpl.java

@ -55,8 +55,12 @@ public class BlockController {
if( null ==createReqVO.getBaseId()){ if( null ==createReqVO.getBaseId()){
return error(500,"请选择农场"); return error(500,"请选择农场");
} }
TraceabilityBaseDO traceabilityBaseDO = baseService.selectById(createReqVO.getBaseId().longValue()); 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 error(500,"该地块超出基地面积!");
} }
return success(blockService.createBlock(createReqVO)); return success(blockService.createBlock(createReqVO));
@ -67,7 +71,9 @@ public class BlockController {
@PreAuthorize("@ss.hasPermission('traceability:block:update')") @PreAuthorize("@ss.hasPermission('traceability:block:update')")
public CommonResult<Boolean> updateBlock(@Valid @RequestBody BlockSaveReqVO updateReqVO) { public CommonResult<Boolean> updateBlock(@Valid @RequestBody BlockSaveReqVO updateReqVO) {
TraceabilityBaseDO traceabilityBaseDO = baseService.selectById(updateReqVO.getBaseId().longValue()); 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,"该地块超出基地面积!"); return error(500,"该地块超出基地面积!");
} }
blockService.updateBlock(updateReqVO); blockService.updateBlock(updateReqVO);

@ -1,5 +1,6 @@
package com.cjy.traceability.module.traceability.dal.mysql.block; 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.baomidou.mybatisplus.core.metadata.IPage;
import com.cjy.traceability.framework.common.pojo.PageResult; import com.cjy.traceability.framework.common.pojo.PageResult;
import com.cjy.traceability.framework.mybatis.core.query.LambdaQueryWrapperX; 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 org.apache.ibatis.annotations.Mapper;
import com.cjy.traceability.module.traceability.controller.admin.block.vo.*; import com.cjy.traceability.module.traceability.controller.admin.block.vo.*;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -60,4 +63,10 @@ public interface BlockMapper extends BaseMapperX<BlockDO> {
.eq(BlockDO :: getBaseId,baseId) .eq(BlockDO :: getBaseId,baseId)
); );
} }
@Select(value={
"<script>select ifnull(sum(block_area),0) from traceability_block where deleted is false and base_id =#{baseId}" +
" <if test=\"blockId !=null\"> where id !=#{blockId} </if>"+
"</script>"})
public BigDecimal selectSumBlockArea(@Param("baseId") Long baseId,@Param("blockId") Long blockId);
} }

@ -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.module.traceability.dal.dataobject.block.BlockDO;
import com.cjy.traceability.framework.common.pojo.PageResult; import com.cjy.traceability.framework.common.pojo.PageResult;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@ -69,4 +70,6 @@ public interface BlockService {
* @return * @return
*/ */
boolean selectIsBindCropper(Integer baseId); boolean selectIsBindCropper(Integer baseId);
public BigDecimal selectSumBlockArea(Long baseId,Long blockId);
} }

@ -16,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import static com.cjy.traceability.framework.common.exception.util.ServiceExceptionUtil.exception; 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; return cropperMapper.selectBlockIsBindCropper(baseId)>0;
} }
@Override
public BigDecimal selectSumBlockArea(Long baseId,Long blockId) {
return blockMapper.selectSumBlockArea(baseId,blockId);
}
} }
Loading…
Cancel
Save