|
|
@@ -1,9 +1,7 @@
|
|
|
package com.yunfeiyun.agmp.fms.controller;
|
|
|
|
|
|
-import com.alibaba.fastjson2.JSON;
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
-import com.github.pagehelper.PageHelper;
|
|
|
import com.yunfeiyun.agmp.common.constant.ErrorCode;
|
|
|
import com.yunfeiyun.agmp.common.core.controller.BaseController;
|
|
|
import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
|
|
|
@@ -16,10 +14,10 @@ import com.yunfeiyun.agmp.common.service.WeatherService;
|
|
|
import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.SecurityUtils;
|
|
|
import com.yunfeiyun.agmp.fms.domain.*;
|
|
|
-import com.yunfeiyun.agmp.fms.domain.reqvo.*;
|
|
|
+import com.yunfeiyun.agmp.fms.domain.reqvo.FmsPlanReqVo;
|
|
|
+import com.yunfeiyun.agmp.fms.domain.reqvo.FmsTaskListReqVo;
|
|
|
+import com.yunfeiyun.agmp.fms.domain.reqvo.ScreenDataReqVo;
|
|
|
import com.yunfeiyun.agmp.fms.domain.resvo.*;
|
|
|
-import com.yunfeiyun.agmp.fms.domain.vo.FmsSolarVo;
|
|
|
-import com.yunfeiyun.agmp.fms.mapper.FmsCropMapper;
|
|
|
import com.yunfeiyun.agmp.fms.service.*;
|
|
|
import com.yunfeiyun.agmp.fms.util.DataAuthUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
@@ -33,13 +31,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
-import java.time.DayOfWeek;
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.LocalDateTime;
|
|
|
-import java.time.LocalTime;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.time.temporal.TemporalAdjusters;
|
|
|
-import java.time.temporal.WeekFields;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -134,7 +125,7 @@ public class FmsConsoleController extends BaseController {
|
|
|
appendBlockStat(fmsConsoleStatResVo,blockIds);
|
|
|
// 拼装种植统计数据
|
|
|
appendPlanStat(fmsConsoleStatResVo,blockIds);
|
|
|
- return AjaxResult.success();
|
|
|
+ return AjaxResult.success(fmsConsoleStatResVo);
|
|
|
}
|
|
|
|
|
|
@PreAuthorize("@ss.hasPermi('fms:console:console:data')")
|
|
|
@@ -150,9 +141,10 @@ public class FmsConsoleController extends BaseController {
|
|
|
}else {
|
|
|
blockIds = null;
|
|
|
}
|
|
|
- List<FmsCropPlanAreaResVo> fmsCropPlanAreaResVos = fmsPlanService.selectCropPlanAreaTop(blockIds);
|
|
|
+ startPage();
|
|
|
+ List<FmsCropPlanAreaResVo> fmsCropPlanAreaResVos = fmsPlanService.selectCropPlanAreaTop(blockIds,SecurityUtils.getTid());
|
|
|
List<String> cropIds = fmsCropPlanAreaResVos.stream().map(FmsCropPlanAreaResVo::getCropId).collect(Collectors.toList());
|
|
|
- List<FmsCrop> fmsCropList = fmsCropService.selectFmsCropListByCropIds(cropIds);
|
|
|
+ List<FmsCrop> fmsCropList = fmsCropService.selectFmsCropListByCropIds(cropIds,SecurityUtils.getTid());
|
|
|
Map<String,FmsCrop> cropMap = fmsCropList.stream().collect(Collectors.toMap(FmsCrop::getCropId,item->item));
|
|
|
for(FmsCropPlanAreaResVo fmsCropPlanAreaResVo : fmsCropPlanAreaResVos){
|
|
|
FmsCrop fmsCrop = cropMap.get(fmsCropPlanAreaResVo.getCropId());
|
|
|
@@ -198,45 +190,105 @@ public class FmsConsoleController extends BaseController {
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('fms:console:task:stat')")
|
|
|
@GetMapping(value = "/task/stat")
|
|
|
- public AjaxResult selectTaskStat() {
|
|
|
- FmsTaskListReqVo reqVo = new FmsTaskListReqVo();
|
|
|
-// reqVo.setTaskAuditstatus(TaskStatus.COMPLETED.getCode());
|
|
|
-// reqVo.setTaskAudittype(CommonEnums.TASK_AUDIT_TYPE_DOWN.getCode() + "," + CommonEnums.TASK_AUDIT_TYPE_UP.getCode());
|
|
|
- reqVo.setStartDate(LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- reqVo.setEndDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- List<FmsTaskTypeCountResVo> typeCounts = fmsTaskService.selectCountFmsTaskByType(reqVo);
|
|
|
-
|
|
|
- //待执行
|
|
|
-// reqVo.setTaskAuditstatus(TaskStatus.EXECUTING.getCode() + "," + TaskStatus.UNAUDITED.getCode());
|
|
|
-// int count1 = fmsTaskService.selectCountFmsTask(reqVo);
|
|
|
-
|
|
|
- reqVo.setTaskAuditstatus(TaskStatus.COMPLETED.getCode());
|
|
|
- reqVo.setStartDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN).format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- int count1 = fmsTaskService.selectCountFmsTask(reqVo);
|
|
|
-
|
|
|
- reqVo.setTaskAuditstatus(TaskStatus.COMPLETED.getCode());
|
|
|
- reqVo.setStartDate(LocalDateTime.of(LocalDate.now(), LocalTime.MIN).with(DayOfWeek.MONDAY).format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- int count2 = fmsTaskService.selectCountFmsTask(reqVo);
|
|
|
-
|
|
|
- reqVo.setStartDate(LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- int count3 = fmsTaskService.selectCountFmsTask(reqVo);
|
|
|
-
|
|
|
- reqVo.setStartDate(LocalDateTime.now().with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN).format(DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode())));
|
|
|
- int count4 = fmsTaskService.selectCountFmsTask(reqVo);
|
|
|
-
|
|
|
- Map<String, Object> statMap = new HashMap<>();
|
|
|
- statMap.put("count1", count1);
|
|
|
- statMap.put("count2", count2);
|
|
|
- statMap.put("count3", count3);
|
|
|
- statMap.put("count4", count4);
|
|
|
-
|
|
|
- Map<String, Object> resultMap = new HashMap<>();
|
|
|
- resultMap.put("typeCounts", typeCounts);
|
|
|
- resultMap.put("statMap", statMap);
|
|
|
-
|
|
|
- return AjaxResult.success(resultMap);
|
|
|
+ public AjaxResult selectTaskStat(){
|
|
|
+ Map<String,Object> result = new HashMap<>();
|
|
|
+ List<String> blockIds = null;
|
|
|
+ if (SecurityUtils.isValidate()) {
|
|
|
+ blockIds = dataAuthUtil.blockList();
|
|
|
+ }
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.MONTH,0);
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH,1);
|
|
|
+ // 今年开始时间
|
|
|
+ String yearStartDate = DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_00_00_00);
|
|
|
+ calendar.add(Calendar.YEAR,1);
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH,-1);
|
|
|
+ // 今年结束时间
|
|
|
+ String yearEndDate = DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_23_59_59);
|
|
|
+ FmsTaskListReqVo fmsTaskQuery = new FmsTaskListReqVo();
|
|
|
+ fmsTaskQuery.setBlockIds(blockIds);
|
|
|
+ fmsTaskQuery.setStartDate(yearStartDate);
|
|
|
+ fmsTaskQuery.setEndDate(yearEndDate);
|
|
|
+ // 查询出今年所有农事任务
|
|
|
+ List<FmsTask> yearTaskList = fmsTaskService.selectFmsTaskList(fmsTaskQuery);
|
|
|
+ Date[] monthDate = getMonthDate();
|
|
|
+ Date[] weekDate = getWeekDate();
|
|
|
+ Map<String,JSONObject> weekTaskMap = new HashMap<>();
|
|
|
+ Map<String,JSONObject> monthTaskMap = new HashMap<>();
|
|
|
+ Map<String,JSONObject> yearTaskMap = new HashMap<>();
|
|
|
+ int completeTaskNum = 0;
|
|
|
+ int executingTaskNum = 0;
|
|
|
+ for(FmsTask fmsTask : yearTaskList){
|
|
|
+ Date date = DateUtils.parseDate(fmsTask.getTaskPlanstartdate());
|
|
|
+ if(DateUtils.isBetween(date,weekDate[0],weekDate[1])){
|
|
|
+ // 属于当前周
|
|
|
+ addTaskTypeNum(weekTaskMap,fmsTask);
|
|
|
+ }
|
|
|
+ if(DateUtils.isBetween(date,monthDate[0],monthDate[1])){
|
|
|
+ // 属于当前月
|
|
|
+ addTaskTypeNum(monthTaskMap,fmsTask);
|
|
|
+ }
|
|
|
+ // 属于当前年
|
|
|
+ addTaskTypeNum(yearTaskMap,fmsTask);
|
|
|
+ if(TaskStatus.COMPLETED.equal(fmsTask.getTaskStatus())){
|
|
|
+ completeTaskNum++;
|
|
|
+ }else if(!TaskStatus.STOP.equal(fmsTask.getTaskStatus())){
|
|
|
+ executingTaskNum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ result.put("executingTaskNum",executingTaskNum);
|
|
|
+ result.put("completeTaskNum",completeTaskNum);
|
|
|
+ result.put("weekTaskStat",weekTaskMap.values());
|
|
|
+ result.put("monthTaskStat",monthTaskMap.values());
|
|
|
+ result.put("yearTaskStat",yearTaskMap.values());
|
|
|
+ return AjaxResult.success(result);
|
|
|
+ }
|
|
|
+ private Date[] getMonthDate(){
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ // 初始化当前时间
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ // 设置当前时间是当月第一天
|
|
|
+ calendar.set(Calendar.DAY_OF_MONTH,1);
|
|
|
+ // 当前月开始时间
|
|
|
+ Date monthStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_00_00_00));
|
|
|
+ // 月份加1
|
|
|
+ calendar.add(Calendar.MONTH,1);
|
|
|
+ // 当前时间减1天
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH,-1);
|
|
|
+ // 当前月结束时间
|
|
|
+ Date monthEndDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_23_59_59));
|
|
|
+ return new Date[]{monthStartDate,monthEndDate};
|
|
|
+ }
|
|
|
+ private Date[] getWeekDate(){
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ // 初始化当前时间
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ // 设置每周的第一天是以周一开始
|
|
|
+ calendar.setFirstDayOfWeek(Calendar.MONDAY);
|
|
|
+ // 设置当前时间是周一
|
|
|
+ calendar.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
|
|
|
+ // 获取当前周开始时间
|
|
|
+ Date weekStartDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_00_00_00));
|
|
|
+ // 周序加1
|
|
|
+ calendar.add(Calendar.WEEK_OF_MONTH,1);
|
|
|
+ // 当前时间减1天
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH,-1);
|
|
|
+ // 获取当前周结束时间
|
|
|
+ Date weekEndDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS,DateUtils.formatDate(calendar.getTime(),DateUtils.YYYY_MM_DD_23_59_59));
|
|
|
+ return new Date[]{weekStartDate,weekEndDate};
|
|
|
+ }
|
|
|
+ // 统计任务种类数量
|
|
|
+ private void addTaskTypeNum(Map<String,JSONObject> map, FmsTask fmsTask){
|
|
|
+ JSONObject jsonObject = map.get(fmsTask.getTaskType());
|
|
|
+ if(null == jsonObject){
|
|
|
+ jsonObject = new JSONObject();
|
|
|
+ map.put(fmsTask.getTaskType(),jsonObject);
|
|
|
+ jsonObject.put("value", 1);
|
|
|
+ jsonObject.put("name",fmsTask.getTaskTypeContent());
|
|
|
+ }else {
|
|
|
+ jsonObject.put("value",jsonObject.getIntValue("value")+1);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* 获取农事任务统计信息
|
|
|
@@ -249,9 +301,7 @@ public class FmsConsoleController extends BaseController {
|
|
|
fmsMessageResVoMap.put(FmsMessageResVoType.TASK.getType(),new FmsMessageResVo(FmsMessageResVoType.TASK));
|
|
|
fmsMessageResVoMap.put(FmsMessageResVoType.CHANGE.getType(),new FmsMessageResVo(FmsMessageResVoType.CHANGE));
|
|
|
fmsMessageResVoMap.put(FmsMessageResVoType.PICK.getType(),new FmsMessageResVo(FmsMessageResVoType.PICK));
|
|
|
- // fmsTaskService.appendTaskMessage(fmsMessageResVoMap);
|
|
|
fmsWarnService.appendWarnMessage(fmsMessageResVoMap);
|
|
|
- // wmsChangeapplyService.appendChangeMessage(fmsMessageResVoMap);
|
|
|
return AjaxResult.success(new ArrayList<>(fmsMessageResVoMap.values()));
|
|
|
}
|
|
|
|