Explorar o código

新增 一张图数字农田 获取地块种植详情信息接口

zhaiyifei hai 8 meses
pai
achega
d4f2f67575

+ 15 - 6
src/main/java/com/yunfeiyun/agmp/fms/controller/FmsScreenController.java

@@ -12,8 +12,8 @@ import com.yunfeiyun.agmp.common.service.WeatherService;
 import com.yunfeiyun.agmp.common.service.modal.LocationAddressModel;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
 import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.fms.domain.FmsBlock;
 import com.yunfeiyun.agmp.fms.domain.FmsLand;
+import com.yunfeiyun.agmp.fms.domain.reqvo.FmsBlockReqVo;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsWarnReqVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.*;
@@ -81,7 +81,7 @@ public class FmsScreenController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('fms:screen:block:all:list')")
     @GetMapping("/block/all/list")
-    public TableDataInfo list(FmsBlock fmsBlock) {
+    public TableDataInfo list(FmsBlockReqVo reqVo) {
         boolean b = SecurityUtils.isValidate();
         if (b) {
             //true需要进行权限校验。下拉框基地列表查询需要包含分配的基地以及分配地块所属基地
@@ -89,15 +89,24 @@ public class FmsScreenController extends BaseController {
             if (strings.isEmpty()) {
                 return getDataTable(new ArrayList<>());
             }
-            fmsBlock.setDataFilter(true);
-            fmsBlock.setBlockIds(strings);
+            reqVo.setDataFilter(true);
+            reqVo.setBlockIds(strings);
         }
-        fmsBlock.setTid(SecurityUtils.getTid());
-        List<FmsBlock> list = fmsBlockService.selectFmsBlockList(fmsBlock);
+        reqVo.setTid(SecurityUtils.getTid());
+        List<FmsBlockResVo> list = fmsBlockService.selectFmsBlockHasPlan(reqVo);
         return getDataTable(list);
     }
 
     /**
+     * 获取地块种植信息
+     */
+    @PreAuthorize("@ss.hasPermi('fms:screen:block:all:list')")
+    @GetMapping("/block/plan/info")
+    public AjaxResult blockPlanInfo(FmsBlockReqVo reqVo) {
+        return success(fmsScreenService.blockPlanInfo(reqVo.getBlockId()));
+    }
+
+    /**
      * 查询基地统计信息
      */
     @PreAuthorize("@ss.hasPermi('fms:screen:block:all:list')")

+ 14 - 0
src/main/java/com/yunfeiyun/agmp/fms/domain/resvo/FmsScreenBlockPlanInfoResVo.java

@@ -0,0 +1,14 @@
+package com.yunfeiyun.agmp.fms.domain.resvo;
+
+import com.yunfeiyun.agmp.common.web.system.domain.SysRes;
+import com.yunfeiyun.agmp.fms.domain.FmsPeriod;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class FmsScreenBlockPlanInfoResVo {
+    private FmsPlanResVo planInfo;
+    private List<FmsPeriod> fmsPeriodList;
+    private List<SysRes> videoList;
+}

+ 2 - 0
src/main/java/com/yunfeiyun/agmp/fms/mapper/FmsPlanMapper.java

@@ -117,4 +117,6 @@ public interface FmsPlanMapper
     List<FmsCropPlanAreaResVo> selectCropPlanAreaTop(@Param("blockIds") List<String> blockIds, @Param("tid") String tid, @Param("planStatus")String planStatus);
 
     List<FmsPlanCropResVo> selectFmsPlanCropResVoList(FmsPlanReqVo fmsPlanQuery);
+
+    public FmsPlanResVo selectFmsPlanByBlockId(@Param("blockId") String blockId);
 }

+ 3 - 0
src/main/java/com/yunfeiyun/agmp/fms/service/IFmsPlanService.java

@@ -5,6 +5,7 @@ import com.yunfeiyun.agmp.fms.domain.FmsPlan;
 import com.yunfeiyun.agmp.fms.domain.dto.FmsPlanByWarnSchedulerDto;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsPlanReqVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.*;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -113,4 +114,6 @@ public interface IFmsPlanService
     List<FmsCropPlanAreaResVo> selectCropPlanAreaTop(List<String> blockIds, String tid, String planStatus);
 
     List<FmsPlanCropResVo> selectFmsCropPlanResVoList(FmsPlanReqVo fmsPlanQuery);
+
+    public FmsPlanResVo selectFmsPlanByBlockId(@Param("blockId") String blockId);
 }

+ 2 - 0
src/main/java/com/yunfeiyun/agmp/fms/service/IFmsScreenService.java

@@ -25,4 +25,6 @@ public interface IFmsScreenService {
     public List<FmsScreenInvestStatResVo> investStat(FmsScreenStatReqVo reqVo);
 
     public List<FmsScreenTaskStatResVo> taskStat(FmsScreenStatReqVo reqVo);
+
+    public FmsScreenBlockPlanInfoResVo blockPlanInfo(String blockId);
 }

+ 5 - 0
src/main/java/com/yunfeiyun/agmp/fms/service/impl/FmsPlanServiceImpl.java

@@ -453,4 +453,9 @@ public class FmsPlanServiceImpl implements IFmsPlanService {
 
     }
 
+
+    @Override
+    public FmsPlanResVo selectFmsPlanByBlockId(String blockId) {
+        return fmsPlanMapper.selectFmsPlanByBlockId(blockId);
+    }
 }

+ 51 - 3
src/main/java/com/yunfeiyun/agmp/fms/service/impl/FmsScreenServiceImpl.java

@@ -1,16 +1,25 @@
 package com.yunfeiyun.agmp.fms.service.impl;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
+import com.yunfeiyun.agmp.common.constant.ResConstants;
+import com.yunfeiyun.agmp.common.enums.CommonEnums;
+import com.yunfeiyun.agmp.common.exception.BizException;
+import com.yunfeiyun.agmp.common.framework.manager.ResManager;
+import com.yunfeiyun.agmp.common.utils.SecurityUtils;
+import com.yunfeiyun.agmp.common.utils.StringUtils;
+import com.yunfeiyun.agmp.common.web.system.domain.SysRes;
+import com.yunfeiyun.agmp.fms.domain.FmsPeriod;
 import com.yunfeiyun.agmp.fms.domain.dto.FmsScreenPlanStatDto;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.*;
 import com.yunfeiyun.agmp.fms.mapper.FmsScreenMapper;
+import com.yunfeiyun.agmp.fms.service.IFmsPeriodService;
+import com.yunfeiyun.agmp.fms.service.IFmsPlanService;
 import com.yunfeiyun.agmp.fms.service.IFmsScreenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.time.ZoneId;
+import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
 
@@ -18,6 +27,16 @@ import java.util.List;
 public class FmsScreenServiceImpl implements IFmsScreenService {
     @Autowired
     private FmsScreenMapper fmsScreenMapper;
+
+    @Autowired
+    private IFmsPlanService fmsPlanService;
+
+    @Autowired
+    private IFmsPeriodService fmsPeriodService;
+
+    @Autowired
+    private ResManager resManager;
+
     /**
      * 查询基地统计信息
      *
@@ -98,4 +117,33 @@ public class FmsScreenServiceImpl implements IFmsScreenService {
     public List<FmsScreenTaskStatResVo> taskStat(FmsScreenStatReqVo reqVo) {
         return fmsScreenMapper.taskStat(reqVo);
     }
+
+    @Override
+    public FmsScreenBlockPlanInfoResVo blockPlanInfo(String blockId) {
+        if(StringUtils.isEmpty(blockId)){
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "参数异常");
+        }
+
+        FmsScreenBlockPlanInfoResVo fmsScreenBlockPlanInfoResVo = new FmsScreenBlockPlanInfoResVo();
+
+        FmsPlanResVo fmsPlanResVo = fmsPlanService.selectFmsPlanByBlockId(blockId);
+        if(fmsPlanResVo == null){
+            return fmsScreenBlockPlanInfoResVo;
+        }
+
+        String cropId = fmsPlanResVo.getCropId();
+        String startTime = fmsPlanResVo.getPlanPlanstartdate();
+        Duration duration = Duration.between(LocalDateTime.parse(startTime,
+                DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())), LocalDateTime.now());
+        fmsPlanResVo.setDays(duration.toDays() + "");
+        String tid = SecurityUtils.getTid();
+        List<FmsPeriod> fmsPeriods = fmsPeriodService.selectFmsPeriodByCropId(cropId, tid);
+
+        List<SysRes> videoList = resManager.queryRes(cropId, ResConstants.BizType.CROP_VIDEO, ResConstants.mediaType.VIDEO);
+
+        fmsScreenBlockPlanInfoResVo.setPlanInfo(fmsPlanResVo);
+        fmsScreenBlockPlanInfoResVo.setFmsPeriodList(fmsPeriods);
+        fmsScreenBlockPlanInfoResVo.setVideoList(videoList);
+        return fmsScreenBlockPlanInfoResVo;
+    }
 }

+ 8 - 0
src/main/resources/mapper/FmsPlanMapper.xml

@@ -563,4 +563,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
         </where>
     </select>
+
+    <select id="selectFmsPlanByBlockId" parameterType="String" resultType="FmsPlanResVo">
+        select p.*, c.cropName, c.cropType, c.cropMaintype
+        from FmsPlan p
+        LEFT JOIN FmsCrop c ON p.cropId = c.cropId
+        where p.blockId = #{blockId} and p.planStatus != '2'
+        limit 1
+    </select>
 </mapper>