1.完善语音WS及作业计划执行

master
董哲奇 8 months ago
parent c9227526a5
commit a22446e628

@ -16,6 +16,9 @@ import com.dsic.gj_erp.service.zyjh.YcldwInfoService;
import com.dsic.gj_erp.service.zyjh.YcldwService; import com.dsic.gj_erp.service.zyjh.YcldwService;
import com.dsic.gj_erp.service.zyjh.ZyjhService; import com.dsic.gj_erp.service.zyjh.ZyjhService;
import com.dsic.gj_erp.ws.WsHandler; import com.dsic.gj_erp.ws.WsHandler;
import com.dsic.gj_erp.wsclient.Message;
import com.dsic.gj_erp.wsclient.WebSocketClientComponent;
import com.dsic.gj_erp.wsclient.WebSocketService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -37,6 +40,9 @@ public class ZyjhController {
private final WsHandler wsHandler; private final WsHandler wsHandler;
private final WebSocketService webSocketService;
private final WebSocketClientComponent webSocketClientComponent;
/** /**
* ,& * ,&
*/ */
@ -75,10 +81,27 @@ public class ZyjhController {
} }
zyjhService.updateBatchById(list); zyjhService.updateBatchById(list);
if (dto.getAudioFlag()){
Message result = Message.result(webSocketClientComponent.getErpId(), "1");
webSocketService.sendMessage(result.toString());
}
return new ResultBean<>(); return new ResultBean<>();
} catch (NoSuchFieldException | IllegalAccessException e) { } catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
throw new ServiceException(10001,"属性字段不存在"); if (dto.getAudioFlag()){
Message result = Message.result(webSocketClientComponent.getErpId(), "0");
try {
webSocketService.sendMessage(result.toString());
} catch (Exception ex) {
e.printStackTrace();
throw new ServiceException(10001,"执行失败");
}
}
throw new ServiceException(10001,"反馈属性不存在");
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(10001,"执行失败");
} }
} }
@PostMapping("zxweb") @PostMapping("zxweb")
@ -121,8 +144,8 @@ public class ZyjhController {
List<DmYdjh> list = zyjhService.list(Wrappers.<DmYdjh>query() List<DmYdjh> list = zyjhService.list(Wrappers.<DmYdjh>query()
//执行查询 //执行查询
.eq(StrUtil.isNotEmpty(search.getField()),search.getField(),search.getUser()) .eq(StrUtil.isNotEmpty(search.getField()),search.getField(),search.getUser())
.isNull(StrUtil.isEmpty(search.getField()),search.getField()) // .isNull(StrUtil.isEmpty(search.getField()),search.getField())
.eq(StrUtil.isNotEmpty(search.getZt()),"zt",search.getZt()) .eq(StrUtil.isNotEmpty(search.getZt()),"zt",search.getZt()).or(StrUtil.isNotEmpty(search.getZtHx()),it->it.eq("zt",search.getZtHx()))
.eq(StrUtil.isNotEmpty(search.getDcch()),"dcch",search.getDcch()) .eq(StrUtil.isNotEmpty(search.getDcch()),"dcch",search.getDcch())
.le(StrUtil.isNotEmpty(search.getJhrqField()),search.getJhrqField(), DateUtil.date().toString("yyyy/MM/dd")) .le(StrUtil.isNotEmpty(search.getJhrqField()),search.getJhrqField(), DateUtil.date().toString("yyyy/MM/dd"))
//跟踪查询 //跟踪查询

@ -15,6 +15,7 @@ public class PgDto {
private String zxZtName; private String zxZtName;
private List<DmYdjh> list; private List<DmYdjh> list;
private String zt; private String zt;
private Boolean audioFlag=false;
private YcldwInfo ycldwInfo; private YcldwInfo ycldwInfo;
} }

@ -9,6 +9,7 @@ public class PgdSearch {
//执行查询 //执行查询
private String zt; private String zt;
private String ztHx;//划线状态,用于切割查询,切割可以查询理料完成和划线完成的所有工单
private String field; private String field;
private String user; private String user;
private String jhrqField; private String jhrqField;

@ -57,6 +57,7 @@ public class DmJtsyjhServiceImpl extends ServiceImpl<DmJtsyjhMapper, DmJtsyjh> i
if(StringUtils.isNotEmpty(json.getString("Zt"))){ if(StringUtils.isNotEmpty(json.getString("Zt"))){
queryWrapper.eq("zt",json.getString("Zt")); queryWrapper.eq("zt",json.getString("Zt"));
} }
queryWrapper.orderByAsc("DC_CH","DC_PL","DC_FD");
List<DmJtsyjh> dmTzjhs=dmJtsyjhMapper.selectList(queryWrapper); List<DmJtsyjh> dmTzjhs=dmJtsyjhMapper.selectList(queryWrapper);
return dmTzjhs; return dmTzjhs;
} }

@ -38,8 +38,8 @@ public class WsHandler {
} }
} }
public void whoIsSelect(JSONObject object){ public void zyjhzx(JSONObject object){
socketIOServer.getBroadcastOperations().sendEvent("whoIsSelect", object); socketIOServer.getBroadcastOperations().sendEvent("zyjhzx", object);
} }
public void sendSlComplete(JSONObject object) { public void sendSlComplete(JSONObject object) {

@ -10,7 +10,7 @@ import lombok.Setter;
@Getter @Getter
@Setter @Setter
public class Message { public class Message {
private String code; private int code;
private Msg msg; private Msg msg;
@JSONField(serialize = false) @JSONField(serialize = false)
private CodeEnum codeEx; private CodeEnum codeEx;
@ -33,39 +33,46 @@ public class Message {
return message; return message;
} }
public static Message result(String id,String result){
Message message = new Message();
message.setCode(CodeEnum.RESULT.getCode());
message.setMsg(Msg.success(id,result));
return message;
}
public void formatInstructions(){ public void formatInstructions(){
if (this.getCodeEx()==CodeEnum.ZX){ if (this.getCodeEx()==CodeEnum.ZX){
Instructions.valueOf(this.msg.getResult()); Instructions.valueOf(this.msg.getResult());
} }
} }
public void formatCodeToEnum(@NonNull String code){ public void formatCodeToEnum(@NonNull int code){
for (CodeEnum e:CodeEnum.values()){ for (CodeEnum e:CodeEnum.values()){
if (e.getCode().equals(code)){ if (e.getCode()==code){
this.codeEx=e; this.codeEx=e;
} }
} }
} }
public CodeEnum getEnumByCode(@NonNull String code){ public CodeEnum getEnumByCode(@NonNull int code){
for (CodeEnum e:CodeEnum.values()){ for (CodeEnum e:CodeEnum.values()){
if (e.getCode().equals(code)){ if (e.getCode()==code){
return e; return e;
} }
} }
return null; return null;
} }
@Getter
@AllArgsConstructor @AllArgsConstructor
public enum CodeEnum{ public enum CodeEnum{
REG("9000"), REG(9000),
ZX("3000"), ZX(3000),
RESULT("9002"), RESULT(9002),
HEART("9003"), HEART(9003),
; ;
@Getter private final int code;
private final String code;
} }
public enum Instructions{ public enum Instructions{
@ -87,6 +94,13 @@ public class Message {
msg.setErpId(id); msg.setErpId(id);
return msg; return msg;
} }
private static Msg success(String id,String code){
Msg msg = new Msg();
msg.setErpId(id);
msg.setResult(code);
return msg;
}
} }
public JSONObject toJson(){ public JSONObject toJson(){

@ -3,6 +3,7 @@ package com.dsic.gj_erp.wsclient;
import com.dsic.gj_erp.wsclient.handler.HeartHandler; import com.dsic.gj_erp.wsclient.handler.HeartHandler;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -16,6 +17,7 @@ public class WebSocketClientComponent {
@Value("${ws.client.url}") @Value("${ws.client.url}")
private String url; private String url;
@Getter
@Value("${ws.client.id}") @Value("${ws.client.id}")
private String erpId; private String erpId;
@ -33,4 +35,5 @@ public class WebSocketClientComponent {
e.printStackTrace(); e.printStackTrace();
} }
} }
} }

@ -1,7 +1,10 @@
package com.dsic.gj_erp.wsclient; package com.dsic.gj_erp.wsclient;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor; import com.dsic.gj_erp.wsclient.handler.ZxHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.WebSocketSession;
@ -9,14 +12,17 @@ import org.springframework.web.socket.client.WebSocketClient;
import org.springframework.web.socket.client.WebSocketConnectionManager; import org.springframework.web.socket.client.WebSocketConnectionManager;
import org.springframework.web.socket.handler.TextWebSocketHandler; import org.springframework.web.socket.handler.TextWebSocketHandler;
@Slf4j
@Service @Service
@AllArgsConstructor @RequiredArgsConstructor
public class WebSocketService extends TextWebSocketHandler { public class WebSocketService extends TextWebSocketHandler {
private WebSocketSession session; private WebSocketSession session;
private final WebSocketClient client; private final WebSocketClient client;
private final ZxHandler zxHandler;
public void connect(String uri) { public void connect(String uri) {
WebSocketConnectionManager manager = new WebSocketConnectionManager(client, this, uri); WebSocketConnectionManager manager = new WebSocketConnectionManager(client, this, uri);
@ -48,8 +54,10 @@ public class WebSocketService extends TextWebSocketHandler {
Message msg= JSONObject.parseObject(message.getPayload(),Message.class); Message msg= JSONObject.parseObject(message.getPayload(),Message.class);
switch (msg.getCodeEx()){ switch (msg.getCodeEx()){
case REG: case REG:
log.info("设备{},连接成功",msg.getMsg().getDeviceId());
break; break;
case ZX: case ZX:
zxHandler.execute(msg);
break; break;

@ -17,9 +17,9 @@ public class HeartHandler implements IHandlerService{
private boolean scheduleStartFlag=false; private boolean scheduleStartFlag=false;
@Override @Override
public void execute(Message message) { public boolean execute(Message message) {
if (this.scheduleStartFlag){ if (this.scheduleStartFlag){
return; return true;
} }
CronUtil.schedule("*/30 * * * * *", (Task) () -> { CronUtil.schedule("*/30 * * * * *", (Task) () -> {
try { try {
@ -33,5 +33,6 @@ public class HeartHandler implements IHandlerService{
CronUtil.setMatchSecond(true); CronUtil.setMatchSecond(true);
CronUtil.start(); CronUtil.start();
this.scheduleStartFlag=true; this.scheduleStartFlag=true;
return true;
} }
} }

@ -1,9 +1,8 @@
package com.dsic.gj_erp.wsclient.handler; package com.dsic.gj_erp.wsclient.handler;
import com.alibaba.fastjson.JSONObject;
import com.dsic.gj_erp.wsclient.Message; import com.dsic.gj_erp.wsclient.Message;
public interface IHandlerService { public interface IHandlerService {
void execute(Message message); boolean execute(Message message);
} }

@ -17,17 +17,14 @@ public class ZxHandler implements IHandlerService{
private final WsHandler wsHandler; private final WsHandler wsHandler;
@Override @Override
public void execute(Message message) { public boolean execute(Message message) {
String djh=message.getMsg().getOrderNumber(); String djh=message.getMsg().getOrderNumber();
DmYdjh one = ydjhService.getOne(Wrappers.<DmYdjh>lambdaQuery().eq(DmYdjh::getDjh, djh)); DmYdjh one = ydjhService.getOne(Wrappers.<DmYdjh>lambdaQuery().eq(DmYdjh::getDjh, djh));
switch (message.getInstructions()){ JSONObject object=new JSONObject();
case : object.put("zyjh",one);
case : object.put("zt",one.getZt());
JSONObject object=new JSONObject(); wsHandler.zyjhzx(object);
object.put("zyjh",one);
wsHandler.whoIsSelect(object);
break;
} return true;
} }
} }

Loading…
Cancel
Save