From b17f234c9879284c5f35f80e21ef6fa219235143 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 11:31:00 +0800
Subject: [PATCH] 任务导出查询修改
---
src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java | 209 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 202 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java b/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
index 6e0ca70..147b0b1 100644
--- a/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
+++ b/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,19 +37,20 @@
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;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
/**
* 控制器
@@ -82,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));
}
@@ -94,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));
}
@@ -104,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));
}
@@ -147,7 +174,54 @@
*/
@PostMapping("/Graborder")
public R Graborder(@Valid @RequestBody Taskqd taskqd) {
+
+ //要接的任务
List<Taskqd> list = taskqdService.selectList(taskqd.getId());
+
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+ //转换
+ try {
+
+ //获取要接任务的时间戳
+ Date timea = sdf.parse(list.get(0).getTime());
+ 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(), "2");
+ for (int i = 0; i < yjlist.size(); i++) {
+ //获取已接任务开始时间的时间戳
+ Date times = sdf.parse(yjlist.get(i).getTime());
+
+ 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("已有正在进行的同时段任务");
+ }
+ }
+ }
+
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+
//总数
Integer jnum = list.get(0).getJnum();
//人数
@@ -163,7 +237,7 @@
//String serid2 = list.get(0).getSerid();
//String substring = serid2.substring(0, serid.length() - 1);
//String s = serid + substring;
- System.out.println("用户id:"+serid);
+ System.out.println("用户id:" + serid);
taskqdService.updatet(taskqd.getId(), i, serid, null, null);
return R.success("抢单成功");
} else {
@@ -307,7 +381,128 @@
return R.data(map);
}
-// @GetMapping("/")
+ @GetMapping("/cancelTask")
+ public R cancelTask(String rid, String serid, String name) {
+ //任务查询
+ //String id = taskqdService.querySerid(rid);
+ List<Taskqd> list = taskqdService.selectList(Integer.valueOf(rid));
+
+ //获取参与者id
+ String id = list.get(0).getSerid();
+
+ String captain[] = id.split(",");
+ if (captain[0].equals(serid)) {
+ return R.status(taskqdService.removeByIds(Func.toLongList(rid)));
+ }
+
+ //获取参与者名称
+ String[] nameList = list.get(0).getTeam().split(",");
+ //创建新的参与者
+ String newteam = "";
+ //设置标识防止删除同名人员
+ boolean flage = true;
+ for (int i = 0; i < nameList.length; i++) {
+ if (flage) {
+ if (!name.equals(nameList[i])) {
+ newteam += nameList[i] + ",";
+ } else {
+ flage = false;
+ }
+ } else {
+ newteam += nameList[i] + ",";
+ }
+
+ }
+ //去除最后的逗号
+ if (newteam.length() != 0) {
+ newteam = newteam.substring(0, newteam.length() - 1);
+ }
+
+ //扣去人数
+ int newnum = list.get(0).getNum() - 1;
+
+ //成员id拼接逗号方便删除
+ String delid = "," + serid;
+ //将指定成员删除
+ String resid = id.replaceAll(delid, "");
+
+ return R.status(taskqdService.updateSerid(rid, resid, newteam, newnum));
+ }
+
+ @GetMapping("/taskCount")
+ public R cancelTask(String id, String type) {
+ List<Map<String, Object>> cout = taskqdService.taskCount(id, type);
+ List<TaskqdVO> list = taskqdService.getlist(id, type);
+ Map<String, Object> res = new HashMap<>();
+ res.put("ywc", cout.get(0).get("count"));
+ res.put("wwc", cout.get(1).get("count"));
+ res.put("data", list);
+ return R.data(res);
+ }
+
+ /**
+ * 查询所有任务轨迹以及人员轨迹
+ * @return
+ */
+ @GetMapping("/queryAllTrar")
+ public R queryAllTrar() {
+ List<Map<String, Object>> allTask = taskqdService.allTask();
+ return R.data(allTask);
+ }
+
+ /**
+ * @param nowTime 当前时间
+ * @param startTime 开始时间
+ * @param endTime 结束时间
+ * @return
+ * @author sunran 判断当前时间在时间区间内
+ */
+ public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
+ if (nowTime.getTime() == startTime.getTime()
+ || nowTime.getTime() == endTime.getTime()) {
+ return true;
+ }
+
+ Calendar date = Calendar.getInstance();
+ date.setTime(nowTime);
+
+ Calendar begin = Calendar.getInstance();
+ begin.setTime(startTime);
+
+ Calendar end = Calendar.getInstance();
+ end.setTime(endTime);
+
+ if (date.after(begin) && date.before(end)) {
+ return true;
+ } else {
+ 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);
+ }
}
--
Gitblit v1.9.3