From 3f6611d5f9a050b4578ae753d90e832d84a90f19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com> Date: Thu, 19 Sep 2024 17:25:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0=E4=B8=80=E4=BA=9B=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dsic/gj_erp/bean/jhgk/DmSygdxq.java | 3 ++ .../com/dsic/gj_erp/bean/jhgk/DmYdjhLj.java | 4 +- .../controller/pgd/PgdQmjhController.java | 14 +------ .../controller/yuyin/YuyinController.java | 5 ++- .../gj_erp/mapper/jhgk/DmSygdxqMapper.java | 1 + .../gj_erp/service/jhgk/DmSygdxqService.java | 1 + .../jhgk/impl/DmSygdxqServiceImpl.java | 40 ++++++++++++++++++- .../gj_erp/service/pgd/PgdQmjhService.java | 1 + .../service/pgd/impl/PgdQmjhServiceImpl.java | 39 ++++++++++++++++++ .../java/com/dsic/gj_erp/ws/WsHandler.java | 4 ++ .../com/dsic/gj_erp/wsclient/Message.java | 2 + .../gj_erp/wsclient/WebSocketService.java | 5 +++ .../gj_erp/wsclient/handler/HeartHandler.java | 19 ++++++++- .../gj_erp/wsclient/handler/TipHandler.java | 23 +++++++++++ .../gj_erp/wsclient/handler/ZxHandler.java | 13 +++--- src/main/resources/application-ws.yml | 2 +- .../resources/mappers/jhgk/DmSygdxqMapper.xml | 37 +++++++++++++++++ .../resources/mappers/pgd/PgdQmjhMapper.xml | 12 +++--- 18 files changed, 196 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/dsic/gj_erp/wsclient/handler/TipHandler.java diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java index 91f5654..6fca9dd 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmSygdxq.java @@ -95,4 +95,7 @@ public class DmSygdxq implements Serializable { @TableField(exist = false) private List bomList; + @TableField(exist = false) + private String mbcz;//目标船 + } diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhLj.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhLj.java index 5a7e760..8e18e87 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhLj.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjhLj.java @@ -321,7 +321,9 @@ public class DmYdjhLj implements Serializable { @TableField(exist = false) private String lljhrq; // 理料计划日期 - + public boolean checkZt(){ + return !"03".equals(this.pkZt)||!"03".equals(this.qjgZt)||!"03".equals(this.dmZt); + } diff --git a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdQmjhController.java b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdQmjhController.java index d07fc37..78f0eee 100644 --- a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdQmjhController.java +++ b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdQmjhController.java @@ -45,19 +45,7 @@ public class PgdQmjhController { @PostMapping("pg") public ResultBean pg(@RequestBody List list){ - String date = DateUtil.date().toString("yyyy/MM/dd"); - list.forEach(item->{ - if ("Y".equals(item.getPkbs())){ - item.setPkXfrq(date); - } - if ("Y".equals(item.getQbs())){ - item.setQjgXfrq(date); - } - if ("Y".equals(item.getDmbs())){ - item.setDmXfrq(date); - } - }); - dmYdjhLjService.updateBatchById(list); + pgdQmjhService.pg(list); return new ResultBean<>(); } diff --git a/src/main/java/com/dsic/gj_erp/controller/yuyin/YuyinController.java b/src/main/java/com/dsic/gj_erp/controller/yuyin/YuyinController.java index a3c04fc..bec6334 100644 --- a/src/main/java/com/dsic/gj_erp/controller/yuyin/YuyinController.java +++ b/src/main/java/com/dsic/gj_erp/controller/yuyin/YuyinController.java @@ -22,10 +22,13 @@ public class YuyinController { * 重连语音上报websocket服务器 */ @GetMapping("recon") - public ResultBean recon(){ + public ResultBean recon() throws Exception { WebSocketSession session = socketService.getSession(); if (session==null){ clientComponent.init(); + }else { + socketService.disconnect(); + clientComponent.init(); } return new ResultBean<>(); } diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java index b38d403..e0b4180 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmSygdxqMapper.java @@ -19,6 +19,7 @@ import java.util.List; */ public interface DmSygdxqMapper extends BaseMapper { + List getXqWithBom2(String from,String to,String dcch,String pl); List getXqWithBom(String from,String to,String dcch,String pl); List getSygdLjMx(String begin,String end); diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java index 009db9c..f110f7c 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/DmSygdxqService.java @@ -19,4 +19,5 @@ public interface DmSygdxqService extends IService { void saveDzList(List list, String username, String day); List getXqWithBom(String from, String to); + List getXqWithBom2(String from, String to); } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java index 46ae476..0641498 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java @@ -7,12 +7,17 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsic.gj_erp.bean.jcsj.DmBom; +import com.dsic.gj_erp.bean.jcsj.DmCbxxp; import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdxq; import com.dsic.gj_erp.bean.jhgk.DmSygdxqOld; import com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper; import com.dsic.gj_erp.service.jcsj.DmBomService; +import com.dsic.gj_erp.service.jcsj.DmCbxxpService; +import com.dsic.gj_erp.service.jcsj.impl.DmBomServiceImpl; import com.dsic.gj_erp.service.jhgk.DmSygdMxService; import com.dsic.gj_erp.service.jhgk.DmSygdxqOldService; import com.dsic.gj_erp.service.jhgk.DmSygdxqService; @@ -21,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Optional; /** *

@@ -39,6 +45,11 @@ public class DmSygdxqServiceImpl extends ServiceImpl i DmSygdMxService sygdMxService; @Autowired DmBomService bomService; + @Autowired + DmCbxxpService dmCbxxpService; + @Autowired + private DmBomServiceImpl dmBomServiceImpl; + @Override @Transactional public void saveXzList(List list,String username,String day){ @@ -133,8 +144,35 @@ public class DmSygdxqServiceImpl extends ServiceImpl i return t(from,to,"",""); } + @Override + public List getXqWithBom2(String from, String to) { + return t2(from,to,"",""); + } + private List t(String from, String to,String dcch,String pl){ - return baseMapper.getXqWithBom(from,to,dcch,pl); + List xqWithBom = baseMapper.getXqWithBom(from, to, dcch, pl); + for (DmSygdxq xq : xqWithBom) { + if (ObjUtil.isEmpty(xq.getBomList())){ + //从系列船取bom + //获取系列船信息 + DmCbxxp one = dmCbxxpService.getOne(Wrappers.lambdaQuery() + .eq(DmCbxxp::getCbbm, xq.getDcCh()) + ); + Optional.ofNullable(one).ifPresent(item->{ + List bomList = bomService.list(Wrappers.lambdaQuery() + .eq(DmBom::getDcch, xq.getDcCh()) + .eq(DmBom::getPl, xq.getDcPl()) + .eq(DmBom::getFd, xq.getDcFd()) + ); + xq.setBomList(bomList); + }); + } + } + return xqWithBom; + } + + private List t2(String from, String to,String dcch,String pl){ + return baseMapper.getXqWithBom2(from,to,dcch,pl); } //零件信息 diff --git a/src/main/java/com/dsic/gj_erp/service/pgd/PgdQmjhService.java b/src/main/java/com/dsic/gj_erp/service/pgd/PgdQmjhService.java index 71efea5..b278726 100644 --- a/src/main/java/com/dsic/gj_erp/service/pgd/PgdQmjhService.java +++ b/src/main/java/com/dsic/gj_erp/service/pgd/PgdQmjhService.java @@ -20,6 +20,7 @@ import java.util.Map; */ public interface PgdQmjhService extends IService { + void pg(List list); void saveQmPgdJs(List qmjhs, HttpServletRequest request); void saveQmPgdXd(List qmjhs, HttpServletRequest request); void saveQmPgdFk(List qmjhs, HttpServletRequest request); diff --git a/src/main/java/com/dsic/gj_erp/service/pgd/impl/PgdQmjhServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/pgd/impl/PgdQmjhServiceImpl.java index 83d5b73..3fd3c53 100644 --- a/src/main/java/com/dsic/gj_erp/service/pgd/impl/PgdQmjhServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/pgd/impl/PgdQmjhServiceImpl.java @@ -1,6 +1,7 @@ package com.dsic.gj_erp.service.pgd.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.dsic.gj_erp.bean.jhgk.DmYdjhLj; @@ -42,6 +43,44 @@ public class PgdQmjhServiceImpl extends ServiceImpl impl @Autowired SYService syService; + @Transactional(rollbackFor = Exception.class) + public void pg(List list){ + String date = DateUtil.date().toString("yyyy/MM/dd"); + list.stream().filter(DmYdjhLj::checkZt) + .forEach(item->{ + if ("Y".equals(item.getPkbs())){ + if (StrUtil.isEmpty(item.getPgdh())){ + String gdh = syService.f_getpjh("MM", "00", "LJLJ"); + item.setPgdh(gdh); + } + item.setPkXfrq(date); + }else{ + item.setPkXfrq(""); + } + + if ("Y".equals(item.getQbs())){ + if (StrUtil.isEmpty(item.getQgdh())){ + String gdh = syService.f_getpjh("MM", "00", "LJLJ"); + item.setQgdh(gdh); + } + item.setQjgXfrq(date); + }else{ + item.setQjgXfrq(""); + } + + if ("Y".equals(item.getDmbs())){ + if (StrUtil.isEmpty(item.getDgdh())){ + String gdh = syService.f_getpjh("MM", "00", "LJLJ"); + item.setDgdh(gdh); + } + item.setDmXfrq(date); + }else{ + item.setDmXfrq(""); + } + }); + dmYdjhLjService.updateBatchById(list); + } + @Override public void saveQmPgdJs(List qmjhs, HttpServletRequest request) { Listups= new ArrayList<>(); diff --git a/src/main/java/com/dsic/gj_erp/ws/WsHandler.java b/src/main/java/com/dsic/gj_erp/ws/WsHandler.java index 029203a..1b5f5af 100644 --- a/src/main/java/com/dsic/gj_erp/ws/WsHandler.java +++ b/src/main/java/com/dsic/gj_erp/ws/WsHandler.java @@ -38,6 +38,10 @@ public class WsHandler { } } + public void tip(JSONObject object){ + socketIOServer.getBroadcastOperations().sendEvent("tip", object); + } + public void zyjhzx(JSONObject object){ socketIOServer.getBroadcastOperations().sendEvent("zyjhzx", object); } diff --git a/src/main/java/com/dsic/gj_erp/wsclient/Message.java b/src/main/java/com/dsic/gj_erp/wsclient/Message.java index 9f5f84c..e3693c6 100644 --- a/src/main/java/com/dsic/gj_erp/wsclient/Message.java +++ b/src/main/java/com/dsic/gj_erp/wsclient/Message.java @@ -1,5 +1,6 @@ package com.dsic.gj_erp.wsclient; +import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.AllArgsConstructor; @@ -16,6 +17,7 @@ public class Message { private CodeEnum codeEx; @JSONField(serialize = false) private Instructions instructions; + private long receiveTime= DateUtil.date().getTime();//毫秒级别 public CodeEnum getCodeEx(){ if (this.codeEx==null){ diff --git a/src/main/java/com/dsic/gj_erp/wsclient/WebSocketService.java b/src/main/java/com/dsic/gj_erp/wsclient/WebSocketService.java index e1fd638..fac7ab6 100644 --- a/src/main/java/com/dsic/gj_erp/wsclient/WebSocketService.java +++ b/src/main/java/com/dsic/gj_erp/wsclient/WebSocketService.java @@ -1,6 +1,7 @@ package com.dsic.gj_erp.wsclient; import com.alibaba.fastjson.JSONObject; +import com.dsic.gj_erp.wsclient.handler.TipHandler; import com.dsic.gj_erp.wsclient.handler.ZxHandler; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -21,6 +22,7 @@ public class WebSocketService extends TextWebSocketHandler { private final WebSocketClient client; private final ZxHandler zxHandler; + private final TipHandler tipHandler; public void connect(String uri) { @@ -55,6 +57,9 @@ public class WebSocketService extends TextWebSocketHandler { case REG: log.info("设备{},连接成功",msg.getMsg().getDeviceId()); break; + case TIP: + tipHandler.execute(msg); + break; case ZX: zxHandler.execute(msg); break; diff --git a/src/main/java/com/dsic/gj_erp/wsclient/handler/HeartHandler.java b/src/main/java/com/dsic/gj_erp/wsclient/handler/HeartHandler.java index efbff54..d71cdb0 100644 --- a/src/main/java/com/dsic/gj_erp/wsclient/handler/HeartHandler.java +++ b/src/main/java/com/dsic/gj_erp/wsclient/handler/HeartHandler.java @@ -5,7 +5,9 @@ import cn.hutool.cron.task.Task; import com.alibaba.fastjson.JSONObject; import com.dsic.gj_erp.wsclient.Message; import com.dsic.gj_erp.wsclient.WebSocketService; +import lombok.Getter; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @Service @@ -16,16 +18,31 @@ public class HeartHandler implements IHandlerService{ private boolean scheduleStartFlag=false; + @Value("${ws.client.url}") + private String url; + + @Getter + @Value("${ws.client.id}") + private String erpId; + @Override public boolean execute(Message message) { if (this.scheduleStartFlag){ return true; } - CronUtil.schedule("*/30 * * * * *", (Task) () -> { + CronUtil.schedule("*/10 * * * * *", (Task) () -> { try { System.out.println("心跳"); webSocketService.sendMessage(message.toString()); } catch (Exception e) { + if (webSocketService.getSession()==null){ + webSocketService.connect(this.url); + try { + webSocketService.sendMessage(Message.reg(this.erpId).toString()); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } e.printStackTrace(); } }); diff --git a/src/main/java/com/dsic/gj_erp/wsclient/handler/TipHandler.java b/src/main/java/com/dsic/gj_erp/wsclient/handler/TipHandler.java new file mode 100644 index 0000000..ebe47b9 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/wsclient/handler/TipHandler.java @@ -0,0 +1,23 @@ +package com.dsic.gj_erp.wsclient.handler; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.dsic.gj_erp.bean.jhgk.DmYdjh; +import com.dsic.gj_erp.service.jhgk.DmYdjhService; +import com.dsic.gj_erp.ws.WsHandler; +import com.dsic.gj_erp.wsclient.Message; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class TipHandler implements IHandlerService{ + + private final WsHandler wsHandler; + + @Override + public boolean execute(Message message) { + wsHandler.tip(message.toJson()); + return true; + } +} diff --git a/src/main/java/com/dsic/gj_erp/wsclient/handler/ZxHandler.java b/src/main/java/com/dsic/gj_erp/wsclient/handler/ZxHandler.java index fc28f0d..f4cd546 100644 --- a/src/main/java/com/dsic/gj_erp/wsclient/handler/ZxHandler.java +++ b/src/main/java/com/dsic/gj_erp/wsclient/handler/ZxHandler.java @@ -9,6 +9,8 @@ import com.dsic.gj_erp.wsclient.Message; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Optional; + @Service @AllArgsConstructor public class ZxHandler implements IHandlerService{ @@ -20,11 +22,12 @@ public class ZxHandler implements IHandlerService{ public boolean execute(Message message) { String djh=message.getMsg().getOrderNumber(); DmYdjh one = ydjhService.getOne(Wrappers.lambdaQuery().eq(DmYdjh::getDjh, djh)); - JSONObject object=new JSONObject(); - object.put("zyjh",one); - object.put("zt",one.getZt()); - wsHandler.zyjhzx(object); - + Optional.ofNullable(one).ifPresent(item->{ + JSONObject object=new JSONObject(); + object.put("zyjh",one); + object.put("zt",one.getZt()); + wsHandler.zyjhzx(object); + }); return true; } } diff --git a/src/main/resources/application-ws.yml b/src/main/resources/application-ws.yml index 2e17433..e7f3638 100644 --- a/src/main/resources/application-ws.yml +++ b/src/main/resources/application-ws.yml @@ -9,5 +9,5 @@ ws: maxHttpContentLength: 1048576 maxFramePayloadLength: 1048576 client: - url: ws://192.168.13.9:9000 + url: ws://127.0.0.1:9000 id: abc \ No newline at end of file diff --git a/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml index 64ab5a0..001baca 100644 --- a/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml +++ b/src/main/resources/mappers/jhgk/DmSygdxqMapper.xml @@ -64,6 +64,43 @@ where a.rn=1 order by a.xzglxq +