Commit 1625eea4 by 宋珺琪

websocket 修改 添加已读接口 添加websocket提示消息记录==

parent aec6febb
package com.founder.commonutils.model.newPublicEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @description 记录websocket发送消息
* @author zhengkai.blog.csdn.net
* @date 2023-02-13
*/
@Data
@ApiModel("记录websocket发送消息")
public class SkWebsocketMessage implements Serializable {
/**
* 主键web随机uuid
*/
@TableId(type = IdType.INPUT)
@ApiModelProperty("主键web随机uuid")
private String id;
@ApiModelProperty("任务id")
private String rwid;
/**
* 消息名称
*/
@ApiModelProperty("消息名称")
private String messageName;
/**
* 消息类型 单发群发
*/
@ApiModelProperty("消息类型")
private String messageType;
/**
* 消息内容
*/
@ApiModelProperty("消息内容")
private String messageContent;
/**
* 发送人姓名
*/
@ApiModelProperty("发送人姓名")
private String senderName;
/**
* 发送人身份证号
*/
@ApiModelProperty("发送人身份证号")
private String senderIdcard;
/**
* 发送人警号
*/
@ApiModelProperty("发送人警号")
private String senderAlarm;
/**
* 发送时间
*/
@ApiModelProperty("发送时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date senderTime;
/**
* 是否已读 0未读 1已读
*/
@ApiModelProperty("是否已读")
private String isRead;
@ApiModelProperty("是否删除")
private String isDeleted;
@ApiModelProperty(value = "开始时间")
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
@ApiModelProperty(value = "当前第几页")
@TableField(exist = false)
private int page;
@ApiModelProperty(value = "每页多少行")
@TableField(exist = false)
private int limit;
}
\ No newline at end of file
......@@ -50,6 +50,10 @@ public class SkSchedule {
@TableField("zjhm")
private String zjhm;
@ApiModelProperty(value = "登记人警号")
@TableField("policeCard")
private String policeCard;
@ApiModelProperty(value = "登记人姓名")
@TableField("xm")
private String xm;
......
......@@ -10,8 +10,10 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
......@@ -30,11 +32,9 @@ public class PaperEntity implements Serializable {
private String userName;
@ApiModelProperty(value = "文章作者姓名")
@TableField(exist = false)
private String name;
@ApiModelProperty(value = "文章作者警号")
@TableField(exist = false)
private String policemanId;
@ApiModelProperty(value = "文章内容")
......@@ -71,4 +71,16 @@ public class PaperEntity implements Serializable {
@ApiModelProperty(value = "每页多少行")
@TableField(exist = false)
private int limit;
@ApiModelProperty(value = "开始时间")
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty(value = "结束时间")
@TableField(exist = false)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
}
......@@ -36,7 +36,7 @@ public class SkRegionalsTaskParam {
@ApiModelProperty(value = "列数")
private Integer pageSize;
@ApiModelProperty(value = "任务状态")
@ApiModelProperty(value = "任务状态")//未完成 1 已完成 2 全部 3
private String state;
@ApiModelProperty(value = "任务编号(RW开头)")
......
......@@ -25,6 +25,7 @@ public class LCSS {
public void printLcs(int[][] flag, List<Coordinate> a, int i, int j) {
if (i == 0 || j == 0) return;
System.out.println("flag[i][j]="+flag[i][j] +" "+"i="+i +"j="+j);
if (flag[i][j] == 1) {
printLcs(flag, a, i - 1, j - 1);
lcs.add(a.get(i - 1));
......@@ -35,6 +36,7 @@ public class LCSS {
}
}
//轨迹相似度
public Map lcs(List<Coordinate> l1, List<Coordinate> l2, int radius,int minutes) {
long timeItervalMinutes = minutes * 60 * 1000;
// 弱轨迹转换
......@@ -48,27 +50,30 @@ public class LCSS {
int len2 = l2.size();
int[][] c = new int[len1 + 1][len2 + 1];
int[][] flag = new int[len1 + 1][len2 + 1];
// 外层遍历第一条轨迹
for (int i = 0; i < len1; i++) {
//内层遍历第二条轨迹
for (int j = 0; j < len2; j++) {
// 时间范围比较
// 时间范围比较 俩个点之间的时差
long timeIterval = Long.parseLong(l1.get(i).getTime()) - Long.parseLong(l2.get(j).getTime());
if (isNearby(l1.get(i), l2.get(j),radius)&&timeIterval<=timeItervalMinutes&&timeIterval>=-timeItervalMinutes) {
//第一条轨迹的第i个点和第二条轨迹的第j个点是否在radius范围内 && 俩个点之间的时差小于等于minutes && 俩个点之间的时差大于等于-minutes
if ( isNearby(l1.get(i), l2.get(j),radius) && timeIterval<=timeItervalMinutes && timeIterval>=-timeItervalMinutes) {
loneMz.add(l1.get(i));
ltwoMz.add(l2.get(j));
c[i + 1][j + 1] = c[i][j] + 1;
flag[i + 1][j + 1] = 1;//1='ok' //1表示箭头为 左上
//for循环知道行数列数的情况
//System.out.print(flag[i + 1][j + 1] + " ");
System.out.print("1++++"+flag[i + 1][j + 1] + " ");
} else if (c[i + 1][j] > c[i][j + 1]) {
c[i + 1][j + 1] = c[i + 1][j];
flag[i + 1][j + 1] = 2;//2='left' //2表示箭头向 上
//for循环知道行数列数的情况
//System.out.print(flag[i + 1][j + 1] + " ");
System.out.print("2++++"+flag[i + 1][j + 1] + " ");
} else {
c[i + 1][j + 1] = c[i][j + 1];
flag[i + 1][j + 1] = 3;//3='up' //3表示箭头向 左
//for循环知道行数列数的情况
//System.out.print(flag[i + 1][j + 1] + " ");
System.out.print("3++++"+flag[i + 1][j + 1] + " ");
}
}
......
package com.founder.servicebase.controller;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.util.JwtUser;
import com.founder.servicebase.meassage.WebSocketServer;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
@RestController
......@@ -27,8 +23,8 @@ public class WebSocketController {
@PostMapping("single")
@ApiOperation(value = "单发")
public void SingleMessage(String userId, String message) throws IOException {
WebSocketServer. SendMessage(WebSocketServer. map. get (userId),userId+"的任务:"+"已完成!"+message);
public void SingleMessage(String userId, String message, HttpServletRequest request) throws IOException {
WebSocketServer. SendMessage(WebSocketServer. map. get (userId),userId+"的任务:"+"已完成!"+message,"单发接口测试","10086",request);
}
......@@ -40,8 +36,8 @@ public class WebSocketController {
*/
@PostMapping("bunch")
@ApiOperation(value = "群发")
public void bunchMessage(@RequestParam("userId")List<String> userId,@RequestParam("message") String message) throws IOException {
WebSocketServer. BroadCastInfo(userId,message+"后台返回群发的消息" +"已完成!");
public void bunchMessage(@RequestParam("userId")List<String> userId,@RequestParam("message") String message,HttpServletRequest request) throws IOException {
WebSocketServer. BroadCastInfo(userId,message+"后台返回群发的消息" +"已完成!","群发接口测试",request);
}
......
package com.founder.servicebase.mapper.mysqlMapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.founder.commonutils.model.newPublicEntity.SkWebsocketMessage;
import org.springframework.stereotype.Component;
@Component
public interface SkWebsocketMessageMapper extends BaseMapper<SkWebsocketMessage> {
}
package com.founder.servicebase.meassage;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.json.JsonMapper;
import com.founder.commonutils.model.newPublicEntity.SkWebsocketMessage;
import springfox.documentation.service.ResponseMessage;
import javax.websocket.EncodeException;
import javax.websocket.Encoder;
import javax.websocket.EndpointConfig;
/**
* 服务端使用WebSocket的sendObject方法直接向前端传递一个对象
* 在@ServerEndpoint里指定Websocket的编码器
*/
public class ServerEncoder implements Encoder.Text<SkWebsocketMessage>{
@Override
public void destroy() {
}
@Override
public void init(EndpointConfig arg0) {
}
/*
* encode()方法里的参数和Text<T>里的T一致,如果你是Student,这里就是encode(Student student)
*/
@Override
public String encode(SkWebsocketMessage skWebsocketMessage) throws EncodeException {
return JSON.toJSONString(skWebsocketMessage);
}
}
package com.founder.servicebase.meassage;
import cn.hutool.http.HttpRequest;
import com.founder.commonutils.util.JwtUser;
import com.founder.commonutils.model.newPublicEntity.SkWebsocketMessage;
import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.util.KeyUtilNaotu;
import com.founder.servicebase.mapper.mysqlMapper.SkWebsocketMessageMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.TextMessage;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicInteger;
@ServerEndpoint(value = "/ws/asset")
@ServerEndpoint(value = "/ws/asset",encoders ={ ServerEncoder.class})
@Component
public class WebSocketServer {
public static Map<String,Session> map=new HashMap<String,Session>();
......@@ -31,6 +35,15 @@ public class WebSocketServer {
// concurrent包的线程安全Set,用来存放每个客户端对应的Session对象。
private static CopyOnWriteArraySet<Session> SessionSet = new CopyOnWriteArraySet<Session>();
@Autowired
private SkWebsocketMessageMapper skWebsocketMessageMapper;
private static WebSocketServer webSocketServer;
@PostConstruct
public void initt(){
webSocketServer = this;
webSocketServer.skWebsocketMessageMapper = this.skWebsocketMessageMapper;
}
/**
* 连接建立成功调用的方法
......@@ -85,7 +98,6 @@ public class WebSocketServer {
*/
public static void SendMessage(Session session, String message) {
try {
// session.getBasicRemote().sendText(String.format("%s (From Server,Session ID=%s)",message,session.getId()));
for (Session session1 : SessionSet) {
if (session.equals(session1)){
session.getBasicRemote().sendText(message);
......@@ -105,17 +117,89 @@ public class WebSocketServer {
}
}
/* *
* 发送对象
*/
public static void SendMessage(Session session,SkWebsocketMessage skWebsocketMessage , HttpServletRequest request) {
try {
for (Session session1 : SessionSet) {
if (session.equals(session1)){
//获取request中的用户信息
SysUser user = (SysUser)request.getAttribute("user");
skWebsocketMessage.setSenderAlarm(user.getPolicemanid());
skWebsocketMessage.setSenderName(user.getTrueName());
skWebsocketMessage.setSenderIdcard(user.getIdentitycard());
skWebsocketMessage.setId(KeyUtilNaotu.getJzKey("web"));
skWebsocketMessage.setMessageType("单发");
skWebsocketMessage.setSenderTime(new Date());
webSocketServer.skWebsocketMessageMapper.insert(skWebsocketMessage);
session.getBasicRemote().sendObject(skWebsocketMessage);
System.out.println("发送对象成功");
}
}
} catch (IOException | EncodeException e) {
log.error("发送消息出错:{}", e.getMessage());
e.printStackTrace();
}
}
/**
* 发送消息,实践表明,每次浏览器刷新,session会发生变化。
* @param session
* @param message
*/
public static void SendMessage(Session session, String message,String messageName,String rwid, HttpServletRequest request) {
try {
for (Session session1 : SessionSet) {
if (session.equals(session1)){
SkWebsocketMessage skWebsocketMessage = new SkWebsocketMessage();
//获取request中的用户信息
SysUser user = (SysUser)request.getAttribute("user");
skWebsocketMessage.setSenderAlarm(user.getPolicemanid());
skWebsocketMessage.setSenderName(user.getTrueName());
skWebsocketMessage.setSenderIdcard(user.getIdentitycard());
skWebsocketMessage.setId(KeyUtilNaotu.getJzKey("web"));
skWebsocketMessage.setRwid(rwid);
skWebsocketMessage.setMessageName(messageName);
skWebsocketMessage.setMessageType("单发");
skWebsocketMessage.setMessageContent(message);
skWebsocketMessage.setSenderTime(new Date());
webSocketServer.skWebsocketMessageMapper.insert(skWebsocketMessage);
session.getBasicRemote().sendText(message);
}
}
} catch (IOException e) {
log.error("发送消息出错:{}", e.getMessage());
e.printStackTrace();
}
}
/**
* 群发消息
* @param message
* @throws IOException
*/
public static void BroadCastInfo(List<String> userId, String message) {
public static void BroadCastInfo(List<String> userId, String message,String messageName, HttpServletRequest request) {
try {
for (Session session : map.values()) {
log.info("服务端群发给客户端[{}]发送消息{}", session.getId(), message);
synchronized (session) {
SkWebsocketMessage skWebsocketMessage = new SkWebsocketMessage();
//获取request中的用户信息
SysUser user = (SysUser)request.getAttribute("user");
skWebsocketMessage.setSenderAlarm(user.getPolicemanid());
skWebsocketMessage.setSenderName(user.getTrueName());
skWebsocketMessage.setSenderIdcard(user.getIdentitycard());
skWebsocketMessage.setId(KeyUtilNaotu.getJzKey("web"));
skWebsocketMessage.setMessageName(messageName);
skWebsocketMessage.setMessageType("群发");
skWebsocketMessage.setMessageContent(message);
skWebsocketMessage.setSenderTime(new Date());
webSocketServer.skWebsocketMessageMapper.insert(skWebsocketMessage);
SendMessage(session,message);
}
}
......
......@@ -99,8 +99,8 @@ public class RyAndAjController {
@RequestParam(name = "currentPage", defaultValue = "1") Integer currentPage,
@RequestParam(name = "pageSize", defaultValue = "5") Integer pageSize) {
QueryWrapper<TbStJzyp> wrapper = new QueryWrapper<>();
wrapper.eq(!StringUtil.isEmpty(ajmc),"ajmc", ajmc);
wrapper.eq(!StringUtil.isEmpty(cbdw),"sldw_gajgmc", cbdw);
wrapper.like(!StringUtil.isEmpty(ajmc),"ajmc", ajmc);
wrapper.like(!StringUtil.isEmpty(cbdw),"sldw_gajgmc", cbdw);
wrapper.eq(!StringUtil.isEmpty(bhcx),"asjbh", bhcx);
if (!StringUtil.isEmpty( afstartTime) && !StringUtil.isEmpty(afendTime)) {
wrapper.apply("asjfssj_asjfskssj between'" + afstartTime.toString() + "' and '" + afendTime.toString() +"'" );
......
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.ApiController;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.founder.commonutils.model.newPublicEntity.*;
import com.founder.commonutils.model.newPublicEntity.suggestionEntity.PaperEntity;
import com.founder.commonutils.model.vo.param.SkRegionalsResultAllParam;
import com.founder.commonutils.model.vo.param.SkRegionalsResultParam;
import com.founder.commonutils.model.vo.param.SkRegionalsResultSaveParam;
......@@ -21,6 +22,7 @@ import com.founder.servicebase.controller.ExcelControllerInterface;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import com.founder.publicapi.service.SkRegionalsResultService;
import com.founder.servicebase.mapper.mysqlMapper.SkWebsocketMessageMapper;
import com.founder.servicebase.meassage.WebSocketServer;
import com.founder.servicebase.service.SkDictionaryService;
import io.swagger.annotations.Api;
......@@ -74,6 +76,9 @@ public class SkRegionalsResultController extends ApiController implements ExcelC
public String imagesUrl;
@Value("${environment}")
public String environment;
@Autowired
private SkWebsocketMessageMapper skWebsocketMessageMapper;
/**
* 新增结果信息
*/
......@@ -256,7 +261,12 @@ public class SkRegionalsResultController extends ApiController implements ExcelC
// 给指定用户推送消息
Thread.sleep(5000);// 延时5秒后执行
try{
WebSocketServer.SendMessage(WebSocketServer.map.get(JwtUser.getUser(request).getIdentitycard()),"任务:"+taskList.get(0).getTaskname()+"已完成!");
SkWebsocketMessage skWebsocketMessage = new SkWebsocketMessage();
skWebsocketMessage.setMessageContent("任务:"+taskList.get(0).getTaskname()+"已完成!");
skWebsocketMessage.setMessageName(taskList.get(0).getTypename());
skWebsocketMessage.setRwid(taskList.get(0).getTaskid());
WebSocketServer.SendMessage(WebSocketServer.map.get(JwtUser.getUser(request).getIdentitycard()),skWebsocketMessage, request);
}catch (Exception e){
System.out.println("WebSocketServer异常===================="+e);
}
......@@ -281,7 +291,12 @@ public class SkRegionalsResultController extends ApiController implements ExcelC
skRegionalsTaskService.updateById(skRegionalsTask1);
// 给指定用户推送消息
try{
WebSocketServer.SendMessage(WebSocketServer.map.get(JwtUser.getUser(request).getIdentitycard()),"任务:"+taskList.get(0).getTaskname()+"已完成!");
SkWebsocketMessage skWebsocketMessage = new SkWebsocketMessage();
skWebsocketMessage.setMessageContent("任务:"+taskList.get(0).getTaskname()+"已完成!");
skWebsocketMessage.setMessageName(taskList.get(0).getTypename());
skWebsocketMessage.setRwid(taskList.get(0).getTaskid());
WebSocketServer.SendMessage(WebSocketServer.map.get(JwtUser.getUser(request).getIdentitycard()),skWebsocketMessage, request);
}catch (Exception e){
System.out.println("WebSocketServer异常===================="+e);
}
......@@ -297,6 +312,36 @@ public class SkRegionalsResultController extends ApiController implements ExcelC
}
/**
* 点击查看,修改是否已读
* @return
*/
@PostMapping("isread")
@ApiOperation(value = "点击查看修改是否已读")
@OperLog(message = "点击查看修改是否已读", operation = OperationType.QUERY)
public MapRestResult isread( @RequestBody SkWebsocketMessage skWebsocketMessage) {
QueryWrapper<SkWebsocketMessage> wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted","0");
wrapper.eq("rwid",skWebsocketMessage.getRwid());
SkWebsocketMessage skWebsocketMessage1 = skWebsocketMessageMapper.selectOne(wrapper);
if (skWebsocketMessage1!=null){
skWebsocketMessage1.setIsRead("1");
int i = skWebsocketMessageMapper.updateById(skWebsocketMessage1);
if ( i > 0 ){
return new MapRestResult(200,"已读",null);
}else {
return new MapRestResult(200,"已读失败",null);
}
}else {
return new MapRestResult().ok("没用此条任务信息!");
}
}
/**
* 修改结果信息
*/
@PostMapping("update")
......
......@@ -30,6 +30,7 @@ import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.stream.IntStream;
......@@ -177,6 +178,35 @@ public class SkRegionalsTaskController extends ApiController implements ExcelCon
count = skRegionalsTaskService.queryTaskInfoListCount(skRegionalsDetailParam);
}
return new MapRestResult(200, "OK", count, list);
}
/**
* 任务的统计接口,已完成多少个,未完成多少个,总共多少
*/
@PostMapping("queryCount")
@ApiOperation(value = "任务的统计接口")
@OperLog(message = "任务的统计接口", operation = OperationType.QUERY)
public MapRestResult queryCount() {
HashMap<String,Integer> map = new HashMap<>();
//全部
SkRegionalsTaskParam skRegionalsTaskParam = new SkRegionalsTaskParam();
skRegionalsTaskParam.setState("3");
int count = skRegionalsTaskService.queryTaskInfoListCount(skRegionalsTaskParam);
//已完成
SkRegionalsTaskParam skRegionalsTaskParam1 = new SkRegionalsTaskParam();
skRegionalsTaskParam1.setState("2");
int count1 = skRegionalsTaskService.queryTaskInfoListCount(skRegionalsTaskParam1);
//未完成
SkRegionalsTaskParam skRegionalsTaskParam2 = new SkRegionalsTaskParam();
skRegionalsTaskParam2.setState("1");
int count2 = skRegionalsTaskService.queryTaskInfoListCount(skRegionalsTaskParam2);
map.put("全部",count);
map.put("已完成",count1);
map.put("未完成",count2);
return new MapRestResult(200, "OK", map.size(), map);
}
......
package com.founder.publicapi.controller.SkypDesktop;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.founder.commonutils.model.newPublicEntity.ApprovalEntity.TbstApproveOrder;
import com.founder.commonutils.model.newPublicEntity.ApprovalEntity.TbstOrderDetail;
import com.founder.commonutils.model.newPublicEntity.MapRestResult;
import com.founder.commonutils.model.newPublicEntity.SkWebsocketMessage;
import com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkMenu;
import com.founder.commonutils.model.newPublicEntity.SkypDesktopEntity.SkSchedule;
import com.founder.commonutils.model.newPublicEntity.SysUser;
import com.founder.commonutils.util.Base64Util;
import com.founder.commonutils.util.KeyUtil;
import com.founder.commonutils.util.KeyUtilNaotu;
......@@ -15,9 +20,11 @@ import com.founder.publicapi.mapper.mysqlMapper.SkMenuMapper;
import com.founder.publicapi.mapper.mysqlMapper.SkScheduleMapper;
import com.founder.servicebase.logs.OperLog;
import com.founder.servicebase.logs.OperationType;
import com.founder.servicebase.mapper.mysqlMapper.SkWebsocketMessageMapper;
import com.founder.servicebase.meassage.WebSocketServer;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -25,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -48,6 +56,9 @@ public class SkypDesktopController {
@Autowired
WebSocketServer webSocketServer;
@Autowired
SkWebsocketMessageMapper skWebsocketMessageMapper;
/**
* 时空桌面菜单新增
......@@ -318,6 +329,54 @@ public class SkypDesktopController {
}
/**
* 查询记录的websocket发送消息
* sk_websocket_message
* @return
*/
@PostMapping("selectWebsocketMessage")
@ApiOperation(value = "查询记录的websocket发送消息")
@OperLog(message = "查询记录的websocket发送消息", operation = OperationType.QUERY)
public MapRestResult selectWebsocketMessage(@RequestBody SkWebsocketMessage skWebsocketMessage ){
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getMessageName()),"message_name",skWebsocketMessage.getMessageName());
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getMessageType()),"message_type",skWebsocketMessage.getMessageType());
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getSenderName()),"sender_name",skWebsocketMessage.getSenderName());
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getSenderIdcard()),"sender_idcard",skWebsocketMessage.getSenderIdcard());
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getSenderAlarm()),"sender_alarm",skWebsocketMessage.getSenderAlarm());
wrapper.eq(StringUtils.isNotEmpty(skWebsocketMessage.getIsRead()),"is_read",skWebsocketMessage.getIsRead());
if (ObjectUtil.isNotNull( skWebsocketMessage.getStartTime()) && ObjectUtil.isNotNull(skWebsocketMessage.getEndTime())) {
wrapper.apply("sender_time between'" + skWebsocketMessage.getStartTime().toString() + "' and '" + skWebsocketMessage.getEndTime().toString() +"'" );
} else if (ObjectUtil.isNotNull( skWebsocketMessage.getStartTime())) {
wrapper.apply("sender_time >= '" + skWebsocketMessage.getStartTime().toString() +"'" );
} else if (ObjectUtil.isNotNull(skWebsocketMessage.getEndTime())) {
wrapper.apply("sender_time <= '" + skWebsocketMessage.getEndTime().toString() +"'" );
}
IPage iPage = skWebsocketMessageMapper.selectPage(new Page(skWebsocketMessage.getPage(), skWebsocketMessage.getLimit()), wrapper);
return new MapRestResult(200,"ok",iPage.getTotal(),iPage.getRecords());
}
/**
* 删除记录的websocket发送消息
* sk_websocket_message
* @return
*/
@PostMapping("deleteWebsocketMessage")
@ApiOperation(value = "删除记录的websocket发送消息")
@OperLog(message = "删除记录的websocket发送消息", operation = OperationType.QUERY)
public MapRestResult deleteWebsocketMessage(@RequestBody SkWebsocketMessage skWebsocketMessage ){
skWebsocketMessage.setIsDeleted("1");
int i = skWebsocketMessageMapper.updateById(skWebsocketMessage);
if ( i > 0 ){
return new MapRestResult(200,"删除成功",null);
}else {
return new MapRestResult(200,"删除失败,没有该日程",null);
} }
/**
* 当前时间
* @return
*/
......@@ -374,6 +433,7 @@ public class SkypDesktopController {
if(flag){
System.out.println("++++++++++++++++++++++日程定时1111");
WebSocketServer.SendMessage(WebSocketServer. map. get (userId),"你的("+skSchedule.getBz()+")日程已经到了,请尽快处理");
init(skSchedule,"你的("+skSchedule.getBz()+")日程已经到了,请尽快处理");
System.out.println("++++++++++++++++++++++日程定时结束");
}
//当前时间
......@@ -389,12 +449,29 @@ public class SkypDesktopController {
if(flag1){
System.out.println("++++++++++++++++++++++日程定时1111");
WebSocketServer.SendMessage(WebSocketServer. map. get (userId),"你的("+skSchedule.getBz()+")日程快到了,请尽快处理");
init(skSchedule,"你的("+skSchedule.getBz()+")日程快到了,请尽快处理");
System.out.println("++++++++++++++++++++++日程定时结束");
}
}
}
}
public void init(SkSchedule skSchedule,String message){
SkWebsocketMessage skWebsocketMessage = new SkWebsocketMessage();
skWebsocketMessage.setSenderAlarm(skSchedule.getPoliceCard());
skWebsocketMessage.setSenderName(skSchedule.getXm());
skWebsocketMessage.setSenderIdcard(skSchedule.getZjhm());
skWebsocketMessage.setId(KeyUtilNaotu.getJzKey("web"));
skWebsocketMessage.setRwid(skSchedule.getXxzjbh());
skWebsocketMessage.setMessageName("日程提醒");
skWebsocketMessage.setMessageType("单发");
skWebsocketMessage.setMessageContent(message);
skWebsocketMessage.setSenderTime(new Date());
skWebsocketMessageMapper.insert(skWebsocketMessage);
}
/**
* Description: 判断一个时间是否在一个时间段内 </br>
*
......
package com.founder.publicapi.controller.SuggestionService;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.URLUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -19,6 +20,7 @@ import com.founder.servicebase.logs.OperationType;
import com.founder.servicebase.mapper.mysqlMapper.SysUserMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
......@@ -69,6 +71,10 @@ public class PaperController {
paperEntity.setCreateTime(nowTime());
// paperEntity.setIsDelete("0");
paperEntity.setCount(0);
//根据身份证号查询姓名和警号
SysUser sysUser = jbxxBysfz(paperEntity.getUserName());
paperEntity.setName(sysUser.getTrueName());
paperEntity.setPolicemanId(sysUser.getPolicemanid());
if (photos!= null){
List<String> zp = new ArrayList<>();
for (MultipartFile photo : photos) {
......@@ -226,17 +232,25 @@ public class PaperController {
@ApiOperation(value = "文章查询列表")
@OperLog(message = "文章查询列表", operation = OperationType.QUERY)
public MapRestResult articleQuery(@RequestBody PaperEntity paperEntity) {
//时间 用户 标题(模糊)
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_delete","0");
wrapper.like(StringUtils.isNotEmpty(paperEntity.getTitle()),"title",paperEntity.getTitle());
wrapper.like(StringUtils.isNotEmpty(paperEntity.getName()),"name",paperEntity.getName());
wrapper.eq(StringUtils.isNotEmpty(paperEntity.getPolicemanId()),"policeman_id",paperEntity.getPolicemanId());
if (ObjectUtil.isNotNull( paperEntity.getStartTime()) && ObjectUtil.isNotNull(paperEntity.getEndTime())) {
wrapper.apply("create_time between'" + paperEntity.getStartTime().toString() + "' and '" + paperEntity.getEndTime().toString() +"'" );
} else if (ObjectUtil.isNotNull( paperEntity.getStartTime())) {
wrapper.apply("create_time >= '" + paperEntity.getStartTime().toString() +"'" );
} else if (ObjectUtil.isNotNull(paperEntity.getEndTime())) {
wrapper.apply("create_time <= '" + paperEntity.getEndTime().toString() +"'" );
}
wrapper.orderByDesc("create_time");
//查出所有的文章
IPage iPage = paperMapper.selectPage(new Page(paperEntity.getPage(), paperEntity.getLimit()), wrapper);
List<PaperEntity> list = iPage.getRecords();
//遍历每一个文章 获取他的评论次数
for (PaperEntity pap : list) {
SysUser sysUser = jbxxBysfz(pap.getUserName());
pap.setName(sysUser.getTrueName());
pap.setPolicemanId(sysUser.getPolicemanid());
QueryWrapper<CommentEntity> wrapper1 = new QueryWrapper<>();
wrapper1.eq("blog_id",pap.getId());
......@@ -259,9 +273,6 @@ public class PaperController {
PaperEntity paperEntity1 = paperMapper.selectById(paperEntity.getId());
if (paperEntity1!=null){
SysUser sysUser = jbxxBysfz(paperEntity1.getUserName());
paperEntity1.setName(sysUser.getTrueName());
paperEntity1.setPolicemanId(sysUser.getPolicemanid());
return new MapRestResult(200,"ok",paperEntity1);
}else {
......
......@@ -48,8 +48,8 @@
WHERE
1=1
<if test="startLng!=null and startLng!='' and endLng!=null and endLng!='' and startLat!=null and startLat!='' and endLat!=null and endLat!=''">
AND cast(T.ASJFSDD_DQJD as signed) BETWEEN cast(#{startLng,jdbcType=VARCHAR} as signed) AND cast(#{endLng,jdbcType=VARCHAR} as signed)
AND cast(T.ASJFSDD_DQWD as signed) BETWEEN cast(#{startLat,jdbcType=VARCHAR} as signed) AND cast(#{endLat,jdbcType=VARCHAR} as signed)
AND cast(T.ASJFSDD_DQJD as CHAR) BETWEEN cast(#{startLng,jdbcType=VARCHAR} as CHAR) AND cast(#{endLng,jdbcType=VARCHAR} as CHAR)
AND cast(T.ASJFSDD_DQWD as CHAR) BETWEEN cast(#{startLat,jdbcType=VARCHAR} as CHAR) AND cast(#{endLat,jdbcType=VARCHAR} as CHAR)
</if>
<if test="asjbh!= null and asjbh!=''">
AND T.ASJBH= #{ asjbh , jdbcType=VARCHAR }
......@@ -120,8 +120,8 @@
WHERE
1=1
<if test="startLng!=null and startLng!='' and endLng!=null and endLng!='' and startLat!=null and startLat!='' and endLat!=null and endLat!=''">
AND cast(T.ASJFSDD_DQJD as signed) BETWEEN cast(#{startLng,jdbcType=VARCHAR} as signed) AND cast(#{endLng,jdbcType=VARCHAR} as signed)
AND cast(T.ASJFSDD_DQWD as signed) BETWEEN cast(#{startLat,jdbcType=VARCHAR} as signed) AND cast(#{endLat,jdbcType=VARCHAR} as signed)
AND cast(T.ASJFSDD_DQJD as CHAR) BETWEEN cast(#{startLng,jdbcType=VARCHAR} as CHAR) AND cast(#{endLng,jdbcType=VARCHAR} as CHAR)
AND cast(T.ASJFSDD_DQWD as CHAR) BETWEEN cast(#{startLat,jdbcType=VARCHAR} as CHAR) AND cast(#{endLat,jdbcType=VARCHAR} as CHAR)
</if>
<if test="asjbh!= null and asjbh!=''">
AND T.ASJBH= #{ asjbh , jdbcType=VARCHAR }
......
......@@ -82,7 +82,7 @@ public class SkGjGlAjServiceImpl implements SkGjGlAjService {
List results = new ArrayList();
// 有数据继续走
if(listCount>0){
param.setPage(1);
param.setPage(0);
param.setPageSize(listCount);
List<TbStAsjResult> asjList = tbStAsjMapper.selectAsjxxByReceivingList(param);
// 轨迹点位和案件点位比对拿出符合条件得案件
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment