Browse Source

新增 一张图数字农田 获取农事统计接口

zhaiyifei 8 months atrás
parent
commit
a8880782fd

+ 10 - 9
src/main/java/com/yunfeiyun/agmp/fms/controller/FmsScreenController.java

@@ -10,10 +10,7 @@ import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.fms.domain.FmsBlock;
 import com.yunfeiyun.agmp.fms.domain.FmsBlock;
 import com.yunfeiyun.agmp.fms.domain.FmsLand;
 import com.yunfeiyun.agmp.fms.domain.FmsLand;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenInvestStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenLandStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanPickStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanStatResVo;
+import com.yunfeiyun.agmp.fms.domain.resvo.*;
 import com.yunfeiyun.agmp.fms.service.IFmsBlockService;
 import com.yunfeiyun.agmp.fms.service.IFmsBlockService;
 import com.yunfeiyun.agmp.fms.service.IFmsLandService;
 import com.yunfeiyun.agmp.fms.service.IFmsLandService;
 import com.yunfeiyun.agmp.fms.service.IFmsScreenService;
 import com.yunfeiyun.agmp.fms.service.IFmsScreenService;
@@ -143,16 +140,20 @@ public class FmsScreenController extends BaseController {
     /**
     /**
      * 农事统计
      * 农事统计
      */
      */
-    @PreAuthorize("@ss.hasPermi('fms:screen:farm:stat')")
-    @GetMapping(value = "/farm/stat")
-    public AjaxResult farmStat(FmsScreenStatReqVo reqVo){
+    @PreAuthorize("@ss.hasPermi('fms:screen:task:stat')")
+    @GetMapping(value = "/task/stat")
+    public AjaxResult taskStat(FmsScreenStatReqVo reqVo){
         String landId = reqVo.getLandId();
         String landId = reqVo.getLandId();
         String startDate = reqVo.getStartDate();
         String startDate = reqVo.getStartDate();
         String endDate = reqVo.getEndDate();
         String endDate = reqVo.getEndDate();
-        if(StringUtils.isEmpty(landId) || StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)){
+        if(StringUtils.isEmpty(landId)){
             throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "参数异常");
             throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "参数异常");
         }
         }
-        List<FmsScreenPlanPickStatResVo> planPickStatList = fmsScreenService.planPickStat(reqVo);
+
+        if(StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)){
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "时间参数异常");
+        }
+        List<FmsScreenTaskStatResVo> planPickStatList = fmsScreenService.taskStat(reqVo);
         return success(planPickStatList);
         return success(planPickStatList);
     }
     }
 }
 }

+ 0 - 13
src/main/java/com/yunfeiyun/agmp/fms/domain/resvo/FmsScreenFarmStatResVo.java

@@ -1,13 +0,0 @@
-package com.yunfeiyun.agmp.fms.domain.resvo;
-
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-@Data
-public class FmsScreenFarmStatResVo {
-    private String blockId;
-    private String blockName;
-    private BigDecimal pickWeight;
-    private BigDecimal planArea;
-}

+ 36 - 0
src/main/java/com/yunfeiyun/agmp/fms/domain/resvo/FmsScreenTaskStatResVo.java

@@ -0,0 +1,36 @@
+package com.yunfeiyun.agmp.fms.domain.resvo;
+
+import com.yunfeiyun.agmp.common.enums.DictTypeEnums;
+import com.yunfeiyun.agmp.common.utils.DictUtils;
+import com.yunfeiyun.agmp.common.utils.StringUtils;
+import lombok.Data;
+
+@Data
+public class FmsScreenTaskStatResVo {
+    /**
+     * 任务类型
+     */
+    private String taskType;
+    /**
+     * 任务类型内容
+     */
+    private String taskTypeContent;
+    /**
+     * 任务数量
+     */
+    private String count;
+
+    public String getTaskTypeContent() {
+        if (!StringUtils.isEmpty(this.taskType)) {
+            if("-1".equals(this.taskType)){
+                return "采收";
+            }
+            if("-2".equals(this.taskType)){
+                return "巡田";
+            }
+            return DictUtils.getDictLabel(DictTypeEnums.FMS_TASK_WORK_TYPE.getCode(), this.taskType);
+        } else {
+            return "";
+        }
+    }
+}

+ 3 - 0
src/main/java/com/yunfeiyun/agmp/fms/mapper/FmsScreenMapper.java

@@ -5,6 +5,7 @@ import com.yunfeiyun.agmp.fms.domain.dto.FmsScreenPlanStatDto;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenInvestStatResVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenInvestStatResVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenLandStatResVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenLandStatResVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanPickStatResVo;
 import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanPickStatResVo;
+import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenTaskStatResVo;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -34,4 +35,6 @@ public interface FmsScreenMapper
     public List<FmsScreenPlanPickStatResVo> planPickStat(FmsScreenStatReqVo reqVo);
     public List<FmsScreenPlanPickStatResVo> planPickStat(FmsScreenStatReqVo reqVo);
 
 
     public List<FmsScreenInvestStatResVo> investStat(FmsScreenStatReqVo reqVo);
     public List<FmsScreenInvestStatResVo> investStat(FmsScreenStatReqVo reqVo);
+
+    public List<FmsScreenTaskStatResVo> taskStat(FmsScreenStatReqVo reqVo);
 }
 }

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

@@ -1,10 +1,7 @@
 package com.yunfeiyun.agmp.fms.service;
 package com.yunfeiyun.agmp.fms.service;
 
 
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenInvestStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenLandStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanPickStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanStatResVo;
+import com.yunfeiyun.agmp.fms.domain.resvo.*;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -27,5 +24,5 @@ public interface IFmsScreenService {
 
 
     public List<FmsScreenInvestStatResVo> investStat(FmsScreenStatReqVo reqVo);
     public List<FmsScreenInvestStatResVo> investStat(FmsScreenStatReqVo reqVo);
 
 
-    public List<FmsScreenPlanPickStatResVo> farmStat(FmsScreenStatReqVo reqVo);
+    public List<FmsScreenTaskStatResVo> taskStat(FmsScreenStatReqVo reqVo);
 }
 }

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

@@ -2,10 +2,7 @@ package com.yunfeiyun.agmp.fms.service.impl;
 
 
 import com.yunfeiyun.agmp.fms.domain.dto.FmsScreenPlanStatDto;
 import com.yunfeiyun.agmp.fms.domain.dto.FmsScreenPlanStatDto;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
 import com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenInvestStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenLandStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanPickStatResVo;
-import com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenPlanStatResVo;
+import com.yunfeiyun.agmp.fms.domain.resvo.*;
 import com.yunfeiyun.agmp.fms.mapper.FmsScreenMapper;
 import com.yunfeiyun.agmp.fms.mapper.FmsScreenMapper;
 import com.yunfeiyun.agmp.fms.service.IFmsScreenService;
 import com.yunfeiyun.agmp.fms.service.IFmsScreenService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -98,7 +95,7 @@ public class FmsScreenServiceImpl implements IFmsScreenService {
     }
     }
 
 
     @Override
     @Override
-    public List<FmsScreenPlanPickStatResVo> farmStat(FmsScreenStatReqVo reqVo) {
-        return null;
+    public List<FmsScreenTaskStatResVo> taskStat(FmsScreenStatReqVo reqVo) {
+        return fmsScreenMapper.taskStat(reqVo);
     }
     }
 }
 }

+ 9 - 0
src/main/resources/mapper/FmsScreenMapper.xml

@@ -53,4 +53,13 @@
             LEFT JOIN FmsBlock AS fb ON fb.blockId = f.blockId
             LEFT JOIN FmsBlock AS fb ON fb.blockId = f.blockId
     </select>
     </select>
 
 
+    <select id="taskStat" parameterType="com.yunfeiyun.agmp.fms.domain.reqvo.FmsScreenStatReqVo"
+            resultType="com.yunfeiyun.agmp.fms.domain.resvo.FmsScreenTaskStatResVo">
+        SELECT ft.taskType, COUNT(ft.taskType) AS count
+        FROM FmsTask AS ft
+        WHERE ft.landId = #{landId} AND ft.taskStatus = '3'
+            AND (ft.taskCompletedate >= #{startDate} AND ft.taskCompletedate <![CDATA[ <= ]]> #{endDate})
+        GROUP BY ft.taskType
+    </select>
+
 </mapper>
 </mapper>