| | |
| | | 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.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | |
| | | |
| | | 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.*; |
| | | |
| | | /** |
| | | * 控制器 |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "新增", notes = "传入task") |
| | | public R save(@Valid @RequestBody Taskqd taskqd) { |
| | | pushMsgService.pushMsg(taskqd.getJurisdiction()); |
| | | return R.status(taskqdService.save(taskqd)); |
| | | } |
| | | |
| | |
| | | @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)); |
| | | } |
| | | |
| | |
| | | */ |
| | | @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(); |
| | | //人数 |
| | |
| | | //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 { |
| | |
| | | } |
| | | |
| | | @GetMapping("/cancelTask") |
| | | public R cancelTask(String rid, String serid,String name) { |
| | | public R cancelTask(String rid, String serid, String name) { |
| | | //任务查询 |
| | | //String id = taskqdService.querySerid(rid); |
| | | List<Taskqd> list = taskqdService.selectList(Integer.valueOf(rid)); |
| | |
| | | String id = list.get(0).getSerid(); |
| | | |
| | | String captain[] = id.split(","); |
| | | if(captain[0].equals(serid)){ |
| | | 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 (!name.equals(nameList[i])){ |
| | | newteam += nameList[i] + ","; |
| | | if (flage) { |
| | | if (!name.equals(nameList[i])) { |
| | | newteam += nameList[i] + ","; |
| | | } else { |
| | | flage = false; |
| | | } |
| | | } else { |
| | | newteam += nameList[i] + ","; |
| | | } |
| | | |
| | | } |
| | | //去除最后的逗号 |
| | | if (newteam.length() != 0){ |
| | | newteam.substring(0,newteam.length()-1); |
| | | if (newteam.length() != 0) { |
| | | newteam = newteam.substring(0, newteam.length() - 1); |
| | | } |
| | | |
| | | //扣去人数 |
| | |
| | | //成员id拼接逗号方便删除 |
| | | String delid = "," + serid; |
| | | //将指定成员删除 |
| | | String resid = id.replaceAll(delid,""); |
| | | String resid = id.replaceAll(delid, ""); |
| | | |
| | | return R.status(taskqdService.updateSerid(rid,resid,newteam,newnum)); |
| | | 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); |
| | | } |
| | | } |