洪城义警-正式版后台
zhongrj
2023-06-27 b17f234c9879284c5f35f80e21ef6fa219235143
src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
@@ -22,10 +22,14 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import me.zhyd.oauth.log.Log;
import org.joda.time.DateTime;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.task.entity.Task;
@@ -33,12 +37,14 @@
import org.springblade.modules.task.vo.TaskVO;
import org.springblade.modules.task.wrapper.TaskWrapper;
import org.springblade.modules.taskqd.entity.Taskqd;
import org.springblade.modules.taskqd.excel.TaskExcel;
import org.springblade.modules.taskqd.service.impl.TaskqdServiceImpl;
import org.springblade.modules.taskqd.vo.TaskqdVO;
import org.springblade.modules.taskqd.wrapper.TaskqdWrapper;
import org.springblade.modules.webscoket.service.IPushMsgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@@ -81,8 +87,21 @@
   @ApiOperationSupport(order = 2)
   @ApiOperation(value = "分页", notes = "传入task")
   public R<IPage<TaskqdVO>> list(Taskqd taskqd, Query query) {
      IPage<Taskqd> pages = taskqdService.page(Condition.getPage(query), Condition.getQueryWrapper(taskqd));
      IPage<Taskqd> pages = taskqdService.page(Condition.getPage(query), Condition.getQueryWrapper(taskqd).orderByDesc("time"));
      return R.data(TaskqdWrapper.build().pageVO(pages));
   }
   /**
    * 自定义分页查询
    * @param taskqd
    * @param query
    * @return
    */
   @GetMapping("/page")
   @ApiOperationSupport(order = 2)
   @ApiOperation(value = "分页", notes = "传入task")
   public R selectTaskQdPage(TaskqdVO taskqd, Query query) {
      return R.data(taskqdService.selectTaskQdPage(Condition.getPage(query), taskqd));
   }
@@ -93,6 +112,7 @@
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "新增", notes = "传入task")
   public R save(@Valid @RequestBody Taskqd taskqd) {
      pushMsgService.pushMsg(taskqd.getJurisdiction());
      return R.status(taskqdService.save(taskqd));
   }
@@ -103,6 +123,14 @@
   @ApiOperationSupport(order = 5)
   @ApiOperation(value = "修改", notes = "传入task")
   public R update(@Valid @RequestBody Taskqd taskqd) {
      if (taskqd.getStime() == null || taskqd.getStime().equals("")){
         taskqd.setStime(null);
      }
      if (taskqd.getSendtime() == null || taskqd.getSendtime().equals("")){
         taskqd.setSendtime(null);
      }
      return R.status(taskqdService.updateById(taskqd));
   }
@@ -155,23 +183,38 @@
      //转换
      try {
         //获取要接任务的时间戳 + 两个小时
         //获取要接任务的时间戳
         Date timea = sdf.parse(list.get(0).getTime());
         Long start = timea.getTime() + 2 * 60 * 60;
         System.out.println(sdf.format(start));
         Date timejs = sdf.parse(list.get(0).getEndtime());
         System.out.println("开始时间——————"+timea.getTime());
         Long start = timea.getTime() ;
         Long start2 = timejs.getTime() ;
         System.out.println("开始时间——————"+start);
         System.out.println("开始时间——————"+sdf.format(start));
         //判断是否有同时间段的任务
         //已接的任务
         List<TaskqdVO> yjlist = taskqdService.getlist(taskqd.getSerid().toString(), null);
         List<TaskqdVO> yjlist = taskqdService.getlist(taskqd.getSerid().toString(), "2");
         for (int i = 0; i < yjlist.size(); i++) {
            //获取已接任务的时间戳
            //获取已接任务开始时间的时间戳
            Date times = sdf.parse(yjlist.get(i).getTime());
            Date timeb = sdf.parse(yjlist.get(i).getEndtime());
            Long end = timeb.getTime();
            if (end > start) {
               return R.fail("已有正在进行的同时段任务");
            if (times.getTime() >= start2){
               //已接任务提前两个小时
               Long ends = times.getTime() - 2 * 60 * 60 * 1000;
               System.out.println("结束时间——————"+sdf.format(ends));
               if (ends < start2) {
                  return R.fail("已有正在进行的同时段任务");
               }
            }else{
               //获取已接任务的结束时间戳
               Date timeb = sdf.parse(yjlist.get(i).getEndtime());
               //已接任务后两个小时
               Long end = timeb.getTime()+ 2 * 60 * 60 * 1000;
               System.out.println("结束时间——————"+sdf.format(end));
               if (end > start) {
                  return R.fail("已有正在进行的同时段任务");
               }
            }
         }
@@ -398,6 +441,18 @@
   }
   /**
    * 查询所有任务轨迹以及人员轨迹
    * @return
    */
   @GetMapping("/queryAllTrar")
   public R queryAllTrar() {
      List<Map<String, Object>> allTask = taskqdService.allTask();
      return R.data(allTask);
   }
   /**
    * @param nowTime   当前时间
    * @param startTime 开始时间
    * @param endTime   结束时间
@@ -425,4 +480,29 @@
         return false;
      }
   }
   /**
    * 根据派出所展示发布数量前十五,根据日周月切换
    * @param jurisdiction 派出所编号
    * @param startTime 发布时间
    * @param period 日(day) 月(week) 年(year)
    * @return
    */
   @GetMapping("/countTaskByJur")
   @ApiOperation(value = "统计")
   public R countTaskByJur(String jurisdiction, String startTime,String period ){
      List<Taskqd> list = taskqdService.countTaskByJur(jurisdiction,startTime,period);
      return R.data(list);
   }
   /**
    * 导出任务数据
    * @param task
    * @param response
    */
   @GetMapping("export-task")
   public void exportTask(TaskqdVO task, HttpServletResponse response) {
      List<TaskExcel> list = taskqdService.exportTask(task);
      ExcelUtil.export(response, "任务数据" + DateUtil.time(), "任务数据表", list, TaskExcel.class);
   }
}