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.ZyjhService;
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 org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@ -37,6 +40,9 @@ public class ZyjhController {
private final WsHandler wsHandler;
private final WebSocketService webSocketService;
private final WebSocketClientComponent webSocketClientComponent;
/**
* ,&
*/
@ -75,10 +81,27 @@ public class ZyjhController {
}
zyjhService.updateBatchById(list);
if (dto.getAudioFlag()){
Message result = Message.result(webSocketClientComponent.getErpId(), "1");
webSocketService.sendMessage(result.toString());
}
return new ResultBean<>();
} catch (NoSuchFieldException | IllegalAccessException e) {
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")
@ -121,8 +144,8 @@ public class ZyjhController {
List<DmYdjh> list = zyjhService.list(Wrappers.<DmYdjh>query()
//执行查询
.eq(StrUtil.isNotEmpty(search.getField()),search.getField(),search.getUser())
.isNull(StrUtil.isEmpty(search.getField()),search.getField())
.eq(StrUtil.isNotEmpty(search.getZt()),"zt",search.getZt())
// .isNull(StrUtil.isEmpty(search.getField()),search.getField())
.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())
.le(StrUtil.isNotEmpty(search.getJhrqField()),search.getJhrqField(), DateUtil.date().toString("yyyy/MM/dd"))
//跟踪查询

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

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

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

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

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

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

@ -1,7 +1,10 @@
package com.dsic.gj_erp.wsclient;
import cn.hutool.core.util.StrUtil;
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.web.socket.TextMessage;
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.handler.TextWebSocketHandler;
@Slf4j
@Service
@AllArgsConstructor
@RequiredArgsConstructor
public class WebSocketService extends TextWebSocketHandler {
private WebSocketSession session;
private final WebSocketClient client;
private final ZxHandler zxHandler;
public void connect(String 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);
switch (msg.getCodeEx()){
case REG:
log.info("设备{},连接成功",msg.getMsg().getDeviceId());
break;
case ZX:
zxHandler.execute(msg);
break;

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

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

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

Loading…
Cancel
Save