Commit 388991f1 sunke

感应料架提示消息只发送所属用户

PN出库页面服务器排序
1 个父辈 04ec3da6
...@@ -22,6 +22,7 @@ import com.neotel.smfcore.core.system.websocket.SocketMsg; ...@@ -22,6 +22,7 @@ import com.neotel.smfcore.core.system.websocket.SocketMsg;
import com.neotel.smfcore.core.system.websocket.WebSocketServer; import com.neotel.smfcore.core.system.websocket.WebSocketServer;
import com.neotel.smfcore.security.TokenProvider; import com.neotel.smfcore.security.TokenProvider;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import com.neotel.smfcore.security.service.manager.IUserManager;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -43,6 +44,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -43,6 +44,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
@Autowired @Autowired
private TokenProvider tokenProvider; private TokenProvider tokenProvider;
@Autowired
private IUserManager userManager;
/** /**
* 扫码 * 扫码
*/ */
...@@ -50,6 +54,8 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -50,6 +54,8 @@ public class NLPShelfHandler extends BaseDeviceHandler{
@PostMapping("/api/sensorShelf/codeIn") @PostMapping("/api/sensorShelf/codeIn")
@PreAuthorize("@el.check('sensorShelf:putIn')") @PreAuthorize("@el.check('sensorShelf:putIn')")
public ResultBean codeIn( @RequestBody Map<String, String> mapValues,HttpServletRequest request) { public ResultBean codeIn( @RequestBody Map<String, String> mapValues,HttpServletRequest request) {
String code = mapValues.get("code"); String code = mapValues.get("code");
String groupId = mapValues.get("group"); String groupId = mapValues.get("group");
String storageId=mapValues.get("storageId"); String storageId=mapValues.get("storageId");
...@@ -70,7 +76,8 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -70,7 +76,8 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if(groupId!=null&&groupId.equals("-1")){ if(groupId!=null&&groupId.equals("-1")){
groupId=""; groupId="";
} }
// WebSocketServer.sendMsg("", new SocketMsg("{0}未找到库位:{1}"+code, MsgType.INFO,"smfclient.nlp.cannotFindPos",new String[]{"消息测试","库位号"}));
// WebSocketServer.sendMsg("", new SocketMsg("{0}未找到库位:{1}"+code, MsgType.INFO,"smfclient.nlp.cannotFindPos",new String[]{"消息测试","库位号"}));
String loginUser = SecurityUtils.getLoginUsername(); String loginUser = SecurityUtils.getLoginUsername();
Collection<DataLog> queueTasks = taskService.getQueueTasks(); Collection<DataLog> queueTasks = taskService.getQueueTasks();
ResultBean resultBean = null; ResultBean resultBean = null;
...@@ -155,7 +162,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -155,7 +162,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
try { try {
taskService.addTaskToExecute(dataLog); taskService.addTaskToExecute(dataLog);
} catch (Exception e) { } catch (Exception e) {
WebSocketServer.sendMsg(token, new SocketMsg(e.getMessage(), MsgType.INFO,"smfclient.nlp.error",new String[]{e.getMessage()})); return ResultBean.newErrorResult(-1,"smfclient.nlp.error","入库失败:"+e.getMessage(),new String[]{e.getMessage()});
} }
...@@ -318,7 +325,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -318,7 +325,9 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if(hasReelPosList.length > 1){ if(hasReelPosList.length > 1){
String msg = "不可同时放入多盘物料:"+ String.join(",",hasReelPosList); String msg = "不可同时放入多盘物料:"+ String.join(",",hasReelPosList);
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.ERROR,"smfclient.nlp.onlyOneTray",new String[]{String.join(",",hasReelPosList)})); List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
SocketMsg socketMsg = new SocketMsg(notifyUsers, msg, MsgType.ERROR,"smfclient.nlp.onlyOneTray",new String[]{String.join(",",hasReelPosList)});
WebSocketServer.sendMsg(socketMsg);
for (String posStr : hasReelPosList) { for (String posStr : hasReelPosList) {
inNgList.add(posStr); inNgList.add(posStr);
} }
...@@ -327,12 +336,15 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -327,12 +336,15 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if(pos == null){ if(pos == null){
String msg = "未找到库位:"+String.join(",",hasReelPosList) ; String msg = "未找到库位:"+String.join(",",hasReelPosList) ;
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{"",String.join(",",hasReelPosList)})); List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers,msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{"",String.join(",",hasReelPosList)}));
} }
else if(!pos.getStorageId().equals(storage.getId())){ else if(!pos.getStorageId().equals(storage.getId())){
String msg = "["+storage.getName()+"]未找到库位:"+String.join(",",hasReelPosList) ; String msg = "["+storage.getName()+"]未找到库位:"+String.join(",",hasReelPosList) ;
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{storage.getName(),String.join(",",hasReelPosList)}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{storage.getName(),String.join(",",hasReelPosList)}));
} }
//如果库位有料,直接结束 //如果库位有料,直接结束
else if(pos.getBarcode()!=null) { else if(pos.getBarcode()!=null) {
...@@ -362,11 +374,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -362,11 +374,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{
inOkList.add(hasReelPosList[0]); inOkList.add(hasReelPosList[0]);
String msg = queueTask.getBarcode() + "入库到" + pos.getPosName() + "成功"; String msg = queueTask.getBarcode() + "入库到" + pos.getPosName() + "成功";
log.info(msg); log.info(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.inputOk",new String[]{queueTask.getBarcode(),pos.getPosName()}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, msg, MsgType.INFO,"smfclient.nlp.inputOk",new String[]{queueTask.getBarcode(),pos.getPosName()}));
break; break;
} catch (Exception e) { } catch (Exception e) {
log.error("入库出错"+e.getMessage()); log.error("入库出错"+e.getMessage());
WebSocketServer.sendMsg("",new SocketMsg("入库出错:"+e.getMessage(), MsgType.ERROR,"smfclient.nlp.inputError",new String[]{e.getMessage()}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers,"入库出错:"+e.getMessage(), MsgType.ERROR,"smfclient.nlp.inputError",new String[]{e.getMessage()}));
return ResultBean.newErrorResult(-1, "smfcore.inputError", "入库出错:{0}", new String[]{e.getMessage()}); return ResultBean.newErrorResult(-1, "smfcore.inputError", "入库出错:{0}", new String[]{e.getMessage()});
} }
} }
...@@ -394,12 +411,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -394,12 +411,16 @@ public class NLPShelfHandler extends BaseDeviceHandler{
if(pos == null){ if(pos == null){
String msg = "未找到库位:"+String.join(",",hasReelPosList) ; String msg = "未找到库位:"+String.join(",",hasReelPosList) ;
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{"",String.join(",",hasReelPosList)}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{"",String.join(",",hasReelPosList)}));
} }
else if(!pos.getStorageId().equals(storage.getId())){ else if(!pos.getStorageId().equals(storage.getId())){
String msg = "["+storage.getName()+"]未找到库位:"+String.join(",",hasReelPosList) ; String msg = "["+storage.getName()+"]未找到库位:"+String.join(",",hasReelPosList) ;
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{storage.getName(),String.join(",",hasReelPosList)}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, msg, MsgType.ERROR,"smfclient.nlp.cannotFindPos",new String[]{storage.getName(),String.join(",",hasReelPosList)}));
}else if(pos.getBarcode()==null){ }else if(pos.getBarcode()==null){
log.info("料架[" + cid + "]出库库位[" + pos.getPosName() + "]已为空 "); log.info("料架[" + cid + "]出库库位[" + pos.getPosName() + "]已为空 ");
}else{ }else{
...@@ -413,11 +434,15 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -413,11 +434,15 @@ public class NLPShelfHandler extends BaseDeviceHandler{
super.finishedOutPos(cid,posName); super.finishedOutPos(cid,posName);
String msg = queueTask.getBarcode()+ "从"+ posName+"出库成功"; String msg = queueTask.getBarcode()+ "从"+ posName+"出库成功";
log.error(msg); log.error(msg);
WebSocketServer.sendMsg("",new SocketMsg(msg, MsgType.INFO,"smfclient.nlp.outputOk",new String[]{queueTask.getBarcode(),posName}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, msg, MsgType.INFO,"smfclient.nlp.outputOk",new String[]{queueTask.getBarcode(),posName}));
break; break;
} catch (Exception e) { } catch (Exception e) {
log.error("出库出错"+e.getMessage()); log.error("出库出错"+e.getMessage());
WebSocketServer.sendMsg("",new SocketMsg("出库出错:"+e.getMessage(), MsgType.ERROR,"smfclient.nlp.outputError",new String[]{e.getMessage()}));
List<String> notifyUsers = userManager.findByDeviceGroupId(storage.getGroupId());
WebSocketServer.sendMsg(new SocketMsg(notifyUsers, "出库出错:"+e.getMessage(), MsgType.ERROR,"smfclient.nlp.outputError",new String[]{e.getMessage()}));
return ResultBean.newErrorResult(-1,"smfcore.checkoutError","出库出错:{0}" ,new String[]{ e.getMessage()}); return ResultBean.newErrorResult(-1,"smfcore.checkoutError","出库出错:{0}" ,new String[]{ e.getMessage()});
} }
} }
......
...@@ -468,16 +468,14 @@ public class DataCache { ...@@ -468,16 +468,14 @@ public class DataCache {
return map; return map;
} }
Map<String, InventoryItem> resultMap = new HashMap<>(); Map<String, InventoryItem> resultMap = new HashMap<>();
for (InventoryItem item : for (InventoryItem item : map.values()) {
map.values()) {
boolean blurryOk = false; boolean blurryOk = false;
if (ObjectUtil.isNotEmpty(blurry)) { if (ObjectUtil.isNotEmpty(blurry)) {
String[] blurrys = blurry.split(","); String[] blurrys = blurry.split(",");
String[] valueArray = new String[]{item.getPartNumber(),item.getStorageName()}; String[] valueArray = new String[]{item.getPartNumber(),item.getStorageName()};
for (String s : blurrys) { for (String s : blurrys) {
if (ObjectUtil.isNotEmpty(s)) { if (ObjectUtil.isNotEmpty(s)) {
for (String v : for (String v : valueArray) {
valueArray) {
if(ObjectUtil.isEmpty(v)){ if(ObjectUtil.isEmpty(v)){
continue; continue;
} }
......
...@@ -34,6 +34,7 @@ import lombok.RequiredArgsConstructor; ...@@ -34,6 +34,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
...@@ -45,6 +46,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -45,6 +46,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@RestController @RestController
...@@ -105,12 +107,36 @@ public class MaterialController { ...@@ -105,12 +107,36 @@ public class MaterialController {
@ApiOperation("策略出库获取库存列表") @ApiOperation("策略出库获取库存列表")
@GetMapping(value = "/inventory") @GetMapping(value = "/inventory")
@PreAuthorize("@el.check('tacticsOuput')") @PreAuthorize("@el.check('tacticsOuput')")
public ResponseEntity<List<InventoryItemDto>> inventory(InventoryQueryCriteria criteria) { public ResponseEntity<List<InventoryItemDto>> inventory(InventoryQueryCriteria criteria,Pageable pageable, HttpServletRequest request) {
Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory(criteria.getStorageIdList(),criteria.getBlurry()); Map<String, InventoryItem> inventoryItemMap = dataCache.getAllInventory(criteria.getStorageIdList(),criteria.getBlurry());
List<InventoryItem> list = Lists.newArrayList(inventoryItemMap.values()); List<InventoryItem> list = Lists.newArrayList(inventoryItemMap.values());
List<InventoryItemDto> dtoList = inventoryItemMapper.toDto(list);
Comparator<InventoryItemDto> comparator = Comparator.comparing(InventoryItemDto::getPartNumber);
Sort.Order lockReelOrder = pageable.getSort().getOrderFor("lockReel");
if(lockReelOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getStockReel,Comparator.nullsFirst(Integer::compareTo));
if(lockReelOrder.isDescending()){
comparator = comparator.reversed();
}
}
Sort.Order stockCountOrder = pageable.getSort().getOrderFor("stockCount");
if(stockCountOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getStockCount,Comparator.nullsFirst(Integer::compareTo));
if(stockCountOrder.isDescending()){
comparator = comparator.reversed();
}
}
Sort.Order partNumberOrder = pageable.getSort().getOrderFor("partNumber");
if(partNumberOrder != null){
comparator = Comparator.comparing(InventoryItemDto::getPartNumber,Comparator.nullsFirst(String::compareTo));
if(stockCountOrder.isDescending()){
comparator = comparator.reversed();
}
}
return new ResponseEntity<>(inventoryItemMapper.toDto(list), HttpStatus.OK); dtoList = dtoList.stream().sorted(comparator).collect(Collectors.toList());
return new ResponseEntity<>(dtoList, HttpStatus.OK);
} }
@ApiOperation("策略出库") @ApiOperation("策略出库")
......
...@@ -118,6 +118,7 @@ public class MesApiController { ...@@ -118,6 +118,7 @@ public class MesApiController {
*/ */
@RequestMapping(value = "/dataUpdate") @RequestMapping(value = "/dataUpdate")
@ResponseBody @ResponseBody
@AnonymousAccess
public String dataUpdate(HttpServletRequest request) { public String dataUpdate(HttpServletRequest request) {
try { try {
String Partnumber = checkParameter(request,"PN"); String Partnumber = checkParameter(request,"PN");
...@@ -151,6 +152,7 @@ public class MesApiController { ...@@ -151,6 +152,7 @@ public class MesApiController {
@RequestMapping(value = "/barcode") @RequestMapping(value = "/barcode")
@ResponseBody @ResponseBody
@AnonymousAccess
public String barcode(HttpServletRequest request) { public String barcode(HttpServletRequest request) {
try{ try{
String codeStr = checkParameter(request,"codeStr"); String codeStr = checkParameter(request,"codeStr");
...@@ -177,6 +179,7 @@ public class MesApiController { ...@@ -177,6 +179,7 @@ public class MesApiController {
@RequestMapping(value = "/codeUpdate") @RequestMapping(value = "/codeUpdate")
@ResponseBody @ResponseBody
@AnonymousAccess
public String codeUpdate(HttpServletRequest request) { public String codeUpdate(HttpServletRequest request) {
try { try {
...@@ -209,6 +212,7 @@ public class MesApiController { ...@@ -209,6 +212,7 @@ public class MesApiController {
@RequestMapping(value = "/stackOut") @RequestMapping(value = "/stackOut")
@ResponseBody @ResponseBody
@AnonymousAccess
public String stackOut(HttpServletRequest request) { public String stackOut(HttpServletRequest request) {
try { try {
...@@ -239,6 +243,7 @@ public class MesApiController { ...@@ -239,6 +243,7 @@ public class MesApiController {
@RequestMapping(value = "/unlock") @RequestMapping(value = "/unlock")
@ResponseBody @ResponseBody
@AnonymousAccess
public String unlock(HttpServletRequest request) { public String unlock(HttpServletRequest request) {
String orderName = request.getParameter("orderName");//锁定标签 String orderName = request.getParameter("orderName");//锁定标签
log.info("收到unlock 请求:orderName=" + orderName); log.info("收到unlock 请求:orderName=" + orderName);
...@@ -261,6 +266,7 @@ public class MesApiController { ...@@ -261,6 +266,7 @@ public class MesApiController {
@RequestMapping(value = "/lock") @RequestMapping(value = "/lock")
@ResponseBody @ResponseBody
@AnonymousAccess
public String lock(HttpServletRequest request){ public String lock(HttpServletRequest request){
String orderName = request.getParameter("orderName");//锁定标签 String orderName = request.getParameter("orderName");//锁定标签
String pn = request.getParameter("pn");//Partnumber String pn = request.getParameter("pn");//Partnumber
...@@ -306,6 +312,7 @@ public class MesApiController { ...@@ -306,6 +312,7 @@ public class MesApiController {
@RequestMapping(value = "/pnInventory") @RequestMapping(value = "/pnInventory")
@ResponseBody @ResponseBody
@AnonymousAccess
public Map<String,Map<String,Integer>> getParnumberInventory(HttpServletRequest request){ public Map<String,Map<String,Integer>> getParnumberInventory(HttpServletRequest request){
log.info("收到 getParnumberInventory 请求"); log.info("收到 getParnumberInventory 请求");
Map<String,Map<String,Integer>> partnumberInventory = Maps.newHashMap(); Map<String,Map<String,Integer>> partnumberInventory = Maps.newHashMap();
...@@ -337,6 +344,7 @@ public class MesApiController { ...@@ -337,6 +344,7 @@ public class MesApiController {
@RequestMapping(value = "/history") @RequestMapping(value = "/history")
@ResponseBody @ResponseBody
@AnonymousAccess
public List<Map<String,Object>> history(HttpServletRequest request) { public List<Map<String,Object>> history(HttpServletRequest request) {
String bid = request.getParameter("bid"); String bid = request.getParameter("bid");
// String start = request.getParameter("start"); // String start = request.getParameter("start");
...@@ -382,6 +390,7 @@ public class MesApiController { ...@@ -382,6 +390,7 @@ public class MesApiController {
@RequestMapping(value = "/status") @RequestMapping(value = "/status")
@ResponseBody @ResponseBody
@AnonymousAccess
public List<Map<String,Object>> status(HttpServletRequest request) { public List<Map<String,Object>> status(HttpServletRequest request) {
String cid = request.getParameter("cid"); String cid = request.getParameter("cid");
// Locale localeZh = Language.ZH_CN.getLocale(); // Locale localeZh = Language.ZH_CN.getLocale();
......
...@@ -935,7 +935,7 @@ public class TaskService { ...@@ -935,7 +935,7 @@ public class TaskService {
task.setOperator(SecurityUtils.getCurrentUsername()); task.setOperator(SecurityUtils.getCurrentUsername());
task.setSingleOut(true); task.setSingleOut(true);
task.setSourceId(null); task.setSourceId(null);
task.setSourceName("策略出库"); task.setSourceName("PN");
addTaskToExecute(task); addTaskToExecute(task);
} }
} }
......
...@@ -19,6 +19,8 @@ import lombok.AllArgsConstructor; ...@@ -19,6 +19,8 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List;
/** /**
* @author ZhangHouYing * @author ZhangHouYing
* @date 2019-08-10 9:55 * @date 2019-08-10 9:55
...@@ -27,6 +29,12 @@ import lombok.NoArgsConstructor; ...@@ -27,6 +29,12 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class SocketMsg { public class SocketMsg {
/**
* 要通知的用户名称列表
*/
private List<String> users;
private String msg; private String msg;
private MsgType msgType; private MsgType msgType;
...@@ -35,6 +43,26 @@ public class SocketMsg { ...@@ -35,6 +43,26 @@ public class SocketMsg {
private String[] msgParams; private String[] msgParams;
// public static SocketMsg newErrorMsg(String msgId, String msgCode,String[] msgParams,String defaultMsg){
// SocketMsg sm = new SocketMsg();
// sm.setMsg(defaultMsg);
// sm.setMsgType(MsgType.ERROR);
// sm.setMsgCode(msgCode);
// sm.setMsgId(msgId);
// sm.setMsgParams(msgParams);
// return sm;
// }
//
// public static SocketMsg newInfoMsg(String msgId, String msgCode,String msg, String[] msgParams){
// SocketMsg sm = new SocketMsg();
// sm.setMsg(msg);
// sm.setMsgType(MsgType.INFO);
// sm.setMsgCode(msgCode);
// sm.setMsgId(msgId);
// sm.setMsgParams(msgParams);
// return sm;
// }
// public SocketMsg(String msg, MsgType msgType) { // public SocketMsg(String msg, MsgType msgType) {
// this.msg = msg; // this.msg = msg;
// this.msgType = msgType; // this.msgType = msgType;
......
...@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean; ...@@ -20,7 +20,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter; import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@ConditionalOnProperty(name = "spring.profiles.active", havingValue = "dev") //@ConditionalOnProperty(name = "spring.profiles.active", havingValue = "dev")
@Configuration @Configuration
public class WebSocketConfig { public class WebSocketConfig {
......
...@@ -110,8 +110,7 @@ public class WebSocketServer { ...@@ -110,8 +110,7 @@ public class WebSocketServer {
@OnError @OnError
public void onError(Session session, Throwable error) { public void onError(Session session, Throwable error) {
log.error("发生错误"); log.error("WebSocket发生错误:"+error.getMessage());
error.printStackTrace();
} }
/** /**
* 实现服务器主动推送 * 实现服务器主动推送
...@@ -130,12 +129,12 @@ public class WebSocketServer { ...@@ -130,12 +129,12 @@ public class WebSocketServer {
/** /**
* 发送分组消息 * 发送分组消息
*/ */
public static void sendMsg(String token, SocketMsg socketMsg) { public static void sendMsg(SocketMsg socketMsg) {
String sid ="Bearer "+ token; // String sid ="Bearer "+ token;
if(ObjectUtil.isEmpty(token)){ // if(ObjectUtil.isEmpty(token)){
sid=token; // sid=token;
} // }
sendInfo(socketMsg,sid); sendInfo(socketMsg,"");
} }
/** /**
......
...@@ -188,10 +188,10 @@ public class HellaServiceHandler extends BaseSmfApiListener implements IoHandler ...@@ -188,10 +188,10 @@ public class HellaServiceHandler extends BaseSmfApiListener implements IoHandler
if(respCommand.isOkResp()){ if(respCommand.isOkResp()){
ResultBean okResult = ResultBean.newOkResult("smfcore.loadMaterialFinished","loading material is finished: {0}" ,new String[]{messageText},""); ResultBean okResult = ResultBean.newOkResult("smfcore.loadMaterialFinished","loading material is finished: {0}" ,new String[]{messageText},"");
WebSocketServer.sendMsg(requestCommand.getToken(),new SocketMsg(okResult.getMsg(), MsgType.INFO,"smfclient.loadMaterialFinished",new String[]{messageText})); WebSocketServer.sendMsg(new SocketMsg(Lists.newArrayList(requestCommand.getLoginUser()), okResult.getMsg(), MsgType.INFO,"smfclient.loadMaterialFinished",new String[]{messageText}));
}else{ }else{
ResultBean ngResult = ResultBean.newErrorResult(Integer.valueOf(returnCode),"smfcore.loadMaterialFailed","loading material failed:{0}",new String[]{messageText} ); ResultBean ngResult = ResultBean.newErrorResult(Integer.valueOf(returnCode),"smfcore.loadMaterialFailed","loading material failed:{0}",new String[]{messageText} );
WebSocketServer.sendMsg(requestCommand.getToken(),new SocketMsg(ngResult.getMsg(), MsgType.ERROR,"smfclient.loadMaterialFailed",new String[]{messageText})); WebSocketServer.sendMsg(new SocketMsg(Lists.newArrayList(requestCommand.getLoginUser()),ngResult.getMsg(), MsgType.ERROR,"smfclient.loadMaterialFailed",new String[]{messageText}));
} }
commandMap.remove(respCommand.getEventId()); commandMap.remove(respCommand.getEventId());
}else if(respCommand.isUnloadMaterialCmd()){ }else if(respCommand.isUnloadMaterialCmd()){
...@@ -413,15 +413,15 @@ public class HellaServiceHandler extends BaseSmfApiListener implements IoHandler ...@@ -413,15 +413,15 @@ public class HellaServiceHandler extends BaseSmfApiListener implements IoHandler
try{ try{
taskService.addTaskToExecute(dataLog); taskService.addTaskToExecute(dataLog);
ResultBean okResult = ResultBean.newOkResult("checking material is ok: " + messageText); ResultBean okResult = ResultBean.newOkResult("checking material is ok: " + messageText);
WebSocketServer.sendMsg(token,new SocketMsg(okResult.getMsg(), MsgType.INFO,"smfclient.checkingMaterialOk",new String[]{messageText})); WebSocketServer.sendMsg(new SocketMsg(Lists.newArrayList(loginUser),okResult.getMsg(), MsgType.INFO,"smfclient.checkingMaterialOk",new String[]{messageText}));
}catch(Exception e){ }catch(Exception e){
WebSocketServer.sendMsg(token,new SocketMsg(e.getMessage(), MsgType.INFO,"smfclient.nlp.error",new String[]{e.getMessage()})); WebSocketServer.sendMsg(new SocketMsg(Lists.newArrayList(loginUser),e.getMessage(), MsgType.INFO,"smfclient.nlp.error",new String[]{e.getMessage()}));
} }
}else{ }else{
//NG,需要在界面上进行提示 //NG,需要在界面上进行提示
ResultBean ngResult = ResultBean.newErrorResult(Integer.valueOf(returnCode),"smfcore.checkNg","checking material is ng:{0}" ,new String[]{messageText} ); ResultBean ngResult = ResultBean.newErrorResult(Integer.valueOf(returnCode),"smfcore.checkNg","checking material is ng:{0}" ,new String[]{messageText} );
WebSocketServer.sendMsg(token,new SocketMsg(ngResult.getMsg(), MsgType.ERROR,"smfclient.checkNg",new String[]{messageText})); WebSocketServer.sendMsg(new SocketMsg(Lists.newArrayList(loginUser),ngResult.getMsg(), MsgType.ERROR,"smfclient.checkNg",new String[]{messageText}));
} }
commandMap.remove(respCommand.getEventId()); commandMap.remove(respCommand.getEventId());
} }
......
...@@ -66,6 +66,8 @@ public interface IUserManager extends IBaseManager<User> { ...@@ -66,6 +66,8 @@ public interface IUserManager extends IBaseManager<User> {
List<User> findByRoleId(String roleId); List<User> findByRoleId(String roleId);
List<String> findByDeviceGroupId(String deviceGroupId);
void download(List<User> users, HttpServletResponse response, Locale locale) throws IOException; void download(List<User> users, HttpServletResponse response, Locale locale) throws IOException;
void updateEmail(String username, String email); void updateEmail(String username, String email);
......
package com.neotel.smfcore.security.service.manager.impl; package com.neotel.smfcore.security.service.manager.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.bean.PageData; import com.neotel.smfcore.common.bean.PageData;
import com.neotel.smfcore.common.exception.ValidateException; import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.common.utils.*; import com.neotel.smfcore.common.utils.*;
import com.neotel.smfcore.core.language.util.MessageUtils; import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
import com.neotel.smfcore.security.rest.bean.dto.RoleSmallDto;
import com.neotel.smfcore.security.rest.bean.dto.UserDto; import com.neotel.smfcore.security.rest.bean.dto.UserDto;
import com.neotel.smfcore.security.rest.bean.mapstruct.RoleMapper;
import com.neotel.smfcore.security.rest.bean.mapstruct.UserMapper; import com.neotel.smfcore.security.rest.bean.mapstruct.UserMapper;
import com.neotel.smfcore.security.service.dao.IUserDao; import com.neotel.smfcore.security.service.dao.IUserDao;
import com.neotel.smfcore.security.service.manager.IRoleManager; import com.neotel.smfcore.security.service.manager.IRoleManager;
...@@ -17,7 +13,6 @@ import com.neotel.smfcore.security.service.po.Role; ...@@ -17,7 +13,6 @@ import com.neotel.smfcore.security.service.po.Role;
import com.neotel.smfcore.security.service.po.User; import com.neotel.smfcore.security.service.po.User;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -28,7 +23,6 @@ import org.springframework.util.ObjectUtils; ...@@ -28,7 +23,6 @@ import org.springframework.util.ObjectUtils;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* Created by kangmor on 2015/12/1. * Created by kangmor on 2015/12/1.
...@@ -167,6 +161,21 @@ public class UserManagerImpl implements IUserManager { ...@@ -167,6 +161,21 @@ public class UserManagerImpl implements IUserManager {
List<User> users = userDao.findOneByCondition(new String[] {"roleId"}, new String[] {roleId}); List<User> users = userDao.findOneByCondition(new String[] {"roleId"}, new String[] {roleId});
return users; return users;
} }
@Override
public List<String> findByDeviceGroupId(String deviceGroupId){
List<String> userNames = new ArrayList<>();
if(deviceGroupId == null || deviceGroupId.isEmpty()){
return userNames;
}
Query query=new Query(Criteria.where("groups").is(deviceGroupId));
List<User> users = userDao.findByQuery(query);
for (User user : users) {
userNames.add(user.getUsername());
}
return userNames;
}
@Override @Override
public void download(List<User> queryAll, HttpServletResponse response,Locale locale) throws IOException { public void download(List<User> queryAll, HttpServletResponse response,Locale locale) throws IOException {
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!